Optimal Non-Manhattan Bubble Sort Channel Router

1 / 10

# Optimal Non-Manhattan Bubble Sort Channel Router - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Optimal Non-Manhattan Bubble Sort Channel Router' - tulia

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### 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
• “X” routing requires one track and no extra columns
• No need for VCG or HCG

1 2

1 2

2 1

2 1

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

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

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
• 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

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

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