You are on page 1of 18

www.jntuworld.

com

Channel & Switchbox Routing

D L

w w

Detailed routing

N J

. w

tu jn

U T
switchbox routing
1

or w

. ld

m o c

R
www.jntuworld.com

channel routing

www.jntuworld.com

Grid-based model:

D L

Routing Models

A grid is super-imposed on the routing region.

Gridless model:

Any model that does not follow this gridded approach.

w w

gridbased

gridless
2

www.jntuworld.com

N J

. w

tu jn

U T

Wires follow paths along the grid lines.

or w

. ld

m o c

www.jntuworld.com

Models for Multi-Layer Routing

D L

Unreserved layer model: Any net segment is allowed to be placed in any layer. Reserved layer model: Certain type of segments are restricted to particular layer(s).
Two-layer: HV (horizontal-Vertical), VH Three-layer: HVH, VHV

unreserved layer model

w w

track 1 HVH model

3 types of 3layer models

N J

track 1

. w

tu jn

U T
track 2 VHV model

or w

. ld

m o c

track 3 track 2 track 1

www.jntuworld.com

www.jntuworld.com

D L
terminals 5 1 0 1 4

Terminology for Channel Routing Problems


6 7 0 4 9 10 upper boundary

netlist:

2 local density 1

3 3

5 5

3 5

5 4

vias

Local density at column i: total # of nets that crosses column i. Channel density: maximum local density; # of horizontal tracks required channel density. 4

w w

trunks

www.jntuworld.com

N J

. w

terminals

tu jn

dogleg

U T
branches

or w
9 8 7 4 3 2

. ld

0 1 4 5 1 6 7 0 4 9 10 23535268987

lower boundary

m o c

upper boundary

lower boundary

www.jntuworld.com

Channel Routing Problem


Assignments of horizontal segments of nets to tracks. Assignments of vertical segments to connect.

D L

horizontal segments of the same net in dierent tracks, and the terminals of the net to horizontal segments of the net.

Horizontal constraints between two nets: The horizontal span of two nets overlaps each other.

Objective: Channel height is minimized (i.e., channel area is minimized).

N J

Vertical constraints between two nets: There exists a column such that the terminal on top of the column belongs to one net and the terminal on bottom of the column belongs to the other net.

w w

. w

U T

Horizontal and vertical constraints must not be violated.

tu jn

or w

. ld

m o c

www.jntuworld.com

www.jntuworld.com

Horizontal Constraint Graph (HCG)

D L

HCG G = (V, E) is undirected graph where

For graph G: vertices nets; edge (i, j) net i overlaps net j.

U T
5 4

w w
0 1 2

N J
3

.j w
5 3

tu n
0 3 0 0

W
4 0 2 3

E = {(vi, vj )| a horizontal constraint exists between ni and nj }.

V = {vi|vi represents a net ni}

or w

. ld

m o c
1

A routing problem and its HCG.

www.jntuworld.com

www.jntuworld.com

Vertical Constraint Graph (VCG)


VCG G = (V, E) is directed graph where

D L

For graph G: vertices nets; edge i j net i must be above net j.


1 5 2 0

w w
0 1 2

N J
3

. w
2 1 5 3

tu jn
1 0 3 4 0 0

W
4 0 2 3

E = {(vi, vj )| a vertical constraint exists between ni and nj }.

V = {vi|vi represents a net ni}

U T
5 4

or w

. ld

m o c
1 2

A routing problem and its VCG.

www.jntuworld.com

www.jntuworld.com

D L

2-L Channel Routing: Basic Left-Edge Algorithm

Hashimoto & Stevens, Wire routing by optimizing channel assignment within large apertures, DAC-71.

Doglegs are not allowed.

Treat each net as an interval.

Intervals are sorted according to their left-end x-coordinates. Intervals (nets) are routed one-by-one according to the order. For a net, tracks are scanned from top to bottom, and the rst track that can accommodate the net is assigned to the net. Optimality: produces a routing solution with the minimum # of tracks (if no vertical constraint).
8

w w

www.jntuworld.com

N J

. w

tu jn

U T

HV-layer model is used.

No vertical constraint.

or w

. ld

m o c

www.jntuworld.com

Algorithm: Basic Left-Edge(U, track[j]) U : set of unassigned intervals (nets) I1 , . . . , In; Ij = [sj , ej ]: interval j with left-end x-coordinate sj and right-end ej ; track[j]: track to which net j is assigned. begin U {I1 , I2 , . . . , In}; t 0; while (U = ) do t t + 1; watermark 0; while (there is an Ij U s.t. sj > watermark) do Pick the interval Ij U with sj > watermark, nearest watermark; 9 track[j] t; 10 watermark ej ; 11 U U {Ij }; 12 end 1 2 3 4 5 6 7 8

D L

Basic Left-Edge Algorithm

w w

N J
9

. w

tu jn

www.jntuworld.com

U T

or w

. ld

m o c

www.jntuworld.com

U = {I1 , I2 , . . . , I6 }; I1 = [1, 3], I2 = [2, 6], I3 = [4, 8], I4 = [5, 10], I5 = [7, 11], I6 = [9, 12]. t = 1:

D L

Basic Left-Edge Example

Route I1 : watermark = 3; Route I3 : watermark = 8;

Route I6 : watermark = 12; t = 2: Route I2 : watermark = 6; Route I5 : watermark = 11; t = 3: Route I4


column: 1 1

w w

0 density: 1

2 2

1 2

3 2

0 3

0 3

5 3

0 3

6 3

0 3

N J
5 2 0 1

. w

tu jn
2 0 3 0 4 0 5 4

6 2

7 0

U T
8 3

or w

. ld

m o c

9 10 11 12 0 4 0 6

10

