120 likes | 245 Views
Capo: Robust and Scalable Open-Source Min-cut Floorplacer. Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor L. Markov EECS Department University of Michigan, Ann Arbor. http://vlsicad.eecs.umich.edu/BK/PDtools/tar.gz/LATEST/.
E N D
Capo: Robust and Scalable Open-Source Min-cut Floorplacer 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 http://vlsicad.eecs.umich.edu/BK/PDtools/tar.gz/LATEST/ Credits for original Capo: Caldwell, Kahng & Markov
Original 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
Basic 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 (B&B): 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)
Capo’s 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
Advanced 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 <1 • 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; ICCAD`03) • Look-ahead criteria for Parquet were sharpened
Recent 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
Large-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
Capo Memory & Runtime Datawith –faster (Opteron @2.8GHz, Linux) 7h40m 17 mins
Example 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
Infrastructure 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://vlsicad.eecs.umich.edu/BK/PDtools/ • Compatible with OpenAccess • Ongoing work on further improvements