multi-layer channel routing complexity and algorithm by rajat k. pal

Post on 16-Jan-2016

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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 Presentation

TRANSCRIPT

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 )

top related