3.3 multi-layer v i+1 h i channel routing
DESCRIPTION
3.3 Multi-Layer V i+1 H i Channel Routing. Presented by Md. Shaifur Rahman Student # 0409052028. Vertical Layer (Top). Layer 1. Horizontal Layer. Layer 2. Layer 3. Via Connection. Vertical Layer (Bottom). Multi-Layer 3D View. 3-Layer VHV Channel Router. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/1.jpg)
3.3 Multi-Layer Vi+1Hi Channel Routing
Presented byMd. Shaifur RahmanStudent # 0409052028
![Page 2: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/2.jpg)
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
![Page 3: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/3.jpg)
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
![Page 4: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/4.jpg)
Necessity of more than 2 layers!
Vertical Constraint Graph with a Cycle
1 2
![Page 5: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/5.jpg)
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
![Page 6: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/6.jpg)
Routing Channels Top View
VHV Routing Scenario
1
1
2
2
![Page 7: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/7.jpg)
Routing Channels in 3D
VHV Routing Channels
2
1
21
![Page 8: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/8.jpg)
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
![Page 9: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/9.jpg)
Channel Density dmax(Contd.)
Channel Density 5
1
2
3
4
5
![Page 10: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/10.jpg)
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 :
idmax
![Page 11: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/11.jpg)
Multiple Horizontal Layers (Contd.)
dmax nets in a column must be distributed in i horizontal layers.
325
![Page 12: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/12.jpg)
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
![Page 13: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/13.jpg)
Benefit of Vi+1Hi
![Page 14: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/14.jpg)
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
idmax
![Page 15: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/15.jpg)
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}
![Page 16: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/16.jpg)
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
![Page 17: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/17.jpg)
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
![Page 18: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/18.jpg)
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
![Page 19: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/19.jpg)
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
![Page 20: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/20.jpg)
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
idmax
![Page 21: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/21.jpg)
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
![Page 22: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/22.jpg)
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
![Page 23: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/23.jpg)
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)
![Page 24: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/24.jpg)
MCC2 performs better than MCC1 Runs in O(nlogn) time Is independent of size of HNCG
![Page 25: 3.3 Multi-Layer V i+1 H i Channel Routing](https://reader036.vdocuments.site/reader036/viewer/2022062521/56815607550346895dc3caa5/html5/thumbnails/25.jpg)
Any Question Please ?