100 likes | 181 Views
Minimum-Buffered Routing of Non-Critical Nets for Slew Rate and Reliability. A. Zelikovsky (alexz@cs.gsu.edu), GSU Joint work with C. Alpert (IBM), A. B. Kahng, B. Liu, I. Mandoiu (UCSD). Abstract.
E N D
Minimum-Buffered Routing of Non-Critical Nets for Slew Rate and Reliability A. Zelikovsky (alexz@cs.gsu.edu), GSU Joint work with C. Alpert (IBM), A. B. Kahng, B. Liu, I. Mandoiu (UCSD)
Abstract This poster introduces a new minimum-buffered routing problem formulation which requires that the capacitive load of each buffer and of the source driver be upper-bounded by a given constant. Our contributions include: - A linear time greedy algorithm for optimally buffering a given tree with a single non-inverting buffer type - A linear time dynamic programming algorithm for optimally buffering a given tree with a single inverting buffer type - A dynamic programming algorithm for optimally buffering a given tree under additional buffer skew constraints - Provably good algorithms with approximation ratios of 2(1+) and 4(1+) for simultaneous routing and buffering with single non-inverting, respectively inverting, buffer type - Heuristics with improved practical performance for simultaneous routing and buffering REFERENCES C. J. Alpert, A.B. Kahng, B. Liu, I. Mandoiu and A. Zelikovsky, “Minimum-Buffered Routing for Slew Rate and Reliability Control”, to appear in ICCAD-2001 C. Albrecht, A. B. Kahng, B. Liu, I. Mandoiu and A. Zelikovsky, “On the Skew Bounded Minimum Buffer Routing Tree Problem”, to appear in SASIMI-2001
Motivation • In order to initiate meaningful placement and timing optimizations , any design flow requires early elimination of all electrical violations (e.g., cap load and slew violations), even for non-critical nets. Bounds on load caps • - Serve as proxies for signal slew rate bound • - Improve coupling noise immunity • - Reduce delay uncertainty due to coupling noise • - Improve reliability with respect to hot-carrier and AC self-heating effects • - Facilitate technology migration since designs are more balanced • - Guarantee bounded input rise/fall times at buffers and sinks • To make progress with any methodology, it is crucial to have a fast and resource efficient method for fixing buffer load violations. Of particular interest are practical methods for buffering non-critical nets that have up to tens of thousands of sinks (e.g., scan enable). • In clock-tree routing it is also necessary to bound the buffer skew, i.e., the difference between the maximum and the minimum number of buffers over all source-to-sink paths in a routing tree, since buffer skew directly affects the actual clock skew.
Min-Buffered Routing 0.75CU Cw=Cb=0 Given: net N with • Source r, sinks S • Input capacitance Cs for each sink s in S • Unit length wire capacitance Cw • Inverting or non-inverting buffer type, with • Buffer input capacitance Cb • Load cap upper-bound CU • Sink polarities (optional) • Buffer-skew bound D(optional) Find: buffered routing tree for N such that • Load cap of each buffer and of the source r is at most CU • Sink polarity constraints are satisfied • Buffer-skew is at most D • The number of inserted buffers is minimized CU 0.75CU Bounded-load Buffered tree +0.75CU Cw=Cb=0 +CU +0.75CU Tree buffered with inverters 0.75CU Cw=Cb=0 D=0 CU 0.75CU Tree with zero buffer-skew
Hardness Results source source S1 S1 5 5 S2 S2 12 12 4 4 2 2 S3 S3 • Optimal buffering of the rectilinear Steiner minimum tree (RSMT) is not always optimal • Optimal solution not always on Hanan grid • NP-hard to approximate within a constant factor better than 2 - Proof by reduction from the RSMT problem CU = 8, sink/buffer input cap = 1 CU = 14, sink/buffer input cap = 0 source 1 7 source S1 5 3 6 2 S2 Hanan grid solution 1 7 source 12 3 7 1 4 2 S3 Optimum solution RSMT Optimum Buffered RSMT RSMT topology may be sub-optimal Optimum topology not on Hanan grid
Non-Inverting Buffering Linear time greedy algorithm(extends tree-partition algorithm of Kundu&Misra): • Find a critical vertexp, i.e., a bottom-most vertex p such that c(Tp) > CU by a post-order traversal of the tree • Find a heaviest childu of p, i.e., a vertex u such that c(Tu) + c(u,p) c(Tv) + c(v,p) for every other child v of p • Insert buffer b on edge (u,p) such that c(u,b) = min{CU-c(Tu), c(u,p)} • Recursively find an optimum buffering B’ of T -- Tb • Return B = B’ U {b} Insert buffer on edge (u,p) if CU c(Tu)+c(u,p) Insert buffer at top of heaviest edge if CU > c(Tu)+c(u,p)
Inverting Buffering Linear time dynamic programming algorithm (DPI): • Traverse tree in postorder • Insert buffer b on edge (u,p) if c(Tu) < CU < c(Tu) + c(u,p) • For each branching point u • Try to insert 0,1 or 2 buffers at the head of each branch (9 cases for binary tree) • For each case • Check feasibility w.r.t. polarity constraints • Replace subtree u by an equivalent edge (u,v) with parameters (s, nb, rc), where s is polarity at u, nb is number of buffers and rc is residual capacitance of subtree u • find solutions with minimum number of buffers and topmost buffer polarity s=+/- • Find the solution at root with min number of buffers • Insert buffers in top-down order
Skew-Bounded Buffering Tellez and Sarrafzadeh (TCAD’97) suggest a greedy algorithm with runtime O(n+OPT), where n is the number of sinks and OPT is the optimum number of buffers. However, greedy issuboptimalfor any buffer skew D > 0: Buffer skew D = 1, sink input cap Cu=CU, Cv=Cx=0.75CU Interconnect and buffer have zero cap 0.75CU 0.75CU CU 0.75CU 0.75CU CU Greedy buffering Optimum buffering Optimal dynamic programming algorithm (runs in O(nD3OPT2) time): - Traverse tree T in postorder - Buffer each edge if necessary - Buffer each branching point with all possible skew combinations - Return min-cost buffering
Routing and Buffering Provably good algorithms: - Construct an -approximate Steiner tree T - Apply the greedy KM algorithm on T - (Replace each buffer by 1 or 2 inverting buffers) Theorem:Approximation ratio is 2(1+ ) for non- inverting, and 4(1+ ) for inverting buffer type. Fill heuristic: - Repeat until source load cap < CU Find Steiner tree and add first buffer b using KM Fill b’s subtree with nearby sinks up to cap = CU Cut&Connect heuristic: - Find Steiner tree, add buffers using KM - For each buffer b with load cap < CU Cut b’s subtree, then reconnect it and relocate b such that driven cap is as close to CU as possible CU = 8, sink/buffer input cap = 1 6 RSMT + KM 1 2 1 3 2 source 5 2 1 Fill heuristic 3 5 source
Experimental Results Benchmark MST+KM MST+Cut&Connect MST+ Fill MST+DPI Lower #sinks CU #buffers runtime #buffers runtime #buffers runtime #buffers runtime Bound 12000 500 244 2.63 236 9.27 222 106.83 420 3.05 184 12000 1000 116 2.63 113 11.54 106 46.90 207 3.05 88 12000 4000 28 2.64 28 13.32 25 10.59 55 3.06 20 12000 8000 13 2.63 13 8.10 12 5.82 26 3.07 9 22000 500 1418 4.39 1395 21.62 1305 1172.75 2094 5.10 1197 • 1000 674 4.39 656 30.36 613 540.28 1126 5.10 575 22000 4000 164 4.39 159 95.40 146 121.24 297 5.11 139 22000 8000 80 4.39 78 106.98 72 60.33 145 5.14 68 34000 500 806 6.59 778 39.13 729 890.01 1387 7.74 591 34000 1000 388 6.58 374 58.55 350 424.81 696 7.76 283 34000 4000 95 6.57 92 147.62 84 103.59 179 7.74 68 34000 8000 45 6.57 44 113.80 42 49.25 85 7.76 33 • Fill, Cut&Connect and KM show different runtime/quality tradeoffs with the best quality achieved by Fill heuristic and the best runtime by KM • Significant more buffers are needed with polarity constraints (but inverters are smaller than non-inverting buffers) • Reference implementations are being added to the GSRC bookshelf to facilitate fast dissemination and easy comparison with future competing heuristics