Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduction to Routing
03/16/16
Netlist
INV
Routing
AND
OR
Floorplan/Placement
03/16/16
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.
03/16/16
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?
03/16/16
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).
Steiner
Node
03/16/16
03/16/16
Kinds of Routing
Global Routing
Detailed Routing
Channel
Switchbox
Others:
Maze routing
Over the cell routing
Clock routing
03/16/16
Concurrent Approach:
Consider all nets simultaneously, i.e., no ordering.
Can be formulated as integer programming.
03/16/16
Classification of Routing
03/16/16
10
03/16/16
11
03/16/16
12
Global Routing
03/16/16
13
Region Definition
Divide the routing area into routing regions of simple shape
(rectangular):
Switchbox
Channel
03/16/16
14
Routing Regions
03/16/16
15
Routing Regions in
Different Design Styles
Gate-Array
Standard-Cell
Full-Custom
Feedthrough Cell
03/16/16
16
Region Assignment
Assign routing regions to each net. Need to consider timing
budget of nets and routing congestion of the regions.
03/16/16
17
Graph Modeling of
Routing Regions
Grid Graph Modeling
Checker Board Graph Modeling
Channel Intersection Graph Modeling
03/16/16
18
Grid Graph
A terminal
03/16/16
19
1
2
1
1
1
1
A terminal
03/16/16
20
A terminal
21
03/16/16
22
03/16/16
23
Pin Assignment
Assign pins on routing region boundaries for each net.
(Prepare for the detailed routing stage for each region.)
03/16/16
24
03/16/16
25
Maze Routing
03/16/16
26
Objective:
Find the shortest path connecting S and T.
03/16/16
27
Grid Graph
S
S
T
Area Routing
X
X
Grid Graph
(Maze)
03/16/16
X
X
Simplified
Representation
28
Maze Routing
S
T
03/16/16
29
Lees Algorithm
An
03/16/16
30
Basic Idea
A Breadth-First Search (BFS) of the grid graph.
Always find the shortest path possible.
Consists of two phases:
Wave Propagation
Retrace
03/16/16
31
An Illustration
S
03/16/16
3
5
T
32
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.
3
T
After Step 0
After
Step 3
03/16/16
3
5
T
After Step 6
6
33
Retrace
Trace back the actual route.
Starting from T.
At vertex with k, go to any vertex with label k-1.
S
3
5
T
Final labeling
03/16/16
34
35
03/16/16
36
03/16/16
37
03/16/16
38
03/16/16
39
40
S
S
2. Double Fan-Out:
T
3. Framing:
S
T
T
03/16/16
41
Hadlocks Algorithm
to Reduce Run Time
03/16/16
42
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)
length
D
D
D
S
T
D: Detour
d(P) = 3
MD(S,T) = 6
L(P) = 6+2x3 = 12
03/16/16
So minimizing L(P) and d(P)
are the same.
43
Hadlocks Algorithm
Label vertices with detour numbers.
Vertices with smaller detour number are expanded
first.
Therefore, favor paths without detour.
3
2
1
1
1
2
3
2
1
S
0
0
1
2
2 2 2 2 2
1
2 2
2
0
0
0
2 T
1
2 2
2 2 2 2
03/16/16
44
Soukups Algorithm
to Reduce Run Time
03/16/16
45
Basic Idea
Soukups Algorithm: BFS+DFS
Explore in the direction towards the target without changing
direction. (DFS)
If obstacle is hit, search around the obstacle. (BFS)
46
T
03/16/16
47
T
03/16/16
48
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.
03/16/16
49
Multi-Terminal Nets
This problem can be solved by extending the Lees
algorithm:
Connect one terminal at a time, or
Search for several targets simultaneously, or
Propagate wave fronts from several different sources
simultaneously.
03/16/16
50
2 T3
2nd Iteration
S
0 S0 S0 S0
1
03/16/16
51