Graph Models for Global Routing: Grid Graph
Each cell is represented by a vertex.
Two vertices are joined by an edge if the corresponding cells are adjacent to each other. The occupied cells are represented as lled circles, whereas the others are as clear circles.
w w
. w
c
u t jn
d
r o w
a
. ld
b
m o c
d c
Graph Model: Channel Intersection Graph
Channels are represented as edges. Channel intersections are represented as vertices. Edge weight represents channel capacity.
Extended channel intersection graph: terminals are also represented as vertices.
channel intersection graph
w w
extended channel intersection graph
. w
u t jn
r o w
. ld
m o c
Global-Routing Problem
Given a netlist N={N1 , N2 , . . . , Nn}, a routing graph G = (V, E ), nd a Steiner tree Ti for each net Ni, 1 i n, such that U (ej ) c(ej ), ej E n and i=1 L(Ti ) is minimized, where c(ej ): capacity of edge ej ; xij = 1 if ej is in Ti; xij = 0 otherwise;
n U (ej ) = i=1 xij : # of wires that pass through the channel corresponding to edge ej ;
L(Ti): total wirelength of Steiner tree Ti. For high-performance, the maximum wirelength (maxn i=1 L(Ti )) is minimized (or the longest path between two points in Ti is minimized).
w w
. w
u t jn
r o w
. ld
m o c
Global Routing in dierent Design Styles
global routing
full custom flexible channels most general problem
standard cell flexible channels
fixed feedthroughs
w w
. w
u t jn
r o w
gate array
. ld
m o c
FPGA
fixed channels
fixed routing tracks switchbox constraints
Global Routing in Standard Cell
Objective
Minimize total channel height. Assignment of feedthrough: Placement? Global routing? For high performance, Minimize the maximum wire length. Minimize the maximum path length.
w w
. w
u t jn
r o w
failed net
. ld
m o c
feedthroughs
Global Routing in Gate Array
Objective Guarantee 100% routability. For high performance, Minimize the maximum wire length. Minimize the maximum path length.
w w
. w
u t jn
r o w
. ld
m o c
2 tracks
failed connection Each channel has a capacity of 2 tracks.
Global Routing in FPGA
Objective Guarantee 100% routability. Consider switch-module architectural constraints. For performance-driven routing, Minimize # of switches used. Minimize the maximum wire length. Minimize the maximum path length.
w w
. w
u t jn
r o w
. ld
m o c
s s
?
s
failed connection Each channel has a capacity of 2 tracks.
w w
. w
u t jn
r o w
switch module
. ld
m o c
Classication of Global-Routing Algorithm
Sequential approach: Assigns priority to nets; routes one net at a time based on its priority (net ordering?). Concurrent approach: All nets are considered at the same time (complexity?)
globalrouting algorithm
sequential approach
twoterminal
linesearch
w w
. w
u t jn
Soukup
r o w
. ld
m o c
concurrent approach
multiterminal
hierarchical integer programming
maze
Steinertree based
Lee
Hadlock
Global-Routing: Maze Routing
Routing channels may be modelled by a weighted undirected graph called channel connectivity graph. Node channel; edge two adjacent channels; capacity: (width, length)
1 3,2 1 4 8 2 5 A B 3 A 6 9 7 10 B 4 1,2 5 1,2 2 3,2 3
2 2,1
0,0 5
w w
2,1 6 7 0,1 0,4 2,1 9 2,5 10
n j . w
1 3,2 4 1,2 3,2 8
3,2 8
w tu
2 2,1 5 0,0 6 0,1 3 2,1 2,1 9
or
3,2 1,2 3,2 9 7 0,4 2,5 10
1,6
. ld
7 10 1 4 8
m o c
0,1 5 0,2 6 1,0 5 1,2 6
7 0,5
route AA via 567
7 1,4
3,6
route BB via 567
2 5 A B
3 A 6 9 7 10 B
route BB via 52369107
updated channel graph
maze routing for nets A and B
9
Global Routing by Integer Programming
i i Suppose that for each net i, there are ni possible trees ti 1 , t2 , . . . , tni to route the net. Constraint I: For each net i, only one tree ti j will be selected. Constraint II: The capacity of each cell boundary ci is not exceeded. Minimize the total tree cost. Question: Feasible for practical problem sizes?
Key: Hierarchical approach! an routing instance
2 1 1 1, 2 3
grid graph
C2 = 2
C2
C4
w w
C1 C4 C3
. w
2
C2 C1 C3
u t jn
C1 = 2
r o w
C3 = 2
C2
. ld
C2
m o c
2 1 2 3
C2 C1
a feasible routing
1
1, 3 3
C4 = 2
2, 3
1, 2
C1 C3 C3
C4 C1
C4
C4 C3
trees of net 1
trees of net 2
trees of net 3
10
An Integer-Programming Example
Boundary B1 B2 B3 B4 t1 1 0 1 0 1 t1 2 1 0 1 1 t1 3 1 1 1 0 t2 1 1 0 1 0 t2 2 0 1 1 1 t2 3 1 1 0 1 t3 1 1 1 0 0
gi,j : cost of tree ti j g1,1 = 2, g1,2 = 3, g1,3 = 3, g2,1 = 2, g2,2 = 3, g2,3 = 3, g3,1 = 2, g3,2 = 2. Minimize 2x1,1 + 3x1,2 + 3x1,3 + 2x2,1 + 3x2,2 + 3x2,3 + 2x3,1 + 2x3,2 subject to x1,1 + x1,2 + x1,3 x2,1 + x2,2 + x2,3 x3,1 + x3,2 x1,2 + x1,3 + x2,1 + x2,3 + x3,1 x1,1 + x1,3 + x2,2 + x2,3 + x3,1 x1,2 + x1,3 + x2,1 + x2,2 + x3,2 x1,1 + x1,2 + x2,2 + x2,3 + x3,2 xi,j
w w
. w
u t jn
r o w
= = = =
. ld
m o c
I : t1 ) I : t2 ) I : t3 ) II : B 1) II : B 2) II : B 3) II : B 4)
t3 2 0 0 1 1
1 (Constraint 1 (Constraint 1 (Constraint 2 (Constraint 2 (Constraint 2 (Constraint 2 (Constraint 0, 1, 1 i, j 3
11
Hierarchical Global Routing
Marek-Sadowska, Router planner for custom chip design, ICCAD, 1986. At each level of the hierarchy, an attempt is made to minimize the cost of nets crossing cut lines. At the lowest level of the hierarchy, the layout surface is divided into R R grid regions with boundary capacity equal to C tracks. Let Rl be the # of grid regions of a given cut line l; a cut line can be divided into l M =R sections. C Global routing can be formulated as a linear assignment problem: xi,j = 1 if net i is assigned to section j ; xi,j = 0 otherwise. Each net crosses the cut line exactly once: Capacity constraint of each section:
wij : cost of assigning net i to section j . Minimize
w w
Cut line
j . w
Section
u t n
r o w
N x i=1 ij
. ld
m o c
M x j =1 ij
= 1, 1 i N .
C, 1 j M .
M w x . j =1 ij ij
N i=1 Upper leftmost pin of net
Bounding box
Ideal sections to route this net
Lower rightmost pin of net
12
The Routing-Tree Problem
Problem: Given a set of pins of a net, interconnect the pins by a routing tree.
gate array
Minimum Rectilinear Steiner Tree (MRST) Problem: Given n points in the plane, nd a minimum-length tree of rectilinear edges which connects the points. M RST (P ) = M ST (P S ), where P and S are the sets of original points and Steiner points, respectively.
w w
. w
u t jn
standard cell
r o w
. ld
m o c
building block
13
Steiner points
minimum spanning tree MST
w w
. w
u t jn
r o w
. ld
MRST
m o c
Theoretic Results for the MRST Problem
Hanans Thm: There exists an MRST with all Steiner points (set S ) chosen from the intersection points of horizontal and vertical lines drawn points of P . Hanan, On Steiners problem with rectilinear distance, SIAM J. Applied Math., 1966. Hwangs Theorem: For any point set P ,
Cost(M ST (P )) Cost(M RST (P ))
Hwang, On Steiner minimal tree with rectilinear distance, SIAM J. Applied Math., 1976. Best existing approximation algorithm: Performance bound
Foessmeier et al, Fast approximation algorithm for the rectilinear Steiner problem, Wilhelm Schickard-Institut f ur Informatik, TR WSI-93-14, 93. Zelikovsky, An 11 approximation algorithm for the network Steiner problem, Al6 gorithmica., 1993.
w w
n j . w
w tu
MST
or
. ld
3 . 2
m o c
61 48
by Foessmeier et al.
MRST
Hanan grid
Cost(MST)/Cost(MRST) > 3/2
14
A Simple Performance Bound
Easy to show that
Cost(M ST (P )) Cost(M RST (P ))
2.
Given any MRST T on point set P with Steiner point set S , construct a spanning tree T on P as follows: 1. Select any point in T as a root. 2. Perform a depth-rst traversal on the rooted tree T . 3. Construct T based on the traversal.
2 7 1 6 3 4 T 8 5 2
w w
. w
6 1 3
u t jn
7 8 4 5
r o w
2 1 6 3
. ld
8 4
m o c
5 1 3
T 5 4
depthfirst traversal every edge is visited twice
Cost(T) <= 2 Cost(T)
15