Document

© KLMH
Chapter 8 – Global Routing
1
Lienig
SoC & Wireless location Lab.
© KLMH
Chapter 8 – Global Routing
8.1
Introduction
8.2
Optimization Goals
8.3
Representations of Routing Regions
8.4
Single-Net Routing
2
Lienig
8.4.1 Rectilinear Routing
8.4.2 Global Routing in a Connectivity Graph
8.4.3 Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
Introduction
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
Timing Closure
Packaging and Testing
Chip
3
Lienig
8.1
Introduction
© KLMH
8.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

optimizing routing objectives, e.g., minimizing total wire-length and maximizing
timing slack.

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.
4
Lienig
Terminology:
Introduction: General Routing Problem
© KLMH
8.1
Placement result
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
N3 = {C2, D5}
N4 = {B1, A1, C3}
3
4
C
1
A
1
2
4
5
4
Technology Information
(Design Rules)
B
3
4
6
D
5
Lienig
1
Introduction: General Routing Problem
© KLMH
8.1
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
N3 = {C2, D5}
N4 = {B1, A1, C3}
3
4
C
1
1
A
2
4
N1
Technology Information
(Design Rules)
B
3
4
4
5
6
D
6
Lienig
1
Introduction: General Routing Problem
© KLMH
8.1
Netlist:
N1 = {C4, D6, B3}
N2 = {D4, B4, C1, A4}
3
N3 = {C2, D5}
C
1
N4 = {B1, A1, C3}
4
1
A
2
4
N4
N2
Technology Information
(Design Rules)
B
3
4
4
5
6
D
7
Lienig
1
N3 N1
Introduction
© KLMH
8.1
Routing
Global
Routing
Detailed
Routing
Timing-Driven
Routing
Large SingleNet Routing
Geometric
Techniques
Coarse-grain
assignment of
routes to
routing regions
Fine-grain
assignment
of routes to
routing tracks
Net topology
optimization
and resource
allocation to
critical nets
Power (VDD)
and Ground
(GND)
routing
Non-Manhattan
and
clock routing
8
Lienig
Multi-Stage Routing
of Signal Nets
© KLMH
Introduction
Global Routing
N3
N1
N3
Detailed Routing
N3
N3
N3
N1
N1
N2
N2
N3
N1
N1
N2
Horizontal
Segment
Vertical
Segment
N1
N2
Via
9
Lienig
8.1
Optimization Goals
© KLMH
8.2

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
 minimizing total wirelength, and
 reducing signal delays on critical nets
10
Lienig

Representations of Routing Regions
© KLMH
8.3
8.1
Introduction
8.2
Optimization Goals
8.3
Representations of Routing Regions
8.4
Single-Net Routing
11
Lienig
8.4.1 Rectilinear Routing
8.4.2 Global Routing in a Connectivity Graph
8.4.3 Finding Shortest Paths with Dijkstra’s Algorithm
Representations of Routing Regions
© KLMH
8.3

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
 Grid graph model, channel connectivity model, switchbox connectivity model
Capacities are associated with both edges and nodes
to represent available routing resources
12
Lienig

© KLMH
Representations of Routing Regions
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)
13
Lienig
8.3
© KLMH
Representations of Routing Regions
Channel connectivity graph
4
4
5
5
1 2
3
6
9
1
2
3
7
8
6
9
7
8
G = (V,E), where the nodes v  V represent channels,
and the edges E represent adjacencies of the channels
Channel: a rectangular routing region
14
Lienig
8.3
© KLMH
Representations of Routing Regions
Switchbox connectivity graph
1
4
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
Switchbox: the intersection of horizontal and vertical channels
15
Lienig
8.3
Single-Net Routing
© KLMH
8.4
8.1
Introduction
8.2
Optimization Goals
8.3
Representations of Routing Regions
8.4
Single-Net Routing
16
Lienig
8.4.1 Rectilinear Routing
8.4.2 Global Routing in a Connectivity Graph
8.4.3 Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
Rectilinear Routing
 Rectilinear Routing
