VLSI Physical Design, Springer Verlag

advertisement
© 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
π‘Š(𝑖) = {
Download