Detailed Routing (II)

advertisement
VLSI Physical Design Automation
Detailed Routing (II)
Prof. David Pan
dpan@ece.utexas.edu
Office: ACES 5.434
3/14/2016
1
Yoshimura and Kuh’s Method
Source:
“Efficient Algorithms for Channel Routing”
by T. Yoshimura and E. Kuh
IEEE Trans. On Computer-Aided Design of Integrated
Circuits and Systems.
Vol. CAD-1, pp25-35, Jan 1982
3/14/2016
2
Characterizing Channel Routing Problem
0
1
4
5
1
6
7
0 4
9
10 10
4
10
1
7
6
5
9
2
3
2
1
3
8
5
4
5
3
3
5
2
6
8
9
8
9
1
10
9
8 7
2
3
7
5
6
8
2
4
6
7
10
Vertical constraint graph Gv
3/14/2016
9
Horizontal constraint graph
3
Zone Representation
0 1 4 5 1 6 7 0 4 9 10 10
2 3 5 3 5 2 6 8 9 8 7 9
2
Zone:
1
2
3
1
2
3
4
5
1
1
2
3
4
5
1
2
4
5
2
4
6
4
6
7
2 3
4
7
8
4
7
8
9
4
7 7 9
8 9 10
9 10
5
Remarks: A new zone appears when some
3/14/2016
intervals begin
after some intervals end.
4
Zone Representation
2
1
2
3
4
5
1
2
3
1
2
3
4
5
1
2
3
4
5
Zone:
2
4
6
1
2
4
5
7
4
6
7
4
7
8
4
7
8
9
7 7 9
8 9 10
9 10
8
9
10
6
1
2
3
3/14/2016
4
5
5
Merging of Nets
1
4
10
5
9
7
3
8
6
1
2
3
4
5
7
1
2
3
4
5,6
7
8
9
6
10
2
1
4
7
9
5,6
2
10
3
8
8
9
10
3/14/2016
6
Scanning the Zones
1
2
3
4
5
7
1
2
3
4
7
1,7
2
3
4
8
9
6
10
Left = {1, 3, 5}
Right = {6}
10
Left = {1, 2, 3}
Right = {7}
10
Left = {2, 3, 5.6}
Right = {8, 9}
8
9
5,6
8
9
5,6 3/14/2016
7
Scanning of Zones
1,7
2
3,8
4
10
5,6,9
1,7
2
3,8
4,10
Left = {2, 3.8, 4}
Right = {10}
5,6,9
3/14/2016
8
Merging VCG
1
4
5
10
9
3
8
1
7
9
5,6
6
10
4,10
1,7
5,6,9
2
10
7
2
1,7
4
2
4
3
8
1,7 4
2
9
5,6
5,6,9
3,8
10
3,8
3/14/2016
2
3
8
9
Assigning Tracks
Track 1
4,10
Track 2
1,7
5,6,9
Track 5 (or 4) 2
Track 3
3,8
3/14/2016
Track 4 (or 5)
10
Merging of Nets
• Make sure that the VCG remains acyclic
• There are two approaches:
– First approach: Merge the pairs sequentially. Select pairs to
minimize the increase in the length of the longest path in the
VCG.
– Second approach: Merge all pairs simultaneously. Select
pairs to maximize the total no. of matches.
• We will focus on the second approach: “simultaneous
merging”.
3/14/2016
11
Shortcomings of the First Approach
Observation: Merging
subsequent merging
1
a
b
c
2
d
e
3
g
two
a
d
h
k
g
k
3
4
h
c
k
block
a.d
f
h
b.e
f
may
f
e
f
2
nodes
b
g
1
a.d
b.e
c
4
h
of
c
g
k
Net f cannot be merged with either c or g. But, if we
merged a with d, c with e then f can be merged with net b
3/14/2016
12
Processing Zone
Processing
Zone 1
a
b
c
d
e
h
d
b
f
g
k
Bipartite graph
a
LEFT={a,b,c}
b
RIGHT={d,e}
a
e
h
g
k
c
d
f
Delay merging!!(Both d and e
do not terminate at zone 2
e
c
Cyclic conflict!!
Processing Zone 2
a
b
c
g
d
Modify a
matching
e
b
f
c
d
Merge a&d, b&f, delay merging c&e
LEFT={a.d, b.f,c,g}
e
f
g
3/14/2016
RIGHT={h,k,e}
Merge two nets when both of them
terminate!
13
Simultaneous Merging
Use the maximum cardinality matching in
bipartite graph:
1
2
3
4
5
1
3
5
7
8
9
10
6
Left = {1, 3, 5}
Right = {6}
Find the maximum matching
6 in this bipartite graph such that
the resultant VCG is still acyclic.
3/14/2016
14
Cyclic Conflicts
Simultaneous merging can produce cyclic conflicts:
Bipartite graph, G
2
3
1
4
VCG
2
3
1
3
1
4
2
4
2
3
1,3
Cyclic!
1
4
3/14/2016
2,4
15
Cyclic Conflicts
Bipartite graph
G(V,E)
Algorithm AA
A set of edges E’
Theorem: Any matching in G(V,E-E’) is feasible.
3/14/2016
16
An Example of Algorithm AA
a
b
c
d
N = set of nodes that
have in-degree 0
g
h
g
a
d
b
c
i
i
Remove edges between
vertices in N
a
b
c
d
g
h
h
g
a
i
b
c
h
i
isolated
3/14/2016
17
An Example of Algorithm AA
a
b
c
N
g
h
g
a
i
i
b
c
h
a
b
c
isolated
g
h
a
b
c
g
h
i
i
No isolated node. Then
select among N the node
with the smallest degree in
the bipartite graph. Remove
and put its edges to E’.
g
3/14/2016
b
c
i
h
18
An Example of Algorithm AA
b
c
b
c
b
c
N
g
h
g
i
b
g
h
c
h
N
isolated
b
c
i
h
i
i
i
h
b
c
h
isolated
3/14/2016
19
An Example of Algorithm AA
b
c
h
b
c
h
N
b
c
h
At the end, all edges are removed, and
E’ = {(a,h)}
Since E’  , according to the corollary, any
matching in the bipartite graph G(V, E-E’) is
feasible. We will find a matching in G(V, E-E’)
Why does
it work?
3/14/2016
20
Comments
 Avoid unnecessary introduction of dogleg, use a
process “merging of subnets”
subnet i and subnet j can be merged merging subnet i and subnet j
will not increase the longest path length passing through H
 Reduce CPU time by:
# of edges/nodes in the bipartite graph is limited by a parameter(e.g.
=3 in the program)
 Need not start at zone 1
