Embedded Systems - Raj Kamal
Embedded Systems - Raj Kamal
5/22/2019 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
5/22/2019 2
Characterizing Channel Routing Problem
0 1 4 5 1 6 7 0 4 9 10 10
4 10
1 7
5 6
9
2
3 8
2 3 5 3 5 2 6 8 9 8 7 9
1 4 10 1
2
3
5 9 7
5 4 6
6
3 8
2 8 7
10
Vertical constraint graph Gv 9
Horizontal constraint graph
5/22/2019 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 1 1 1 1 2 4 4 4 7 7 9
2 2 2 2 4 6 7 7 8 9 10
3 3 3 4 6 7 8 8 9 10
4 4 5 9
5 5
Zone: 1 2 3 4 5
Remarks: A new zone appears when some
intervals begin after some intervals end.
5/22/2019 4
Zone Representation
2 1 1 1 1 2 4 4 4 7 7 9
2 2 2 2 4 6 7 7 8 9 10
3 3 3 4 6 7 8 8 9 10
4 4 5 9
5 5
1 7
2 8
3 9
4 10
5 6
Zone: 1 2 3 4 5
5/22/2019 5
Merging of Nets
1 4 10
5 9 7 1 7
2 8
3 9
3 8 6 4 10
5 6
2
4 10
1 7 1 7
2 8
9 3 9
5,6 4 10
5,6
2 8
3 5/22/2019 6
Scanning the Zones
1 7
2 8 Left = {1, 3, 5}
3 9
4 10 Right = {6}
5 6
1 7
2 8 Left = {1, 2, 3}
3 9
4 10 Right = {7}
5,6
1,7
2 8 Left = {2, 3, 5.6}
3 9
4 10 Right = {8, 9}
5,6 5/22/2019 7
Scanning of Zones
1,7
2 Left = {2, 3.8, 4}
3,8
4 10 Right = {10}
5,6,9
1,7
2
3,8
4,10
5,6,9
5/22/2019 8
Merging VCG
1 4 10 4 10
1 7
5 9 7
5,6 9
3 8 6
2 8
2 3 10
10
4,10
1,7 1,7 1,7 4
4
5,6,9 5,6 9
5,6,9
2 8
2 3,8 3
2 3,8
5/22/2019 9
Assigning Tracks
4,10 Track 1
1,7 Track 2
5,6,9 Track 3
5/22/2019 10
Merging of Nets
5/22/2019 11
Shortcomings of the First Approach
Observation: Merging of two nodes may block
subsequent merging
1 2 3 4
a d h a d
f
b e b
c f e h
g k c
g k
1 2 3 4
a.d h a.d
b.e f
c f b.e h
g k k
c g
5/22/2019 12
Processing Zone
Processing
Zone 1 a d h a d
b e f
b
c f e h
g k c
g k
Bipartite graph a d
Delay merging!!(Both d and e
LEFT={a,b,c} b
e do not terminate at zone 2
RIGHT={d,e} c
Cyclic conflict!!
Processing Zone 2
Merge a&d, b&f, delay merging c&e
a d Modify a d
matching LEFT={a.d, b.f,c,g}
b e b e
RIGHT={h,k,e}
c f c f
Merge two nets when both of them
g g terminate!
5/22/2019 13
Simultaneous Merging
Use the maximum cardinality matching in
bipartite graph:
1 7
2 8 Left = {1, 3, 5}
3 9
4 10 Right = {6}
5 6
1
Find the maximum matching
3 6 in this bipartite graph such that
5
the resultant VCG is still acyclic.
5/22/2019 14
Cyclic Conflicts
Simultaneous merging can produce cyclic conflicts:
1,3
2 3
Cyclic!
1 4
2,4
5/22/2019 15
Cyclic Conflicts
5/22/2019 16
An Example of Algorithm AA
N = set of nodes that
have in-degree 0
a g
b h g a d
c i
d b c i
Remove edges between
vertices in N h
a g
b h g a i
c i
d c h
isolated b
5/22/2019 17
An Example of Algorithm AA
N
a g g a i
b h
c i b c h
No isolated node. Then
a g select among N the node
b h with the smallest degree in
the bipartite graph. Remove
c i and put its edges to E’.
isolated
a g g c i
b h
c i 5/22/2019 b h 18
An Example of Algorithm AA
N
g g c i
b h
c i b h
g N
isolated b c i
b h
c i h
b h
c i b c h
isolated
5/22/2019 19
An Example of Algorithm AA
h N
b
b c h
c
b h
c
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?
5/22/2019 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
5/22/2019 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
5/22/2019 22
Routing Examples by Y-K’s Algorithm
(Cont’d)
number of tracks=20
maximum density =20
Example 5
number of tracks=28
maximum density =19
5/22/2019 23
Deutsch’s Difficult Example
# columns =174, # nets=72
density=19
5/22/2019 24
Summary of Yoshimura and Kuh’s Algorithm
5/22/2019 25
Greedy Channel Router
5/22/2019 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) empty (net 5) 1
3
(2) unsplit (nets 1,4)
4
(3) split (net 3) 3
(4) completed (net2) 2 1 2 3 4 5 4 4
5/22/2019 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 5
2 1 2 3 4 5 4 4
5/22/2019 28
(A) Make Minimal Feasible Top/Bottom
Connections
1 1 1 1
2 2 2 2
3 3 3 3
4 4 1 1
4 4 0 0
A A* B B*
1 1 0 0
1 1
2 2
2 2
1 3
3 3
4 4
2 2 5 5
C C* D D*
2 2 5 5
3 3 1 1
2 2 2 2
1 1 3 3
4 4 4 4
3 3 5 5
E E* F F*
5/22/2019 29
( B ) Collapse Split Nets
2 2 0 0
1 1
1 1 3 3
3 3 4 4
1 1
2 2 4 4
0 0 0 0
G G* H H*
1 1 0 0
1 1
2 2
1 1
2 2
3 3 2 2
4 4 1 1
3 3 2 2
0 0 0 0
I I* J J*
5/22/2019 30
( C ) Move Split Nets Closer
0 0
1 1
2 2
1 1
2 2
0 0
k k*
5/22/2019 31
( D ) Rising/Falling
1 1
falling
falling
3 rising 3 rising
4 falling 4 falling
0 0
L L*
5/22/2019 32
( E ) Insert New Track
0
0
1
1 5
5 1
1
6 6
7 7
M M*
5/22/2019 33
( F ) Extend to Next Column
1
5
1
7 7
5/22/2019 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 4
Net 1 occupies two tracks at this A column
off the edge
column; it also “ wraps-around
5/22/2019 35
Parameters to Greedy Router
a Initial-channel-width icw
a Minimum-jog-length mjl
a Steady-net-constant snc
a Usually start icw as d. the density
a Mjl controls the number of vias, use a large
mjl for fewer vias
a Snc also controls # of vias, typical value=10
5/22/2019 36
Experimental Results
5/22/2019 37