Routing

VLSI Routing
Routing
• Problem
 Given a placement, and a fixed number of metal
layers, find a valid pattern of horizontal and vertical
wires that connect the terminals of the nets
 Levels of abstraction:
o Global routing
o Detailed routing
• Objectives
 Cost components:
o
o
o
o
Area (channel width)
Wire delays
Number of layers
Additional cost components: number of bends, vias
Global vs. Detailed Routing
• Global routing
 Input: detailed placement, with exact
terminal locations
 Determine “channel” (routing region)
for each net
 Objective: minimize area (congestion),
and timing (approximate)
• Detailed routing
 Input: channels and approximate
routing from the global routing phase
 Determine the exact route and layers
for each net
 Objective: valid routing, minimize area
(congestion), meet timing constraints
 Additional objectives: min via, power
Figs. [©Sherwani]
Routing Environment
• Chip architecture
 Full-custom
 Standard cell
 Gate Array
Routing Environment
• Chip architecture
 Full-custom:
o No constraint on routing regions
Objective functions are the objective functions
of general routing problem.
•Routability
•Area Minimization
•Total wire length minimization
•Maximum wire length minimization
Routing Environment
• Chip architecture
Feedthroughs
 Standard cell:
o Variable channel height?
o Feed-through cells connect
channels
Channel
Failed net
•Channels do not have predetermined capacity
•Feedthroughs have predetermined capacty
•Area minimization
•Minimization to total wire length
•Minimization of maximum wire lenght
Routing Environment
• Chip architecture
 Gate Array:
Tracks
o Fixed channel height
o Limited switchbox connections
o Prefabricated wire segments
have different weights
Failed connection
•Routability
•Minimize total wire length
•Minimize maximum wire length
Figs. [©Sherwani]
Maze Routing (Lee Algorithm)
• Similar to breadth-first search
5
 Very simple algorithm
5 4
5
 Works on grid graph
4 3
t5 4 5
 Time complexity: grid size (NxN)
3 2
3 4
• Algorithm
2 1 s 1 2 3
3 2 1 2 3 4
 Propagate a “wave” from source
until hit the sink
(implemented using a queue)
 Trace back to find the path
• Guaranteed to find the optimal solution
 Usually multiple optimal solutions exist
• More than two terminals?
 For the third terminal, use the path between the first
two as the source of the wave
5
4
5
5
Multiple Terminal Nets
D
C
4
B 5
4
3
2
1
A
3
4
2
1
3
4
2
3
E
4
Multiple Terminal Nets
D
C
4
B 5
4
3
2
1
A
3
4
2
1
3
4
2
3
E
4
Multiple Terminal Nets
D
2
1
A
2
3
C
1
2
B
1
1
2
1
2
1
2
1
2
E
Multiple Terminal Nets
2
2
2
1
1
D
2
C 1
1
1
B
A
1
2
1
2
1
2
1
2
1
2
1
2
2
E
Finding More Desirable Paths
Finding More Desirable Paths
2
2
2
2
2
2
2
2
3
2
1
2
2
2
2
2
1
3
3
3
3
2
2
3
3
3
3
2
3
1
1
2
3
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
Finding More Desirable Paths
2
2
2
2
2
2
2
2
3
2
1
2
2
2
2
2
1
3
3
3
3
2
2
3
3
3
3
2
3
1
1
2
3
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
Finding More Desirable Paths
3
5
1
2
5
4
2
2
5
5
Finding More Desirable Paths
6
8
5
3
1
4
5
2
8
5
2
5
8
5
8
2
Finding More Desirable Paths
13 11 9
6
15
11
9
7
5
3
1
4
14
11
8
5
2
16
14
11
8
5
2
5
17
14
11
8
5
8
2
Finding More Desirable Paths
13 11 9
6
12
11
9
7
5
3
1
4
15
14
11
8
5
2
16
14
11
8
5
2
5
17
14
11
8
5
8
2
Finding More Desirable Paths
13 11 9
6
12
11
9
7
5
3
1
4
13
14
11
8
5
2
16
14
11
8
5
2
5
17
14
11
8
5
8
2
Speed Improvement
S
T
Hadlock’s Algorithm
2
2
2
2
2
2
1
1
1
1
2
2
1
1
1
2
1
S
0
2
1
1
2
2
2
T
Soukup’s Algorithm
T
S
Line Search (Probe) Algorithm
Mikami-Tabuchi’s Algorithm
1
1
0
2
2
2
1
1
1
1
0
1
0
1
Line Search (Probe) Algorithm
Hightower’s Algorithm
1
1
0
2
2
2
1
1
1
1
0
1
0
1
Multi Terminal Nets
Steiner Tree
Minimize Wire length
Rectilinear Steiner Tree
Steiner
point
MST
Steiner tree