© KLMH More On Net Weighting Sensitivity Guided Net Weighting for Placement Driven Synthesis Haoxing Ren David Z. Pan David S. Kung ECE Department, UT Austin ECE Department IBM T.J. Watson Research VLSI Physical Design: From Graph Partitioning to Timing Closure Center Chapter 8: Timing Closure 1 Lienig University of Texas at Austin © KLMH New Terms ο·The slack of a net is the slack at its source pin ο·Figure of merit (FOM) is more general case for TNS π‘∈π0 FOM = (Slk(π‘) − Slk π‘ ) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 2 Lienig Slk (π‘)<Slk π‘ © KLMH Decompose Slack Sensitivity ο·The slack sensitivity to net weight is defined as: ο·Higher net weight for net i will ideally result in shorter wire length L(i), so we can decompose this equation into οnet delay sensitivity to wire length ο the wire length sensitivity to net weight VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 3 Lienig ο·the delay sensitivity to its wire length for net i change as follows: © KLMH Relationship of weight and wire length ο Wsrc(i) is the total initial weight on the driver cell of net i οWsink(i) is the total initial weight on the receiver cell of net i. ο·Substitute back to previous definition: οif the initial wire length L(i) is longer, it expects to see bigger wire length change. VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 4 Lienig οif the initial net weight W(i) is bigger, it expects to see a smaller wire length change. © KLMH FOM Sensitivity to Net Weight ο·The FOM sensitivity is defined as: ο·Define FOM sensitivity to net delay as: ο·The definition of FOM sensitivity to weight can be written as: FOM πΏ ππ (π) = ππFOM (π)ππΏπ (π)ππ (π) VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 5 Lienig ο·Need an algorithm to calculate sensitivity to net delay efficiently ο·THEOREM 1. FOM sensitivity to net delay of a two-pin net i is equal to the negative of the number of critical timing end points whose slacks are influenced by net I ο·Proof: ππFOM π = © KLMH Calculation of FOM Sensitivity to Net Delay ΔSlk π ΔT π π ∈π = −ΔAAt π ΔT π π ∈π = − K i ΔT i ΔT i = -K(i) ο·THEOREM 2. The FOM sensitivity of the sink j delay of net I can be computed by the following equation: π π ∈π(π) VLSI Physical Design: From Graph Partitioning to Timing Closure ππ ππΏπ (π) Chapter 8: Timing Closure 6 Lienig ππFOM (π) = −∑ ΔK π (π) π ππΏππ (π) © KLMH Algorithm To Find Influenced Timing Critical End Points 1οΌinitialize K(i) =0 for all nets and Km(i) = 0 for each sink m of net i 2: sort all nets in topological order from timing end points to timing start points 3: for all Po pin t do 4: set Kt (i) to be 1 if t is timing critical i.e., Slk(t) < Slkt ; otherwise set Kt (i) to be 0 5: for all net i in the above topologically sorted order do 6: 7: 8: for all sink pin j of net i do K(i) = K(i)+Kj(i) propagate K(i) of net i to the most critical input pin l of the cell driving i; pin l is a sink of net p: Kl(p) = Kl(p)+K(i) ; other input pins of the driver will not be propagated because they are not on the critical path of net i, thus cannot influence the VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 7 Lienig timing end points from net iγ © KLMH A quick example (-3,-2) (-3,-2) Pi (-3,1) (-3,1) Po1 B A b c (-3,1) (-1,0) (-2,1) (-2,1) C (-1,0) (-2,1) Po2 D •Two paths from a timing begin point Pi to timing end points Po1 and Po2 •The K values for Po1 and Po2 are both 1 • The upper pin is the most timing critical pin to gate C, and will influence the slack of Po2 • The lower pin of C does not influence Po2, meaning that even if the wire length of net n4 is shortened, it will not improve the FOM VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 8 Lienig •Complexity is O(n) Since each gate and net will be traversed only once © KLMH SENSITIVITY GUIDED NET WEIGHT ASSIGNMENT π=π π ο·Objective function : ο·Constraints : max ΔW [(Slk π‘ − Slk(π))ΔSlk(π) + αΔFOM(π)] π=π 1 π=π π [ΔW(π)]2 β©½ πΆ max ΔW π=π 1 ο n1,...,nk are critical nets οC is a constant to bound the total weight change. οThe multiplier for ΔSlk(i) is its relative slack to the slack target Slkt οThe constant α on each ΔFOM is the same VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 9 Lienig οThe quadratic sum constraint of ΔW(i) helps to produce smooth distribution © KLMH Solve The Objective Function •Replacing with sensitivity and weight : π=π π Slk FOM [(Slk π‘ − Slk(π))ππ (π) + αSπ (π)]ΔW(π) max ΔW π=π 1 •Using Lagrange multiplier : π=π π Slk FOM Slk π‘ − Slk π ππ π + αSπ π ΔW π β ΔW, π = π=π 1 +π(πΆ − π=π π 2 [ΔW(π)] ) π=π 1 •Taking partial derivatives to get solution ∂ΔW i ∂L(ΔW ,λ) ∂λ ΔW ∗ , λ∗ = 0 for each net π ∈ (π1 , . . . , ππ ) (ΔW ∗ , λ∗ ) = 0 VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 8: Timing Closure 10 Lienig ∂L ΔW ,λ © KLMH Solution Of New Weight ο·The solution of weight change is : Slk FOM ΔW ∗ (π) = π½{[Slk π‘ − Slk(π)]ππ (π) + πΌππ (π)} where π½= πΆ π=π π [ (Slk π‘ π=π 1 Slk FOM − Slk(π))ππ (π) + αSπ (π)]2 ο ο’ is a constant for all nets, which absorbs the effect of C ο α balances the weighting of critical slack and FOM. ο·The new weight of net is: πorg π πorg π + ΔW ∗ π VLSI Physical Design: From Graph Partitioning to Timing Closure Slk(π) > Slk π‘ Slk(π) β©½ Slk π‘ Chapter 8: Timing Closure 11 Lienig π(π) = {