B (2, 6)
B (2, 6)
S (2, 4)
C (6, 4)
A (2, 1)
Rectilinear minimum
spanning tree (RMST)
C (6, 4)
A (2, 1)
Rectilinear Steiner
minimum tree (RSMT)
17
Lienig
8.4.1
Rectilinear Routing
© KLMH
8.4.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

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
Minimum bounding box(MBB)
p2
S1
p3
p1
18
Lienig
Example of RSMT
Rectilinear Routing
© KLMH
8.4.1
Transforming an initial RMST into a low-cost RSMT
p2
p3
p1
p3
p1
Construct L-shapes between points
p2
p2
S1
p1
p3
S
p3
p1
Final tree (RSMT)
19
Lienig
p2
Rectilinear Routing
© KLMH
8.4.1

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
20
Lienig
Hanan grid
© KLMH
Rectilinear Routing
Terminal pins
Intersection lines
Hanan points ( )
RSMT
21
Lienig
8.4.1
© KLMH
Rectilinear Routing
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 (pMBB,pC) between any point pMBB on the MBB
and pC from the set of pins to consider
3. Construct the MBB of pMBB and pC
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.
5. Goto step 2 until the set of pins to consider is empty
22
Lienig
8.4.1
© KLMH
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
1
23
Lienig
8.4.1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
1
1
24
Lienig
2
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
pc
3
1
2
1
25
Lienig
MBB
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
2
1
3
1
2
2
4
pMBB
26
Lienig
3
1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
2
1
3
1
2
2
3
1
2
4
3
4
5
27
Lienig
3
1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
3
1
2
3
1
2
1
2
3
1
2
4
3
4
5
3
2
4
6
4
5
28
Lienig
1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
3
1
2
3
1
2
1
3
1
2
2
4
3
4
5
2
4
6
3
1
2
4
5
6
5
4
5
7
29
Lienig
3
1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
3
1
2
3
1
2
1
3
1
2
2
4
3
4
5
2
4
6
3
1
2
4
5
6
5
7
3
1
2
4
5
6
6
4
5
7
30
Lienig
3
1
Rectilinear Routing: Example Sequential Steiner Tree Heuristic
© KLMH
8.4.1
3
1
2
3
1
2
1
3
1
2
2
4
3
4
5
2
4
6
3
1
2
4
5
6
5
7
3
1
2
4
5
6
6
4
5
7
31
Lienig
3
1
Global Routing in a Connectivity Graph
© KLMH
8.4.2
4
4
5
5
1 2
3
6
9
1
2
3
7
1
2
11
9
8
1
12
6
7
3
8
4
5
9
7
8
Switchbox
connectivity
graph
6
5
2
10
13
14
4
9
12
10
13
6
7
3
11
8
14
32
Lienig
Channel
connectivity
graph
Global Routing in a Connectivity Graph
© KLMH
8.4.2
Channel
connectivity
graph
33
Lienig
Switchbox
connectivity
graph
Global Routing in a Connectivity Graph
© KLMH
8.4.2

Combines switchboxes and channels, handles non-rectangular block shapes

Suitable for full-custom design and multi-chip modules
Overview:
A
1
2
5
4,2
4,2
4,2
4,2
1,5
1,2
1,2 7
6
1,2
5
6
4,2 9
4,2
2,2
3,1
4,2
7
8 4,2
0,4
0,1
1,2
4,2
9
B
11
12
Routing regions
2,2
2,7
2,2
10
11
12
Graph representation
2,7
2,2
Graph-based path search
34
Lienig
10
3
4 1,2
A
8
2
3
B
4
1
© KLMH
Global Routing in a Connectivity Graph
Defining the routing regions
+
Horizontal macro-cell edges
Vertical macro-cell edges
35
Lienig
8.4.2
© KLMH
Global Routing in a Connectivity Graph
Defining the connectivity graph
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
4
11
12
5
13
14
19
15
6
7
21
20
23
24
22
25
26
16
27
36
Lienig
8.4.2
Global Routing in a Connectivity Graph
© KLMH
8.4.2
Horizontal capacity
of routing region 1
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
19
15
6
7
21
20
23
24
22
25
26
16
27
37
Lienig
1 Track
2 Tracks
© KLMH
Global Routing in a Connectivity Graph
1
8
17
2
9
18
3
10
4 1112
21
19
23
8 1,3
17 1,1 21 1,4 23 1,1
2
9
2,3
18
1,1
19 4,1
3
24
5 13 1415 20 22
25
6
7
26
27
16
1 1,2
2,2
10
2,2
12
4 2,2 11 2,1 2,1
15
13 14
5
3,2
6
3,1
3,1
3,1
20
3,1
24 6,1
22
3,4
25
3,1
26 1,1
1,2
7 1,2
2,1
16
1,8
27
1,1
38
Lienig
8.4.2
© KLMH
Global Routing in a Connectivity Graph
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
39
Lienig
8.4.2
l
A
1
3
4,2
4,2
1,5
1,2
1,2
7
5
6
4,2
9
2
3
4,2
6
7
4 1,2
9
8 4,2
4
5
A
8
10
B
11
12
2,2
2,7
2,2
10
11
12
© KLMH
B
Example
Global routing
of the nets A-A and B-B
2
40
Lienig
w
1
l
A
1
3
4,2
4,2
1,5
1,2
1,2
7
5
6
4,2
9
2
3
4,2
6
7
4 1,2
9
8 4,2
4
5
A
8
B
10
11
12
A
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
© KLMH
B
Example
Global routing
of the nets A-A and B-B
2
B
4 1,2
A
B
8 4,2
7
4,2 9
2,2
2,7
2,2
10
11
12
41
Lienig
w
1
l
A
1
3
4,2
4,2
1,5
1,2
1,2
7
5
6
4,2
9
2
3
4,2
6
7
4 1,2
9
8 4,2
4
5
A
8
B
10
11
12
A
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
© KLMH
B
Example
Global routing
of the nets A-A and B-B
2
B
4 1,2
A
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
8 3,1
10 1,1
7
4,1 9
1,7
1,1
11
12
42
Lienig
w
1
l
A
1
3
4
5
6
7
A
8
© KLMH
Example
Global routing
of the nets A-A and B-B
2
B
9
B
10
11
12
A
B
A
B
43
Lienig
w
Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
8.4.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
 Group 3 – contains the nodes that have been visited and for which the
