On the Relevance of Wire Load Models Kenneth D. Boese, Cadence Design Systems, San Jose Andrew B. Kahng, UCSD CSE and ECE Depts., La Jolla Stefanus Mantik, UCLA CS Dept., Los Angeles Why WLMs? Synthesis needs placement parasitics Placement needs synthesized netlist Chicken vs. egg WLMs estimate parastics pre-placement Wire cap = f(net fanout) Cap • • • • • 2 5 10 #Pins • But WLMs no longer accurate! (?) 15 Motivating Questions • How inaccurate are WLMs? • Are WLMs good for optimization? • Are WLMs good for estimation? • How use WLMs in optimization flow? Previous Works • “Bad” WLMs motivate post-placement synthesis – e.g., Lu et al. [7] • Need for constructive estimators – Scheffer and Nequist [8] – “law of small numbers” • Accuracy vs. fidelity – Boese et al. [1,2] Kinds of WLMs • Custom – multiple iterations • Statistical – from library • Structural – look at adjacent nets Historical Design Flows • No WLM – interconnect insignificant • Custom WLMs – requires iterations • Statistical WLMs – fewer iterations • Add post-placement optimization – IPO, PB-Opt • Post-placement only (integrated tool) – PKS, Physical Compiler, Blast Fusion How Accurate Are WLMs? • High Deviations WLMs Inaccurate • Normalized to Ave. Net Cap Wire Cap Variation (Fanout 1) 10 Std Dev/Net Cap Ave Dev/Net Cap 8 6 4 2 0 0 5 Design 10 15 Accuracy: Skew Measures Wire Cap Skew (Fanout 1) 1 0.9 0.8 0.7 Percentile of Ave Wire Cap Median Wire Cap / Ave Wire Cap 0.6 0.5 0.4 0.3 0.2 0.1 0 0 5 Design 10 • What if long nets not critical? – timing-driven placement – buffer insertion • So ... Must Test WLMs in Actual Flows 15 Are WLMs Good for Optimization? • Sufficient? • Necessary? • Compare different flows – real tool (PKS) – real designs Default PKS Flow RTL Generic Netlist Area opt Technology mapping Mapped Netlist Timing opt Placement Placed Netlist Post-placement timing opt Global routing Routed Netlist 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt Struct WLM 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt Lib WLM 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt Cust WLM 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt WLM = 0 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt 4. Placement 5. Post-pl timing opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt Lib WLM 4. Placement 5. Post-pl timing opt No logic opt 6. Global routing 7 Flow Variations • Structural WLM • Library WLM • Custom WLM • No WLM • No Pre Pl Opt • No Post Pl Logic Opt • No Post Pl Opt 1. Area opt 2. Technology mapping 3. Timing opt Lib WLM 4. Placement 5. Post-pl timing opt 6. Global routing 0 No postOpt No postLogicOpt No WLM No preOpt Custom WLM Library WLM -7 No postOpt No postLogicOpt 0.5 No WLM 1 No preOpt 0 Custom WLM 1.5 Library WLM Normalized Run Time Struct WLM 2 Struct WLM Flow Comparisons Average Slack -1 -2 -3 -4 -5 -6 Implications • WLMs not sufficient – post-place opt needed • WLMs not necessary for good slacks (?) • WLMs reduce running time • Some improvement from Post Place Logic Opts Do WLMs Give Good Estimates? • WLM slack vs. groute slack • Custom WLM 15 % Est Error 10 5 0 0 5 10 -5 -10 Design 15 How Should We Use WLMs? • How much optimism? • Which WLM best? – Structural (?) – no extra input • Multi-start? – different WLMs / optimism levels – is it randomness? Caveats • • • • This tool, this version, these designs Global not detailed or extracted routing No clock tree Routability ignored – detours, strict • Die size fixed • Some designs pre-optimized Conclusions / Future Work • Strict accuracy not right question • WLMs improve run time – NOT design quality (?) • WLMs may be ballpark estimators • Post-place opt indispensible – small gains from post-place logic opt • Sensitivity analysis of placement and post-place opt