Title: Optimization of Linear Placements for Wirelength Minimization with Free Sites
1Optimization of Linear Placements for Wirelength
Minimization with Free Sites
- A. B. Kahng, P. Tucker, A. Zelikovsky
- (UCLA UCSD)
- Supported by grants from Cadence Design
Systems, Inc. - http//vlsicad.cs.ucla.edu
2Outline
- Single-Row Problem
- Cell Cost Function
- Exact Algorithms for Single-Row Problem
- Dynamic Programming Algorithm
- Prefix Algorithm
- Clumping Algorithm
- Swapping Heuristic for Cell Ordering
- Experimental Results
- Conclusions and Future Directions
3Single-Row Problem
fixed cells
movable cells
C1
C2
C3
C4
C5
C6
C7
fixed cells
4Single-Row Problem
- Given
- single cell row with n movable cells Ci with
fixed left-to-right order (but variable
positions) and integer lattice of k sites (k gt n)
- m signal nets N j containing fixed cells from
other rows - Find
- non-overlapping placement of n movable cells at k
sites minimizing the total bounding-box
half-perimeter of all m nets.
5Net with Movable and Fixed Cells
fixed cells
net N
fl(N)
fr(N)
single row with movable cells
ml(N)
mr(N)
span (N)
fixed_span (N)
minimize
6Cell Cost Function
- Cell cost function of Ci sum over all nets N
of contributions of Ci to span(N) -
fixed_span(N) - Given position x of cell Ci, cell cost function
- costi(x) ? maxmr(N) -
fr(N),0 - Ci rightmost movable
on net N - ? maxfl(N) -
ml(N),0 - Ci leftmost movable on
net N - Total linear pieces ? 2 ? pins 2 ? nets
2m
7Properties of Cell Cost Function
- Cost function of multi-pin cell is
piecewise-linear and convex
- If each cell is placed in its minimum segment,
- total bounding box half-perimeter is
minimized
8Exact Algorithms for Single-Row Problem
- Dynamic Programming Algorithm
- based on pre-computed cell cost functions
- Prefix Algorithm
- based on piecewise-linearity of cell cost
function - Clumping Algorithm
- based on convexity of cell cost function
9Dynamic Programming Algorithm
- Optimum constrained prefix placement Pi,j of
C1, ..., Ci subject to Ci being left of
site sj - Pi,j is selected from Pi,j-1 and
- Pi-1,j-wi-1 extended by Ci at sj
- wi-1 width of Ci-1
- Cost of prefix placement increased by
costi(sj) - Runtime (i-range) ?(j-range)
- n ? (k - ? wi)
- ? O(n2)
10Dynamic Programming Algorithm
Pi,j has either Ci exactly at sj
(extend Pi-1,j-wi-1)
Ci-1
Ci
sj
sj-wi-1
or Ci to left of sj (use already-computed
Pi,j-1)
Ci
sj-1
11Prefix Algorithm
- Prefix cost function pcosti(x) optimal
placement cost of first i cells subject to Ci
being left of x - pcosti(x) is piecewise-linear decreasing
- Each linear segment is tuple a,b, min,max
- Computing pcosti from pcosti-1 and costi
- ? merging sorted tuple sequences of sizes
- ?jlti pinj and pini (pini pins
on Ci) - Runtime O(m2)
- Note error in proceedings (missing costi
term)
12Prefix Algorithm
cost
pcosti-1
costi
pcosti
x
13Clumping Algorithm
- For each cell Ci, find
- list of coordinates where costi changes slope
- Cis minimum segment
- To each cell in order, apply PLACE(Ci)
- Output positions of cells
- Procedure PLACE(Ci)
- if Ci-1 and Ci cannot be both in their
minimum segments - then COLLAPSE(Ci-1,Ci) and PLACE(Ci-1)
- else place Ci at leftmost optimal available
position
14Clumping Algorithm
- Procedure COLLAPSE(Ci-1,Ci)
- shift positions from the list of Ci by
width(Ci-1) - merge the list for Ci with the list for Ci-1
- find minimum segment for merged list
- width(Ci-1) width(Ci-1) width(Ci)
- delete cell Ci
- Using red-black trees for representation of cell
lists, achieve runtime O(m log m), m nets
15Clumping Algorithm
directions to minimum segments of individual cells
clumped cell
clumped cell
optimal positions for cells
16Swapping Heuristic for Cell Ordering
- Cell-Ordering Problem the Single-Row Problem
where the left-to-right order of cells is not
fixed - Swapping Heuristic
- Repeatedly iterate down the row until no pairs
swap - for every adjacent pair of cells that overlap or
change order when placed at respective min
points, swap their order if placement cost
improves
17Experimental Results
18Conclusions
- First optimal algorithms for single-row cell
placement with free sites, fixed order of cells,
and fixed positions of cells in all other rows - New iterative algorithm to improve the cell
ordering within a given row - Iterative row-based placement algorithm that
applies single-row cell placement to each row in
turn, with optional cell ordering improvement in
the given row - Average of 6.5 improvement in total wirelength
19Extensions
- Incorporate cell flipping into DP solution
- Linear programming formulation for Cell Ordering
Problem - Extend exact DP solution to k rows simultaneously
- Incorporate routability into objective function