lecture17 routing
TRANSCRIPT
![Page 1: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/1.jpg)
104/08/23
EE382V Fall 2006
VLSI Physical Design Automation
Prof. David Pan
Office: ACES 5.434
Lecture 9. Introduction to Routing; Global Routing (I)
![Page 2: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/2.jpg)
204/08/23
Introduction to RoutingIntroduction to Routing
![Page 3: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/3.jpg)
304/08/23
Routing in design flow
A C
B
Netlist
AND
OR
INV
Floorplan/Placement
Routing
![Page 4: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/4.jpg)
404/08/23
The Routing Problem
• Apply it after floorplanning/placement• Input:
– Netlist– Timing budget for, typically, critical nets– Locations of blocks and locations of pins
• Output:– Geometric layouts of all nets
• Objective:– Minimize the total wire length, the number of vias, or just
completing all connections without increasing the chip area.– Each net meets its timing budget.
![Page 5: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/5.jpg)
504/08/23
The Routing Constraints• Examples:
– Placement constraint– Number of routing layers– Delay constraint– Meet all geometrical constraints (design rules)– Physical/Electrical/Manufacturing constraints:
• Crosstalk• Process variations, yield, or lithography issues?
![Page 6: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/6.jpg)
604/08/23
Steiner Tree
• For a multi-terminal net, we can construct a spanning tree to connect all the terminals together.
• But the wire length will be large.• Better use Steiner Tree:
A tree connecting all terminals and some additional nodes (Steiner nodes).
• Rectilinear Steiner Tree: Steiner tree in which all the edges run horizontally
and vertically.
SteinerNode
![Page 7: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/7.jpg)
704/08/23
Routing Problem is Very Hard
• Minimum Steiner Tree Problem: – Given a net, find the Steiner tree with the minimum length.– This problem is NP-Complete!
• May need to route tens of thousands of nets simultaneously without overlapping.
• Obstacles may exist in the routing region.
![Page 8: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/8.jpg)
804/08/23
Kinds of Routing
• Global Routing• Detailed Routing
– Channel– Switchbox
• Others:– Maze routing– Over the cell routing– Clock routing
![Page 9: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/9.jpg)
904/08/23
Approaches for Routing
• Sequential Approach:– Route nets one at a time.– Order depends on factors like criticality, estimated wire length, and
number of terminals.– When further routing of nets is not possible because some nets
are blocked by nets routed earlier, apply ‘Rip-up and Reroute’ technique (or ‘Shove-aside’ technique).
• Concurrent Approach:– Consider all nets simultaneously, i.e., no ordering.– Can be formulated as integer programming.
![Page 10: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/10.jpg)
1004/08/23
Classification of Routing
![Page 11: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/11.jpg)
1104/08/23
General Routing Paradigm
Two phases:
![Page 12: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/12.jpg)
1204/08/23
Extraction and Timing Analysis
• After global routing and detailed routing, information of the nets can be extracted and delays can be analyzed.
• If some nets fail to meet their timing budget, detailed routing and/or global routing needs to be repeated.
![Page 13: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/13.jpg)
1304/08/23
Global Routing
Global routing is divided into 3 phases:1. Region definition2. Region assignment3. Pin assignment to routing regions
![Page 14: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/14.jpg)
1404/08/23
Region Definition
Divide the routing area into routing regions of simple shape (rectangular):
• Channel: Pins on 2 opposite sides.• 2-D Switchbox: Pins on 4 sides.• 3-D Switchbox: Pins on all 6 sides.
Switchbox
Channel
![Page 15: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/15.jpg)
1504/08/23
Routing Regions
![Page 16: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/16.jpg)
1604/08/23
Routing Regions inDifferent Design Styles
Gate-ArrayGate-Array Standard-CellStandard-Cell Full-CustomFull-Custom
Feedthrough CellFeedthrough Cell
![Page 17: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/17.jpg)
1704/08/23
Region Assignment
Assign routing regions to each net. Need to consider timing budget of nets and routing congestion of the regions.
![Page 18: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/18.jpg)
1804/08/23
Graph Modeling ofRouting Regions
• Grid Graph Modeling• Checker Board Graph Modeling• Channel Intersection Graph Modeling
![Page 19: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/19.jpg)
1904/08/23
Grid Graph
A terminal A node with terminals
![Page 20: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/20.jpg)
2004/08/23
Checker Board Graph
A terminal
1 1 1
1 1
111
2 2
A node with terminals
capacity
![Page 21: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/21.jpg)
2104/08/23
Channel Intersection Graph
A terminal A node with terminals
Routings along the channels
![Page 22: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/22.jpg)
2204/08/23
Approaches for Global Routing
Sequential Approach:– Route the nets one at a time.– Order dependent on factors like criticality, estimated wire
length, etc.– If further routing is impossible because some nets are
blocked by nets routed earlier, apply Rip-up and Reroute technique.
– This approach is much more popular.
![Page 23: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/23.jpg)
2304/08/23
Approaches for Global Routing
Concurrent Approach:– Consider all nets simultaneously.– Can be formulated as an integer program.
![Page 24: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/24.jpg)
2404/08/23
Pin Assignment
Assign pins on routing region boundaries for each net. (Prepare for the detailed routing stage for each region.)
![Page 25: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/25.jpg)
2504/08/23
![Page 26: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/26.jpg)
2604/08/23
Maze Routing
![Page 27: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/27.jpg)
2704/08/23
Maze Routing Problem
• Given:– A planar rectangular grid graph.– Two points S and T on the graph.– Obstacles modeled as blocked vertices.
• Objective:– Find the shortest path connecting S and T.
• This technique can be used in global or detailed routing (switchbox) problems.
![Page 28: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/28.jpg)
2804/08/23
Grid Graph
XX
Area Routing Grid Graph(Maze)
S
T
S
T
S
TX
SimplifiedRepresentation
X
![Page 29: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/29.jpg)
2904/08/23
Maze Routing
S
T
![Page 30: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/30.jpg)
3004/08/23
Lee’s Algorithm
“An Algorithm for Path Connection and its Application”,
C.Y. Lee, IRE Transactions on Electronic Computers, 1961.
![Page 31: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/31.jpg)
3104/08/23
Basic Idea
• A Breadth-First Search (BFS) of the grid graph.• Always find the shortest path possible.• Consists of two phases:
– Wave Propagation– Retrace
![Page 32: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/32.jpg)
3204/08/23
An Illustration
S
T
0 1
1
2
2
4
4 6
3
3
3
5
55
![Page 33: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/33.jpg)
3304/08/23
Wave Propagation• At step k, all vertices at Manhattan-distance k from S
are labeled with k.• A Propagation List (FIFO) is used to keep track of the
vertices to be considered next.
S
T
0 S
T
0 1 2
1 2
3 4 5
4 5 6
3
3S
T
0 1 2
1 2
3
3
3
5
After Step 0 After Step 3 After Step 6
![Page 34: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/34.jpg)
3404/08/23
Retrace
• Trace back the actual route.• Starting from T.• At vertex with k, go to any vertex with label k-1.
S
T
0 1 2
1 2
3 4 5
4 5 6
3
3
5
Final labeling
![Page 35: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/35.jpg)
3504/08/23
How many grids visited using Lee’s algorithm?
S
T
11
11 2
222
223
33
333
33
4
44
44
4455555
555
5666
66
6
66666666 7777
77
7
77
7 7777
77
788888
88
88
88
8
889
99
999 9
99
9999
99
99
9 10101010
1010
1010
1010
1010
1010
10
10101010
111111
1111
1111 11
111111
11111111
11111212
12
1212
1212 1212
121212
1212121213
1313
1313
1313
1313
1313
13
13
![Page 36: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/36.jpg)
3604/08/23
Time and Space Complexity
• For a grid structure of size w h:• Time per net = O(wh)• Space = O(wh log wh) (O(log wh) bits are needed to store
each label.)
• For a 4000 4000 grid structure:• 24 bits per label• Total 48 Mbytes of memory!
![Page 37: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/37.jpg)
3704/08/23
Improvement to Lee’s Algorithm• Improvement on memory:
– Aker’s Coding Scheme
• Improvement on run time:– Starting point selection– Double fan-out– Framing– Hadlock’s Algorithm– Soukup’s Algorithm
![Page 38: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/38.jpg)
3804/08/23
Aker’s Coding Schemeto Reduce Memory Usage
![Page 39: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/39.jpg)
3904/08/23
Aker’s Coding Scheme
• For the Lee’s algorithm, labels are needed during the retrace phase.
• But there are only two possible labels for neighbors of each vertex labeled i, which are, i-1 and i+1.
• So, is there any method to reduce the memory usage?
![Page 40: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/40.jpg)
4004/08/23
Aker’s Coding Scheme
One bit (independent of grid size) is enough to distinguish between the two labels.
S
T
Sequence:...… (what sequence?)
(Note: In the sequence, the labels before and after each label must be different inorder to tell the forward orthe backward directions.)
![Page 41: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/41.jpg)
4104/08/23
Schemes to Reduce Run Time
1. Starting Point Selection:
2. Double Fan-Out: 3. Framing:
S
T
T
S
S
T TS
![Page 42: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/42.jpg)
4204/08/23
Hadlock’s Algorithm to Reduce Run Time
![Page 43: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/43.jpg)
4304/08/23
Detour Number
For a path P from S to T, let detour number d(P) = # of grids directed away from T, then
L(P) = MD(S,T) + 2d(P)
So minimizing L(P) and d(P) are the same.
lengthshortest Manhattan distance
S
T
DDD D: Detour
d(P) = 3MD(S,T) = 6L(P) = 6+2x3 = 12
![Page 44: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/44.jpg)
4404/08/23
Hadlock’s Algorithm
• Label vertices with detour numbers.• Vertices with smaller detour number are expanded
first. • Therefore, favor paths without detour.
S
T10
11
001
1
00
1
1
22 2
22 2
23
3 2
2
2
22
22
22
22
2
![Page 45: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/45.jpg)
4504/08/23
Soukup’s Algorithmto Reduce Run Time
![Page 46: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/46.jpg)
4604/08/23
Basic Idea• Soukup’s Algorithm: BFS+DFS
– Explore in the direction towards the target without changing direction. (DFS)
– If obstacle is hit, search around the obstacle. (BFS)
• May get Sub-Optimal solution.
S
T11
111
1
11
22 2
22
![Page 47: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/47.jpg)
4704/08/23
How many grids visited using Hadlock’s?
S
T
![Page 48: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/48.jpg)
4804/08/23
How many grids visited using Soukup’s?
S
T
![Page 49: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/49.jpg)
4904/08/23
Multi-Terminal Nets
• For a k-terminal net, connect the k terminals using a rectilinear Steiner tree with the shortest wire length on the maze.
• This problem is NP-Complete.• Just want to find some good heuristics.
![Page 50: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/50.jpg)
5004/08/23
Multi-Terminal Nets
This problem can be solved by extending the Lee’s algorithm:– Connect one terminal at a time, or– Search for several targets simultaneously, or– Propagate wave fronts from several different sources
simultaneously.
![Page 51: Lecture17 Routing](https://reader033.vdocuments.us/reader033/viewer/2022061116/546523feb4af9f41078b4c42/html5/thumbnails/51.jpg)
5104/08/23
Extension to Multi-Terminal Nets
S
T
0 1 2
2
3
3
3T
T2 2 2
1 1 1
1st Iteration 2nd Iteration
0 0 0 0S S S S