View
214
Download
0
Tags:
Embed Size (px)
Citation preview
Multi-Layer 3D View
3-Layer VHV Channel Router
Vertical Layer (Top)
Vertical Layer (Bottom)
Horizontal Layer
Layer 1
Layer 2
Layer 3
Via Connection
When 2-layer model has no solution!
If Vertical Constraint Graph (VCG) has a cycle, there is no feasible solution under 2 layer no-dogleg Manhattan routing model
1 2
2 1
Solution in VHV Routing Any Vertical Constraint (ni, nj) can be
resolved by routing vertical wire segments of ni and nj in two separate vertical layers on either side of horizontal layer
We never have more than two net terminals in a single column
Hence, only horizontal constraint remains in VHV model
Therefore the novel algorithms MCC1 or MCC2 can be used in VHV model
Channel Density dmax
Local Density of a column is the maximum number of nets passing through the column
Channel Density of a channel is the maximum of all local densities
A channel with density dmax has at least one column spanned by dmax nets
Multiple Horizontal Layers
Multiple Horizontal Layers can reduce routing area
If there are i horizontal layers H1, H2,.., Hi, and channel density is dmax, then minimum number of track required per horizontal layer is :
i
dmax
Multiple Horizontal Layers (Contd.)
dmax nets in a column must be distributed in i horizontal layers.
32
5
What does Vi+1Hi mean?
• Total number of vertical layers is one more than total number of horizontal layers
• Each horizontal layer is sandwiched between 2 vertical layers Vertical
Layer
Horizontal Layer4 Vertical Layers and 3 Horizontal Layers,
Channel Density 4
Application of MCC1 / MCC2 in Multilayer Channel Routing Problem
Compute Minimum Clique Cover for Horizontal Non-constraint Graph (HNCG)
There are dmax cliques of the minimum clique cover. Assign dmax cliques arbitrarily to i horizontal layers. Maximum number of tracks per horizontal layer is
i
dmax
Illustration of MCC1/MCC2 Applied to Multilayer CRP
7
1
3
5
6
4
2 Clique Cover CC={C1, C2,C3, C4}whereC1: {5, 1, 4}C2: {2, 7}C3: {3}C4: {6}
Illustration of MCC1/MCC2 Applied to Multilayer CRP (Contd.)
Place nets of same clique in the same track in any horizontal layer
I7
I1 I4
I2
5
I3
I6
I5
3 6 2 1 7 4
Application of MCC1 / MCC2 in Multilayer Channel Routing Vertical Wire Layout
Suppose that two nets ng and nh that are members of two separate cliques Cp and Cq respectively, are laid out in the same horizontal layer Hr
Suppose has ng terminal on the top and nh has terminal at the bottom
Then there are two possible cases Case 1: Cp is assigned to the track above that of Cp
Case 2: Cp is assigned to the track below that of Cp
Vertical Wire Layout : Case 1
In this case both the vertical wire segments are assigned to the same vertical layer Vr just below the horizontal layer Hr
ng
nh
Hr
Vr
Vertical Wire Layout : Case 2
In this case, vertical wire segments of ng and nh are assigned to vertical layers Vr and Vr+1 respectively (above and below the horizontal layer Hr )
ng
nh
Vr+1
Vr
Hr
Application of MCC1 / MCC2 in Multilayer Channel Routing (Contd.)
In this manner, all vertical constraints in a channel are resolved
The result is a (2i+1)-layer Vi+1Hi routing solution using tracks
i
dmax
If there is a column spanned by no nets!
For example leftmost column has terminal 0 spanned by no other net
I7
I1 I4
I2
5
I3
I6
I5
3 6 2 1 7 40
The result is increase in running time of MCC1
• Running time of MCC1 is O(n+e) where n is the number of nets and e is the size of HNCG
• If HNCG is sparse e = O(n)• But for introduction of node
‘0’, e = O(n2)• Thus, if there is a column
spanned by no other net, running time of MCC1 becomes
O(n+O(n2)) = O(n2)
7
3
5
6
4
2
10
Preprocessing of MCC1 We can split the net list at each such un-
spanned column For example the net list {4,2,1,3,0,6,7,5}
should be split into {4,2,1,3} and {6,7,5} MCC1 should be run independently on
each of the splits Since HNCG for each split is now sparse
i.e. has size O(n), MCC1 now runs in O(n)