In general, can obtain better results by starting at the max density
zone
Max density zone
3/14/2016
21
Routing Examples by Y-K’s Algorithm
number of tracks=18
maximum density =18
Example 3c
number of tracks=17
maximum density =17
Example 4b
3/14/2016
22
Routing Examples by Y-K’s Algorithm
(Cont’d)
number of tracks=20
maximum density =20
Example 5
Deutsch’s Difficult example without dogleg
number of tracks=28
maximum density =19
3/14/2016
23
Deutsch’s Difficult Example
# columns =174, # nets=72
density=19
Deutsch’s difficult example with doglegs
number of tracks=20
maximum density=19
3/14/2016
24
Summary of Yoshimura and Kuh’s Algorithm
 Split multi-terminal nets into 2-terminal subnets
 Merging subnets to share tracks
 Consider both HCG and VCG
 Global matching and delayed merging help
Shortcomings
 Cannot produce unrestricted doglegs
 VCG cannot have cycle
3/14/2016
25
Greedy Channel Router
R.L. Rivest and C.M. Fiduccia “ A Greedy Channel
Router”, 19th DAC, 1982 P418-424
 A simple linear time algorithm
 Guarantee the completion of all the nets (may extend
to right-hand side of the channel)
 Produce both restricted doglegs and unrestricted
doglegs
3/14/2016
26
Overview of Greedy Router
Left-to-right, Column-by-column scan
c:=0;
while (not done) do
begin
c:=c+1;
complete wiring at column c;
end;
1
3 1
2
1
5
In general, a net may be
1
3
(1) empty (net 5)
(2) unsplit (nets 1,4)
4
3
(3) split (net 3)
(4) completed (net2)
2
3/14/2016
1
2
3
4
5
4
4
27
Operations at Each Column
At each column, the greedy router tries to maximize
the utility of the wiring produced:
A: Make minimal feasible top/bottom connections;
B: Collapse split nets;
C: Move split nets closer to one another;
D: Raise rising nets/lower falling nets;
E: Widen channel when necessary;
F: Extend to next column;
1
3 1
2
1
2
2
3
1
4
3/14/2016
5
5
4
4
28
(A) Make Minimal Feasible Top/Bottom
Connections
1
2
3
4
1
1
2
3
1
2
3
4
4
1
2
1
B
B*
1
0
0
1
2
3
4
2
C
2
3
2
1
4
E
1
2
3
4
5
5
C*
D
D*
2
5
5
3
2
1
4
3
0
A*
2
3
2
2
3
1
0
4
A
1
1
2
3
4
1
2
3
4
3
5
5
E*
F
F*
3/14/2016
29
( B ) Collapse Split Nets
2
2
1
3
1
3
2
2
0
0
1
3
4
1
4
0
G
0
H
1
H*
0
2
1
2
3
4
3
2
1
2
3
4
3
1
3
4
1
4
0
G*
1
0
1
1
2
1
2
2
1
2
0
0
0
I
I*
J
3/14/2016
0
0
J*
30
( C ) Move Split Nets Closer
0
0
1
2
1
1
2
1
2
2
0
0
k
k*
3/14/2016
31
( D ) Rising/Falling
1
1
falling
rising
falling
3
4
falling
rising
falling
3
4
0
0
L
L*
3/14/2016
32
( E ) Insert New Track
0
0
1
5
1
1
5
1
6
6
7
7
M
M*
3/14/2016
33
( F ) Extend to Next Column
0
1
5
1
6
7
7
N
3/14/2016
34
Comments on Greedy Router
(Rivest&Fiduccia 1982)
 Always succeed (even if cyclic conflict is present);
 Allows unrestricted dogleg;
 Allows a net to occupy more than 1 track at a given column;
 May use a few columns off the edge;
1 3
1 2
1 5
Unrestricted
dogleg
2
1 3 3
4 5 4
Net 1 occupies two tracks at this
column; it also “ wraps-around
3/14/2016
4
A
column
off the edge
35
Parameters to Greedy Router
 Initial-channel-width
icw
 Minimum-jog-length
mjl
 Steady-net-constant
snc
 Usually start icw as d. the density
 Mjl controls the number of vias, use a large
mjl for fewer vias
 Snc also controls # of vias, typical value=10
3/14/2016
36
Experimental Results
 Runs very fast
 20-track solution to the Deutsch’s Difficult
Example
3/14/2016
37
Download