shortest path cost from the starting node has been found
Once t is in Group 3, the algorithm finds the shortest path by backtracing
44
Lienig

Finding Shortest Paths with Dijkstra’s Algorithm
© KLMH
8.4.3
Example
1
1,4
8,6
4
8,8
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
Find the shortest path from source s
to target t where the path cost
∑w1 + ∑w2 is minimal
7
8
t
4,5
6
3,3
9
45
Lienig
s
1
1,4
4
8,8
Group 2
7
Group 3
© KLMH
s
8,6
9,7
2
2,6
1,4
5
2,8
2,8
3
9,8
(1)
3,2
8
t
4,5
6
3,3
9
46
Lienig
Current node: 1
1,4
4
8,8
Group 2
7
N [2] 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W [4] 1,4
8
3,3
[1]
W [4] 1,4
parent of node [node name] ∑w1(s,node),∑w2(s,node)
4,5
6
t
Group 3
© KLMH
1
9
Current node: 1
Neighboring nodes: 2, 4
Minimum cost in group 2: node 4
47
Lienig
s
1,4
4
8,8
Group 2
7
N [2] 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W [4] 1,4
8
4,5
6
3,3
t
N [5] 10,11
W [7] 9,12
Group 3
© KLMH
1
[1]
W [4] 1,4
N [2] 8,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
48
Lienig
s
1,4
4
8,8
Group 2
7
N [2] 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W [4] 1,4
8
4,5
6
3,3
t
Group 3
© KLMH
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
parent of node [node name] ∑w1(s,node),∑w2(s,node)
Current node: 2
Neighboring nodes: 1, 3, 5
Minimum cost in group 2: node 3
49
Lienig
s
1,4
4
8,8
Group 2
7
N [2] 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W [4] 1,4
8
4,5
6
3,3
Current node: 3
Neighboring nodes: 2, 6
Minimum cost in group 2: node 5
t
Group 3
© KLMH
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
W [6] 18,18
N [3] 9,10
9
N [5] 10,11
parent of node [node name] ∑w1(s,node),∑w2(s,node)
50
Lienig
s
1,4
4
8,8
Group 2
7
N [2] 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W [4] 1,4
8
4,5
6
3,3
t
Group 3
© KLMH
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
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
parent of node [node name] ∑w1(s,node),∑w2(s,node)
51
Lienig
s
1,4
4
8,8
Group 2
7
N (2) 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W (4) 1,4
8
4,5
6
3,3
t
Group 3
© KLMH
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
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
parent of node [node name] ∑w1(s,node),∑w2(s,node)
52
Lienig
s
1,4
4
8,8
Group 2
7
N (2) 8,6
8,6
9,7
2
2,6
1,4
3,2
5
2,8
2,8
3
9,8
W (4) 1,4
8
4,5
6
3,3
t
Group 3
© KLMH
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
W (6) 18,18
N (3) 9,10
9
N (6) 12,19
Retrace from t to s
W (8) 12,19
N (8) 12,14
N (5) 10,11
W (7) 9,12
N (8) 12,14
53
Lienig
s
1,4
4
9,12
7
© KLMH
1
12,14
2
5
8
3
6
9
t
Optimal path 1-4-7-8 from s to t
with accumulated cost (12,14)
54
Lienig
s