Title: A new Incremental Placement Algorithm and its application to CongestionAware Divisor Extraction
1A new Incremental Placement Algorithm and its
application toCongestion-Aware Divisor Extraction
- Satrajit Chatterjee (satrajit_at_cs.berkeley.edu)
- Robert Brayton (brayton_at_eecs.berkeley.edu)
ICCAD / Nov 9th 2004
2Outline
- Motivation
- General Approaches
- Layout-Aware Decomposition
- Example
- Algorithm
- Experimental Results
- Conclusions
3The Problem Wires
- Timing Closure
- Wire delays are a significant fraction of the
total circuit delay - Routing Difficulty
- Designs are increasing in wiring complexity
- Wire not scaling as much as logic
- Tighter timing constraints on routes
- Because delays from wires are significant
4The Problem Flow
5Approaches to Placement-Aware Synthesis
2
1
- Maintaining point placement through-out the flow
- Pedram and Bhat 91
- Gosti et al. 01
- Kutzschebauch
- and Stok 02
Structural (graph) properties of netlists Kudva
et al. 02
Empirical study
Timing Closure
Congestion
6Approaches to Placement-Aware Synthesis
2
1
- Maintaining point placement through-out the flow
- Pedram and Bhat 91
- Gosti et al. 01
- Kutzschebauch
- and Stok 02
Structural (graph) properties of netlists Kudva
et al. 02
Empirical study
This Work
Timing Closure
Focus Improving routability Approach Maintain
point-placement of netlist during decomposition
(All other logic optimization and mapping is not
layout aware)
7Approaches to Placement-Aware Synthesis
2
1
- Maintaining point placement through-out the flow
- Pedram and Bhat 91
- Gosti et al. 01
- Kutzschebauch
- and Stok 02
Structural (graph) properties of netlists Kudva
et al. 02
Empirical study
We look at common divisor extraction since that
leads to large changes in the netlist
This Work
Timing Closure
Focus Improving routability Approach Maintain
point-placement of netlist during decomposition
(All other logic optimization and mapping is not
layout aware)
8Conventional Extraction A Review
The Fast-extract algorithm
- Make a list of candidate divisors
- While good divisors exist
- Pick the divisor with highest literal-gain
- Perform division
- Update gains of all affected divisors
No looking at wires
literal-gain reduction in num of literals if
divisor is used
Example
9Layout-Aware Extraction
- Associate a point placement (x, y) with each node
of the netlist
Use this to estimate wire-lengths using HPWL model
Use wire-length estimates to drive extraction
10An Example
- Same literal savings, but for wire-length A is
better than B
A
B
Some divisors are better for wire-length than
others i.e. have better wire-gain than
others So in this example, wire-gain(t) gt
wire-gain(u)
11Cost Function
- gain(d) kwire-gain(d) (1 k)literal-gain(d)
conventional literal savings
new wire-length savings
- When k 0 it is the same as conventional
extraction - When k 1 it is completely wire-length driven
12Computing the wire-gain
- Wire-gain of a divisor depends on where it is
placed
a
a
tx
tx
tab
c
bcy
c
bcy
tab
tc
tc
b
b
We place the new divisor optimally where the
increase in the total HPWL is minimum
13Division Illustrated
Expand
divisor d
Shrink
wire-gain(d) total wirelength before shrink
total wirelength after expand
Reduction in wirelength if d is used
To maximize wire-gain, we want to minimize
expansion of bounding boxes
14Problem Abstraction
Where to place P so that expansion is minimum?
P(x,y)
15Problem is Separable
- The semi-perimeter of each rectangle is the sum
of the vertical component and the horizontal
component. - If the y-coordinate of P is changed, the
horizontal components of cost doesnt change.
cost (x, y) costx(x) costy(y)
Can minimize costx(x) and costy(y) independently
16Some analysis ..
- .. that we shall skip and explain the algorithm
directly with an example
17An example
y-coordinate
What is the y-coordinate that minimizes the
vertical expansion of the rectangles?
18The Algorithm
y-coordinate
1
2
3
4
5
(12, 12) is optimal region
6
7
8
9
10
11
12
Step 1 Sort edges in order of increasing
y-coordinate Step 2 Compute the median points
that is region of optimality
19The Algorithm
y-coordinate
1
2
3
4
5
Subtract bottom edges above median
-4
-4
12
6
7
8
9
Add top edges below median
18
10
22
11
12
Optimal Cost
Step 3 Total cost of expansion is just sum of
y-coordinates with suitable signs!
20Layout-aware Extraction Algorithm
- Place given netlist
- Make a list of candidate divisors
- For each candidate divisor d compute optimum
location and - gain(d) kwire-gain(d) (1
k)literal-gain(d) - While good divisors exist
- Pick the divisor with highest gain
- Perform division
- Update gains of all affected divisors
- Every 500 iterations re-place the current
netlist and update gains
21Experimental Flow
Technology Mapping for Area in SIS
Technology Independent
sweep eliminate simplify eliminate sweep eliminate
5 simplify fx / lx-0.5 / lx-1.0 sweep eliminate s
weep mfs w 22
Two different back-ends
Congestion Driven Placement
Wire-length Driven Placement
Global Routing
Measure Congestion
22Experimental Flow
Technology Mapping for Area in SIS
- Only layout-aware step i.e. layout-aware only
locally - Both earlier and later steps do not use any
layout information - So the final placement step regenerates the
placement information from scratch
Technology Independent
sweep eliminate simplify eliminate sweep eliminate
5 simplify sweep eliminate sweep mfs w 22
Two different back-ends
Congestion Driven Placement
Wire-length Driven Placement
lx-0.5 means k 0.5
fx / lx-0.5 / lx-1.0
gain(d) kwire-gain(d) (1
k)literal-gain(d)
Global Routing
Measure Congestion
23Experimental Flow
Technology Mapping for Area in SIS
Technology Independent
sweep eliminate simplify eliminate sweep eliminate
5 simplify fx / lx-0.5 / lx-1.0 sweep eliminate s
weep mfs w 22
Two different back-ends
Congestion Driven Placement
Wire-length Driven Placement
Global Routing
Measure Congestion
24Results Congestion Driven Placement
- Measure of congestion is the percentage of
over-capacity cells during routing - Wirelength doesnt go down much since placement
is congestion-driven - Area goes down slightly (even assuming constant
whitespace)
25Results Wire-length Driven Placement
- Measure of congestion is the maximum number of
nets crossing a cell edge - Wirelength doesnt go down much in lx-1.0 because
of placer instability - Area goes down slightly (even assuming constant
whitespace)
26Variation in k
Vary k to get different netlists
gain(d) kwire-gain(d) (1
k)literal-gain(d)
Measure number of literals
27Variation in k
- Even in purely wire-length driven mode, literals
does not increase much - Usually literals decreases (compared to purely
literal-driven approach) but not always - Doesnt look like it is due to scheduling
randomization
28Variation in k
40
Congestion
6
Number of literals
Two netlists with approximately same size, but
one has about 40 less congestion than the other
Connection with structural metrics like adhesion?
29Conclusions
- Layout-aware decomposition at the technology
independent level can significantly reduce
congestion - About 20 reduction on average is seen for
percentage of over capacity global router cells - No area penalty (usually even fewer literals)
- Only one step in the technology independent flow
was layout-aware yet it worked - Need to explore connection with structural metrics
30The End
31Additional Slides
32COG and optimal location can be very different
33Development of the Algorithm
34Some Results
- Separability
- The semi-perimeter of each rectangle is the sum
of the vertical component and the horizontal
component. - If the y-coordinate of P is changed, the
horizontal components of cost doesnt change.
cost (x, y) costx(x) costy(y)
35Some Results
- Convexity of costx(x)
- Sum of piece-wise linear convex functions
- Contiguous optimum region
- Optima occur on projections of the edges
Costx
x
36Some Results
- Claim Number of rectangles entirely on one side
of the optimum region equals number of rectangles
entirely on the other side. - Proof Suppose not. Then by moving from the
optimum region towards the side with more
rectangles we can reduce the cost. Contradiction.
37Some Results
- Claim If Yy1, .. y2m is the ordered list of
projections then (ym, ym1) are the y-coordinates
of the endpoints of the optimum region. - Proof
- Every rectangle lies either entirely above,
entirely below or straddles the optimum region. - Number above Number below.
- Every straddler contributes one coordinate to
above and below
Looking at costy(y)
y1
y1
..
y6
(This proof assumes that all the projected points
are distinct, but can be easily extended to the
general case.)
38Algorithm
- Determining optimum region easy
- Compute the median of the projections of the
edges - How to find cost of optimum region?
Inside the optimum region Nabove Nbelow, so
39Algorithm Y-Optimum Region
Input List L of tuples (y, t) Projection of
horizontal edges indicating begin whether
top or bottom edge i 1, cost 0 m
length(L) / 2 for each (y, t) in L in order
do if (i m and t bottom) then cost
cost y else if (i m 1 and t top)
then cost cost y end if if (i m)
then yopt y else if (i m 1) then
yopt y end if i i 1 end for return
((yopt, yopt), cost) end