Presentation is loading. Please wait.

Presentation is loading. Please wait.

Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2.

Similar presentations


Presentation on theme: "Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2."— Presentation transcript:

1 Global Routing

2 Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2

3 3 Integer Linear Programming A linear program (LP) consists of  a set of constraints and  an optional objective function Objective function is maximized or minimized Both the constraints and the objective function must be linear  Constraints form a system of linear equations and inequalities

4 4 Routing by Integer Linear Programming Integer linear program (ILP):  Every variable can only assume integer values  Typically takes much longer to solve  In many cases, variables are only allowed to be 0 or 1 ILP solvers:  GLPK  CPLEX  MOSEK

5 5 Routing by ILP Inputs:  W × H routing grid G  Routing edge capacities  Netlist Two sets of variables  k Boolean variables for each net net: − x net1, x net2, …, x netk −x neti = 1  path i is selected for net  k real variables for each net net: −w net1, w net2, …, w netk −w neti = desirability of path i for net (e.g., less bends = larger w)

6 6 Routing by ILP Two types of constraints  Uniqueness: −Each net must select a single route (mutual exclusion)  Edge capacities

7 7 Routing by ILP Inputs  W, H:width W and height H of routing grid G  G(i,j):grid cell at location (i,j) in routing grid G  σ(G(i,j)~G(i + 1,j)): capacity of horizontal edge −G(i,j) ~ G(i + 1,j)  σ(G(i,j)~G(i,j + 1)): capacity of vertical edge −G(i,j) ~ G(i,j + 1)  Netlist:netlist

8 8 Routing by ILP Variables  x net1,..., x netk :k Boolean path variables for each net net  w net1,..., w netk :k net weights, one for each path of net net Maximize Subject to  Variable ranges  Uniqueness constraints  Capacity constraints

9 9 Routing by ILP– Example Given  Nets A, B, C  W = 5, H = 4 routing grid G  σ(e) = 1 for all e G  w(L-shapes) = 1.00 w(Z-shapes) = 0.99  The lower-left corner is (0,0). A A B BC C

10 10 Routing by ILP– Example For net A, possible routes: two L-shapes (A 1,A 2 ) and two Z-shapes (A 3,A 4 ) Net Constraints: x A1 + x A2 + x A3 + x A4 ≤ 1 Variable Constraints: 0 ≤ x A1 ≤ 1, 0 ≤ x A2 ≤ 1, 0 ≤ x A3 ≤ 1, 0 ≤ x A4 ≤ 1 A A A2A2 A1A1 A A A4A4 A3A3 Net Constraints: x B1 + x B2 + x B3 ≤ 1 Variable Constraints: 0 ≤ x B1 ≤ 1, 0 ≤ x B2 ≤ 1, 0 ≤ x B3 ≤ 1 B B B1B1 B2B2 B3B3 B B Net Constraints: x C1 + x C2 + x C3 + x C4 ≤ 1 Variable Constraints: 0 ≤ x C1 ≤ 1, 0 ≤ x C2 ≤ 1, 0 ≤ x C3 ≤ 1, 0 ≤ x C4 ≤ 1 C C C C C2C2 C1C1 C3C3 C4C4 For net B, the possible routes: two L-shapes (B 1,B 2 ) and one Z-shape (B 3 ) For net C, the possible routes: two L-shapes (C 1,C 2 ) and two Z-shapes (C 3,C 4 )

