Lecture21 dr1
Lecture21 dr1
10/22/08 1
After Global Routing: Detailed Routing
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
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
5
Routing Grid Models
Grid-based Routing Gridless Routing
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
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
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
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
18
Left-edge Algorithm: Example
0 1 6 1 2 3 5
6 3 5 4 0 2 4
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
22
Constrained Left-edge Algorithm
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
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.
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
??? ???
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
31