1 / 10

Optimal Non-Manhattan Bubble Sort Channel Router

Optimal Non-Manhattan Bubble Sort Channel Router. Sean Pieper ECE556 Final Project. Manhattan Routing. Non-Manhattan Routing. Use Vertical and Horizontal Constraint Graphs (VCG and HCG) If VCG has a cycle, need to add extra columns and rows. can use +/- 45 degree paths

tulia
Télécharger la présentation

Optimal Non-Manhattan Bubble Sort Channel Router

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimal Non-Manhattan Bubble Sort Channel Router Sean Pieper ECE556 Final Project

  2. Manhattan Routing Non-Manhattan Routing • Use Vertical and Horizontal Constraint Graphs (VCG and HCG) • If VCG has a cycle, need to add extra columns and rows. • can use +/- 45 degree paths • “X” routing requires one track and no extra columns • No need for VCG or HCG 1 2 1 2 2 1 2 1

  3. How to cash in: • Constrain problem to two-terminal nets • Each net crosses the channel • Rename terminals so that top is numbered in order • Bottom can now be viewed as a permutation of the top • At each track: • swap adjacent wires that are out of order with respect to each other • For N terminals, this router requires N columns and at most N tracks 58324 43258 12345 53412

  4. Better idea: Sort Routing • Swap router only allows wires to move one column per track • We have horizontal tracks available, so this is an artificial constraint • Bubble sort will move tracks horizontally 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1

  5. Optimize it: • At each new track, can sort left or right • Left sort moves tracks left rapidly, right sort moves tracks right • Previous example would take 9 layers with only right sort • Want to use optimal combination of left and right sort steps

  6. Breadth first search: • Ordering of left and right sorts does not matter: • Full tree has redundant nodes • Collapse redundant nodes to get DAG • Remove redundant paths from DAG Order dependent tree DAG Vector of Vectors

  7. Code flow: Parse input file: use hashtable to accelerate renaming of pins All leaves generated Expand main vector Expand Left sub-vectors Not sorted Perform one right sort step Perform one left sort step Check for sorted leaf Done When a sorted leaf is found, the number of left and right steps that generated it is returned. This uniquely identifies the sequence of intermediate routing steps Generate ASCII art of routing

  8. Sample Output: 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 | | | | | / / | | | | | | | | | | | | o---o | | | | | | | | 1 | | | | / / | | | | | | | | | | | | | | | | | | / / | \ / | | | | o---o | | o---o | \ | 2 | | | / / | | | / / | | / \ | | / / | | | | | | | | | | / | o-------o | | o---o | o---o | 3 / / / / | | | / / | | / / | | \ \ \ \ \ \ \ | | \ \ | \ \ | o-------------o | o---o o---o 4 | \ \ \ \ \ \ \ | | \ \ | \ \ 9 1 2 5 6 0 3 4 1 1 7 8 1 1 1 0 3 4 2 1

  9. Performance Results:

  10. Questions?

More Related