Title: ECE 382V Fall 2005 VLSI Physical Design Automation
1ECE 382V Fall 2005 VLSI Physical Design
Automation
Lecture 21. Detailed Routing (I)
- Prof. David Pan
- dpan_at_ece.utexas.edu
- Office ACES 5.434
2 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.
A
B
3Channel 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.
4Channel 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 order for this example?
A
D
C
5Channel Ordering
No feasible channel order!
Need to use switchbox
C
D
C
D
B
B
A
A
1. Fix the terminals between A B 2. Route B, C,
then D (channel) 3. Route A (switchbox)
6Routing Grid Models
Grid-based Routing
Gridless Routing
- Grid-based model is the most commonly used.
- We will focus on it in this course.
7Channel Routing Terminology
Terminals
Via
Upper boundary
Tracks
Dogleg
Lower boundary
Trunks
Branches
8Routing Layer Models
1 layer
HV model
VH model
2 layers
Layer 1
Layer 2
Layer 3
Via
HVH model
VHV model
3 layers
9Channel 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.
10Channel 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
11Constraint Graphs
0
1
6
1
2
3
5
0
1
6
1
2
3
5
1
2
3
4
5
6
6
3
5
4
0
2
4
6
3
5
4
0
2
4
6
5
1
1
2
5
3
4
4
3
6
2
Horizontal constraint graph
Vertical constraint graph
12Lower 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 Maximum local density
4
5
6
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
13Left-edge Channel Routing Algorithm
- Wire Routing by Optimizing Channel
- Assignment within Large Apertures, A. Hashimoto
and J. Stevens, DAC 1971, pages 155-169.
14Features of Left-edge Algorithm
- Assumptions
- One horizontal routing layer
- No vertical constraint, e.g., VHV model
- Always gives a solution with channel width equal
channel density, i.e., optimal solution.
0
0
0
2
0
1
0
Vertical constraint may occur here.
2
1
0
1
0
0
0
2
0
15Left-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.
16Channel Density
a
a
- Local density at column C
- ld(C) nets split by column C
- Channel Density
- d max ld( C )
- all C
- Each net spans over an interval
- Horizontal Constraint Graph(HCG)
- node net
- edge two intervals intersect
- Size of max clique in HCG channel density
- A lower bound
- tracks ? channel density
a
f
e
b
c
d
a
ld(x)
a
f
b
e
d
c
17Interval Packing
- Thm If the density of a set of intervals is d,
then they can be packed into d tracks. - Proof I1(a,b) I2(c,d)
- Define I1ltI2 iff bltc or I1I2
- reflective I1ltI1
- anti-symmetric I1ltI2, I2ltI1 ? I1I2
- transitive I1ltI2, I2ltI3 ? I1ltI3
- The interval set with binary relation lt forms a
partially ordered set (POSET)!! - Intervals in a track? they form a chain
- Intervals intersecting a common column ?
anti-chain - Dilworths theorem (1950) If the max anti-chain
of a POSET is d, then the POSET can be
partitioned into d chains
I6
I5
I4
I3
I2
I1
c
a
b
d
I5
I2
I6
I4
I1
I3
18Left-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
I1
I5
I4
I3
I4
I2
I3
I1
I2
O(nlogn) time algorithm. Greedy algorithm works!
19Left-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
3
5
4
2
6
3
5
4
0
2
4
6
3
5
4
0
2
4
20Vertical 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
21Lower Bound on Channel Width
0
1
6
1
2
3
5
6
3
5
4
0
2
4
6
Length of the longest path in the vertical
con- straint graph
1
5
3
4
2
Lower bound 3
22Lower Bound on Channel Width
23Constrained 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.
24Constrained Left-edge Algorithm
6
1
0
1
6
1
2
3
5
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
3
5
4
2
6
3
5
4
0
2
4
6
3
5
4
0
2
4
25Cycles in Vertical Constraint Graph
- If there is cycle in the vertical constraint
graph, the channel is not routable. - Dogleg can solve the problem.
1
2
1
0
Vertical constraint graph
2
0
1
2
2
1
0
2
0
1
26Reduce 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
27Deutchs 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
28Deutchs Dogleg Algorithm
1
1
2
0
2
3
Vertical constraint graph
1
1
2
3
3
2
4
4
2
3
0
3
4
4
Routing without dogleg? Vertical constraint
graph after splitting? Routing with dogleg?
29Deutchs Dogleg Algorithm
1
1
2
0
2
3
Vertical constraint graph after splitting
1
2a
2b
???
3a
3b
4
2
3
0
3
4
4
Without dogleg
By Deutchs Dogleg alg.
???
???
30Drawbacks of the ConstrainedLeft-edge Algorithm
0
0
1
3
3
0
Vertical constraint graph
1
3
2
1
2
0
0
2
0
There is a better solution...
31Drawbacks of the ConstrainedLeft-edge Algorithm
Whats wrong with the Constrained
Left-edge algorithm? The Constrained Left-edge
algorithm does not take care of the vertical and
horizontal constraints together optimally.