9/4/2015 1 VLSI Physical Design Automation Prof. David Pan [email protected] Office: ACES 5.434...
-
Upload
henry-anderson -
Category
Documents
-
view
218 -
download
1
Transcript of 9/4/2015 1 VLSI Physical Design Automation Prof. David Pan [email protected] Office: ACES 5.434...
04/19/23 1
VLSI Physical Design Automation
Prof. David Pan
Office: ACES 5.434
Detailed Routing (I)
204/19/23
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.
AA
BB
304/19/23
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.
404/19/23
Channel Ordering
AA
BB
The width of A is not known untilThe width of A is not known untilA is routed, we must route A first.A is routed, we must route A first.
AA
BB
CC DDWhat should be the routingWhat should be the routingorder for this example?order for this example?
504/19/23
Channel Ordering
CC DD
BB AA
No feasible No feasible channel order!channel order!
CC DD
BB AA
Need to use switchboxNeed to use switchbox
1. Fix the terminals between A & B1. Fix the terminals between A & B2. Route B, C, then D (channel)2. Route B, C, then D (channel)3. Route A (switchbox)3. Route A (switchbox)
604/19/23
Routing Grid Models
• Grid-based model is the most commonly used.• We will focus on it in this course.
Grid-based RoutingGrid-based Routing Gridless RoutingGridless Routing
704/19/23
Channel Routing Terminology
Upper boundaryUpper boundary
Lower boundaryLower boundary
TracksTracks
TerminalsTerminalsViaVia
TrunksTrunks BranchesBranches
DoglegDogleg
804/19/23
Routing Layer Models
HV modelHV modelVH modelVH model
HVH modelHVH modelVHV modelVHV model
Layer 1Layer 1Layer 2Layer 2Layer 3Layer 3ViaVia
1 layer1 layer
2 layers2 layers
3 layers3 layers
904/19/23
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.
1004/19/23
Channel Routing Problem
11 33 00 00 22 11 11 00
33 00 11 22 00 33 00 00
Example: (13002110) (30120300)where 0 = no terminal
1104/19/23
Constraint Graphs
00 11 66 11 22 33 55
66 33 55 44 00 22 44
Vertical constraint graphVertical constraint graph
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3344
55
66
Horizontal constraint graphHorizontal constraint graph
1122
3344
55
66
11 2233
55 4466
1204/19/23
Lower Bound on Channel Width00 11 66 11 22 33 55
66 33 55 44 00 22 44
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11 2233
55 4466
LocalLocaldensitydensity 11 33 44 44 44 44 22
Channel density =Channel density =Maximum local densityMaximum local density
Lower bound = 4Lower bound = 4
Lower bound on channel width = Channel density
04/19/23 13
Left-edge Channel Routing Algorithm
“Wire Routing by Optimizing ChannelAssignment within Large Apertures”, A. Hashimoto and J. Stevens, DAC 1971, pages 155-169.
1404/19/23
Features 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.
00 00 00 22 00 11 00
00 11 00 00 00 22 00
2211
Vertical constraintVertical constraintmay occur here.may occur here.
1504/19/23
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.
1604/19/23
Channel Density
Local density at column Cld(C) = # nets split by column C
Channel Densityd = max ld( C ) all C
Each net spans over an interval
Horizontal Constraint Graph(HCG)node : netedge: two intervals intersect
Size of max clique in HCG= channel density
A lower bound:# tracks channel density
a a
a
c
a
bd
ef
ld(x)
e
a
dc
b
f
1704/19/23
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: I1<I2 iff b<c or I1=I2
reflective: I1<I1
anti-symmetric: I1<I2, I2<I1 I1=I2
transitive: I1<I2, I2<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
Interval PackingI6
ca b d
I4I3
I1I2
I5
I1
I5 I2
I3
I4
I6
1804/19/23
Left-Edge Algorithm for Interval PackingRepeat
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
O(nlogn) time algorithm. Greedy algorithm works!
I6
I4I3
I1 I2
I5
I6
I4I3
I1
I2
I5
1904/19/23
Left-edge Algorithm: Example
00 11 66 11 22 33 55
66 33 55 44 00 22 44
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3355
44
66
1. Sort by left end points.1. Sort by left end points.
00 11 66 11 22 33 55
66 33 55 44 00 22 44
1166
2. Place nets greedily.2. Place nets greedily.
3355
4422
2004/19/23
Vertical Constraint Consideration
00 11 66 11 22 33 55
66 33 55 44 00 22 44
• The Left-edge algorithm ignores vertical constraints.• When there is only one vertical layer, the algorithm will
produce overlapping of vertical wire segments.
2104/19/23
Lower Bound on Channel Width
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3344
55
66
Lower bound = 3Lower bound = 3
Length of the longestpath in the vertical con-straint graph
2204/19/23
Lower Bound on Channel Width
density Channel
VCG in thepath longest theofLength max
widthchannelon boundLower
2304/19/23
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.
2404/19/23
Constrained Left-edge Algorithm
00 11 66 11 22 33 55
66 33 55 44 00 22 44
Vertical constraint graphVertical constraint graph
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3355
44
66
1. Sort the left end points.1. Sort the left end points.
00 11 66 11 22 33 55
66 33 55 44 00 22 44
2. Place nets greedily.2. Place nets greedily.
11
22
3344
55
66
4455
66 223311
2504/19/23
Cycles in Vertical Constraint Graph
11 00 22
22 00 11
Vertical Vertical
constraintconstraint
graphgraph
11
22
• If there is cycle in the vertical constraint graph, the channel is not routable.
• Dogleg can solve the problem.11 00 22
22 00 11
2604/19/23
Reduce Channel Width by Dogleg
Even without cycle in the VCG, Dogleg is useful because it can reduce channel width.
11 11 22 22 00
00 22 00 33 33
Without doglegWithout dogleg With doglegWith dogleg
???
2704/19/23
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.
11 11 22 22 00
00 22 00 33 33
Restricted doglegRestricted dogleg11 11 00 22 00
00 22 00 33 33
Unrestricted doglegUnrestricted dogleg
2804/19/23
Deutch’s Dogleg Algorithm
VerticalVertical
constraintconstraint
graphgraph
11
44
3322
11 11 22 00 22 33
22 33 00 33 44 44
112233
44
Routing without dogleg?Routing without dogleg?
Vertical constraint graph after splitting?Vertical constraint graph after splitting?Routing with dogleg?Routing with dogleg?
2904/19/23
Deutch’s Dogleg Algorithm
VerticalVerticalconstraintconstraint
graphgraphafterafter
splittingsplitting
11 11 22 00 22 33
22 33 00 33 44 44
112a2a 2b2b
3a3a 3b3b44
Without doglegWithout dogleg By Deutch’s Dogleg alg.By Deutch’s Dogleg alg.
???
??????
3004/19/23
Drawbacks of the ConstrainedLeft-edge Algorithm
00 00 11 33 33 00
11 22 00 00 22 0022
11 33VerticalVertical
constraintconstraint
graphgraph
00 00 11 33 33 00
11 22 00 00 22 00
By Constrained Left- By Constrained Left- edge algorithmedge algorithm
There is a betterThere is a bettersolution...solution...
3104/19/23
What’s wrong with the Constrained Left-edgeWhat’s wrong with the Constrained Left-edgealgorithm?algorithm?
The Constrained Left-edge algorithm does notThe Constrained Left-edge algorithm does nottake care of the vertical and horizontal constraintstake care of the vertical and horizontal constraintstogether optimally.together optimally.
Drawbacks of the ConstrainedLeft-edge Algorithm