Lecture21 dr1

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

EE382V Fall 2006

VLSI Physical Design Automation

Detailed Routing (I)

Prof. David Pan


dpan@ece.utexas.edu
Office: ACES 5.434

10/22/08 1
After Global Routing: Detailed Routing

The routing regions are divided into channels and


switchboxes.

So only need to consider the channel routing problem


and the switchbox routing problem.

2
Channel Routing for Different Styles
• For Gate-array design, channel widths are fixed. The
goal is to finish routing of all the nets.
• For Standard-cell and Full-custom design, channels
are expandable. The goal is to route all nets using the
minimum channel width.
• We will consider the case when the channels are
expandable.

3
Channel Ordering

A The width of A is not known until


A is routed, we must route A first.
B

B
What should be the routing
A C D order for this example?

4
Channel Ordering
No feasible Need to use switchbox
channel order!

C D C D

B A B A

1. Fix the terminals between A & B


2. Route B, C, then D (channel)
3. Route A (switchbox)

5
Routing Grid Models
Grid-based Routing Gridless Routing

• Grid-based model is the most commonly used.


• We will focus on it in this course.
6
Channel Routing Terminology
Terminals
Via

Upper boundary

Tracks Dogleg

Lower boundary

Trunks Branches

7
Routing Layer Models
1 layer

VH model HV model
2 layers
Layer 1
Layer 2
Layer 3
Via
VHV model HVH model
3 layers

8
Channel Routing Problem
• Input:
– Two vectors of the same length to represent the pins on two
sides of the channel.
– Number of layers and layer model used.
• Output:
– Connect pins of the same net together.
– Minimize the channel width.
– Minimize the number of vias.

9
Channel Routing Problem

1 3 0 0 2 1 1 0

3 0 1 2 0 3 0 0

Example: (13002110)
(30120300)
where 0 = no terminal

10
Constraint Graphs
0 1 6 1 2 3 5
0 1 6 1 2 3 5 1 2
3 4
5
6 3 5 4 0 2 4 6
6 3 5 4 0 2 4

6
1 2 1 5
5
3
4 4 3 6
2
Vertical constraint graph Horizontal constraint graph
11
Lower Bound on Channel Width
0 1 6 1 2 3 5

6 3 5 4 0 2 4

0 1 6 1 2 3 5
1 2
3 Channel density =
4
5
6 Maximum local density
6 3 5 4 0 2 4
Local
density 1 3 4 4 4 4 2
Lower bound = 4

Lower bound on channel width = Channel density 12


Left-edge
Channel Routing Algorithm

“Wire Routing by Optimizing Channel


Assignment within Large Apertures”, A. Hashimoto and
J. Stevens, DAC 1971, pages 155-169.

10/22/08 13
Features of Left-edge Algorithm
• Assumptions:
– One horizontal routing layer
– No vertical constraint, e.g., VHV model

0 0 0 2 0 1 0

2
Vertical constraint
1 may occur here.

0 1 0 0 0 2 0

• Always gives a solution with channel width equal


channel density, i.e., optimal solution.
14
Left-edge Algorithm

1. Sort the horizontal segments of the nets in increasing


order of their left end points.
2. Place them one by one greedily on the bottommost
available track.

15
Channel Density
❁Local density at column C a a
ld(C) = # nets split by column C a f
e
❁Channel Density b
d = max ld( C ) c d
all C a ld(x)
❁Each net spans over an interval
a f
❁Horizontal Constraint Graph(HCG)b
node : net e
edge: two intervals intersect
c d
❁Size of max clique in HCG= channel
density
❁A lower bound:
# tracks ≥ channel density

16
Interval Packing
Thm: If the density of a set of intervals is d, then they can be
packed into d tracks. I6
I5
Proof: I1=(a,b) I2=(c,d) I4
Define: I1<I2 iff b<c or I1=I2 I3
I
a I1 b c 2 d

❁ reflective: I1<I1 I5 I2 I6
❁ anti-symmetric: I1<I2, I2<I1 ⇒ I1=I2 I4
❁ transitive: I1<I2, I2<I3 ⇒ I1<I3 I1 I3

❁ The interval set with binary relation < forms a partially


