1 / 12

Capo: Robust and Scalable Open-Source Min-cut Floorplacer

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/.

hollis
Download Presentation

Capo: Robust and Scalable Open-Source Min-cut Floorplacer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. Min-cut Bisection

  4. 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)

  5. 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

  6. The Integration of Block-packing(using Parquet) ICCAD `04

  7. 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

  8. 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

  9. 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

  10. Capo Memory & Runtime Datawith –faster (Opteron @2.8GHz, Linux) 7h40m 17 mins

  11. 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

  12. 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

More Related