11 11 Routing by ILP– Example Horizontal Edge Capacity Constraints: G(0,0) ~ G(1,0):x C1 + x C3 ≤σ(G(0,0) ~ G(1,0)) = 1 G(1,0) ~ G(2,0):x C1 ≤σ(G(1,0) ~ G(2,0)) = 1 G(2,0) ~ G(3,0):x B1 + x B3 ≤σ(G(2,0) ~ G(3,0)) = 1 G(3,0) ~ G(4,0):x B1 ≤σ(G(3,0) ~ G(4,0)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

12 12 Routing by ILP– Example Horizontal Edge Capacity Constraints: G(0,1) ~ G(1,1):x A2 + x C4 ≤σ(G(0,1) ~ G(1,1)) = 1 G(1,1) ~ G(2,1):x A2 + x A3 + x C4 ≤σ(G(1,1) ~ G(2,1)) = 1 G(2,1) ~ G(3,1):x B2 ≤σ(G(2,1) ~ G(3,1)) = 1 G(3,1) ~ G(4,1):x B2 + x B3 ≤σ(G(3,1) ~ G(4,1)) = 1 G(0,2) ~ G(1,2):x A4 + x C2 ≤σ(G(0,2) ~ G(1,2)) = 1 G(1,2) ~ G(2,2):x A4 + x C2 + x C3 ≤ σ(G(1,2) ~ G(2,2)) = 1 G(0,3) ~ G(1,3):x A1 + x A3 ≤σ(G(0,3) ~ G(1,3)) = 1 G(1,3) ~ G(2,3):x A1 ≤σ(G(1,3) ~ G(2,3)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

13 13 Routing by ILP– Example Vertical Edge Capacity Constraints: G(0,0) ~ G(0,1):x C2 + x C4 ≤σ(G(0,0) ~ G(0,1)) = 1 G(1,0) ~ G(1,1):x C3 ≤σ(G(1,0) ~ G(1,1)) = 1 G(2,0) ~ G(2,1):x B2 + x C1 ≤σ(G(2,0) ~ G(2,1)) = 1 G(3,0) ~ G(3,1):x B3 ≤σ(G(3,0) ~ G(3,1)) = 1 G(4,0) ~ G(4,1):x B1 ≤σ(G(4,0) ~ G(4,1)) = 1 G(0,1) ~ G(0,2):x A2 + x C2 ≤σ(G(0,1) ~ G(0,2)) = 1 G(1,1) ~ G(1,2):x A3 + x C3 ≤σ(G(1,1) ~ G(1,2)) = 1 G(2,1) ~ G(2,2):x A1 + x A4 + x C1 + x C4 ≤ σ(G(2,1) ~ G(2,2)) = 1 G(0,2) ~ G(0,3):x A2 + x A4 ≤σ(G(0,2) ~ G(0,3)) = 1 G(1,2) ~ G(1,3):x A3 ≤σ(G(1,2) ~ G(1,3)) = 1 G(2,2) ~ G(2,3):x A1 ≤σ(G(2,2) ~ G(2,3)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

14 Routing by ILP– Example 14

15 Routing by ILP Complementary techniques:  Use two L-shape paths first  Then use maze routing if those paths are not enough −Sidewinder (2008): runs ILP several times −BoxRouter (2007): maze as postprocess 15

16 16 Rip-Up and Reroute (RRR)  The optimal net ordering is impossible to get.  If failed to route some nets, can apply the Rip-Up and Reroute or Shove-Aside technique:  Can allow capacity violations temporarily and then use RRR A B C A B C Cannot route C. A B C A B C So Rip-up B and route C first. A B C A B C Finally route B.

17 17 General flow for modern global routers Global Routing Instance Net Decomposition Initial Routing Layer Assignment (Map 2D routes to 3D grid) Final Improvements no yes Rip-up and Reroute Violations? (optional) Modern Global Routing

18 18 Pattern Routing  Few nets need maze routing  Topologies commonly used in pattern routing: L-shapes, Z-shapes, U-shapes  Searches through a small number of route patterns to improve runtime Detour- Left Horizontal U-Shape Detour- Right Horizontal U-Shape Detour-Up Vertical U-Shape Detour- Down Vertical U-Shape Up-Right- Up Z-Shape Right-Up- Right Z-Shape Up-Right L-Shape Right-Up L-Shape Modern Global Routing

19 19 Modern Global Routing Negotiation-based router:  Each net negotiates the use of shared resources with other nets until none of the resources are shared At each iteration:  All nets are routed each using the minimum cost even though leading to over-congestion. −Costs: according to edge congestion  Re-adjust each edge cost based on whether the corresponding channel has overflowed in the current iteration (and previous iterations).  Route all nets based on this new cost  Repeat until all congestion is removed (or some pre-defined stopping criteria is met: −e.g., maximum number of iterations

20 20 Negotiated-Congestion Routing  cost(e): demand for edge e  Total cost of net:  The cost(e) is increased according to the edge congestion φ(e):  A higher cost(e) value discourages nets from using e and implicitly encourages nets to seek out other, less used edges  Iterative routing approaches (Dijkstra’s, A* search, etc.) find routes with minimum cost while respecting edge capacities Modern Global Routing η(e): Total no. of nets passing through e σ(e): capacity of e

21 21 Negotiated-Congestion Routing  PathFinder for FPGA routing  Some important nets may not be ripped up.  Adds history cost Modern Global Routing

22 Rip-up and Reroute Trend 22

23 23 Summary: Types of Routing Global routing:  Inputs: −Netlist, placement, obstacles + (usually) routing grid  Partitions the region (chip or block) into global routing cells (gcells)  Plans routes as sequences of gcells  Minimizes total length of routes and, possibly, routed congestion  May fail if routing resources are insufficient  Variable-die can expand routing area, so can't usually fail  Fixed-die is more common today (cannot resize a block in a larger chip)

24 24 Summary: Types of Routing Interpreting failures in global routing  Failure with many violations => must restructure the netlist and/or redo global placement  Failure with few violations => detailed routing may be able to fix the problems

25 25 Summary: Types of Routing Detailed routing:  Inputs: −Netlist, placement, obstacles, global routes (on a routing grid), routing tracks, design rules  Seeks to implement each global route as a sequence of track segments  Includes layer assignment (unless that is performed during global routing)  Minimizes total length of routes, subject to design rules

26 26 Summary: Types of Routing Timing-driven routing:  Minimizes circuit delay by optimizing timing-critical nets  Usually needs to trade off route length and congestion against timing  Both global and detailed routing can be timing-driven

27 Summary: Types of Routing Large net routing:  Nets with many pins can be so complex that routing a single net warrants dedicated algorithms  Steiner tree construction: −Minimum wirelength, extensions for obstacle-avoidance  Large signal nets are split into smaller segments processed during detailed routing Clock Tree Routing / Power Routing:  Performed before global routing to avoid competition for resources occupied by signal nets 27

28 28 Summary: Routing Single Nets Single net routing:  Usually ~50% of the nets are two-pin nets, ~25% have three pins, ~12.5% have four, etc.  Two-pin nets can be routed as L-shapes or using maze search  Three-pin nets usually have 0 or 1 branching point  Larger nets are more difficult to handle

29 29 Summary: Routing Single Nets Pattern routing  For each net, considers only a small number of shapes (L, Z, U, T, E)  Very fast, but misses many opportunities  Good for initial routing, sometimes is sufficient Routing pin-to-pin connections  Breadth-first-search (when costs are uniform)  Dijkstra's algorithm (non-uniform costs)  A*-search (non-uniform costs and/or using additional distance information)

30 Summary: Routing Single Nets MST and SMT in the rectilinear topology  RMSTs can be constructed in near-linear time  Constructing RSMTs is NP-hard, but feasible in practice  For nets with <10 pins, RSMTs can be found using look-up tables (FLUTE) very quickly 30

31 31 Summary: Full Netlist Routing Routing by ILP  Capture the route of each net by 0-1 variables, form equations constraining those variables  The objective function can represent total route length  Solve the equations while minimizing the objective function (ILP software)  Usually a convenient but slow −May not scale to largest netlists −Can be extended by area partitioning

32 32 Summary: Full Netlist Routing Rip-up and Re-route (RRR)  Processes one net at a time, usually by A*-search and Steiner-tree heuristics  Allows temporary overlaps between nets  When every net is routed (with overlaps), it removes (rips up) those with overlaps and routes them again with penalty for overlaps  This process may not finish, but often does, else use a time-out

33 33 Summary: Full Netlist Routing ILP and RRR:  Both can be applied in global and detailed routing  ILP-based routing is usually preferable for small, difficult-to-route regions  RRR is much faster when routing is easy

34 34 Summary: Modern Global Routing Modern global routing:  Initial routes are constructed quickly by pattern routing and the FLUTE package for Steiner tree construction - very fast  Several iterations based on modified pattern routing to avoid congestion - also very fast −Sometimes completes all routes without violations −If violations remain, they are limited to a few congested spots

35 35 Summary: Modern Global Routing Modern global routing:  The main part of the router is based on a variant of RRR called Negotiated-Congestion Routing (NCR) −Several proposed alternatives are not competitive  NCR maintains "history" in terms of which regions attracted too many nets  NCR increases routing cost according to the historical popularity of the regions −The nets with alternative routes are forced to take those routes −The nets that do not have good alternatives remain unchanged  Speed of increase controls tradeoff between runtime and route quality


Download ppt "Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2."

Similar presentations


Ads by Google