Sie sind auf Seite 1von 0

w

w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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.
a
b
c
d
a b
c
d
1
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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
extended
channel
intersection
graph
2
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Global-Routing Problem
Given a netlist N={N
1
, N
2
, . . . , N
n
}, a routing graph G = (V, E), nd a
Steiner tree T
i
for each net N
i
, 1 i n, such that U(e
j
) c(e
j
), e
j
E
and

n
i=1
L(T
i
) is minimized,
where
c(e
j
): capacity of edge e
j
;
x
ij
= 1 if e
j
is in T
i
; x
ij
= 0 otherwise;
U(e
j
) =

n
i=1
x
ij
: # of wires that pass through the channel corre-
sponding to edge e
j
;
L(T
i
): total wirelength of Steiner tree T
i
.
For high-performance, the maximum wirelength (max
n
i=1
L(T
i
)) is mini-
mized (or the longest path between two points in T
i
is minimized).
3
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Global Routing in dierent Design Styles
flexible channels
most general problem
flexible channels
fixed feedthroughs
fixed channels
fixed routing tracks
switchbox constraints
global routing
full custom standard cell
gate array
FPGA
4
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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.
failed
net
feedthroughs
5
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Global Routing in Gate Array
Objective
Guarantee 100% routability.
For high performance,
Minimize the maximum wire length.
Minimize the maximum path length.
failed connection
2 tracks
Each channel has a capacity of 2 tracks.
6
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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.
7
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Each channel has a capacity of 2 tracks.
s s
s
s
failed connection
switch module
s
?
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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 (com-
plexity?)
globalrouting algorithm
sequential approach
twoterminal multiterminal
linesearch
maze Steinertree based
Lee Hadlock Soukup
concurrent approach
hierarchical integer programming
8
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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)
7
6
9 10
2 3 1
5
3,2
1,2
3,2
4
8
1 2 3
4 5 6 7
8 9 10
A B
7
6
5
9 10
2
2,1 2,1
0,0 0,1 0,4
2,5 2,1
3
7
6
9 10
2
2,1 2,1
0,0 0,1 0,4
2,5 2,1
3 1
5
3,2
1,2
3,2
4
8
1 2 3
4 5
6
7
8 9 10
A B
1,2 1,2 1,6
3,2 3,6
3,2 3,2
0,1 0,2 0,5
7
6
5
route AA via 567
7
6
5
1,0 1,2 1,4
route BB via 567
route BB via 52369107 updated channel graph maze routing for nets A and B
A B
A B
9
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Global Routing by Integer Programming
Suppose that for each net i, there are n
i
possible trees t
i
1
, t
i
2
, . . . , t
i
ni
to route the net.
Constraint I: For each net i, only one tree t
i
j
will be selected.
Constraint II: The capacity of each cell boundary c
i
is not exceeded.
Minimize the total tree cost.
Question: Feasible for practical problem sizes?
Key: Hierarchical approach!
1
2
1
3
1
2 2
3
1
2
1
3
1
2 2
3
1, 2 1, 3
2, 3 1, 2
C
2
= 2
= 2 C
1
= 2 C
4
= 2 C
3
C
2
C
4
C
1
C
3
C
4
C
1
C
2
C
3
C
2
C
4
C
1
C
2
C
4
C
3
C
1
C
3
C
2
C
1
C
4
C
3
trees of net 1
trees of net 2 trees of net 3
an routing instance grid graph a feasible routing
10
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
An Integer-Programming Example
Boundary t
1
1
t
1
2
t
1
3
t
2
1
t
2
2
t
2
3
t
3
1
t
3
2
B1 0 1 1 1 0 1 1 0
B2 1 0 1 0 1 1 1 0
B3 0 1 1 1 1 0 0 1
B4 1 1 0 0 1 1 0 1
g
i,j
: cost of tree t
i
j
g
1,1
= 2, g
1,2
= 3, g
1,3
= 3, g
2,1
= 2, g
2,2
= 3, g
2,3
= 3, g
3,1
= 2, g
3,2
=
2.
Minimize 2x
1,1
+3x
1,2
+3x
1,3
+2x
2,1
+3x
2,2
+3x
2,3
+2x
3,1
+2x
3,2
subject to
x
1,1
+x
1,2
+x
1,3
= 1 (Constraint I : t
1
)
x
2,1
+x
2,2
+x
2,3
= 1 (Constraint I : t
2
)
x
3,1
+x
3,2
= 1 (Constraint I : t
3
)
x
1,2
+x
1,3
+x
2,1
+x
2,3
+x
3,1
2 (Constraint II : B1)
x
1,1
+x
1,3
+x
2,2
+x
2,3
+x
3,1
2 (Constraint II : B2)
x
1,2
+x
1,3
+x
2,1
+x
2,2
+x
3,2
2 (Constraint II : B3)
x
1,1
+x
1,2
+x
2,2
+x
2,3
+x
3,2
2 (Constraint II : B4)
x
i,j
= 0, 1, 1 i, j 3
11
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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 RR grid regions
with boundary capacity equal to C tracks.
Let R
l
be the # of grid regions of a given cut line l; a cut line can be divided into
M =
R
l
C
sections.
Global routing can be formulated as a linear assignment problem:
x
i,j
= 1 if net i is assigned to section j; x
i,j
= 0 otherwise.
Each net crosses the cut line exactly once:

M
j=1
x
ij
= 1, 1 i N.
Capacity constraint of each section:

N
i=1
x
ij
C, 1 j M.
w
ij
: cost of assigning net i to section j. Minimize

N
i=1

M
j=1
w
ij
x
ij
.
Upper leftmost pin of net
Bounding box
Ideal sections to route this net
Lower rightmost pin of net
Section
Cut line
12
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
The Routing-Tree Problem
Problem: Given a set of pins of a net, interconnect the pins by a rout-
ing tree.
gate array standard cell building block
Minimum Rectilinear Steiner Tree (MRST) Problem: Given n points
in the plane, nd a minimum-length tree of rectilinear edges which con-
nects the points.
MRST(P) = MST(P S), where P and S are the sets of original points
and Steiner points, respectively.
13
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
Steiner
points
MRST
minimum spanning tree
MST
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
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(MST(P))
Cost(MRST(P))

3
2
.
Hwang, On Steiner minimal tree with rectilinear distance, SIAM J. Applied Math.,
1976.
Best existing approximation algorithm: Performance bound
61
48
by Foessmeier et al.
Foessmeier et al, Fast approximation algorithm for the rectilinear Steiner prob-
lem, Wilhelm Schickard-Institut fur Informatik, TR WSI-93-14, 93.
Zelikovsky, An
11
6
approximation algorithm for the network Steiner problem, Al-
gorithmica., 1993.
Hanan grid
MRST
MST
Cost(MST)/Cost(MRST) > 3/2
14
w
w
w
.
j
n
t
u
w
o
r
l
d
.
c
o
m
A Simple Performance Bound
Easy to show that
Cost(MST(P))
Cost(MRST(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.


1
2
3
4
5
6
7
8
2
7
6
1 3
8
4 5
1
2
3
4
5
6
7
8
2
1
3
5
4
Cost(T) <= 2 Cost(T)
T
T
depthfirst traversal
every edge is visited twice
15

Das könnte Ihnen auch gefallen