Optimal Non-Manhattan Bubble Sort Channel Router
description
Transcript of Optimal Non-Manhattan Bubble Sort Channel Router
Optimal Non-Manhattan
Bubble Sort Channel Router
Sean Pieper ECE556 Final Project
• Use Vertical and Horizontal Constraint Graphs (VCG and HCG)
• If VCG has a cycle, need to add extra columns and rows.
1 2
2 1
• can use +/- 45 degree paths• “X” routing requires one track
and no extra columns• No need for VCG or HCG
1 2
2 1
Non-Manhattan Routing
Manhattan Routing
How to cash in:
• 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
1234553412
5832443258
• 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
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
2 3 4 5 6 7 8 9 1
1 2 3 4 5 6 7 8 9
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
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
Code flow:
Check for sorted leaf
Generate ASCII art of routing
Parse input file: use
hashtable to accelerate
renaming of pins
Perform one right sort step
Perform one left
sort step
Expand main vector
ExpandLeft sub-vectors
All leavesgenerated
Not sorted
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
Sample Output: 1 1 1 1 10 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
Performance Results:
Questions?