Global Routing
Dec 27, 2015
Global Routing
• Global routing:
To route all the nets, should consider capacities
Sequential− One net at a time
Concurrent− Order-independent
2
3
1 2 3
4
5
6
7
8
9 1 2 3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Channel connectivity graph
Switchboxconnectivity graph
Global Routing in a Connectivity Graph
5
Combines switchboxes and channels, handles non-rectangular block shapes
Suitable for full-custom design and multi-chip modules Overview:
Routing regions
1 2 3
4 5 6 7
8 9
10 11 12
B
A
B
A
Global Routing in a Connectivity Graph
Graph-based path search
2,2
4,2
1,2
2,7
4,2
0,1 1,2
3,1
2,2
4,24,2
0,4
Graph representation
1 2 3
4
2,2
4,2
1,2
2,7
4,2
1,2 1,2
5 68
4,2
7
2,2
4,2
9
10
4,2
1,5
11 12
6
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)Assign subnet to the nodes of shortest path and update routing capacities
6. If there are unrouted nets, goto Step 5, otherwise END
Global Routing in a Connectivity Graph
7
Horizontal macro-cell edges Vertical macro-cell edges
Defining the routing regions
Global Routing in a Connectivity Graph
+
8
2
3
4
5
67
89
101112
13 1415
16
1718
19
20
21
22
23
24
25
2627
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
26
27
1
Defining the connectivity graph
Global Routing in a Connectivity Graph
9
2
3
4
5
67
89
101112
13 1415
16
1718
19
20
21
22
23
24
25
2627
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
26
27
1,2
Horizontal capacity of routing region 1
Vertical capacity of routing region 1
2 Tracks
1 T
rack 1
Defining Capacities
10
2
3
4
5
67
89
101112
13 1415
16
1718
19
20
21
22
23
24
25
2627
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
26
27
1,2
2,2
2,2
2,2
3,2
1,2
1,2
2,1
3,1
1,3
2,3
1,1
2,1
3,1 3,1
1,1
2,1
4,1
3,1
1,1
6,1
3,1
1,1
1,1
1,4
3,4
1,8
1
Defining Capacities
11
Net Ordering
• Determine net orderingA bad net ordering
− may increase total wire length,− may even prevent completion of the routing
(for some circuits which are indeed routable.).
A
A
B
B
B First (Good Order)
A
AB
B
A First(Bad Order)
12
Criteria for Net Ordering
Criticality of net:− Critical nets first
Number of terminals:− Simple nets first, since they are less flexible
Estimated wire length:− Short nets first, since they are less flexible− Long nets first, since they may generate critical paths
Consider bounding rectangles:
A
A
B
BB terminal is inside A’s BR.
A
A
B
B
So B First.
A
AB
B
If A First:
But not always applicable!
14
l
1 2 3
4 5 6 7
8 9
10 11 12
B
A
B
Aw
1 2 3
4
2,2
4,2
1,2
2,7
4,2
1,2 1,2
5 68
4,2
7
2,2
4,2
9
10
4,2
1,5
11 12
Example
Global routing of the nets A-A and B-B
15
l
1 2 3
4 5 6 7
8 9
10 11 12
B
A
B
Aw
1 2 3
4
2,2
4,2
1,2
2,7
4,2
1,2 1,2
5 68
4,2
7
2,2
4,2
9
10
4,2
1,5
11 12
B
A
B
A
0,1
3,1
0,4
1 2 3
4
2,2
4,2
1,2
2,7
4,2
1,2
5 68
7
2,2
4,2
9
10
4,2
11 12
Example
Global routing of the nets A-A and B-B
16
l
1 2 3
4 5 6 7
8 9
10 11 12
B
A
B
Aw
1 2 3
4
2,2
4,2
1,2
2,7
4,2
1,2 1,2
5 68
4,2
7
2,2
4,2
9
10
4,2
1,5
11 12
B
A
B
A
B
A
B
A
1 2 3
4
2,2
4,2
1,2
2,7
4,2
0,1 1,2
5 68
3,1
7
2,2
4,2
9
10
4,2
0,4
11 12
1
4 1,2 0,1
5 6
4,2
0,4
2 3
1,1
3,1
1,7
4,1
1,1
8
2,1
7
1,1
3,1
9
10
11 12
Example
Global routing of the nets A-A and B-B
18
1 2 3
3,1 3,4 3,3
1,4 1,1 1,4 1,3
3,4 3,1 3,3
45 6 7
8 9 10
B
AB
A
4 5 7
8
6
9 10
1 2 3ExampleDetermine routability of a placement
B
AB
A
4 5 7
8
6
9 10
1 2 3
?1 2 3
3,1 3,4 3,3
0,3 0,1 0,4 0,2
3,4 3,1 2,2
45 6 7
8 9 10
B
AB
A
4 5 7
8
6
9 10
1 2 3
1 2 3
3,1 3,4 3,3
0,3 0,1 0,4 0,2
3,4 3,1 2,2
45 6 7
8 9 10
19
1 2 3
3,1 3,4 3,3
1,4 1,1 1,4 1,3
3,4 3,1 3,3
45 6 7
8 9 10
B
AB
A
4 5 7
8
6
9 10
1 2 3
B
AB
A
4 5 7
8
6
9 10
1 2 3
B
AB
A
4 5 7
8
6
9 10
1 2 3
1 2 3
3,1 3,4 3,3
0,3 0,1 0,4 0,2
3,4 3,1 2,2
45 6 7
8 9 10
1 2 3
2,0 2,3 3,3
0,2 0,0 0,3 0,2
2,3 2,0 2,2
45 6 7
8 9 10
ExampleDetermine routability of a placement