www.jntuworld.com

www.jntuworld.com

Algorithm: Constrained Left-Edge(U, track[j]) U : set of unassigned intervals (nets) I1 , . . . , In; Ij = [sj , ej ]: interval j with left-end x-coordinate sj and right-end ej ; track[j]: track to which net j is assigned. 1 2 3 4 5 6 7 8 begin U {I1 , I2 , . . . , In}; t 0; while (U = ) do t t + 1; watermark 0; while (there is an unconstrained Ij U s.t. sj > watermark) do Pick the interval Ij U that is unconstrained, with sj > watermark, nearest watermark; 9 track[j] t; 10 watermark ej ; 11 U U {Ij }; 12 end

D L

Constrained Left-Edge Algorithm

w w

N J

. w

tu jn

U T

or w

. ld

m o c

11

www.jntuworld.com

www.jntuworld.com

Constrained Left-Edge Example


I1 = [1, 3], I2 = [1, 5], I3 = [6, 8], I4 = [10, 11], I5 = [2, 6], I6 = [7, 9]. Track 1: Route I1 (cannot route I3 ); Route I6 ; Route I4 .

D L

R O
2 2 5 5 5 3 2 6 5 3 track 2 5 3 track 3

Track 2: Route I2 ; cannot route I3 . Track 3: Route I5 . Track 4: Route I3 .


1 1 1

w w

5 3 track 1

N J
3 track 4

. w
2 5

tu jn
0

U T
0 6 0 4

or w
6 3 0

. ld
4 0

m o c

12

www.jntuworld.com

www.jntuworld.com

Dogleg Channel Router


Deutch, A dogleg channel router, 13rd DAC, 1976. Drawback of Left-Edge: cannot handle the cases with constraint cycles.

D L

R
1 1 2 ? 2 0 1

Doglegs are used to resolve constraint cycle.


1 1 1 2

Doglegs are used to place parts of a net on dierent tracks to minimize channel height. Might incur penalty for additional vias.
0 1 2 2 0 3 0 4 0 1 2 2

w w
1

save 2 tracks, with via penalty 0 3 0

3 3 4 no dogleg

0 3 3 4 with dogleg

N J
4 4 0

. w

U T

Drawback of Left-Edge: the entire net is on a single track.

tu jn

or w
2 0 1

. ld

m o c

13

www.jntuworld.com

www.jntuworld.com

Dogleg Channel Router


Each multi-terminal net is broken into a set of 2-terminal nets. Two parameters are used to control routing:

D L

Modied Left-Edge Algorithm is applied to each subnet.


1 1 2 0

2a

2b

2a 2b

3a 3b

3a

3b

N J
3a

w w
0 3

. w
2
4

U T
1 1
2a

Routing sequence: Species the starting position and the direction of routing along the channel.

tu jn
4

Range: Determine the # of consecutive 2-terminal subnets of the same net that can be placed on the same track.

or w
2

. ld

m o c
2 0
2b
3b

14

www.jntuworld.com

www.jntuworld.com

Over-the-Cell Routing

D L

Routing over the cell rows is possible due to the limited use of the 2nd (M2) metal layers within the cells. Divide the over-the-cell routing problem into 3 steps: (1) routing over the cell, (2) choosing the net segments, and (3) routing within the channel.

Reference: Cong & Liu, Over-the-cell channel routing, IEEE TCAD, Apr. 1990.

w w
2 1 3

N J
Overthecell routing
VDD GND

. w

tu jn

U T
15

or w
3 4 6

. ld
VDD GND

m o c

Overthecell routing

www.jntuworld.com

www.jntuworld.com

Cong & Liu, Over-the-cell channel routing, IEEE TCAD, Apr. 1990.

D L

Over-the-Cell Channel Routing


Select overthecell nets use Supowits Max. Independent Set algorithm for circle graph (solvable in O(c3 ) time, c: # of columns)

w w

Plannar routing for overthecell nets + Regular channel routing

N J
16

. w

tu jn

www.jntuworld.com

U T

or w

Select terminals among "equivalent" ones for regular channel routing (Goal: minimize channel density NPcomplete!)

. ld

m o c

www.jntuworld.com

Supowits Algorithm
Supowit, Finding a maximum plannar subset of a set of nets in a channel, IEEE TCAD, 1987. Problem: Given a set of chords, nd a maximum plannar subset of chords.

D L

Label the vertices on the circle 0 to 2n 1.

W
10 9 c 8 7 j

Answer = M IS(0, 2n 1).


11 10 9 8 7 c b e d a 4 3 0 1 f 2 b a

Compute M IS(i, j): size of maximum independent set between vertices i and j, i < j.

2n1

0 1 2

2n2

vetrices on the circle

MIS(i, j), i < j

N J

5 6 A set of chords.

w w

. w
f

circle graph

tu jn
d e

U T
f 3 b 4

or w
11

. ld
1 2

m o c
a d b f e c

5 6 Maximum plannar subset of chords.

Maximum independent set: nodes b, c, f

MIS(i, j): size of max. independent set here

17

www.jntuworld.com

www.jntuworld.com

Apply dynamic programming to compute M IS(i, j).


case 1 k i case 2 i

D L

Dynamic Programming in Supowits Algorithm


case 3

j MIS(i, j) = MIS(i, j1) k i

w w
j1

MIS(i, k1) k1 k k+1

N J
j j1

.j w

U T

MIS(i, j) = MIS(i, k1) + 1 + MIS(k+1, j1)

tu n
j1

or w
k

. ld
j

m o c
i i i+1

R
j

MIS(i, j) = MIS(i+1, j1) + 1

MIS(i, j1)

MIS(i+1, j1)

MIS(k+1, j1)

18

www.jntuworld.com

You might also like