KLMH Chapter 5 Global Routing Andrew B Kahng
© KLMH Chapter 5 – Global Routing Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 1 Lienig Original Authors: © 2011 Springer Verlag VLSI Physical Design: From Graph Partitioning to Timing Closure
© KLMH Chapter 5 – Global Routing 5. 1 Introduction 5. 2 Terminology and Definitions 5. 3 Optimization Goals 5. 4 Representations of Routing Regions 5. 5 The Global Routing Flow 5. 6 Single-Net Routing 5. 6. 1 Rectilinear Routing 5. 6. 2 Global Routing in a Connectivity Graph 5. 6. 3 Finding Shortest Paths with Dijkstra’s Algorithm 5. 6. 4 Finding Shortest Paths with A* Search Full-Netlist Routing 5. 8 © 2011 Springer Verlag 5. 7. 1 Routing by Integer Linear Programming 5. 7. 2 Rip-Up and Reroute (RRR) Modern Global Routing 5. 8. 1 Pattern Routing 5. 8. 2 Negotiated-Congestion Routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 2 Lienig 5. 7
Introduction © KLMH 5. 1 System Specification Partitioning Architectural Design ENTITY test is port a: in bit; end ENTITY test; Functional Design and Logic Design Chip Planning Circuit Design Placement Physical Design DRC LVS ERC Physical Verification and Signoff Clock Tree Synthesis Signal Routing Fabrication Packaging and Testing Chip VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 3 Lienig © 2011 Springer Verlag Timing Closure
Introduction © KLMH 5. 1 Given a placement, a netlist and technology information, · determine the necessary wiring, e. g. , net topologies and specific routing segments, to connect these cells · while respecting constraints, e. g. , design rules and routing resource capacities, and VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 4 Lienig © 2011 Springer Verlag · optimizing routing objectives, e. g. , minimizing total wirelength and maximizing timing slack.
Introduction © KLMH 5. 1 Terminology: · Net: Set of two or more pins that have the same electric potential · Netlist: Set of all nets. · Congestion: Where the shortest routes of several nets are incompatible because they traverse the same tracks. · Fixed-die routing: Chip outline and routing resources are fixed. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 5 Lienig © 2011 Springer Verlag · Variable-die routing: New routing tracks can be added as needed.
Introduction: General Routing Problem © KLMH 5. 1 Netlist: Placement result N 1 = {C 4, D 6, B 3} N 2 = {D 4, B 4, C 1, A 4} N 3 = {C 2, D 5} N 4 = {B 1, A 1, C 3} 3 1 A C 4 1 2 4 5 4 1 3 4 6 D VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 6 Lienig © 2011 Springer Verlag Technology Information (Design Rules) B
Introduction: General Routing Problem © KLMH 5. 1 Netlist: N 1 = {C 4, D 6, B 3} N 2 = {D 4, B 4, C 1, A 4} N 3 = {C 2, D 5} N 4 = {B 1, A 1, C 3} 3 1 A 1 C 4 2 4 1 3 4 4 5 6 D VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 7 Lienig © 2011 Springer Verlag Technology Information (Design Rules) B N 1
Introduction: General Routing Problem © KLMH 5. 1 Netlist: N 1 = {C 4, D 6, B 3} N 2 = {D 4, B 4, C 1, A 4} 3 N 3 = {C 2, D 5} 1 N 4 = {B 1, A 1, C 3} A 4 N 4 1 B 2 N 3 N 1 3 4 4 5 6 D VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 8 Lienig © 2011 Springer Verlag Technology Information (Design Rules) 1 C 4
Introduction © KLMH 5. 1 Routing Multi-Stage Routing of Signal Nets Detailed Routing Timing-Driven Routing Large Single- Net Routing Geometric Techniques Coarse-grain assignment of routes to routing regions (Chap. 5) Fine-grain assignment of routes to routing tracks (Chap. 6) Net topology optimization and resource allocation to critical nets (Chap. 8) Power (VDD) and Ground (GND) routing (Chap. 3) Non-Manhattan and clock routing (Chap. 7) Chapter 5: Global Routing 9 Lienig VLSI Physical Design: From Graph Partitioning to Timing Closure © 2011 Springer Verlag Global Routing
Introduction © KLMH 5. 1 Global Routing · Wire segments are tentatively assigned (embedded) within the chip layout · Chip area is represented by a coarse routing grid · Available routing resources are represented by edges with capacities in a grid graph VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 10 Lienig © 2011 Springer Verlag Þ Nets are assigned to these routing resources
Introduction © KLMH 5. 1 Global Routing N 1 N 3 N 3 N 2 N 3 N 1 N 2 Horizontal Segment VLSI Physical Design: From Graph Partitioning to Timing Closure N 1 Vertical Segment N 2 Via Chapter 5: Global Routing © 2011 Springer Verlag N 1 N 2 11 Lienig N 3 Detailed Routing
Globalverdrahtung © KLMH 5. 1. 2 Wire Tracks Placement VLSI Physical Design: From Graph Partitioning to Timing Closure Congestion Map Chapter 5: Global Routing 12 Lienig Detailed Routing © 2011 Springer Verlag Global Routing
Terminology and Definitions © KLMH 5. 2 · Routing Track: Horizontal wiring path · Routing Column: Vertical wiring path · Routing Region: Region that contains routing tracks or columns · Uniform Routing Region: Evenly spaced horizontal/vertical grid VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 13 Lienig © 2011 Springer Verlag · Non-uniform Routing Region: Horizontal and vertical boundaries that are aligned to external pin connections or macro-cell boundaries resulting in routing regions that have differing sizes
Terminology and Definitions © KLMH 5. 2 Channel VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 14 Lienig Standard cell layout (Two-layer routing) © 2011 Springer Verlag Rectangular routing region with pins on two opposite sides
Terminology and Definitions © KLMH 5. 2 Channel Rectangular routing region with pins on two opposite sides Routing channel VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 15 Lienig Standard cell layout (Two-layer routing) © 2011 Springer Verlag Routing channel
Terminology and Definitions © KLMH 5. 2 Capacity Number of available routing tracks or columns Horizontal Routing Channel B B C D B C B dpitch B C D VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 16 Lienig © 2011 Springer Verlag A C A B h
Terminology and Definitions © KLMH 5. 2 Capacity Number of available routing tracks or columns · For single-layer routing, the capacity is the height h of the channel divided by the pitch dpitch Horizontal Routing Channel B B C D B C B · For multilayer routing, the capacity σ is the sum of the capacities of all layers. dpitch B C D VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 17 Lienig © 2011 Springer Verlag A C A B h
Terminology and Definitions © KLMH 5. 2 Switchbox (Two-layer macro cell layout) Vertical Channel Intersection of horizontal and vertical channels B C 3 Horizontal B Channel B Horizontal Channel A Horizontal channel is routed after vertical channel is routed VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 18 Lienig Vertical Channel © 2011 Springer Verlag C A B
Terminology and Definitions © KLMH 5. 2 T-junction (Two-layer macro cell layout) B C C B B A Horizontal Channel VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 19 Lienig Vertical Channel © 2011 Springer Verlag C A B
Terminology and Definitions © KLMH 5. 2 2 D and 3 D Switchboxes Bottom pin connection on 3 D switchbox Metal 5 Metal 4 3 D switchbox Top pin connection on cell Pin on channel boundary Horizontal channel 2 D switchbox Metal 2 Metal 1 Vertical channel VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 20 Lienig © 2011 Springer Verlag Metal 3
Terminology and Definitions © KLMH 5. 2 Metal 3 Metal 2 VLSI Physical Design: From Graph Partitioning to Timing Closure Metal 4 Chapter 5: Global Routing etc. 21 Lienig Metal 1 © 2011 Springer Verlag Gcells (Tiles) with macro cell layout
Terminology and Definitions © KLMH 5. 2 Metal 3 Metal 2 (Cell ports) VLSI Physical Design: From Graph Partitioning to Timing Closure Metal 4 Chapter 5: Global Routing usw. 22 Lienig Metal 1 (Standard cells) © 2011 Springer Verlag Gcells (Tiles) with standard cells
Terminology and Definitions © KLMH 5. 2 Metal 3 Metal 2 (Cell ports) VLSI Physical Design: From Graph Partitioning to Timing Closure Metal 4 Chapter 5: Global Routing etc. 23 Lienig Metal 1 (Back-to-backstandard cells) © 2011 Springer Verlag Gcells (Tiles) with standard cells (back-to-back)
Optimization Goals © KLMH 5. 3 · Global routing seeks to - determine whether a given placement is routable, and - determine a coarse routing for all nets within available routing regions · Considers goals such as VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 24 Lienig © 2011 Springer Verlag - minimizing total wirelength, and - reducing signal delays on critical nets
Optimization Goals © KLMH 5. 3 Full-custom design Layout is dominated by macro cells and routing regions are non-uniform D A B D D B E C A 1 H 5 H F D 4 1 5 C 2 E 3 A F B 4 H F 3 V C 2 E F (1) Types of channels VLSI Physical Design: From Graph Partitioning to Timing Closure (2) Channel ordering Chapter 5: Global Routing © 2011 Springer Verlag A V E C 25 Lienig B
Optimization Goals © KLMH 5. 3 Standard-cell design If number of metal layers is limited, feedthrough cells must be used to route across multiple cell rows Feedthrough cells A A A Total height = ΣCell row heights + All channel heights A VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 26 Lienig A © 2011 Springer Verlag Variable-die, standard cell design:
Optimization Goals © KLMH 5. 3 VLSI Physical Design: From Graph Partitioning to Timing Closure Steiner tree solution with fewest feedthrough cells Chapter 5: Global Routing 27 Lienig Steiner tree solution with minimal wirelength © 2011 Springer Verlag Standard-cell design
Optimization Goals © KLMH 5. 3 Gate-array design Cell sizes and sizes of routing regions between cells are fixed Available tracks Determine routability Find a feasible solution VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 28 Lienig © 2011 Springer Verlag Unrouted net Key Tasks:
Representations of Routing Regions © KLMH 5. 4 5. 1 Introduction 5. 2 Terminology and Definitions 5. 3 Optimization Goals 5. 4 Representations of Routing Regions 5. 5 The Global Routing Flow 5. 6 Single-Net Routing 5. 6. 1 Rectilinear Routing 5. 6. 2 Global Routing in a Connectivity Graph 5. 6. 3 Finding Shortest Paths with Dijkstra’s Algorithm 5. 6. 4 Finding Shortest Paths with A* Search Full-Netlist Routing 5. 8 © 2011 Springer Verlag 5. 7. 1 Routing by Integer Linear Programming 5. 7. 2 Rip-Up and Reroute (RRR) Modern Global Routing 5. 8. 1 Pattern Routing 5. 8. 2 Negotiated-Congestion Routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 29 Lienig 5. 7
Representations of Routing Regions © KLMH 5. 4 · Routing regions are represented using efficient data structures · Routing context is captured using a graph, where - nodes represent routing regions and - edges represent adjoining regions VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 30 Lienig © 2011 Springer Verlag · Capacities are associated with both edges and nodes to represent available routing resources
Representations of Routing Regions © KLMH 5. 4 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ggrid = (V, E), where the nodes v V represent the routing grid cells (gcells) and the edges represent connections of grid cell pairs (vi, vj) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 31 Lienig 1 © 2011 Springer Verlag Grid graph model
Representations of Routing Regions © KLMH 5. 4 Channel connectivity graph 4 4 5 5 6 9 1 2 3 7 8 6 7 8 G = (V, E), where the nodes v V represent channels, and the edges E represent adjacencies of the channels VLSI Physical Design: From Graph Partitioning to Timing Closure 9 Chapter 5: Global Routing © 2011 Springer Verlag 3 32 Lienig 1 2
Representations of Routing Regions © KLMH 5. 4 Switchbox connectivity graph 5 2 9 8 1 12 6 7 3 11 5 2 10 13 14 4 9 12 10 13 6 7 3 11 8 14 G = (V, E), where the nodes v V represent switchboxes and an edge exists between two nodes if the corresponding switchboxes are on opposite sides of the same channel VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © 2011 Springer Verlag 4 33 Lienig 1
The Global Routing Flow © KLMH 5. 5 1. Defining the routing regions (Region definition) - Layout area is divided into routing regions - Nets can also be routed over standard cells - Regions, capacities ancd connections are represented by a graph 2. Mapping nets to the routing regions (Region assignment) - Each net of the design is assigned to one or several routing regions to connect all of its pins - Routing capacity, timing and congestion affect mapping Routes are assigned to fixed locations or crosspoints along the edges of the routing regions - Enables scaling of global and detailed routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 34 Lienig - © 2011 Springer Verlag 3. Assigning crosspoints along the edges of the routing regions (Midway routing)
Single-Net Routing © KLMH 5. 6 5. 1 Introduction 5. 2 Terminology and Definitions 5. 3 Optimization Goals 5. 4 Representations of Routing Regions 5. 5 The Global Routing Flow 5. 6 Single-Net Routing 5. 6. 1 Rectilinear Routing 5. 6. 2 Global Routing in a Connectivity Graph 5. 6. 3 Finding Shortest Paths with Dijkstra’s Algorithm 5. 6. 4 Finding Shortest Paths with A* Search Full-Netlist Routing 5. 8 © 2011 Springer Verlag 5. 7. 1 Routing by Integer Linear Programming 5. 7. 2 Rip-Up and Reroute (RRR) Modern Global Routing 5. 8. 1 Pattern Routing 5. 8. 2 Negotiated-Congestion Routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 35 Lienig 5. 7
Rectilinear Routing © KLMH 5. 6. 1 B (2, 6) A (2, 1) Rectilinear minimum spanning tree (RMST) VLSI Physical Design: From Graph Partitioning to Timing Closure C (6, 4) A (2, 1) Rectilinear Steiner minimum tree (RSMT) Chapter 5: Global Routing © 2011 Springer Verlag C (6, 4) S (2, 4) 36 Lienig B (2, 6)
Rectilinear Routing © KLMH 5. 6. 1 · An RMST can be computed in O(p 2) time, where p is the number of terminals in the net using methods such as Prim’s Algorithm · Prim’s Algorithm builds an MST by starting with a single terminal and greedily adding least-cost edges to the partially-constructed tree VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 37 Lienig © 2011 Springer Verlag · Advanced computational-geometric techniques reduce the runtime to O(p log p)
Rectilinear Routing © KLMH 5. 6. 1 Characteristics of an RSMT · An RSMT for a p-pin net has between 0 and p – 2 (inclusive) Steiner points · The degree of any terminal pin is 1, 2, 3, or 4 The degree of a Steiner point is either 3 or 4 · A RSMT is always enclosed in the minimum bounding box (MBB) of the net VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 38 Lienig © 2011 Springer Verlag · The total edge length LRSMT of the RSMT is at least half the perimeter of the minimum bounding box of the net: LRSMT LMBB / 2
Rectilinear Routing © KLMH 5. 6. 1 Transforming an initial RMST into a low-cost RSMT p 3 p 2 p 3 p 1 Construct L-shapes between points with (most) overlap of net segments VLSI Physical Design: From Graph Partitioning to Timing Closure S 1 p 2 p 3 S p 3 p 1 Final tree (RSMT) © 2011 Springer Verlag p 1 p 2 Chapter 5: Global Routing 39 Lienig p 2
Rectilinear Routing © KLMH 5. 6. 1 Hanan grid · Adding Steiner points to an RMST can significantly reduce the wirelength · Maurice Hanan proved that for finding Steiner points, it suffices to consider only points located at the intersections of vertical and horizontal lines that pass through terminal pins · The Hanan grid consists of the lines x = xp, y = yp that pass through the location (xp, yp) of each terminal pin p VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 40 Lienig © 2011 Springer Verlag · The Hanan grid contains at most (n 2 -n) candidate Steiner points (n = number of pins), thereby greatly reducing the solution space for finding an RSMT
Rectilinear Routing © KLMH 5. 6. 1 Intersection lines Hanan points ( ) RSMT VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 41 Lienig © 2011 Springer Verlag Terminal pins
Rectilinear Routing © KLMH 5. 6. 1 Pin connections Pins assigned to grid cells VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 42 Lienig © 2011 Springer Verlag Definining routing regions
Rectilinear Routing © KLMH 5. 6. 1 A A A A Assigned routing regions and feedthrough cells © 2011 Springer Verlag Rectilinear Steiner minimum tree (RSMT) A Sequential Steiner Tree Heuristic VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 43 Lienig Pins assigned to grid cells A
Rectilinear Routing © KLMH 5. 6. 1 A Sequential Steiner Tree Heuristic 1. Find the closest (in terms of rectilinear distance) pin pair, construct their minimum bounding box (MBB) 2. Find the closest point pair (p. MBB, p. C) between any point p. MBB on the MBB and p. C from the set of pins to consider 3. Construct the MBB of p. MBB and p. C 4. Add the L-shape that p. MBB lies on to T (deleting the other L-shape). If p. MBB is a pin, then add any L-shape of the MBB to T. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 44 Lienig © 2011 Springer Verlag 5. Goto step 2 until the set of pins to consider is empty
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 45 Lienig © 2011 Springer Verlag 1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 1 1 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 46 Lienig © 2011 Springer Verlag 2
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 pc 3 1 2 1 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 47 Lienig © 2011 Springer Verlag MBB
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 2 4 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 48 Lienig © 2011 Springer Verlag p. MBB
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 2 3 1 2 4 3 4 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 49 Lienig © 2011 Springer Verlag 5
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 1 2 3 1 2 4 3 4 5 3 4 6 4 © 2011 Springer Verlag 2 5 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 50 Lienig 1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 2 4 3 4 5 4 6 2 4 5 4 6 5 © 2011 Springer Verlag 2 3 1 5 7 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 51 Lienig 3 1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 2 4 3 4 5 4 6 2 4 5 2 4 6 5 3 1 7 VLSI Physical Design: From Graph Partitioning to Timing Closure 5 6 6 4 5 7 Chapter 5: Global Routing © 2011 Springer Verlag 2 3 1 52 Lienig 3 1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic © KLMH 5. 6. 1 3 1 2 2 4 3 4 5 4 6 2 4 5 2 4 6 5 3 1 7 VLSI Physical Design: From Graph Partitioning to Timing Closure 5 6 6 4 5 7 Chapter 5: Global Routing © 2011 Springer Verlag 2 3 1 53 Lienig 3 1
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 4 4 5 5 3 6 9 1 2 3 8 1 2 11 9 8 1 12 6 7 3 8 4 5 9 7 7 Switchbox connectivity graph 6 5 2 10 VLSI Physical Design: From Graph Partitioning to Timing Closure 3 11 9 12 10 13 6 7 13 14 4 8 Chapter 5: Global Routing 14 © 2011 Springer Verlag 1 2 54 Lienig Channel connectivity graph
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 Channel connectivity graph VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 55 Lienig © 2011 Springer Verlag Switchbox connectivity graph
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 · Combines switchboxes and channels, handles non-rectangular block shapes · Suitable for full-custom design and multi-chip modules Overview: B 4 5 2 10 4, 2 1, 5 1, 2 7 1, 2 5 6 4, 2 9 4, 2 2, 2 4 1, 2 6 7 8 4, 2 9 B 11 3, 1 4, 2 0, 1 1, 2 3 A 8 3 12 Routing regions 2, 2 2, 7 2, 2 10 11 12 Graph representation VLSI Physical Design: From Graph Partitioning to Timing Closure 0, 4 4, 2 2, 7 2, 2 Graph-based path search Chapter 5: Global Routing © 2011 Springer Verlag 1 2 56 Lienig A 1
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 Defining the routing regions + Vertical macro-cell edges VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 57 Lienig © 2011 Springer Verlag Horizontal macro-cell edges
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 Defining the connectivity graph 17 2 9 18 3 10 4 1112 21 19 23 2 9 18 3 10 24 5 13 1415 20 22 25 6 7 26 27 16 17 4 11 12 5 13 14 21 19 15 20 24 22 6 7 VLSI Physical Design: From Graph Partitioning to Timing Closure 23 25 26 16 Chapter 5: Global Routing 27 © 2011 Springer Verlag 8 8 58 Lienig 1 1
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 Vertical capacity of routing region 1 1 8 17 2 9 18 3 10 4 1112 21 19 23 8 17 2 9 18 3 10 24 5 13 1415 20 22 25 6 7 26 27 16 1 1, 2 4 11 12 5 13 14 21 19 15 20 24 22 6 7 VLSI Physical Design: From Graph Partitioning to Timing Closure 23 25 26 16 Chapter 5: Global Routing 27 © 2011 Springer Verlag 1 Track 2 Tracks 59 Lienig Horizontal capacity of routing region 1
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 17 2 9 18 3 10 4 1112 21 19 23 2 9 2, 3 18 1, 1 19 4, 1 3 24 5 13 1415 20 22 25 6 7 26 27 16 17 1, 1 21 1, 4 23 1, 1 2, 2 10 2, 2 12 4 2, 2 11 2, 1 15 13 14 5 3, 2 6 3, 1 20 3, 1 24 6, 1 22 3, 4 VLSI Physical Design: From Graph Partitioning to Timing Closure 3, 1 26 1, 1 1, 2 7 1, 2 25 16 1, 8 Chapter 5: Global Routing 27 1, 1 © 2011 Springer Verlag 8 8 1, 3 60 Lienig 1 1 1, 2
Global Routing in a Connectivity Graph © KLMH 5. 6. 2 Algorithm Overview 1. Define routing regions 2. Define connectivity graph 3. Determine net ordering 4. Assign tracks for all pin connections in Netlist 5. Consider each net a) Free corresponding tracks for net’s pins b) Decompose net into two-pin subnets 6. If there are unrouted nets, goto Step 5, otherwise END VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 61 Lienig d) If no shortest path exists, do not route, otherwise, assign subnet to the nodes of shortest path and update routing capacities © 2011 Springer Verlag c) Find shortest path for subnet connectivity graph
w A 1 B Example Global routing of the nets A-A and B-B 4 5 1 2 3 4, 2 1, 5 1, 2 5 6 2 3 4, 2 6 7 4 1, 2 9 8 4, 2 A 8 11 12 4, 2 9 2, 2 2, 7 2, 2 10 11 12 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 62 Lienig © 2011 Springer Verlag 10 B 7 © KLMH l
w A 1 B Example Global routing of the nets A-A and B-B 4 5 1 2 3 4, 2 1, 5 1, 2 5 6 2 3 4, 2 6 7 4 1, 2 9 8 4, 2 A 8 B 10 11 12 A 7 © KLMH l 4, 2 9 2, 2 2, 7 2, 2 10 11 12 1 2 3 4, 2 3, 1 4, 2 0, 4 0, 1 1, 2 5 6 B 4 1, 2 A 8 4, 2 9 2, 2 2, 7 2, 2 10 11 12 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 63 Lienig © 2011 Springer Verlag B 7
w A 1 B Example Global routing of the nets A-A and B-B 4 5 1 2 3 4, 2 1, 5 1, 2 5 6 2 3 4, 2 6 7 4 1, 2 9 8 4, 2 A 8 B 10 11 12 A 7 © KLMH l 4, 2 9 2, 2 2, 7 2, 2 10 11 12 1 2 3 4, 2 3, 1 4, 2 0, 4 0, 1 1, 2 5 6 B B 8 4, 2 A 7 4, 2 9 2, 2 2, 7 2, 2 10 11 12 1 2 3 4, 2 2, 1 3, 1 0, 4 0, 1 1, 1 5 6 B 4 1, 2 A B VLSI Physical Design: From Graph Partitioning to Timing Closure 8 3, 1 1, 7 10 1, 1 Chapter 5: Global Routing 11 7 4, 1 9 1, 1 12 © 2011 Springer Verlag A 64 Lienig 4 1, 2
A 1 B Example Global routing of the nets A-A and B-B 4 5 2 3 6 7 A 8 9 B 10 11 12 © 2011 Springer Verlag A B VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 65 Lienig w © KLMH l
Determine routability of a placement 1 2 3 5 6 7 A B 4 2 3 3, 1 3, 4 3, 3 5 6 © KLMH Example 1 7 4 1, 1 3, 4 3, 1 3, 3 8 9 10 1, 4 1, 3 B 8 A 9 1 2 10 4 2 3 3, 1 3, 4 3, 3 3 A B 1 5 5 7 6 6 7 4 0, 3 0, 1 3, 4 3, 1 2, 2 8 9 10 0, 4 0, 2 A 9 ? 1 2 10 3 A B 4 8 5 9 1 2 3 3, 1 3, 4 3, 3 5 6 7 4 0, 3 0, 1 3, 4 3, 1 2, 2 8 9 10 0, 4 0, 2 7 6 B A VLSI Physical Design: From Graph Partitioning to Timing Closure 10 Chapter 5: Global Routing 66 Lienig 8 © 2011 Springer Verlag B
Determine routability of a placement 1 2 3 5 6 7 A B 4 2 3 3, 1 3, 4 3, 3 5 6 © KLMH Example 1 7 4 1, 1 3, 4 3, 1 3, 3 8 9 10 1, 4 1, 3 B 8 A 9 1 2 10 4 2 3 3, 1 3, 4 3, 3 3 A B 1 5 5 7 6 6 7 4 0, 3 0, 1 3, 4 3, 1 2, 2 8 9 10 0, 4 0, 2 A 9 1 2 10 3 A B 4 5 1 2 3 2, 0 2, 3 3, 3 5 6 7 4 0, 2 0, 0 2, 3 2, 0 2, 2 8 9 10 0, 3 0, 2 7 6 B 8 9 A VLSI Physical Design: From Graph Partitioning to Timing Closure 10 Chapter 5: Global Routing 67 Lienig 8 © 2011 Springer Verlag B
Example 2 3 5 6 7 4 © KLMH A B B A 9 1 10 2 3 6 7 © 2011 Springer Verlag 8 A B 4 5 B 8 9 A VLSI Physical Design: From Graph Partitioning to Timing Closure 10 Chapter 5: Global Routing 68 Lienig Determine routability of a placement 1
Finding Shortest Paths with Dijkstra’s Algorithm © KLMH 5. 6. 3 · Finds a shortest path between two specific nodes in the routing graph · Input - graph G(V, E) with non-negative edge weights W, - source (starting) node s, and - target (ending) node t · Maintains three groups of nodes - Group 1 – contains the nodes that have not yet been visited - Group 2 – contains the nodes that have been visited but for which the shortest-path cost from the starting node has not yet been found VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 69 Lienig · Once t is in Group 3, the algorithm finds the shortest path by backtracing © 2011 Springer Verlag - Group 3 – contains the nodes that have been visited and for which the shortest path cost from the starting node has been found
Finding Shortest Paths with Dijkstra’s Algorithm © KLMH 5. 6. 3 Example 1 1, 4 8, 6 2 8, 8 9, 7 2, 6 1, 4 5 3, 2 2, 8 9, 8 6 Find the shortest path from source s to target t where the path cost ∑w 1 + ∑w 2 is minimal 7 8 t 4, 5 3, 3 9 © 2011 Springer Verlag 3 4 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 70 Lienig s
1, 4 4 8, 8 Group 2 7 Group 3 © KLMH s 1 8, 6 9, 7 2 2, 6 1, 4 5 2, 8 3 9, 8 6 (1) 3, 2 8 t 4, 5 3, 3 9 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 71 Lienig © 2011 Springer Verlag Current node: 1
1, 4 4 8, 8 Group 2 7 N [2] 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 4, 5 3, 3 W [4] 1, 4 t Group 3 © KLMH s 1 [1] W [4] 1, 4 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node) 9 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 72 Lienig © 2011 Springer Verlag Current node: 1 Neighboring nodes: 2, 4 Minimum cost in group 2: node 4
1, 4 4 8, 8 Group 2 7 N [2] 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W [4] 1, 4 N [5] 10, 11 W [7] 9, 12 t 4, 5 3, 3 9 Group 3 © KLMH s 1 [1] W [4] 1, 4 N [2] 8, 6 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 73 Lienig © 2011 Springer Verlag Current node: 4 Neighboring nodes: 1, 5, 7 Minimum cost in group 2: node 2
1, 4 4 8, 8 Group 2 7 N [2] 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W [4] 1, 4 t 4, 5 3, 3 Group 3 © KLMH s 1 [1] N [5] 10, 11 W [7] 9, 12 W [4] 1, 4 N [3] 9, 10 W [5] 10, 12 N [2] 8, 6 9 N [3] 9, 10 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 74 Lienig © 2011 Springer Verlag Current node: 2 Neighboring nodes: 1, 3, 5 Minimum cost in group 2: node 3 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node)
4 8, 8 Group 2 7 N [2] 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W [4] 1, 4 t 4, 5 3, 3 Group 3 © KLMH 1, 4 [1] N [5] 10, 11 W [7] 9, 12 W [4] 1, 4 N [3] 9, 10 W [5] 10, 12 N [2] 8, 6 W [6] 18, 18 N [3] 9, 10 9 N [5] 10, 11 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node) © 2011 Springer Verlag Current node: 3 Neighboring nodes: 2, 6 Minimum cost in group 2: node 5 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 75 Lienig s 1
8, 8 Group 2 7 N [2] 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W [4] 1, 4 t 4, 5 3, 3 Group 3 © KLMH 4 [1] N [5] 10, 11 W [7] 9, 12 W [4] 1, 4 N [3] 9, 10 W [5] 10, 12 N [2] 8, 6 W [6] 18, 18 N [3] 9, 10 9 N [6] 12, 19 Current node: 5 Neighboring nodes: 2, 4, 6, 8 Minimum cost in group 2: node 7 W [8] 12, 19 N [5] 10, 11 W [7] 9, 12 © 2011 Springer Verlag 1, 4 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 76 Lienig s 1
8, 8 Group 2 7 N (2) 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W (4) 1, 4 t 4, 5 3, 3 Group 3 © KLMH 4 (1) N (5) 10, 11 W (7) 9, 12 W (4) 1, 4 N (3) 9, 10 W (5) 10, 12 N (2) 8, 6 W (6) 18, 18 N (3) 9, 10 9 N (6) 12, 19 Current node: 7 Neighboring nodes: 4, 8 Minimum cost in group 2: node 8 W (8) 12, 19 N (8) 12, 14 N (5) 10, 11 W (7) 9, 12 N (8) 12, 14 © 2011 Springer Verlag 1, 4 parent of node [node name] ∑w 1(s, node), ∑w 2(s, node) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 77 Lienig s 1
8, 8 Group 2 7 N (2) 8, 6 9, 7 2 2, 6 1, 4 5 3, 2 2, 8 3 9, 8 6 8 W (4) 1, 4 t 4, 5 3, 3 Group 3 © KLMH 4 (1) N (5) 10, 11 W (7) 9, 12 W (4) 1, 4 N (3) 9, 10 W (5) 10, 12 N (2) 8, 6 W (6) 18, 18 N (3) 9, 10 9 Retrace from t to s N (6) 12, 19 W (8) 12, 19 N (8) 12, 14 N (5) 10, 11 W (7) 9, 12 N (8) 12, 14 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © 2011 Springer Verlag 1, 4 78 Lienig s 1
1, 4 4 9, 12 7 © KLMH s 1 12, 14 2 5 8 3 6 9 t VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 79 Lienig © 2011 Springer Verlag Optimal path 1 -4 -7 -8 from s to t with accumulated cost (12, 14)
Finding Shortest Paths with A* Search © KLMH 5. 6. 4 · A* search operates similarly to Dijkstra’s algorithm, but extends the cost function to include an estimated distance from the current node to the target · Expands only the most promising nodes; its best-first search strategy eliminates a large portion of the solution space 6 5 4 O s Source O 3 1 O 2 s t 26 17 9 15 23 25 16 24 Dijkstra‘s algorithm (exploring 31 nodes) VLSI Physical Design: From Graph Partitioning to Timing Closure Target O Obstacle A* search (exploring 6 nodes) Chapter 5: Global Routing © 2011 Springer Verlag 31 O 6 1 5 12 O 4 s 2 7 27 18 10 3 8 14 t 80 Lienig 30 21 29 19 28 t 22 13 O 11 20
Finding Shortest Paths with A* Search © KLMH 5. 6. 4 · Bidirectional A* search: nodes are expanded from both the source and target until the two expansion regions intersect · Number of nodes considered can be reduced t 5 4 O 3 6 O 4 O 5 1 O 2 s t O 3 1 O 2 s s Source t Target Bidirectional A* search VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 81 Lienig Unidirectional A* search © 2011 Springer Verlag O Obstacle
Full-Netlist Routing © KLMH 5. 7 5. 1 Introduction 5. 2 Terminology and Definitions 5. 3 Optimization Goals 5. 4 Representations of Routing Regions 5. 5 The Global Routing Flow 5. 6 Single-Net Routing 5. 6. 1 Rectilinear Routing 5. 6. 2 Global Routing in a Connectivity Graph 5. 6. 3 Finding Shortest Paths with Dijkstra’s Algorithm 5. 6. 4 Finding Shortest Paths with A* Search Full-Netlist Routing 5. 8 © 2011 Springer Verlag 5. 7. 1 Routing by Integer Linear Programming 5. 7. 2 Rip-Up and Reroute (RRR) Modern Global Routing 5. 8. 1 Pattern Routing 5. 8. 2 Negotiated-Congestion Routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 82 Lienig 5. 7
Full-Netlist Routing © KLMH 5. 7 · Global routers must properly match nets with routing resources, without oversubscribing resources in any part of the chip · Signal nets are either routed - simultaneously, e. g. , by integer linear programming, or - sequentially, e. g. , one net at a time VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 83 Lienig © 2011 Springer Verlag · When certain nets cause resource contention or overflow for routing edges, sequential routing requires multiple iterations: rip-up and reroute
Routing by Integer Linear Programming © KLMH 5. 7. 1 · 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 · Several ways to formulate the global routing problem as an ILP, one of which is presented next VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 84 Lienig - Typically takes much longer to solve - In many cases, variables are only allowed values 0 and 1 © 2011 Springer Verlag · Integer linear program (ILP): linear program where every variable can only assume integer values
Routing by Integer Linear Programming © KLMH 5. 7. 1 · Three inputs - W × H routing grid G, - Routing edge capacities, and - Netlist · Two sets of variables - k Boolean variables xnet 1, xnet 2, … , xnetk, each of which serves as an indicator for one of k specific paths or route options, for each net Netlist - k real variables wnet 1, wnet 2, … , wnetk, each of which represents a net weight for a specific route option for net Netlist VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 85 Lienig - Each net must select a single route (mutual exclusion) - Number of routes assigned to each edge (total usage) cannot exceed its capacity © 2011 Springer Verlag · Two types of constraints
Routing by Integer Linear Programming © KLMH 5. 7. 1 · Inputs - W, H: G(i, j): σ(G(i, j)~G(i + 1, j)): σ(G(i, j)~G(i, j + 1)): Netlist: width W and height H of routing grid G grid cell at location (i, j) in routing grid G capacity of horizontal edge G(i, j) ~ G(i + 1, j) capacity of vertical edge G(i, j) ~ G(i, j + 1) netlist · Variables - xnet 1, . . . , xnetk: - wnet 1, . . . , wnetk: k Boolean path variables for each net Netlist k net weights, one for each path of net Netlist · Maximize - Variable ranges - Net constraints - Capacity constraints VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 86 Lienig © 2011 Springer Verlag · Subject to
Routing by Integer Linear Programming – Example © KLMH 5. 7. 1 Global Routing Using Integer Linear Programming · Given - Nets A, B W = 5 × H = 4 routing grid G σ(e) = 1 for all e G L-shapes have weight 1. 00 and Z-shapes have weight 0. 99 The lower-left corner is (0, 0). · Task - Write the ILP to route the nets in the graph below A C B B VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 87 Lienig A © 2011 Springer Verlag C
Routing by Integer Linear Programming – Example © KLMH 5. 7. 1 · Solution - For net A, the possible routes are two L-shapes (A 1, A 2) and two Z-shapes (A 3, A 4) A 1 A A Net Constraints: x. A 1 + x. A 2 + x. A 3 + x. A 4 ≤ 1 Variable Constraints: 0 ≤ x. A 1 ≤ 1, 0 ≤ x. A 2 ≤ 1, 0 ≤ x. A 3 ≤ 1, 0 ≤ x. A 4 ≤ 1 A 3 A 4 A A 2 A - For net B, the possible routes are two L-shapes (B 1, B 2) and one Z-shape (B 3) B 2 B 1 B B 3 B B B Net Constraints: x. B 1 + x. B 2 + x. B 3 ≤ 1 Variable Constraints: 0 ≤ x. B 1 ≤ 1, 0 ≤ x. B 2 ≤ 1, 0 ≤ x. B 3 ≤ 1 C 2 C C 1 C C C 4 C VLSI Physical Design: From Graph Partitioning to Timing Closure Net Constraints: x. C 1 + x. C 2+ x. C 3 + x. C 4 ≤ 1 Variable Constraints: 0 ≤ x. C 1 ≤ 1, 0 ≤ x. C 2 ≤ 1, 0 ≤ x. C 3 ≤ 1, 0 ≤ x. C 4 ≤ 1 Chapter 5: Global Routing 88 Lienig C 3 © 2011 Springer Verlag - For net C, the possible routes are two L-shapes (C 1, C 2) and two Z-shapes (C 3, C 4)
σ(G(0, 0) ~ G(1, 0)) = 1 σ(G(1, 0) ~ G(2, 0)) = 1 σ(G(2, 0) ~ G(3, 0)) = 1 σ(G(3, 0) ~ G(4, 0)) = 1 σ(G(0, 1) ~ G(1, 1)) = 1 σ(G(1, 1) ~ G(2, 1)) = 1 σ(G(2, 1) ~ G(3, 1)) = 1 σ(G(3, 1) ~ G(4, 1)) = 1 σ(G(0, 2) ~ G(1, 2)) = 1 σ(G(1, 2) ~ G(2, 2)) = 1 σ(G(0, 3) ~ G(1, 3)) = 1 σ(G(1, 3) ~ G(2, 3)) = 1 Vertical Edge Capacity Constraints: G(0, 0) ~ G(0, 1): x. C 2 + x. C 4 ≤ σ(G(0, 0) ~ G(0, 1)) = 1 G(1, 0) ~ G(1, 1): x. C 3 ≤ σ(G(1, 0) ~ G(1, 1)) = 1 G(2, 0) ~ G(2, 1): x. B 2 + x. C 1 ≤ σ(G(2, 0) ~ G(2, 1)) = 1 G(3, 0) ~ G(3, 1): x. B 3 ≤ σ(G(3, 0) ~ G(3, 1)) = 1 G(4, 0) ~ G(4, 1): x. B 1 ≤ σ(G(4, 0) ~ G(4, 1)) = 1 G(0, 1) ~ G(0, 2): x. A 2 + x. C 2 ≤ σ(G(0, 1) ~ G(0, 2)) = 1 G(1, 1) ~ G(1, 2): x. A 3 + x. C 3 ≤ σ(G(1, 1) ~ G(1, 2)) = 1 G(2, 1) ~ G(2, 2): x. A 1 + x. A 4 + x. C 1 + x. C 4 ≤ σ(G(2, 1) ~ G(2, 2)) = 1 G(0, 2) ~ G(0, 3): x. A 2 + x. A 4 ≤ σ(G(0, 2) ~ G(0, 3)) = 1 G(1, 2) ~ G(1, 3): x. A 3 ≤ σ(G(1, 2) ~ G(1, 3)) = 1 G(2, 2) ~ G(2, 3): x. A 1 ≤ σ(G(2, 2) ~ G(2, 3)) = 1 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © 2011 Springer Verlag Horizontal Edge Capacity Constraints: G(0, 0) ~ G(1, 0): x. C 1 + x. C 3 ≤ G(1, 0) ~ G(2, 0): x. C 1 ≤ G(2, 0) ~ G(3, 0): x. B 1 + x. B 3 ≤ G(3, 0) ~ G(4, 0): x. B 1 ≤ G(0, 1) ~ G(1, 1): x. A 2 + x. C 4 ≤ G(1, 1) ~ G(2, 1): x. A 2 + x. A 3 + x. C 4 ≤ G(2, 1) ~ G(3, 1): x. B 2 ≤ G(3, 1) ~ G(4, 1): x. B 2 + x. B 3 ≤ G(0, 2) ~ G(1, 2): x. A 4 + x. C 2 ≤ G(1, 2) ~ G(2, 2): x. A 4 + x. C 2 + x. C 3 ≤ G(0, 3) ~ G(1, 3): x. A 1 + x. A 3 ≤ G(1, 3) ~ G(2, 3): x. A 1 ≤ © KLMH Routing by Integer Linear Programming – Example 89 Lienig 5. 7. 1
Rip-Up and Reroute (RRR) © KLMH 5. 7. 2 · Rip-up and reroute (RRR) framework: focuses on hard-to-route nets · Idea: allow temporary violations, so that all nets are routed, but then iteratively remove some nets (rip-up), and route them differently (reroute) A’ B D’ Routing with allowing violations and RRR A Routing without allowing violations D C B’ C’ B A’ B’ B’ C’ WL = 21 VLSI Physical Design: From Graph Partitioning to Timing Closure D C C’ WL = 19 Chapter 5: Global Routing 90 Lienig A © 2011 Springer Verlag D’ A D C A’
Modern Global Routing © KLMH 5. 8 5. 1 Introduction 5. 2 Terminology and Definitions 5. 3 Optimization Goals 5. 4 Representations of Routing Regions 5. 5 The Global Routing Flow 5. 6 Single-Net Routing 5. 6. 1 Rectilinear Routing 5. 6. 2 Global Routing in a Connectivity Graph 5. 6. 3 Finding Shortest Paths with Dijkstra’s Algorithm 5. 6. 4 Finding Shortest Paths with A* Search Full-Netlist Routing 5. 8 © 2011 Springer Verlag 5. 7. 1 Routing by Integer Linear Programming 5. 7. 2 Rip-Up and Reroute (RRR) Modern Global Routing 5. 8. 1 Pattern Routing 5. 8. 2 Negotiated-Congestion Routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 91 Lienig 5. 7
Modern Global Routing © KLMH 5. 8 · General flow for modern global routers, where each router uses a unique set of optimizations: Global Routing Instance Initial Routing (optional) Final Improvements VLSI Physical Design: From Graph Partitioning to Timing Closure no Violations? yes Rip-up and Reroute Chapter 5: Global Routing © 2011 Springer Verlag Layer Assignment 92 Lienig Net Decomposition
Modern Global Routing © KLMH 5. 8 · Pattern Routing - Searches through a small number of route patterns to improve runtime VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 93 Lienig Detour. Up-Right-Up Up-Right-Up- Detour-Up Detour. Up Right Vertical Down Left Right L-Shape Z-Shape U-Shape Vertical Horizontal U-Shape © 2011 Springer Verlag - Topologies commonly used in pattern routing: L-shapes, Z-shapes, U-shapes
Modern Global Routing © KLMH 5. 8 · Negotiated-Congestion Routing - Each edge e is assigned a cost value cost(e) that reflects the demand for edge e - A segment from net that is routed through e pays a cost of cost(e) - Total cost of net is the sum of cost(e) values taken over all edges used by net: Þ Iterative routing approaches (Dijkstra’s algorithm, A* search, etc. ) find routes with minimum cost while respecting edge capacities VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 94 Lienig - A higher cost(e) value discourages nets from using e and implicitly encourages nets to seek out other, less used edges © 2011 Springer Verlag - The edge cost(e) is increased according to the edge congestion φ(e), defined as the total number of nets passing through e divided by the capacity of e:
© KLMH Summary of Chapter 5 – Types of Routing Global Routing · Input: netlist, placement, obstacles + (usually) routing grid · Partitions the routing region (chip or block) into global routing cells (gcells) · Considers the locations of cells within a region as identical · Plans routes as sequences of gcells · Minimizes total length of routes and, possibly, routed congestion · May fail if routing resources are insufficient - 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 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 95 Lienig · Interpreting failures in global routing © 2011 Springer Verlag - Variable-die can expand the routing area, so can't usually fail - Fixed-die is more common today (cannot resize a block in a larger chip)
© KLMH Summary of Chapter 5 – Types of Routing Detailed Routing · Input: 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 Timing-Driven routing · Both global and detailed routing can be timing-driven VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 96 Lienig · Usually needs to trade off route length and congestion against timing © 2011 Springer Verlag · Minimizes circuit delay by optimizing timing-critical nets
© KLMH Summary of Chapter 5 – 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 - Nonuniform routing costs to model congestion · Large signal nets are routed as part of global routing and then split into smaller segments processed during detailed routing VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 97 Lienig · Performed before global routing to avoid competition for resources occupied by signal nets © 2011 Springer Verlag Clock Tree Routing / Power Routing
© KLMH Summary of Chapter 5 – Routing Single Nets · 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 (in a connectivity graph of the routing regions) - Three-pin nets usually have 0 or 1 branching point - Larger nets are more difficult to handle · Pattern routing - Breadth-first-search (when costs are uniform) - Dijkstra's algorithm (non-uniform costs) - A*-search (non-uniform costs and/or using additional distance information) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 98 Lienig · Routing pin-to-pin connections © 2011 Springer Verlag - 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
© KLMH Summary of Chapter 5 – Routing Single Nets · Minimum Spanning Trees and Steiner Minimal Trees in the rectilinear topology (RMSTs and RSMTs) - RMSTs can be constructed in near-linear time - Constructing RSMTs is NP-hard, but feasible in practice · Each edge of an RMST or RSMT can be considered a pin-to-pin connection and routed accordingly · Routing congestion introduces non-uniform costs, complicates the construction of minimal trees (which is why A*-search still must be used) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 99 Lienig © 2011 Springer Verlag · For nets with <10 pins, RSMTs can be found using look-up tables (FLUTE) very quickly
© KLMH Summary of Chapter 5 – Full Netlist Routing · Routing by Integer Linear Programming (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 technique, may not scale to largest netlists (can be extended by area partitioning) - 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 · Both ILP-based routing and RRR can be applied in global and detailed routing - ILP-based routing is usually preferable for small, difficult-to-route regions © 2011 Springer Verlag · Rip-up and Re-route (RRR) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 100 Lienig - RRR is much faster when routing is easy
© KLMH Summary of Chapter 5 – 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 · 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 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 101 Lienig - 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 © 2011 Springer Verlag · NCR increases routing cost according to the historical popularity of the regions
- Slides: 101