690 likes | 790 Views
Floorplacement. Igor L. Markov. Floorplacement. (the term was coined by Steve Teig of Simplex/Cadence in 2002). Outline. Introduction Background Floorplanning Standard-cell placement Tricks & extensions Netlist pre-processing and process migration Optimization for timing and power
E N D
Floorplacement Igor L. Markov
Floorplacement (the term was coined by Steve Teig of Simplex/Cadence in 2002)
Outline • Introduction • Background • Floorplanning • Standard-cell placement • Tricks & extensions • Netlist pre-processing and process migration • Optimization for timing and power • Unification of placement and floorplanning • Large-scale mixed-size placement • Applications to large-scale floorplanning • Free-shape floorplanning • Summary
Traditional VLSI Design Flows Specification Partitioning Logic Design Floorplanning Physical Design Placement Routing Fabrication Compaction Testing
Unfortunate Trend: Interconnect Does Not Scale Total dynamic power breakdownfor Intel Centrino(global clock included ) Source: Intel, Feb 2004
Modern VLSI Design Flows Specification This Work Floorplacement Physical Synthesis Logic Design Partitioning Physical Design Floorplanning Placement Design For Manufacturing Detail Routing Routing Compaction Fabrication Testing
Fixed-Die Layout • 10 years ago placement was done for variable die • Except for FPGAs • Modern ASICs use pre-defined floorplans • Layout area, routing tracks, power lines, etcmay be fixed before placement • Area minimization is irrelevant (area is fixed) • New phenomenon: unroutable placements • New phenomenon: whitespace is known a priori • Row utilization% = density % = 100% - whitespace % • Fixed-die layout is harder than variable-die • Can perform variable die with fixed-die tools,but not vice versa • Tools from Cadence, Synopsys, Mentor, IBM explicitly support fixed-die only
Review: Partitioning & Floorplanning • Partitioning • Facilitates a hierarchical design methodology(older placers not scalable) • Floorplanning: seeks non-overlapping locations for hard and soft blocks, shapes for soft blocks • Objectives: minimize area and wirelength • Traditionally assumes “variable-die” (full-chip) layout • Partitioning & Floorplanning allow early estimation of interconnect for logic optimization
Block-based Design Std-cell Design Mixed-size Design • Large rectangles can represent • Intellectual Property (IP): hard or soft • Macros, memories, data-paths, analog modules • Modules of unsynthesized logic
Placement versus Floorplanning • Mathematically, placement and floorplanning (FP) are the same problem • Seek module locations • Must avoid overlaps between modules • Must observe region constraints • Seek to minimize wirelength (power) • Seek to satisfy delay constraints • Main differences • Scale (number of objects) and algorithms • This work: a unified tool (floorplacer)can dynamically invoke FP or placement
Outline • Introduction • Background • Floorplanning: datastructures and algorithms • Standard-cell placement • Tricks & extensions • Netlist pre-processing and process migration • Optimization for timing and power • Unification of placement and floorplanning • Large-scale mixed-size placement • Applications to large-scale floorplanning • Free-shape floorplanning • Summary
Slicing vs. Non-slicing Floorplans Non-slicing FP: More general Slicing FP: Simpler
Classical Block Packing • Seeks non-overlapping locationsof hard and soft blocks • Objectives: minimize area and/or wirelength • Core area not pre-defined (variable-die layout) • Floorplan representations: • Location-based versus topological • O-Tree, B*-Tree, Sequence Pair, TCG, CBL etc • We use SP, but our methods are generally applicable • Simulated Annealing (SA) used for optimization
Sequence Pair (SP) • Proposed by Murata et al. [TCAD ’97] • Two permutations of N blocks capture the geometric relation between each pair of blocks (<…a…b…>,<…a…b…>) a is to the left of b (<…a…b…>,<…b…a…>) a is above b • Horizontal (Vertical) constraint graphs • Edge ab iff a is to the left of b (a is above b) • Given block dimensions and an SP, can find locations • O(n2)-time (faster!) • O(n log(n))-time • O(n log(log(n)))-time Top <ABC, BAC> A Right Left B C Bottom
Fixed Outline Floorplanning • Not an area minimization problem • Rather a constraint satisfaction problem • “Classical Floorplanning Considered Harmful” [Kahng, ISPD `00] • First addressed in our work [ICCD`01, TVLSI`03] y-span x-span
Floorplan “Slack” (compatible with many FP representations) F D F D E E C C B <FEDBCA, ABFECD> B A A <FED> is the LCS Left Packing Right Packing x-slack for block A = x(Aright) – x(Aleft) x-Slack Computation
Example: A Slack-based Move Block with y-slack=0
Fixed-outline FP’er Parquet(based on Simulated Annealing)[Adya&Markov, ICCD 01, TVLSI 03] Restart current floorplan S.A. y-violation S.A. S.A. x-violation required outline
Outline • Introduction • Background • Floorplanning • Standard-cell placement • Tricks & extensions • Pre-processing and process migration • Optimization for timing and power • Unification of placement and floorplanning • Large-scale mixed-size placement • Applications to large-scale floorplanning • Free-shape floorplanning • Summary
Global Placement Techniques • Simulated Annealing • TimberWolf • Dragon (Min-cut + SA) • Min-cutpartitioning (IBM-Cplace, Cadence-Qplace, Capo, Feng Shui) • Multi-level Fiduccia-Mattheyses • Analytical Placement • Force-directed [Cheng & Kuh 84] • PROUD [Tsay & Kuh 88] • GORDIAN and GORDIAN-L [Sigl, Dohl & Johannes 91] • Geometric Partitioning [Vygen 97] • Poisson equation [Eisenmann & Johannes, DAC ‘98] • ACG [Alpert et al, ICCAD 2002]
Global Placement by Recursive Min-cut Partitioning • Placers using min-cut bisection: Capo, FengShui, IBM CPlace, Cadence QPlace Placement Bin 2 1 End-case placement by branch-and-bound etc. 3 4
Detail: Partitioning One Bin Tentative Cut-line 100% area 50% 50%
Detail: Partitioning One Bin Shift cutline to equalize density 60% 40% 50% 50%
Detail: Partitioning One Bin Actual cutline 60% 40% 40% 60%
Min-cut Placement Can Produce Slicing Floorplans • We are going to usethis effect for floorplanning • Potential reductionsin run-time and wirelength • Recall: traditional floorplannersuse Simulated Annealing Slicing Floorplan!
Outline • Introduction • Background • Floorplanning • Standard-cell placement • Tricks & extensions • Netlist pre-processing and process migration • Optimization for timing and power • Unification of placement and floorplanning • Large-scale mixed-size placement • Applications to large-scale floorplanning • Free-shape floorplanning • Summary
Whitespace Allocation vs Buffering(72K Cells, 74% WS) Uniform WS WL=15.32e6 Filler Cells/Capo WL=8.76e6 Min-cut/IBM WL=11.43e6 ACG/IBM WL=10.48e6
Tethering a Cell to a Location • Idea: soft region constraints • Fake nets contribute to wirelength • Penalty for violating soft region constraints • Tunable parameters • Size of tethering box • Number of cells tethered Fake Pin Fake Net
Stable Re-Placement • Start with an initial placement • Tether x% of the cells to the locations specified by initial placement • Add fixed pins and fake nets • Rerun placement • Remove fake pins and nets Tethering offers a tunable amountof freedom for further optimization
Controllable Stability of Min-cut Placers Capo (randomized min-cut) Initial 0% tether 5% tether
Application 1: Process Migration • Shorter design cycles require IP reuse • # of repeaters is increasing rapidlyin more advanced technology nodes • Wires are not scaling as well as devices • More # of repeaters / logic gate • Different minimum local whitespace requirements for blocks during migration • It is desirable to preserverelative timing characteristics of a design
Application 2: Floorplan Reshaping • Floorplans may change due to process migration or due to poor initial estimates • When changing the block shape,a designer may want to maintain the relative timing characteristics of the design
Use of Netlist Pre-processing • For a placed netlist • Geometrically rescale all locationsXnew = Xold * Widthnew / WidtholdYnew = Yold * Heightnew / Heightold(resulting locations may not be legal) • Unplace all objects, but tether themto the above “ideal” locations • During reshaping, must re-place I/O pads • Perform placement, record legal locations • Remove fake pins and nets
Designs Used for Our Experiments Downloaded from http://www.opencores.org
Rescaling Results Placer: Cadence Qplace
Reshaping Results Placer: Cadence Qplace
Tricks for Performance Optimization • Net-weights, net-bounds etc. extend wirelength-driven design flows to timing-driven design flows • Placement-driven synthesis & re-synthesis • Technology mapping, gate sizing and buffering • Gate replication [Lillis et al, DAC 03 and 04] • DAC 04: “Efficient Timing Closure w/o Timing-driven Placement and Routing”, U. Washington • DAC 04: Performance Optimization in Microarchitectural Floorplanning, GA Tech • DAC 03: Cycle-time Opt. in Floorplanning, UCLA • Extended our software (Parquet)
Tricks for Power Optimization • Compute net activity factors • Increase weights of active signal nets • Reduce the clock tree length by placingflip-flops closer together • E.g., in a given placement, cluster FFs,connect FFs in each cluster by fake nets;re-place everything • This may increase length of signal nets
Outline • Introduction • Background • Floorplanning • Standard-cell placement • Tricks & extensions • Netlist pre-processing & process migration • Optimization for timing and power • Unification of placement and floorplanning • Large-scale mixed-size placement • Applications to large-scale floorplanning • Free-shape floorplanning • Summary
A New Generation of Layout Tools • Place objects of very different sizes & semantics • Standard cells • Hard and soft IP • Macros and datapaths • Registers and unsynthesized logic (modules) • Shape modules • Discrete or variable aspect ratios • Flexible shapes (rectilinear or not) • Optimize very different objectives • Handle differences between logicaland physical hierarchies
Why Mixed-size Placement is Difficult • IP reuse, memories etc large rectangles in layout • Mixed-size placement is at least as hard as • Standard cell placement (many small movable modules) • Floorplanning (large, bulky modules are difficult to pack,especially on a fixed die!) • Typical optimization heuristics are move-based • Each move is “local”, i.e., affects few other objects • However, large modules affect many other modules • Some moves have ripple-effect on small cells • Removing overlaps after global placementis not easy, invalidates top-down estimation
Cadence-recommended Mixed-size Placement Flow • QPlace (SEDSM) places large modules first • Designer manually removes overlaps • From now on, modules are considered fixed • QPlace is called to place standard-cells • Otherwise, as our experiments show, • Handling many large cells is not ideal in QPlace
Relevant Academic Work : Continuous Optimization • Force directed approaches • [Eisenmann, Johannes, DAC ‘98] : mixed-size • Wires modelled as attractive forces • Overlaps modelled as repelling forces • Are good when there isabundant white-space • Otherwise, designer must remove overlaps
Relevant Academic Work : Combinatorial Optimzation • Particularly promisingon constrained designs • [Adya & Markov, ISPD `02]: Min-cut Placement + Floorplanning • [Cong et. al, ASPDAC `03]: Multi-level SA placement • [Adya&Markov, ICCAD `03]:Better whitespace distribution • [Madden et. al, ISPD `04]: Min-cut placement + Post Placement Legalization • This work : Floorplacement
Capo+Parquet Flow [Adya & Markov, ISPD ’02] • Proposed pre-processing techniques for solving the mixed-size placement problem • Can be used with standard-cell placers • Main approach: loose integrationof floorplanning and placement • Apparently the first publicationto reliably achieve overlap-free placements
Capo+Parquet Flow [Adya & Markov, ISPD ’02] (Outline) • Generate initial placement using a standard-cell placer (pre-processing trick) • Generate a fixed-outline floorplanning instance by “physical clustering” • Remove overlaps and generate valid macro locations using a fixed-outline floorplanner • Place small cells again using standard-cell placer with macros considered fixed