Greedy Routing A greedy channel router Rivest Fiduccia

  • Slides: 42
Download presentation

Greedy Routing “A greedy channel router”, Rivest, Fiduccia, Proceedings of the nineteenth design automation

Greedy Routing “A greedy channel router”, Rivest, Fiduccia, Proceedings of the nineteenth design automation conference, p. 418 -424, January 1982. 2 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router: Rivest & Fiduccia 2 1 4 5 1 6 7 3 5

Greedy Router: Rivest & Fiduccia 2 1 4 5 1 6 7 3 5 2 6 8 4 9 10 10 9 8 7 9 • 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 3

Greedy Router – Step 1: Take the pin connection to the closest empty track

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. 4 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router • If two nets overlap (one from top, one from bottom), connect

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. 5 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router – Step 2: Free up as many tracks as possible by collapsing

Greedy Router – Step 2: Free up as many tracks as possible by collapsing split nets 6 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router – Step 3: Add jogs to minimize distance between split nets (but

Greedy Router – Step 3: Add jogs to minimize distance between split nets (but no shorter than minimum_jog_length) • This reduces vertical constraints. 7 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router – Step 4: Add jogs where possible to raise rising nets and

Greedy Router – Step 4: Add jogs where possible to raise rising nets and lower falling nets. 8 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router – Step 5: Widen channel if needed to make top or bottom

Greedy Router – Step 5: Widen channel if needed to make top or bottom connections. Add tracks in the middle of the channel 9 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Router – Step 6: Extend the channel to a new column to complete

Greedy Router – Step 6: Extend the channel to a new column to complete unconnected net segments. 10 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Greedy Routing Example 2 11 1 4 5 1 6 7 3 5 2

Greedy Routing Example 2 11 1 4 5 1 6 7 3 5 2 6 8 4 9 10 10 9 8 7 9

Comments on Greedy Router (Rivest&Fiduccia 1982) a Always succeeds (even if cyclic conflict is

Comments on Greedy Router (Rivest&Fiduccia 1982) a Always succeeds (even if cyclic conflict is present); a Allows unrestricted doglegs; a Allows a net to occupy more than 1 track at a given column; a May use a few columns off the edge; 1 3 1 2 1 5 Unrestricted dogleg 2 1 3 3 4 5 4 Net 1 occupies two track at this column; it also “ wraps-around” 12 4 A column off the edge ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Switchbox Routing B E E B B D E D B • Fixed dimensions

Switchbox Routing B E E B B D E D B • Fixed dimensions and pin connections on all four sides • Defined by four vectors TOP, BOT, LEFT, RIGHT • Switchbox routing algorithms are usually derived from 13 (greedy) channel routing algorithms

Switchbox Routing • Cannot add tracks – Router should not fail • Adding tracks

Switchbox Routing • Cannot add tracks – Router should not fail • Adding tracks to switchbox adding tracks to all adjacent channels and switchboxes 14 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Switchbox Routing R = {0, 1, 2, …, 8} x {0, 1, 2, …

Switchbox Routing R = {0, 1, 2, …, 8} x {0, 1, 2, … , 7} TOP BOT LEFT RIGHT = (1, 2, … , 7) = [0, D, F, H, E, C, C] = (1, 2, … , 7) = [0, 0, G, H, B, B, H] = (1, 2, … , 6) = [A, 0, D, F, G, 0] = (1, 2, … , 6) = [B, H, A, C, E, C] Column a b c d e f g 0 D F H E C C Track 6 0 D F H E C C 0 C 5 G 4 F E G E F C 3 D 2 0 A D A H 0 H 1 B A B C A 0 15 0 G H B B H ? 0 0 G H B B H

Switchbox Routing – Example TOP BOT LEFT RIGHT = (1, 2, … , 7)

Switchbox Routing – Example TOP BOT LEFT RIGHT = (1, 2, … , 7) = [0, D, F, H, E, C, C] = (1, 2, … , 7) = [0, 0, G, H, B, B, H] = (1, 2, … , 6) = [A, 0, D, F, G, 0] = (1, 2, … , 6) = [B, H, A, C, E, C] Column a b c d e f g 0 D F H E C C Track 6 0 C 5 G 4 F E 3 D 2 0 A H 1 B C A 0 16 0 G H B B H

6. 4 Switchbox Routing – Example TOP BOT LEFT RIGHT = (1, 2, …

6. 4 Switchbox Routing – Example TOP BOT LEFT RIGHT = (1, 2, … , 7) = [0, D, F, H, E, C, C] = (1, 2, … , 7) = [0, 0, G, H, B, B, H] = (1, 2, … , 6) = [A, 0, D, F, G, 0] = (1, 2, … , 6) = [B, H, A, C, E, C] Column a b c d e f g 0 D F H E C C Track 6 0 D F H E C C 0 C 5 G 4 F E G E C F C 3 D 2 0 A D A H 0 H 1 B A 0 17 0 G H B B H 0 0 G H B B H

Switchbox Routing • Practical challenges: – Obstacles – Rectilinear ports 18 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Switchbox Routing • Practical challenges: – Obstacles – Rectilinear ports 18 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

X Architecture Courtesy Cadence X-initiative 23 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

X Architecture Courtesy Cadence X-initiative 23 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

X Architecture • X routing provides 41% more placement area for a given timing

X Architecture • X routing provides 41% more placement area for a given timing constraint 25 • 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.

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 26 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Bubble-Sorting-Based Channel Routing • Wong formulated channel routing based on bubble sort: • 45

Bubble-Sorting-Based Channel Routing • Wong formulated channel routing based on bubble sort: • 45 o wires are permitted. 11 tracks 27 6 tracks 5 tracks ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Bubble-Sorting-Based Channel Routing • Assumptions: • Rename terminals so that they are sorted on

Bubble-Sorting-Based Channel Routing • 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. 2 28 2 2’ ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Bubble-Sorting-Based Channel Routing • Assumptions: • All nets have one terminal on the top

Bubble-Sorting-Based Channel Routing • 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) 2 2’ 29 2’ 2 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Bubble-Sorting-Based Channel Routing Add Dummy Terminals Rename Terminals 30 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Bubble-Sorting-Based Channel Routing Add Dummy Terminals Rename Terminals 30 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Wong Algorithm • Bubble sort the bottom-side terminals: • Number exchange: Net exchange 12345678

Wong Algorithm • Bubble sort the bottom-side terminals: • Number exchange: Net exchange 12345678 21345678 23154768 23517486 23571846 32758164 37285614 73286541 • Two layers: • To left and its extension: --- • To right and its extension: ____ 31 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

RBSS Algorithm • Disadvantage: • A net can move only one column. • 6

RBSS Algorithm • Disadvantage: • A net can move only one column. • 6 tracks. • 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). 32 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

RBSS Algorithm 12345678 21345678 23145678 23415678 23541678 23654178 32765418 73286541 • Two layers: 7

RBSS Algorithm 12345678 21345678 23145678 23415678 23541678 23654178 32765418 73286541 • Two layers: 7 tracks • To left: --- • To right and its extension: ____ 33 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

LBSS Algorithm • LBSS (Left Bubble Sort Solution): • All passes are left-swap pass.

LBSS Algorithm • 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). 34 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

Mixed LBSS-RBSS Algorithm • If both left and right pass are allowed, there is

Mixed LBSS-RBSS Algorithm • If both left and right pass are allowed, there is an optimal order with 5 tracks: • LRRRR 36 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

OBSS Algorithm • OBSS (Optimal Bubble Sort Solution): • Definitions: • Given a vector:

OBSS Algorithm • OBSS (Optimal Bubble Sort Solution): • Definitions: • Given a vector: (a 1, a 2, …, an), • Left inversion table: (l 1, l 2, …, ln), • li: The number of elements greater than i to the left of i. • Right inversion table: (r 1, r 2, …, 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, 3, 6, 4), 37 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

OBSS Algorithm • Justification: ultimate goal is to make Max(lmax, rmax) = 0 because

OBSS Algorithm • Justification: ultimate goal is to make Max(lmax, rmax) = 0 because li’s and ri’s are zero for the sorted vector. 38 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ

OBSS Algorithm 41 • LR gives exactly the same result as RL (proof paper)

OBSS Algorithm 41 • 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 • Two layers: • To left and its extension: ____ • To

OBSS Algorithm • Two layers: • To left and its extension: ____ • To right and its extension: ----42 ﻣﺮﺗﻀﻲ ﺻﺎﺣﺐ ﺍﻟﺰﻣﺎﻧﻲ