routing 1 outline –what is routing? –why routing? –routing algorithms overview –global...
Post on 21-Dec-2015
216 views
TRANSCRIPT
Routing 1
Outline– What is Routing?
– Why Routing?
– Routing Algorithms Overview
– Global Routing
– Detail Routing
– Shortest Path Algorithms
Goal– Understand routing problem
– Understand overview of routing algorithms
– Understand shortest path algorithms
What is Routing?
• Determination of component wiring– assignment of wires to routing areas
» restricted routing problems
» e.g. routing channel
– detailed wiring within areas
» layer assignment
» vias
• Goal– minimize routing area
» minimize wiring length
» minimize channel height
– minimize lengths of critical paths
– 100% completion in allocated space
» fixed wiring areas
» e.g. gate arrays, FPGAs
– minimize crosstalk
A
B CD
E
A
B CD
E
Why Routing?
• Hand routing impractical– 1k-100k nets in large chip designs
– prone to error
– example
» IBM TCM has 26 routing layers
» how to use layers?
• Multi-goal optimization– routing area
– delay
– cross-talk
– clock and power routing
– manufacturing yield
Objective Functions
• Minimize routing cost according to function– want fast but reasonably accurate metrics
– wiring area
» channel area = channel density * channel length
– wire length
» minimum spanning tree
» Steiner tree
» half-perimeter of bounding box
– wiring congestion
» track density along channels
1 2 4 3 1
peak density 4average 2.2peak/avg 1.82area = h*L
h
L
Types of Routers
• Global routers– function
» determine routing areas
» assign net to routing areas
» minimize global routing area, path lengths
– consider congestion, approximate path length
• Detail routers– goal
» route actual wires
» minimize routing area, path lengths
– general-purpose - maze, line probe
– restricted - channel, switchbox, river routers
• Specialized– power, clock routers
Example: Global Routing
A
B CD
E
A
B CD
E
A
B CD
E
A
B CD
E
Example: Detailed Routing
1
1 1
2 2 2
2 2
3
3
3
34
4
Shortest Path Algorithms
• Find shortest path between two vertices in weighted graph– graph with edge weights
– weight is distance, congestion, etc.
– search graph from source to destination
– backtrace to source once destination is found
• Used especially in global routing
13
3
1
10
2
5
1
2
31
4
S
D
Shortest Path Algorithms
• Single Pair Shortest Path– given graph (V, E) with edge weights
– find lowest weight path between vertex S and D
– actually shortest paths from S to all others
• Application to Global Routing– routing areas are edges
– module and area boundaries are vertices
– set weight as combination of routing distance and wire congestion
– route critical wires first
» critical to circuit timing
– edge weights steer wires away from congested areas
Dijkstra’s Algorithm
• Idea– put neighbors of vertex on list along with cost
» edge cost to get to vertex
– from list mark least-cost next vertex with cost
– add neighbors of new vertex to vertex list
– stop when destination vertex is marked
– time O(E) for E edges, O(V2) for complete graph
• Definitions– n - number of vertices
– u - source
– wt(v,w) - edge weight betwee v and w
Code
for i = 1 to n doif ((u,i) exists) D[1] = wt(u,i)else D[i] = INFP[i] = u
V’ = V - u; D[u] = 0while (|V’| > 0)
select v such that D[v] is min of D[w] for w in V’V’ = V’ - vfor w in V’
if (D[w] > D[v] + wt(v,w))D[w] = D[v] + wt(v,w) /* D[w] is len of shortest path from u to w */
P[w] = v /* P[w] is parent of w */for w in V
/* list shortest path from w to u */q = wprint qwhile (q != u)
q = P[q]print q
print q
Example
13
3
1
10
2
5
1
2
31
4
S
D
0
1
3 3
13
3
1
10
2
5
1
2
31
4
S
D
0
1
3 3
2
13
3
1
10
2
5
1
2
31
4
S
D
0
1
3 3
2
4
12
13
3
1
10
2
5
1
2
31
4
S
D
0
1
3 3
2
4
5
5
13
3
1
10
2
5
1
2
31
4
S
D
0
1
3 3
2
4
5
12