Optimal Non-Manhattan Bubble Sort Channel Router

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

description

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 - PowerPoint PPT Presentation

Transcript of Optimal Non-Manhattan Bubble Sort Channel Router

Page 1: Optimal  Non-Manhattan Bubble Sort Channel Router

Optimal Non-Manhattan

Bubble Sort Channel Router

Sean Pieper ECE556 Final Project

Page 2: Optimal  Non-Manhattan Bubble Sort Channel Router

• 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

Page 3: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 4: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 5: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 6: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 7: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 8: Optimal  Non-Manhattan Bubble Sort Channel Router

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

Page 9: Optimal  Non-Manhattan Bubble Sort Channel Router

Performance Results:

Page 10: Optimal  Non-Manhattan Bubble Sort Channel Router

Questions?