290 likes | 424 Views
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
E N D
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 • Discrete slew buffering with non-fixed input slew • Continuous slew buffering • Experimental Results • Conclusion
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.
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.
Slew Definition Delay Slew (Transition Time)
Slew Model Upstream Downstream vi vj Slew degradation on wire: Sw(vi,vj) Sb,out(vi) S(vj)
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.
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
… NP-Complete Proof
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
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
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)
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
Solution Propagation: Merge • cmerge = cl + cr • wmerge = wl + wr • smerge = max(sl , sr) (v, cr ,wlr,sr) (v, cl , wl , sl)
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
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).
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.
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.
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
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.
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.
Slew Constraint v.s. Buffer Area Area Slew Constraint
Slew Constraint v.s. CPU Time (s) CPU Time (s) Slew Constraint
Slew Constraint v.s. Slack Slack Slew Constraint
Slew Con. v.s. #Solutions at Driver #Sol at Driver Slew Constraint
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.
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.