1 / 18

Incorporating Driver Sizing Into Buffer Insertion Via a Delay Penalty Technique

This paper explores the integration of driver sizing into buffer insertion using a delay penalty technique. The authors propose a dynamic programming algorithm to find optimal buffer chains that minimize delay. The approach is tested on several circuits, showing significant improvements in area utilization and slack.

caplan
Download Presentation

Incorporating Driver Sizing Into Buffer Insertion Via a Delay Penalty Technique

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. Incorporating Driver Sizing Into Buffer Insertion Via a Delay Penalty Technique Chuck Alpert, IBM Chris Chu, Iowa State Milos Hrkic, UIC Jiang Hu, IBM Stephen Quay, IBM Gopal Gandham, IBM Chandramouli Kashyap, IBM

  2. Which One is Not Like the Others?

  3. Buffer insertion Wire sizing Driver sizing Steiner tree Which One is Not Like the Others? BIWS

  4. Electrically-challenged net Driver sizing alone Buffer insertion alone Simultaneous optimization Why Simultaneous Optimization?

  5. Three choices Integrating Driver Sizing

  6. slow stage Driver Sizing Affects Multiple Nets

  7. Upstream Capacitance Effects Slack (ns) # Nets Optimized

  8. C1 C2 Decoupling buffers C1 The Driver Sizing Penalty Penalty is delay through fastest decoupling buffer/inverter chain

  9. Delay Penalty Algorithm • Continuous buffer library not realizable • Assume • set of discrete buffers B1, . . ., Bn such that CB1< CB2< . . . < CBn • monotone function delay(Bi, C) • Apply dynamic programming

  10. Given optimal chains Find optimal chain for B5 B1 B2 CB5 B3 B4 Example

  11. Dynamic Programming Recurrence • To drive capacitance CBi, combine optimal chain driving CBj with buffer Bj • D(CB1)=0 • D(CBi)=min0<j<i{D(CBi) + Delay(Bj, CBi)}

  12. Advantages • O(n2) complexity • Compute once as a lookup table • Can handle inverters and slew • Virtually no CPU cost • Applicable for many approaches

  13. Experiments • Five unoptimized circuits (73 – 303K cells) • Three approaches • VG (no driver sizing) • Max (driver sizing with no delay penalty) • DP (driver sizing with delay penalty) • Run on thousands of nets

  14. Total Buffers Inserted

  15. Number of Upsized drivers

  16. Total Area Percentage Increase

  17. Worst Slack

  18. And So . . . • Simple to combine buffer insertion with driver sizing • Virtually no CPU impact • Extends to many buffer insertion approaches • No timing graph queries • Works well

More Related