440 likes | 496 Views
Detailed Routing. Greedy Routing. “ A greedy channel router ” , Rivest, Fiduccia, Proceedings of the nineteenth design automation conference, p.418-424, January 1982. Greedy Router: Rivest & Fiduccia. 1. 4. 5. 1. 6. 7. 4. 9. 10. 10. Proceed column by column (left to right)
E N D
Detailed Routing مرتضي صاحب الزماني
Greedy Routing “A greedy channel router”, Rivest, Fiduccia, Proceedings of the nineteenth design automation conference, p.418-424, January 1982. مرتضي صاحب الزماني
Greedy Router: Rivest & Fiduccia 1 4 5 1 6 7 4 9 10 10 • Proceed column by column (left to right) • Make connections to all pins in that column • Free up tracks by collapsing as many tracks as possible to collapse nets • Shrink range of rows occupied by a net by using doglegs • If a pin cannot enter a channel, add a track • O(pins) time 2 3 5 3 5 2 6 8 9 8 7 9
Greedy Router • Step 1: Take the pin connection to the closest empty track or to the track occupied by this net 1 • If channel is full, defer until Step 5. مرتضي صاحب الزماني
Greedy Router • If two nets overlap (one from top, one from bottom), connect the closer pin and defer the other until Step 5. • If no tracks available and both pins belong to the same net and the net is not on any tracks, just connect them by a vertical wire. مرتضي صاحب الزماني
Greedy Router • Step 2: Free up as many tracks as possible by collapsing split nets مرتضي صاحب الزماني
Greedy Router • Step 3: Add jogs to minimize distance between split nets (but no shorter than minimum_jog_length) • This reduces vertical constraints. مرتضي صاحب الزماني
Greedy Router • Step 4: Add jogs where possible to raise rising nets and lower falling nets. مرتضي صاحب الزماني
Greedy Router • Step 5: Widen channel if needed to make top or bottom connections. Add tracks in the middle of the channel مرتضي صاحب الزماني
Greedy Router • Step 6: Extend the channel to a new column to complete unconnected net segments. مرتضي صاحب الزماني
1 4 5 1 6 7 4 9 10 10 2 3 5 3 5 2 6 8 9 8 7 9 Greedy Routing Example
Comments on Greedy Router (Rivest&Fiduccia 1982) • Always succeeds (even if cyclic conflict is present); • Allows unrestricted doglegs; • Allows a net to occupy more than 1 track at a given column; • May use a few columns off the edge; 1 3 1 2 1 5 Unrestricted dogleg 2 1 3 3 4 5 4 4 A column off the edge Net 1 occupies two track at this column; it also “ wraps-around” مرتضي صاحب الزماني
Switchbox Routing B E • Fixed dimensions and pin connections on all four sides • Defined by four vectors TOP, BOT, LEFT, RIGHT • Switchbox routing algorithms are usually derived from (greedy) channel routing algorithms E B B D E D B
Switchbox Routing • Cannot add tracks • Router should not fail • Adding tracks to switchbox adding tracks to all adjacent channels and switchboxes مرتضي صاحب الزماني
Column 6 a b c d e f g 0 D F H E 0 D F H E C C C C 5 0 C 0 C Track 4 E G G E ? F C 3 F C D A D A 2 0 H 0 H A B A B 1 0 0 G H B B 0 0 G H B B H H Switchbox Routing R = {0, 1, 2, …, 8} x {0, 1, 2, … , 7} TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]RIGHT =(1, 2, … , 6) = [B, H, A, C, E, C]
Column 6 a b c d e f g 0 D F H E C C 5 0 C Track 4 G E 3 F C D A 2 0 H A B 1 0 0 G H B B H Switchbox Routing – Example TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]RIGHT =(1, 2, … , 6) = [B, H, A, C, E, C]
6 0 D F H E C C 5 0 C Track 4 E G F C 3 D A 2 0 H A B 1 0 0 G H B B H 6.4 Switchbox Routing – Example TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]RIGHT =(1, 2, … , 6) = [B, H, A, C, E, C] Column a b c d e f g 0 D F H E C C 0 C G E F C D A 0 H A B 0 0 G H B B H
Switchbox Routing • Practical challenges: • Obstacles • Rectilinear ports مرتضي صاحب الزماني
X-Architecture مرتضي صاحب الزماني
X Architecture مرتضي صاحب الزماني
X Architecture Courtesy Cadence X-initiative مرتضي صاحب الزماني
X Architecture مرتضي صاحب الزماني
X Architecture • X routing provides 41% more placement area for a given timing constraint • Shorter wirelength possible for non-congested design. مرتضي صاحب الزماني
Bubble-Sorting-Based Channel Routing “Bubble Sorting-Based Non-Manhattan Channel Routing”, J-T. Yan, Trans. On CAD, vol. 18, No. 2, February 1999, pages 163-171 مرتضي صاحب الزماني
Wong formulated channel routing based on bubble sort: • 45o wires are permitted. Bubble-Sorting-Based Channel Routing 11 tracks 6 tracks 5 tracks مرتضي صاحب الزماني
2 2 2 2’ 2 2 2’ • Assumptions: • Rename terminals so that they are sorted on the top side. • All nets are two-terminal nets. • For multi-terminal nets, add dummy terminals. Bubble-Sorting-Based Channel Routing مرتضي صاحب الزماني
2 2 2 2’ 2’ 2 • Assumptions: • All nets have one terminal on the top side and one terminal on the bottom side. • If both on top (or bottom), add dummy terminals at both ends of the channel. (After routing, they are merged) Bubble-Sorting-Based Channel Routing مرتضي صاحب الزماني
Add Dummy Terminals Rename Terminals Bubble-Sorting-Based Channel Routing مرتضي صاحب الزماني
Bubble sort the bottom-side terminals: • Number exchange: Net exchange Wong Algorithm 1 2 3 4 5 6 7 8 2 1 3 4 5 6 7 8 2 3 1 5 4 7 6 8 2 3 5 1 7 4 8 6 2 3 5 7 1 8 4 6 3 2 7 5 8 1 6 4 3 7 2 8 5 6 1 4 7 3 2 8 6 5 4 1 • Two layers: • To left and its extension: ---- • To right and its extension: ____ مرتضي صاحب الزماني
Disadvantage: • A net can move only one column. • 6 tracks. RBSS Algorithm • RBSS (Right Bubble Sort Solution): • All passes are right-swap pass. • Move to left only one column (with non-manhattan wires). • Move to right more than one column (with horizontal wires). • (The first row, vertical wires). مرتضي صاحب الزماني
1 2 3 4 5 6 7 8 2 1 3 4 5 6 7 8 RBSS Algorithm 2 3 1 4 5 6 7 8 2 3 4 1 5 6 7 8 2 3 5 4 1 6 7 8 2 3 6 5 4 1 7 8 3 2 7 6 5 4 1 8 7 3 2 8 6 5 4 1 7 tracks • Two layers: • To left: ---- • To right and its extension: ____ مرتضي صاحب الزماني
LBSS (Left Bubble Sort Solution): • All passes are left-swap pass. • Move to right only one column (with non-manhattan wires). • Move to left more than one column (with horizontal wires). • (The first row, vertical wires). LBSS Algorithm مرتضي صاحب الزماني
LBSS Algorithm 6 tracks مرتضي صاحب الزماني
If both left and right pass are allowed, there is an optimal order with 5 tracks: • LRRRR Mixed LBSS-RBSS Algorithm مرتضي صاحب الزماني
OBSS (Optimal Bubble Sort Solution): • Definitions: • Given a vector: (a1, a2, …, an), • Left inversion table: (l1, l2, …, ln), • li: The number of elements greater than i to the left of i. • Right inversion table: (r1, r2, …, rn), • ri: The number of elements less than i to the right of i. • For (7, 3, 2, 8, 6, 5, 4, 1), the left and right inversion tables are • (7, 2, 1, 4, 3, 2, 0, 0) and (0, 1, 2, 1, 2, 3, 6, 4), OBSS Algorithm مرتضي صاحب الزماني
OBSS Algorithm • Justification: ultimate goal is to make Max(lmax,rmax) = 0 • because li’s and ri’s are zero for the sorted vector. مرتضي صاحب الزماني
OBSS Algorithm مرتضي صاحب الزماني
OBSS Algorithm مرتضي صاحب الزماني
LR gives exactly the same result as RL (proof paper) • any orderings of L’s and R’s can be written as Li Rm-i. • for the example: LLLLR OBSS Algorithm مرتضي صاحب الزماني
OBSS Algorithm • Two layers: • To left and its extension: ____ • To right and its extension: ----- مرتضي صاحب الزماني