Chapter 5 - Global Routing
Chapter 5 - Global Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing
Lienig
Chapter 5 – Global Routing
© KLMH
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
5.7 Full-Netlist Routing
5.7.1 Routing by Integer Linear Programming
5.7.2 Rip-Up and Reroute (RRR)
5.8 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.1 Introduction
© KLMH
System Specification
Partitioning
Architectural Design
ENTITY test is
port a: in bit;
end ENTITY test;
Functional Design Chip Planning
and Logic Design
Physical Design
Clock Tree Synthesis
Physical Verification
DRC and Signoff
LVS Signal Routing
ERC
Fabrication
Timing Closure
Chip
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 3
Lienig
5.1 Introduction
© KLMH
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
• optimizing routing objectives, e.g., minimizing total wirelength and maximizing
timing slack.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 4
Lienig
5.1 Introduction
© KLMH
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.
• Variable-die routing: New routing tracks can be added as needed.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 5
Lienig
5.1 Introduction: General Routing Problem
© KLMH
Placement result
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
3 4
N3 = {C2, D5} C
1
N4 = {B1, A1, C3} A 1 2
4
1 3
B 4 5 6
Technology Information 4
(Design Rules) D
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 6
Lienig
5.1 Introduction: General Routing Problem
© KLMH
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
3 4
N3 = {C2, D5} C
1
N4 = {B1, A1, C3} A 1 2
4
N1
1 3
B 4 5 6
Technology Information 4
(Design Rules) D
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 7
Lienig
5.1 Introduction: General Routing Problem
© KLMH
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
3 4
N3 = {C2, D5} C
1
N4 = {B1, A1, C3} A 1 2
4
N4 N2 N3 N1
1 3
B 4 5 6
Technology Information 4
(Design Rules) D
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 8
Lienig
5.1 Introduction
© KLMH
Routing
Multi-Stage Routing
of Signal Nets
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 9
Lienig
5.1 Introduction
© KLMH
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
⇒ Nets are assigned to these routing resources
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 10
Lienig
5.1 Introduction
© KLMH
Global Routing Detailed Routing
N3 N3
N1 N1
N2 N2
N3 N3
N3 N3
N1 N1 N2 N1 N1 N2
Horizontal Vertical
Via
Segment Segment
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 11
Lienig
5.1.2 Globalverdrahtung
© KLMH
Wire Tracks
Placement
Global Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 12
Lienig
5.2 Terminology and Definitions
© KLMH
• 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
• 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
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 13
Lienig
5.2 Terminology and Definitions
© KLMH
Channel
Rectangular routing region with pins on two opposite sides
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 14
Lienig
5.2 Terminology and Definitions
© KLMH
Channel
Rectangular routing region with pins on two opposite sides
Routing channel
Routing channel
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 15
Lienig
5.2 Terminology and Definitions
© KLMH
Capacity
Number of available routing tracks or columns
Horizontal Routing Channel
B B C D B C B
h
dpitch
A C A B B C D
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 16
Lienig
5.2 Terminology and Definitions
© KLMH
Capacity
Number of available routing tracks or columns
• For single-layer routing, the Horizontal Routing Channel
capacity is the height h of the
channel divided by the pitch dpitch
B B C D B C B
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 17
Lienig
5.2 Terminology and Definitions
© KLMH
Switchbox (Two-layer macro cell layout) Vertical
Channel
Intersection of horizontal and vertical channels
B C
3
Horizontal B B Horizontal
Channel Channel
A
C A B
Vertical
Channel
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 18
Lienig
5.2 Terminology and Definitions
© KLMH
T-junction (Two-layer macro cell layout)
B C
C
B B Horizontal
Channel
A
C A B
Vertical
Channel
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 19
Lienig
5.2 Terminology and Definitions
© KLMH
2D and 3D Switchboxes
Bottom pin connection
on 3D switchbox
Metal5
Metal4 3D switchbox
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 20
Lienig
5.2 Terminology and Definitions
© KLMH
Gcells (Tiles) with macro cell layout
Metal1 Metal3
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 21
Lienig
5.2 Terminology and Definitions
© KLMH
Gcells (Tiles) with standard cells
Metal1 Metal3
(Standard cells)
Lienig
5.2 Terminology and Definitions
© KLMH
Gcells (Tiles) with standard cells
(back-to-back)
Metal1 Metal3
(Back-to-back-
standard cells)
Metal2 Metal4 etc.
(Cell ports)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 23
Lienig
5.3 Optimization Goals
© KLMH
• Global routing seeks to
− determine whether a given placement is routable, and
− determine a coarse routing for all nets within available routing regions
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 24
Lienig
5.3 Optimization Goals
© KLMH
Full-custom design
Layout is dominated by macro cells and routing regions are non-uniform
D
B
C E V
D
A B 4
F H 5 H
1 5 C 2E
A 1 B D 4 H A 3
F
D F 3 V
B
C E C 2 E
Lienig
5.3 Optimization Goals
© KLMH
Standard-cell design
If number of metal layers is limited, feedthrough cells
must be used to route across multiple cell rows
Feedthrough
A cells
A
Variable-die,
standard cell design:
A Total height =
ΣCell row heights +
All channel heights
A A
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 26
Lienig
5.3 Optimization Goals
© KLMH
Standard-cell design
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 27
Lienig
5.3 Optimization Goals
© KLMH
Gate-array design
Cell sizes and sizes of routing regions between cells are fixed
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 28
Lienig
5.4 Representations of Routing Regions
© KLMH
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
5.7 Full-Netlist Routing
5.7.1 Routing by Integer Linear Programming
5.7.2 Rip-Up and Reroute (RRR)
5.8 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.4 Representations of Routing Regions
© KLMH
• Routing regions are represented using efficient data structures
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 30
Lienig
5.4 Representations of Routing Regions
© KLMH
Grid graph model
1 2 3 4 5 1 2 3 4 5
6 7 8 9 10 6 7 8 9 10
11 12 13 14 15 11 12 13 14 15
16 17 18 19 20 16 17 18 19 20
21 22 23 24 25 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
5.4 Representations of Routing Regions
© KLMH
Channel connectivity graph
4 4
5
5
1 2 3 6 9 1 2 3 6 9
7 7
8 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 32
Lienig
5.4 Representations of Routing Regions
© KLMH
Switchbox connectivity graph
1 4 11 1 4 11
5 9 12 5 9 12
2 6 2 6
7 10 13 7 10 13
3 8 14 3 8 14
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 33
Lienig
5.5 The Global Routing Flow – General Idea
© KLMH
1. Defining the routing regions (Region definition)
− Layout area is divided into routing regions
3. Assigning crosspoints along the edges of the routing regions (Midway routing)
− Routes are assigned to fixed locations or crosspoints
along the edges of the routing regions
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 34
Lienig
5.6 Single-Net Routing
© KLMH
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
5.7 Full-Netlist Routing
5.7.1 Routing by Integer Linear Programming
5.7.2 Rip-Up and Reroute (RRR)
5.8 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.6.1 Rectilinear Routing
© KLMH
B (2, 6) B (2, 6)
S (2, 4)
C (6, 4) C (6, 4)
A (2, 1) A (2, 1)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 36
Lienig
5.6.1 Rectilinear Routing
© KLMH
• An RMST can be computed in O(p2) 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
• Advanced computational-geometric techniques reduce the runtime to O(p log p)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 37
Lienig
5.6.1 Rectilinear Routing
© KLMH
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
• The total edge length LRSMT of the RSMT is at least half the perimeter
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 38
Lienig
5.6.1 Rectilinear Routing
© KLMH
Transforming an initial RMST into a low-cost RSMT
p2 p2 p2 p2
p3 p3 p3 p3
S1 S
p1 p1 p1 p1
Lienig
5.6.1 Rectilinear Routing
© KLMH
Hanan grid
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 40
Lienig
5.6.1 Rectilinear Routing
© KLMH
Terminal pins Intersection lines Hanan points ( ) RSMT
Lienig
5.6.1 Rectilinear Routing
© KLMH
Definining routing regions Pin connections Pins assigned to grid cells
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 42
Lienig
5.6.1 Rectilinear Routing
© KLMH
A A
A
A A A A
A A
A A
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 43
Lienig
5.6.1 Rectilinear Routing
© KLMH
A Sequential Steiner Tree Heuristic
2. Find the closest point pair (pMBB,pC) between any point pMBB on the MBB
and pC from the set of pins to consider
4. Add the L-shape that pMBB lies on to T (deleting the other L-shape).
If pMBB 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
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 45
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 46
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
pc
1 3
MBB
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 47
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3
2 2
1 2 4
pMBB
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 48
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3 1 3
2 2 2
1 2 4
3 4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 49
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3 1 3
2 2 2
1 2 4
3 4
1 3
4 4
6 5
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 50
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3 1 3
2 2 2
1 2 4
3 4
1 3 1 3
5
2
4 4 4
6 5 6 5
7
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 51
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3 1 3
2 2 2
1 2 4
3 4
1 3 1 3 1 3
5
2 2
4 4 4
6 4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 52
Lienig
5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
1 3 1 3 1 3
2 2 2
1 2 4
3 4
1 3 1 3 1 3
5
2 2
4 4 4
6 4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 53
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
4 4
Channel
connectivity
5
graph 5
1 2 3 6 9 1 2 3 6 9
7 7
8 8
Switchbox 1 4 11 1 4 11
connectivity
graph 5 9 12 5 9 12
2 6 2 6
7 10 13 7 10 13
3 8 14 3 8 14
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 54
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
Channel
connectivity
graph
Switchbox
connectivity
graph
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 55
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
• Combines switchboxes and channels, handles non-rectangular block shapes
• Suitable for full-custom design and multi-chip modules
Overview:
1 2 3
4,2 4,2 4,2 4,2 3,1 4,2
A
1 2 3
B 4 1,2 1,5 1,2 1,2 7 1,2 0,4 0,1 1,2
4 5 6 7
5 6
A 8 4,2 4,2 9 4,2 4,2
8
B 9
2,2 2,7 2,2 2,2 2,7 2,2
10 11 12
10 11 12
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 56
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
Defining the routing regions
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 57
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
Defining the connectivity graph
1 8 17 21 23
1 8 17 21 23 2 9 18
2 9 18 3 10
24 19 24
3 10 19 11 12
4
4 1112
13 14 15 20 22 25
5
5 13 1415 20 22 25
6 26 6 26
7 16 27
7 16 27
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 58
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
Horizontal capacity Vertical capacity
of routing region 1 of routing region 1
2 Tracks
1 1,2 8 17 21 23
1 Track
1 8 17 21 23 2 9 18
2 9 18 3 10
24 19 24
3 10 19 11 12
4
4 1112
13 14 15 20 22 25
5
5 13 1415 20 22 25
6 26 6 26
7 16 27
7 16 27
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 59
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
1 1,2 8 1,3 17 1,1 21 1,4 23 1,1
1 8 17 21 23 2 9 18
2,2 2,3 2,1
2 9 18 3 10
24 2,2 1,1 19 4,1 24 6,1
3 10 12
19 4 2,2 11 2,1 2,1
4 1112
13 14 15 20 22 25
5 3,1
5 13 1415 20 22 25 3,2 3,1 3,1 3,1 3,4 3,1
6 26 6 26 1,1
1,2
7 16 27
7 1,2 16 27
1,8 1,1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 60
Lienig
5.6.2 Global Routing in a Connectivity Graph
© KLMH
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
c) Find shortest path for subnet connectivity graph
d) If no shortest path exists, do not route, otherwise, assign subnet to the nodes
of shortest path and update routing capacities
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
l
1 2 3
A 4,2 4,2 4,2
w 1 2 3
B
Example
4 5 6 7 4 1,2 1,5 1,2 1,2 7
© KLMH
Global routing A
5 6
of the nets A-A and B-B 8
B 9 8 4,2 4,2 9
10 11 12
2,2 2,7 2,2
10 11 12
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 62
Lienig
l
1 2 3
A 4,2 4,2 4,2
w 1 2 3
B
Example
4 5 6 7 4 1,2 1,5 1,2 1,2 7
© KLMH
Global routing A
5 6
of the nets A-A and B-B 8
B 9 8 4,2 4,2 9
10 11 12
2,2 2,7 2,2
10 11 12
1 2 3
A 4,2 3,1 4,2
B
10 11 12
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 63
Lienig
l
1 2 3
A 4,2 4,2 4,2
w 1 2 3
B
Example
4 5 6 7 4 1,2 1,5 1,2 1,2 7
© KLMH
Global routing A
5 6
of the nets A-A and B-B 8
B 9 8 4,2 4,2 9
10 11 12
2,2 2,7 2,2
10 11 12
1 2 3
A 4,2 3,1 4,2
B
10 11 12
1 2 3
A 4,2 2,1 3,1
Lienig
11 12
l
A
w 1 2 3
B
Example
4 5 6 7
© KLMH
Global routing A
of the nets A-A and B-B 8
B 9
10 11 12
A
B
A
B
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 65
Lienig
1 2 3
3,1 3,4 3,3
Example 1 2 3
B A
© KLMH
Determine 5 6 7
4 5 6 7 4 1,4 1,1 1,4 1,3
routability B
of a placement A
8 9 10
3,4 3,1 3,3
8 9 10
1 2 3
3,1 3,4 3,3
1 2 3
B A 5 6 7
4 0,3 0,1 0,4 0,2
4 5 6 7
B
A
8 9 10
3,4 3,1 2,2
8 9 10
1 2 3
3,1 3,4 3,3
?
1 2 3
5 6 7
B A
4 0,3 0,1 0,4 0,2
4 5 6 7
B
A
8 9 10 3,4 3,1 2,2
8 9 10
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 66
Lienig
1 2 3
3,1 3,4 3,3
Example 1 2 3
B A
© KLMH
Determine 5 6 7
4 5 6 7 4 1,4 1,1 1,4 1,3
routability B
of a placement A
8 9 10
3,4 3,1 3,3
8 9 10
1 2 3
3,1 3,4 3,3
1 2 3
B A 5 6 7
4 0,3 0,1 0,4 0,2
4 5 6 7
B
A
8 9 10
3,4 3,1 2,2
8 9 10
1 2 3
2,0 2,3 3,3
1 2 3
5 6 7
B A
4 0,2 0,0 0,3 0,2
4 5 6 7
B
A
8 9 10 2,3 2,0 2,2
8 9 10
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 67
Lienig
Example 1 2 3
B A
© KLMH
Determine
4 5 6 7
routability B
of a placement A
8 9 10
1 2 3
B A
4 5 6 7
B
A
8 9 10
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 68
Lienig
5.6.3 Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
• 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
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 69
Lienig
5.6.3 Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
Example
s 1,4 8,8
1 4 7 Find the shortest path from source s
to target t where the path cost
∑w1 + ∑w2 is minimal
8,6 9,7 3,2
2,6 2,8
2 5 8 t
9,8 3,3
3 6 9
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 70
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
(1)
8,6 9,7 3,2
2,6 2,8
2 5 8 t
9,8 3,3
3 6 9
Current node: 1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 71
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N [2] 8,6
[1]
8,6 9,7 3,2 W [4] 1,4
2,6 2,8
2 5 8 t W [4] 1,4
9,8 3,3
3 6 9
Current node: 1
Neighboring nodes: 2, 4
Minimum cost in group 2: node 4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 72
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N [2] 8,6
[1]
8,6 9,7 3,2 W [4] 1,4
9,8 3,3
3 6 9 parent of node [node name] ∑w1(s,node),∑w2(s,node)
Current node: 4
Neighboring nodes: 1, 5, 7
Minimum cost in group 2: node 2
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 73
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N [2] 8,6
[1]
8,6 9,7 3,2 W [4] 1,4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 74
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N [2] 8,6
[1]
8,6 9,7 3,2 W [4] 1,4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 75
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N [2] 8,6
[1]
8,6 9,7 3,2 W [4] 1,4
N [6] 12,19
Current node: 5 N [5] 10,11
W [8] 12,19
Neighboring nodes: 2, 4, 6, 8
Minimum cost in group 2: node 7
W [7] 9,12
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 76
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N (2) 8,6
(1)
8,6 9,7 3,2 W (4) 1,4
N (6) 12,19
Current node: 7 N (5) 10,11
W (8) 12,19
Neighboring nodes: 4, 8
Minimum cost in group 2: node 8
N (8) 12,14 W (7) 9,12
N (8) 12,14
Lienig
1,4 8,8
s 1 4 7 Group 2 Group 3
© KLMH
N (2) 8,6
(1)
8,6 9,7 3,2 W (4) 1,4
N (6) 12,19
Retrace from t to s N (5) 10,11
W (8) 12,19
N (8) 12,14
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 78
Lienig
1,4 9,12
s 1 4 7
© KLMH
12,14
2 5 8 t
3 6 9
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 79
Lienig
5.6.4 Finding Shortest Paths with A* Search
© KLMH
• 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
30 21 29 19 28
t 22 13 O 11 20 t 5 4 O
O 6 1 5 12 O 3 1 s Source
31 O 4 s 2 7 6 O 2 s
t Target
27 18 10 3 8 14
26 17 9 15 23 O Obstacle
25 16 24
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 80
Lienig
5.6.4 Finding Shortest Paths with A* Search
© KLMH
• 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 t 3 6 O
O 3 1 4 O 5 1 s Source
O 2 s O 2 s
t Target
O Obstacle
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 81
Lienig
5.7 Full-Netlist Routing
© KLMH
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
5.7 Full-Netlist Routing
5.7.1 Routing by Integer Linear Programming
5.7.2 Rip-Up and Reroute (RRR)
5.8 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
• Global routers must properly match nets with routing resources,
without oversubscribing resources in any part of the chip
• When certain nets cause resource contention or overflow for routing edges,
sequential routing requires multiple iterations: rip-up and reroute
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 83
Lienig
5.7.1 Routing by Integer Linear Programming
© KLMH
• A linear program (LP) consists
− of a set of constraints and
− an optional objective function
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 84
Lienig
5.7.1 Routing by Integer Linear Programming
© KLMH
• Three inputs
− W × H routing grid G,
− Routing edge capacities, and
− Netlist
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 85
Lienig
5.7.1 Routing by Integer Linear Programming
© KLMH
• 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
• Variables
− xnet1, ... , xnetk: k Boolean path variables for each net net ∈ Netlist
− wnet1, ... , wnetk: k net weights, one for each path of net net ∈ Netlist
• Maximize
∑w
net∈Netlist
net1 ⋅ xnet1 + + wnetk ⋅ xnetk
• Subject to
− Variable ranges
− Net constraints
− Capacity constraints
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 86
Lienig
5.7.1 Routing by Integer Linear Programming – Example
© KLMH
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
A B
C B
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 87
Lienig
5.7.1 Routing by Integer Linear Programming – Example
© KLMH
• Solution
− For net A, the possible routes are two L-shapes (A1,A2) and two Z-shapes (A3,A4)
A A1 A A3 Net Constraints:
xA1 + xA2 + xA3 + xA4 ≤ 1
A4 Variable Constraints:
A2
0 ≤ xA1 ≤ 1, 0 ≤ xA2 ≤ 1,
A A 0 ≤ xA3 ≤ 1, 0 ≤ xA4 ≤ 1
− For net B, the possible routes are two L-shapes (B1,B2) and one Z-shape (B3)
Net Constraints:
xB1 + xB2 + xB3 ≤ 1
B2 Variable Constraints:
0 ≤ xB1 ≤ 1, 0 ≤ xB2 ≤ 1,
B1 B B3 B
0 ≤ xB3 ≤ 1
B B
− For net C, the possible routes are two L-shapes (C1,C2) and two Z-shapes (C3,C4)
C3 Net Constraints:
xC1 + xC2+ xC3 + xC4 ≤ 1
C2 C C Variable Constraints:
0 ≤ xC1 ≤ 1, 0 ≤ xC2 ≤ 1,
C1 C4
0 ≤ xC3 ≤ 1, 0 ≤ xC4 ≤ 1
C C
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 88
Lienig
5.7.1 Routing by Integer Linear Programming – Example
© KLMH
Horizontal Edge Capacity Constraints:
G(0,0) ~ G(1,0): xC1 + xC3 ≤ σ(G(0,0) ~ G(1,0)) = 1
G(1,0) ~ G(2,0): xC1 ≤ σ(G(1,0) ~ G(2,0)) = 1
G(2,0) ~ G(3,0): xB1 + xB3 ≤ σ(G(2,0) ~ G(3,0)) = 1
G(3,0) ~ G(4,0): xB1 ≤ σ(G(3,0) ~ G(4,0)) = 1
G(0,1) ~ G(1,1): xA2 + xC4 ≤ σ(G(0,1) ~ G(1,1)) = 1
G(1,1) ~ G(2,1): xA2 + xA3 + xC4 ≤ σ(G(1,1) ~ G(2,1)) = 1
G(2,1) ~ G(3,1): xB2 ≤ σ(G(2,1) ~ G(3,1)) = 1
G(3,1) ~ G(4,1): xB2 + xB3 ≤ σ(G(3,1) ~ G(4,1)) = 1
G(0,2) ~ G(1,2): xA4 + xC2 ≤ σ(G(0,2) ~ G(1,2)) = 1
G(1,2) ~ G(2,2): xA4 + xC2 + xC3 ≤ σ(G(1,2) ~ G(2,2)) = 1
G(0,3) ~ G(1,3): xA1 + xA3 ≤ σ(G(0,3) ~ G(1,3)) = 1
G(1,3) ~ G(2,3): xA1 ≤ σ(G(1,3) ~ G(2,3)) = 1
Lienig
5.7.2 Rip-Up and Reroute (RRR)
© KLMH
• 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)
B A’
D’
Routing without A Routing with allowing
allowing violations B’ violations and RRR
D C
C’
B A’ B A’
D’ D’
A A
B’ B’
D C D C C’
C’
WL = 21 WL = 19
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 90
Lienig
5.8 Modern Global Routing
© KLMH
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
5.7 Full-Netlist Routing
5.7.1 Routing by Integer Linear Programming
5.7.2 Rip-Up and Reroute (RRR)
5.8 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.8 Modern Global Routing
© KLMH
• General flow for modern global routers, where each router uses a unique set
of optimizations:
no
Layer Assignment Violations?
(optional) yes
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 92
Lienig
5.8 Modern Global Routing
© KLMH
• Pattern Routing
− Searches through a small number of route patterns to improve runtime
− Topologies commonly used in pattern routing: L-shapes, Z-shapes, U-shapes
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 93
Lienig
5.8 Modern Global Routing
© KLMH
• Negotiated-Congestion Routing
− Each edge e is assigned a cost value cost(e) that reflects the demand for edge e
− A segment from net 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:
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 94
Lienig
Summary of Chapter 5 – Types of Routing
© KLMH
Global Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 95
Lienig
Summary of Chapter 5 – Types of Routing
© KLMH
Detailed Routing
Timing-Driven routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 96
Lienig
Summary of Chapter 5 – Types of Routing
© KLMH
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
Summary of Chapter 5 – Routing Single Nets
© KLMH
• 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
− 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
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 98
Lienig
Summary of Chapter 5 – Routing Single Nets
© KLMH
• 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)
• For nets with <10 pins, RSMTs can be found using look-up tables (FLUTE)
very quickly
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 99
Lienig
Summary of Chapter 5 – Full Netlist Routing
© KLMH
• 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)
• 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
− RRR is much faster when routing is easy
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 100
Lienig
Summary of Chapter 5 – Modern Global Routing
© KLMH
• 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
• 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
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 101
Lienig