Title: Capo: Robust and Scalable OpenSource Mincut Floorplacer
1Capo Robust and Scalable Open-Source Min-cut
Floorplacer
http//vlsicad.eecs.umich.edu/BK/PDtools/tar.gz/LA
TEST/
- Jarrod A. Roy, David A. Papa,Saurabh N. Adya,
Hayward H. Chan, James F. Lu, Aaron N. Ng,Igor
L. Markov - EECS DepartmentUniversity of Michigan, Ann Arbor
Credits for original Capo Caldwell, Kahng
Markov
2Original Motivation (ca 2000)
- Co-developed at UCLA with Andy Caldwellunder the
guidance of Andrew Kahng - First fixed-die placer in the literature
- First academic placer usingmulti-level
partitioning (MLPart) - First academic placer in the US to compete
heads-onwith commercial placers on large
industrial netlists - All code written from scratch
- Capo - an experiment in min-cut placement
- DAC 2000 Can Recursive Bisection AloneProduce
Routable Placements ? - Message minimizing HPWL is not enough
3Min-cut Bisection
4Basic Components Techniques
- Overall runtime O(P (log P)2)
- Three min-cut partitioners
- MLPart and FMPart (heur.) BBPart
(optimal)ASPDAC 2000, JEA 2000, ISPD 98/TCAD
01 - Capo makes several different callsto MLPart
every time (some are Vcycling) - Shifting cut-lines (not a grid) ASIC 98
- Optimal end-case placers (BB) ISPD 98
- Also used in detail placement RowIroning
- Uniform whitespace allocation TCAD 03
- Non-uniform whitespace allocation ICCAD 03
- Feedback / cycling (Kahng Reda, DAC 04)
5Capos Distinctive Features(can be found in some
industry tools, but rarely in academic placers)
- Global placement with Capo often produces legal
placements - No cell-shifting / legalization is necessary
- Top-down estimates of cell locations and
interconnect are very accurate - This seems to improve generic routability
- Ensured robust handling of obstacles since 2000
- Can make any netlist routable by more generous
floorplan (greater whitespace) - Request uniform whitespace distribution!
Very low via counts
6The Integration of Block-packing(using Parquet)
ICCAD 04
7Advanced Details
- Weighted terminal propagation
- Described in a TR by Karypis Selvakkumaran
- More accurate capture of HPWL in min-cut
partitioning - Nets with terminals too close to cut-line have
cost lt1 - Some orig. nets are modeled by two nets for
min-cut - To improve terminal propagation, usean SOR-based
quadratic placerafter every round of
partitioning - Also tried ACG (Alpert, Nam Villarrubia
ICCAD03) - Look-ahead criteria for Parquet were sharpened
8Recent Improvements
- Whitespace allocation rewritten entirely
- New params -minLocalWS and -safeWS
- Cutline positioning relative to obstacles
- Feature locations are corners of fixed macros
- Among those, we minimize cutlength
- Cutline direction is selected based on cutlength
- MLPart FMPart are 2x faster (loop unroling)
- Also, bugfix in Vcycling
- Also, variable-effort partitioning in Capo
- Stronger, much faster RowIroning
- Stronger macro legalizer, more scalable cell leg.
- Meta-options -faster and -tryHarder
9Large-scale Visualization
- Example different whitespace allocation modes
- Plots of large designs with data compression
- Less than 1 bit per cell
- The plotter is in the GSRC bookshelf under
PlaceUtils
10Capo Memory Runtime Datawith faster (Opteron
_at_2.8GHz, Linux)
7h40m
17 mins
11Example of Self-profiling in Capo
Adaptec 1 (250K) Big Blue 4 (2.1M)
- MLPart took 9360.9sec
(39.25) - FMPart took 661.4sec
(2.77) - BBPart took 255.3sec
(1.07) - SmPlace took 1727.6sec
(7.24) - ProblemSetup took 11365.5sec (47.66)
- SmPlProbSetup took 133.5sec (0.56)
- Level Stats took 151.2sec
(0.63) - Total runtime of measured components
23657.1sec (99.2)
- MLPart took 396.06sec
(51.58) - FMPart took 38.29sec
(4.99) - BBPart took 20.13sec
(2.62) - SmPlace took 139.14sec
(18.12) - ProblemSetup took 151.01sec (19.67)
- SmPlProbSetup took 4.85sec (0.63)
- Level Stats took 10.79sec
(1.41) - Total runtime of measured components
760.43sec (99.03)
RowIroning takes additional 10-15 by runtime
12Infrastructure Availablein GSRC Bookshelf (April
2005)
- Source code binaries
- Converters Bookshelf to/from LEFDEF
- Gnuplotter with data compression
- Macro cell legalizer
- Improved stand-alone RowIroning
- Complete Capo 9.1 (with MLPart)for Linux
(32/64), Solaris (32/64) and Windowshttp//vlsica
d.eecs.umich.edu/BK/PDtools/ - Compatible with OpenAccess
- Ongoing work on further improvements
13Example Whats Wrong Here?