ordered set (POSET)!!
Intervals in a track⇔ they form a chain
Intervals intersecting a common column ⇒ anti-chain
Dilworth’s theorem (1950): If the max anti-chain of a POSET is d,
then the POSET can be partitioned into d chains

17
Left-Edge Algorithm for Interval Packing
Repeat
create a new track t
Repeat
put leftmost feasible interval to t
until no move feasible interval
until no move interval

Interval are sorted according to their left endpoints


I6 I6
I5
I4 I1 I5
I3 I3 I4 I2
I1 I2

O(nlogn) time algorithm. Greedy algorithm works!

18
Left-edge Algorithm: Example
0 1 6 1 2 3 5

6 3 5 4 0 2 4

1. Sort by left end points. 2. Place nets greedily.


0 1 6 1 2 3 5
0 1 6 1 2 3 5
6
1 5
3 3
5 1 2
4 6 4
2
6 3 5 4 0 2 4
6 3 5 4 0 2 4
19
Vertical Constraint Consideration
• The Left-edge algorithm ignores vertical constraints.
• When there is only one vertical layer, the algorithm will
produce overlapping of vertical wire segments.

0 1 6 1 2 3 5

6 3 5 4 0 2 4

20
Lower Bound on Channel Width

0 1 6 1 2 3 5

6 3 5 4 0 2 4

6
Length of the longest
1 path in the vertical con-
5
straint graph
4 3

2
Lower bound = 3
21
Lower Bound on Channel Width

Lower bound on channel width


Length of the longest path in the VCG 
= max  
 Channel density 

22
Constrained Left-edge Algorithm

• Consider vertical constraints.


• Similar to the Left-edge algorithm.
• Modifications: Place a horizontal segment only if it
does not have any unplaced descendants in the
vertical constraint graph Gv. Place it on the
bottommost available track above all its descendents
in Gv.

23
Constrained Left-edge Algorithm
6
0 1 6 1 2 3 5 1
5
3
4
6 3 5 4 0 2 4
2
Vertical constraint graph
1. Sort the left end points. 2. Place nets greedily.
0 1 6 1 2 3 5 0 1 6 1 2 3 5
6 1
1 3
3 6 2
5 5
4 4
2
6 3 5 4 0 2 4 6 3 5 4 0 2 4 24
Cycles in Vertical Constraint Graph
• If there is cycle in the vertical constraint graph, the
channel is not routable.
1
1 0 2 Vertical
constraint
2 0 1 graph 2
• Dogleg can solve the problem.
1 0 2

2 0 1 25
Reduce Channel Width by Dogleg

Even without cycle in the VCG, Dogleg is useful


because it can reduce channel width.

Without dogleg With dogleg


1 1 2 2 0
???

0 2 0 3 3

26
Deutch’s Dogleg Algorithm
• Split each multi-terminal net into several horizontal
segments.
• Split only at columns that contain a pin of the net, i.e.,
using restricted dogleg only.
• Apply the Constrained Left-edge algorithm.

Restricted dogleg Unrestricted dogleg


1 1 2 2 0 1 1 0 2 0

0 2 0 3 3 0 2 0 3 3
27
Deutch’s Dogleg Algorithm
1 1 2 0 2 3
1 Vertical 1
2 constraint
3 2 3
4 graph
4
2 3 0 3 4 4

Routing without dogleg?

Vertical constraint graph after splitting?


Routing with dogleg?
28
Deutch’s Dogleg Algorithm
1 1 2 0 2 3 Vertical
1 constraint
2a 2b graph ???
3a 3b
4 after
splitting
2 3 0 3 4 4

Without dogleg By Deutch’s Dogleg alg.

??? ???

29
Drawbacks of the Constrained
Left-edge Algorithm
0 0 1 3 3 0
Vertical 1 3
constraint
2
1 2 0 0 2 0 graph

By Constrained Left-
edge algorithm
0 0 1 3 3 0 There is a better
solution...

1 2 0 0 2 0
30
Drawbacks of the Constrained
Left-edge Algorithm

What’s wrong with the Constrained Left-edge


algorithm?

The Constrained Left-edge algorithm does not


take care of the vertical and horizontal constraints
together optimally.

31

You might also like