Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— 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 2 Outline Motivation Motivation Slew Model Slew Model Algorithms Algorithms –Discrete slew buffering with fixed input slew –Discrete slew buffering with non-fixed input slew –Continuous slew buffering Experimental Results Experimental Results Conclusion Conclusion

3 3 Motivation Buffer insertion is prevalent in VLSI designs. Buffer insertion is prevalent in VLSI designs. –e.g., for timing optimization and improving signal integrity. Problems: 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: 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 4 A New Flow for Buffering 1M Nets First buffering 1 million nets using slew buffering algorithm. 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. 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. Rip up these 50K critical nets for rebuffering by timing buffering algorithm. Benefits: Benefits: –Much faster. –More area saving.

5 5 Slew Definition Delay Slew (Transition Time)

6 6 Slew Model Upstream Downstream S b,out (v i ) Slew degradation on wire: S w (v i,v j ) S(v j ) vivi vjvj

7 7 Buffer/Driver Input Slew Assumption Output slew of a buffer depends on its input slew: bottom-up dynamic programming inapplicable 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 Assumption: the input slew of each buffer is conservatively assumed to be a fixed value Then the output slew of a buffer is Then the output slew of a buffer is where R b and K b are called slew resistance and intrinsic slew. where R b and K b are called slew resistance and intrinsic slew.

8 8 Slew Resistance of An Inverter

9 9 Problem Formulation Given 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 Find a minimal area buffer insertion solution such that the slew constraint is satisfied

10 10 NP-Complete Proof … Buffer Slew Res Input Cap Cost B1B1B1B11 X1X1X1X1 X 2 +N n B2B2B2B21 X2X2X2X2 X 1 +N n B3B3B3B3N X3X3X3X3 X 4 +N n-1 B4B4B4B4N X4X4X4X4 X 3 +N n-1 ………… B 2n-1 N n-1 X 2n-1 X 2n +N B 2n N n-1 x 2n X 2n-1 +N

11 11 Fixed-Input Slew Buffering: Candidate Solution Characteristics Each candidate solution is associated with Each candidate solution is associated with –v i : a node –c i : downstream capacitance –s i : cumulative slew degradation along wire –w i : cumulative buffer area v i is a sink c i is sink capacitance v is an internal node

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

13 13 Solution Propagation: Add Wire c 2 = c 1 + cx c 2 = c 1 + cx s 2 = s 1 + (rcx 2 /2 + rxc 1 )·ln9 s 2 = s 1 + (rcx 2 /2 + rxc 1 )·ln9 s: slew degradation along wires s: slew degradation along wires r: wire slew resistance per unit length r: wire slew resistance per unit length c: wire capacitance per unit length c: wire capacitance per unit length (v 1, c 1, w 1, s 1 ) (v 2, c 2, w 2, s 2 ) x

14 14 Solution Propagation: Insert Buffer c 1b = C b s 1b = 0 w 1b = w 1 +w(b) C b : buffer input capacitance Pruned if the following slew constraint is violated: R b : buffer output slew resistance K b : buffer intrinsic slew (v 1, c 1, w 1, s 1 ) (v 1, c 1b, w 1b, s 1b )

15 15 Solution Propagation: Merge c merge = c l + c r c merge = c l + c r w merge = w l + w r w merge = w l + w r s merge = max(s l, s r ) s merge = max(s l, s r ) (v, c l, w l, s l ) (v, c r,w lr, s r )

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

17 17 Timing v.s. Slew Buffering (I) A buffer insertion: S=0, C=C(b). A buffer insertion: S=0, C=C(b). Inserting one buffer one new solution (the one with the smallest cost). 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). 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 18 Timing v.s. Slew Buffering (II) Slew constraint is close to length constraint. Slew constraint is close to length constraint. An extreme case: 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. 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. No polynomial time min-cost timing buffering algorithm in the same case.

19 19 Non-Fixed Input Slew Input slew to each buffer can vary. Input slew to each buffer can vary. Our idea: discretize the possible input slew values into input slew bins. 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. For each input slew bin, carry out the above procedure (for the fixed input slew case) to propagate solutions. Some details 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 20 Continuous Slew Buffering Buffers are allowed to be inserted anywhere. Buffers are allowed to be inserted anywhere. Single buffer type: a linear greedy optimal algorithm – add buffer as upstream as possible. Single buffer type: a linear greedy optimal algorithm – add buffer as upstream as possible. Start from sinks Greedy algorithm: toward the source

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

22 22 Experiments Experiment Setup 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: 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 23 Slew Constraint v.s. Buffer Area Slew Constraint Area

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

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

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

27 27 Observations Discrete Fixed-Input Slew Buffering 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: Non-fixed input slew buffering: –Save up to 40% area over fixed input slew buffering. Continuous 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 28 Conclusion Propose three slew buffering algorithms: 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. >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. >90% nets are not timing critical in reality and thus can be buffered by our algorithm.


Download ppt "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."

Similar presentations


Ads by Google