multi-layer channel routing complexity and algorithm by rajat k. pal
DESCRIPTION
Multi-Layer Channel Routing Complexity and Algorithm by Rajat K. Pal. Presented by: Nur-Ul- Arafat 0409052077. Chapter 5 Part: 5.5. The Proposition : Algorithm: MLCR (Multi-Layer Channel Router) Time: O( e + nd max ). Chapter 5 Part: 5.5. The Proposition : Target Routing Model: - PowerPoint PPT PresentationTRANSCRIPT
Multi-Layer Channel Routing Complexity and Algorithm
by Rajat K. Pal
Presented by: Nur-Ul-Arafat
0409052077
Chapter 5 Part: 5.5
The Proposition:
• Algorithm: MLCR (Multi-Layer Channel Router)
• Time: O( e + ndmax)
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)
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.
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.
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
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
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
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.
Chapter 5 Part: 5.5
Steps: 443 110
234 234
2
3
4
1
Chapter 5 Part: 5.5
Steps:
1
34
2
HCG
1
3
4
2
VCG
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
1
4
3
2
Chapter 5 Part: 5.5
Steps:
1
34
2
HNCG
1
4
3
2
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
3
2
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
3
Chapter 5 Part: 5.5
Steps:
1
3
4
2
HNCG
4
Chapter 5 Part: 5.5
Steps:
1
3
4
2
Cliques
Chapter 5 Part: 5.5
Steps:
1
3
4
2
Cliques
Cliques:
{4}, {1}, {3,2}
Chapter 5 Part: 5.5
Steps: 443 110
234 234
23
4
1
Chapter 5 Part: 5.5
Steps: 443 110
234 234
23
4
1
Chapter 5 Part: 5.5
Steps: VHV Solution 443 110
234 234
23
4
1
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 :
Chapter 5 Part: 5.5
Steps: 1
3
4
2
VCG
C3
C2C1
RVC
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
Chapter 5 Part: 5.5
Steps:
C3
C2C1
RVC
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
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
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
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
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.
Multi-Layer Channel Router (MLCR)
Multi-Layer Channel Router (MLCR)
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.
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)
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)
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'')
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
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]
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 )
Chapter 5 Part: 5.5
Time: O( e + ndmax )
• Total time needed, T = O( (n + e) + n log dmax + ndmax )
= O (e + ndmax )