Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal
description
Transcript of Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal
![Page 1: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/1.jpg)
Multi-Layer Channel Routing Complexity and Algorithm
by Rajat K. Pal
Presented by: Nur-Ul-Arafat
0409052077
![Page 2: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/2.jpg)
Chapter 5 Part: 5.5
The Proposition:
• Algorithm: MLCR (Multi-Layer Channel Router)
• Time: O( e + ndmax)
![Page 3: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/3.jpg)
Chapter 5 Part: 5.5
The Proposition:
• Target Routing Model: » 4 Layer VHVH
** So far we have discussed and learned Routing Algorithms for Models with fewer layers, such as 3 layer routing model (VHV) or 2 layer routing model (VH)
![Page 4: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/4.jpg)
Chapter 5 Part: 5.5
The Proposition:
• Objective: » As few tracks as possible.
** In VH routing model we had resolved the issues like Maximal Clique, fewest possible track etc.
In VHV routing model we had removed the Vertical Constraints from the channel and we could successfully design a channel with any combination of node with number of tracks being dmax.
Here our objective is to reduce the number of tracks significantly in order to reduce the size of the channel.
![Page 5: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/5.jpg)
Chapter 5 Part: 5.5
The Solution:
• Basis of Solution: » An existing VHV routing solution
** We already have several solutions for routing 3 Layer VHV routing solution which run in linear time. So we can efficiently extend an existing solution to a new solution for 4 Layer VHVH channel routing.
![Page 6: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/6.jpg)
Chapter 5 Part: 5.5
The Solution:
• Layer distribution (VHVH): » 2 Vertical layers: V1 and V2» 2 Horizontal layers: H1 and H2
V1
H1
V2
H2
![Page 7: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/7.jpg)
Chapter 5 Part: 5.5
The Solution:
• Layer distribution (VHVH): » H1 is adjacent both to V1 and V2» H2 is called the ‘extreme’ horizontal layer. It
is adjacent to only one Vertical layer: V2V1
H1
V2
H2
![Page 8: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/8.jpg)
Chapter 5 Part: 5.5
The Solution:
• Layer distribution (VHVH): » Select Clique-Cover CCH2 for the layer H2
in such a way that it is as large as possible, given,
| CCH2 | <= floor(dmax/2).
V1
H1
V2
H2
![Page 9: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/9.jpg)
Chapter 5 Part: 5.5
The Solution:
• Resolving Vertical Constraints: » For nets which has tracks in H1: the vertical
constraints can be solved in a similar manner as in VHV routing module.
» For H2, We select the Cliques in such a way that there remains no vertical constraint between the cliques i.e. no cycle in RVCccH2.
![Page 10: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/10.jpg)
Chapter 5 Part: 5.5
Steps: 443 110
234 234
2
3
4
1
![Page 11: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/11.jpg)
Chapter 5 Part: 5.5
Steps:
1
34
2
HCG
1
3
4
2
VCG
![Page 12: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/12.jpg)
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
![Page 13: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/13.jpg)
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
1
4
3
2
![Page 14: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/14.jpg)
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
1
4
3
2
![Page 15: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/15.jpg)
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
3
2
![Page 16: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/16.jpg)
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
3
![Page 17: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/17.jpg)
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
![Page 18: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/18.jpg)
Chapter 5 Part: 5.5
Steps:
1
3
4
2
Cliques
![Page 19: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/19.jpg)
Chapter 5 Part: 5.5
Steps:
1
3
4
2
Cliques
Cliques:
{4}, {1}, {3,2}
![Page 20: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/20.jpg)
Chapter 5 Part: 5.5
Steps: 443 110
234 234
23
4
1
![Page 21: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/21.jpg)
Chapter 5 Part: 5.5
Steps: 443 110
234 234
23
4
1
![Page 22: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/22.jpg)
Chapter 5 Part: 5.5
Steps: VHV Solution 443 110
234 234
23
4
1
![Page 23: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/23.jpg)
Chapter 5 Part: 5.5
Steps: Extend to VHVH
1
34
2
HCG
1
3
4
2
VCG
1
3
4
2
Cliques
C1 :
C2 :
C3 :
![Page 24: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/24.jpg)
Chapter 5 Part: 5.5
Steps: 1
3
4
2
VCG
C3
C2C1
RVC
![Page 25: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/25.jpg)
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
![Page 26: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/26.jpg)
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
![Page 27: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/27.jpg)
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
![Page 28: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/28.jpg)
Chapter 5 Part: 5.5
Cases: A cycle with K vertices, where K>=3
C3
Ck
C1
RVC
C5
C2
C4
‘K-1’ vertices transferable, which is sufficient.
At least 2 vertices are transferable for each cycle, since K>=3
![Page 29: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/29.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
C3
C6
C1
RVC
C5
C2
C4
Only one vertex is transferable from a two-cycle
C7
![Page 30: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/30.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
C3
C6
C1
RVC
C5
C2
C4
Only one vertex is transferable from a two-cycle
Choose those in as less two-cycles as possible. This leaves more choices free for transfer.
C7
![Page 31: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/31.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
C3
C6
C1
RVC
C5
C2
C4
Only one vertex is transferable from a two-cycle
Choose those in as less two-cycles as possible. This leaves more choices free for transfer.
C7
![Page 32: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/32.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
Cycle Index – a method to identify the number of two-cycles a vertex is in and sort them according to this number.
• Conceptually the number of two-cycles that a vertex is in.
• Remove all the edges of RVC except those are in a two-cycle. Now, the in-degree or the out-degree (any one) of the vertex is its cycle-index.
• Need linear time to count it.
•The cycle index of an isolated vertex is zero.
![Page 33: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/33.jpg)
Multi-Layer Channel Router (MLCR)
![Page 34: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/34.jpg)
Multi-Layer Channel Router (MLCR)
![Page 35: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/35.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
Generating the clique-cover CCH2
• Sort the vertices according to their cycle-indices in ascending order.
• Start inserting vertices into CCH2 from CC starting from the lowest cycle-index value, gradually moving to higher.
![Page 36: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/36.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
Generating the clique-cover CCH2
• Two cases might take place while inserting:
Case one: the inserted vertex does not introduce a cycle in RVCCCH2. In this case, insert the vertex.
Get the next vertex from the sorted CC and continue this way unless CC is exhausted or |CCH2|=floor(dmax/2)
![Page 37: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/37.jpg)
Chapter 5 Part: 5.5
Cases: A two-cycle
Generating the clique-cover CCH2
• Two cases might take place while inserting:
Case two: the inserted vertex introduces a cycle in RVCCCH2. In this case, do not insert the vertex.
Get the next vertex from the sorted CC and continue this way unless CC is exhausted or |CCH2|=floor(dmax/2)
![Page 38: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/38.jpg)
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• O( n ) computation time: [n = number of nets]
• VC = ( V,A )
• RVC = (CC, A')
• RVC‘ = (CC, A'')
![Page 39: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/39.jpg)
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• O( n + e ) computation time: [n = number of nets]
[e = size of HNCG]
• Generating HNCG, and
• Generating CC
![Page 40: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/40.jpg)
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• O( n log dmax) computation time: [n = number of nets]
[e = size of HNCG]
• Sorting CC each time after removing a vertex from it. [If a balanced binary tree is used]
![Page 41: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/41.jpg)
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• O( ndmax ) computation time: [n = number of nets]
[e = size of HNCG]
• Checking if a vertex induce a cycle in CCH2.
• Each time needs to check all members of CCH2. It takes time n.
• Needs to check this dmax times, since at most dmax vertices are inserted into CCH2.
• So total time taken: O( ndmax )
![Page 42: Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814a71550346895db7898c/html5/thumbnails/42.jpg)
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• Total time needed, T = O( (n + e) + n log dmax + ndmax )
= O (e + ndmax )