1 / 28

Fast Algorithms for Slew Constrained Minimum Cost Buffering

Fast Algorithms for Slew Constrained Minimum Cost Buffering. S. Hu*, C. Alpert**, J. Hu*, S. Karandikar**, Z. Li*, W. Shi* and C. Sze** *Dept of ECE, Texas A&M University **IBM Austin Research Lab. Outline. Motivation Slew Model Algorithms Discrete slew buffering with fixed input slew

janet
Download Presentation

Fast Algorithms for Slew Constrained Minimum Cost Buffering

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. Fast Algorithms for Slew Constrained Minimum Cost Buffering S. Hu*, C. Alpert**, J. Hu*, S. Karandikar**, Z. Li*, W. Shi* and C. Sze** *Dept of ECE, Texas A&M University **IBM Austin Research Lab

  2. Outline • Motivation • Slew Model • Algorithms • Discrete slew buffering with fixed input slew • Discrete slew buffering with non-fixed input slew • Continuous slew buffering • Experimental Results • Conclusion

  3. Motivation • Buffer insertion is prevalent in VLSI designs. • e.g., for timing optimization and improving signal integrity. • Problems: • Most nets (90%-95%) are NOT timing critical, so don’t need a timing-driven formulation. • Takes a long time as millions of nets need buffering. • Uses a ton of area so area minimization is critical. • Our solution: • Replace timing-driven formulation with slew-driven formulation - Slew Buffering. • Good enough for most nets as they are not critical. • >100x faster than timing-driven buffering. • Still saving area compared to timing buffering.

  4. A New Flow for Buffering 1M Nets • First buffering 1 million nets using slew buffering algorithm. • Can be done efficiently as our algorithm can buffer 1000 industrial nets (48 buffer types) in 5 seconds. • Timing analysis finds that most nets, except say 50K critical nets, satisfy the timing constraint. • Rip up these 50K critical nets for rebuffering by timing buffering algorithm. • Benefits: • Much faster. • More area saving.

  5. Slew Definition Delay Slew (Transition Time)

  6. Slew Model Upstream Downstream vi vj Slew degradation on wire: Sw(vi,vj) Sb,out(vi) S(vj)

  7. Buffer/Driver Input Slew Assumption • Output slew of a buffer depends on its input slew:bottom-up dynamic programming inapplicable • Assumption: the input slew of each buffer is conservatively assumed to be a fixed value • Then the output slew of a buffer is where Rb and Kb are called slew resistance and intrinsic slew.

  8. Slew Resistance of An Inverter

  9. Problem Formulation • Given • A Steiner tree • Maximum input slew rate α at each buffer/sink (slew constraint) • A buffer library • RC parameters • Candidate buffer locations • Find a minimal area buffer insertion solution such that the slew constraint is satisfied

  10. NP-Complete Proof

  11. vi is a sink ciis sink capacitance v is an internal node Fixed-Input Slew Buffering: Candidate Solution Characteristics • Each candidate solution is associated with • vi: a node • ci: downstream capacitance • si: cumulative slew degradation along wire • wi: cumulative buffer area

  12. Candidate solutions are propagated toward the source Dynamic Programming • Start from sinks • Candidate solutions are generated • Three operations • Add Wire • Insert Buffer • Merge • Solution Pruning

  13. Solution Propagation: Add Wire • c2 = c1 + cx • s2 = s1 + (rcx2/2 + rxc1)·ln9 • s: slew degradation along wires • r: wire slew resistance per unit length • c: wire capacitance per unit length x (v1, c1, w1, s1) (v2, c2, w2, s2)

  14. Solution Propagation: Insert Buffer (v1, c1, w1, s1) (v1, c1b, w1b, s1b) c1b = Cb s1b = 0 w1b = w1+w(b) Cb: buffer input capacitance Pruned if the following slew constraint is violated: Rb: buffer output slew resistance Kb: buffer intrinsic slew

  15. Solution Propagation: Merge • cmerge = cl + cr • wmerge = wl + wr • smerge = max(sl , sr) (v, cr ,wlr,sr) (v, cl , wl , sl)

  16. Solution Pruning • Two candidate solutions • Solution 1: (v, c1, w1 , s1) • Solution 2: (v, c2, w2 , s2) • Solution 1 is inferior if • c1 > c2 : larger load • and w1 > w2 : larger buffer area • and s1 > s2 : worse cumulative slew degradationon wire

  17. Timing v.s. Slew Buffering (I) • A buffer insertion: S=0, C=C(b). • Inserting one buffer one new solution (the one with the smallest cost). • In min-cost timing buffering, a buffer insertion brings many non-inferior (C,W,Q) with the same C, where Q is the required arrival time (RAT).

  18. Timing v.s. Slew Buffering (II) • Slew constraint is close to length constraint. • An extreme case: • in min-cost timing buffering, solutions with no buffer inserted live till driver. • Soon become infeasible in slew buffering. • A linear time optimal algorithm for slew buffering with a single buffer type. • No polynomial time min-cost timing buffering algorithm in the same case.

  19. Non-Fixed Input Slew • Input slew to each buffer can vary. • Our idea: discretize the possible input slew values into input slew bins. • For each input slew bin, carry out the above procedure (for the fixed input slew case) to propagate solutions. • Some details • Input slew bins can be merged for speedup. • Inferiority also depends on the slew bin. • A maximum bipartite matching algorithm is used for pruning.

  20. Greedy algorithm: toward the source Continuous Slew Buffering • Buffers are allowed to be inserted anywhere. • Single buffer type: a linear greedy optimal algorithm – add buffer as upstream as possible. • Start from sinks

  21. Multiple Buffer Types • Multiple buffer types: greedily inserts buffers for every possibility. • Slow. • Approximation via adaptive buffer selection • Buffer library is shrunken. • Prefer buffer types with small slew resistance. • Tight slew constraint: choose top few buffer types. • Loose constraint: choose more buffer types.

  22. Experiments • Experiment Setup • 1000 industrial netlists • 48 buffer types including non-inverting buffers and inverting buffers • A Pentium 4 machine with a 3.2GHz CPU 1G memory • Compared to slew constrained min-cost timing buffering: • Pruning based on (Q,C,W). S is maintained. • S is only responsible for checking whether the solution violates the slew constraint.

  23. Slew Constraint v.s. Buffer Area Area Slew Constraint

  24. Slew Constraint v.s. CPU Time (s) CPU Time (s) Slew Constraint

  25. Slew Constraint v.s. Slack Slack Slew Constraint

  26. Slew Con. v.s. #Solutions at Driver #Sol at Driver Slew Constraint

  27. Observations • Discrete Fixed-Input Slew Buffering • Loose slew constraint smaller area. • >100x faster than timing buffering. • Saves 6% area over timing buffering. • Small slack sacrifice. • Non-fixed input slew buffering: • Save up to 40% area over fixed input slew buffering. • Continuous slew buffering • Tight slew constraint causes many buffer insertions. Not-well set candidate buffer positions significant buffer waste. • Continuous slew buffering reduces the waste. • Fast due to adaptive buffer selection strategy.

  28. Conclusion • Propose three slew buffering algorithms: • Discrete fixed-input slew buffering. • Discrete non-fixed input slew buffering. • Continuous slew buffering. • >100x faster while still saving area compared to timing buffering. • >90% nets are not timing critical in reality and thus can be buffered by our algorithm.

More Related