Color template - Semantic Scholar

2 downloads 0 Views 295KB Size Report
Vladimir Zolotov*, and Jacob A. Abraham. Computer Engineering Research Center, University of Texas at Austin. *IBM T.J. Waston Research Center, Yorktown ...
Path Criticality Computation in Parameterized Statistical Timing Analysis Jaeyong Chung, Jinjun Xiong*, Vladimir Zolotov*, and Jacob A. Abraham Computer Engineering Research Center, University of Texas at Austin *IBM T.J. Waston Research Center, Yorktown Heights

Outline ƒ Introduction ƒ Path criticality formulation m ƒ P ( I Ak < B k ) i =1

ƒ A novel method to compute a joint probability in SSTA ƒ Conclusions

2

Introduction ƒ In SSTA, criticality is a representative metric to gauge how important a given edge or path is in terms of timing ƒ The criticality of a path is defined as the probability that the path becomes the critical path ƒ The criticality of an edge is defined as the probability that the edge is on the critical path

3

Introduction ƒ Criticality is used in timing/yield optimization ƒ Gate sizing, buffer insertion, Vth assignment ƒ Transistor sizing ƒ Criticality is also very useful in testing ƒ Timing critical paths (i.e., paths with high path criticality values) can be selected using SSTA ƒ An ATPG tool takes these paths and generates test patterns sensitizing them ƒ These patterns can be employed in performance testing, SDD testing, and speed-binning 4

Previous Work ƒ Run SSTA ƒ Obtain the circuit slack Sc ƒ Obtain the slack S(p1) of a given path p1 ƒ Compute

P ( S ( p1 ) < S c )

S c = min{S ( p1 ), S ( p2 ), S ( p3 ),...} Xiong et al, Incremental criticality and yield gradients, DATE 2008 5

Previous Work ƒ The complement slack of a path is the minimum of all path slacks in the circuit excluding the path slack ƒ Obtain the complement slack ƒ Compute

S ( p1 )

from

S ( p1 ), Sc

P ( S ( p1 ) < S ( p1 ))

S ( p1 ) = min{S ( p2 ), S ( p3 ),...} Lots of information is captured by a too simple linear form Xiong et al, Incremental criticality and yield gradients, DATE 2008 6

General path criticality formulation ƒ Partition the set of all paths in the circuit into m groups ƒ Compute the minimum path slack of each group ƒ Path criticality of p1 can be written as m

P (I S ( p1 ) < Si ) i =1

1. Various ways to formulate path criticality 2. Smart formulation considering non-idealities of SSTA can reduce errors 7

Partitioning

P ((V + W > max{ X + W , Y + W }) I (V + W > Z ))

= P ((V + W > max{ X , Y } + W ) I (V + W > Z )) distributivity = P ((V > max{ X , Y }) I (V + W > Z )) 8

Computing a joint probability ƒ Path criticality computation is reduced to evaluating the multivariate normal CDF m

m

i =1

i =1

P ( I Ak < B k ) = P ( I Ak − B k < 0 ) = Φ ( x1 , x 2 , ..., x m ) ƒ Edge criticality computation is also reduced to the same problem

A path criticality

An edge criticality

9

A new way to evaluate the CDF ƒ Previous approaches to evaluate the CDF ƒ Numerical Integration (e.g.,mvncdf in matlab) ƒ Accurate but extremely slow ƒ Monte Carlo sampling (slow) ƒ Using the max operation provided by SSTA ƒ Very fast but poor accuracy ƒ We propose a novel, analytic conditioning operation ƒ 1000x faster than Monte Carlo sampling at the same accuracy ƒ 2~3x accurate at the cost of 3~4x runtime compared to max operation

10

Conditioning operation 2

P ( I A k < B k ) = P ( A1 < B1 ) P ( A 2 < B 2 | A1 < B1 ) i =1

n

A2 = a0 + ∑ ai ΔX i + an+1ΔRa i =1

ΔX i A1 > B1 n

A2 |A1 > B1 = a0 + ∑ ai ΔX i + an+1ΔRa i =1

ΔX i 11

Conditioning operation ƒ Theorem 1. Let A and B be normal R.V.s. E[ΔX i | A > B] = E[ΔX i ] + β (cov[ A, ΔX i ] − cov[ B, ΔX i ]) / a cov(ΔX i , ΔX j | A > B) = cov[ΔX i , ΔX j ] − ( β 2 + αβ ) (cov[ A, ΔX i ] − cov[ B, ΔX i ])(cov[ A, ΔX j ] − cov[ B, ΔX j ]) / a 2 n

A2 |A1 > B1 = a0 + ∑ ai ΔX i + an+1ΔRa

μ = [...], Σ = [...]

i =1

A1 > B1

A2 > B2

conditioning

conditioning

A2

A2

A2 12

Conditioning operation

ƒ Error analysis of normal approximation in max operation [D. Sinha et. al. TCAD 2007] ƒ The same analysis was done for conditioning operation ƒ More than 2x less error ƒ Error is much less for positively correlated timing 13 quantities

Experimental Results ƒ Randomly generated 10 timing quantities represented in the canonical form with 21 global sources of variation ƒ Mean: within a range of [1.0, 3.0] ƒ Std.: from 10% to 20% of the mean ƒ Sensitivity values: ƒ Case 1) chosen within a range of [-1.0,1.0] and then normalized in order to meet the std. value ƒ Case 2) chosen within a range of [0,1.0] and normalized

ƒ Compute criticality of randomly chosen one out of the 10 timing quantities 14

Experimental Results

Case 1

ρ = 0.1

15

Experimental Results

Case 2

ρ = 0.82

16

Experimental Results ƒ SSTA algorithm used: [Visweswariah DAC 2004] ƒ Refactoring is employed: [Chung et al ICCAD 2009] ƒ Capture topological (structural) correlation ƒ Improve the accuracy of the arrival times ƒ Spatial correlation model: A quad tree with 3 levels ƒ 4%, 5%, and 6% variation at 1st, 2nd, and 3rd level ƒ 21 global sources of variation ƒ 5% random independent variation

17

Experimental Results

18

Experimental Results

19

Experimental Results

20

Experimental Results

21

Conclusions ƒ If you develop a statistical algorithm on top of SSTA, and our conditioning operation is employed to compute a certain joint probability, ƒ Compared to the max operation ƒ The quality of results can be improved significantly ƒ The algorithm can become more stable ƒ Compared to Monte Carlo sampling ƒ Significant speed-up can be achieved ƒ This is demonstrated in path criticality computation 22

Conclusions ƒ Path criticality values are difficult to be computed accurately ƒ If you use the max operation, the accuracy change depending on the number of near-critical paths ƒ The combination of the conditioning operation and refactoring ƒ allow us to compute it as accurate as Monte Carlo simulation unless your design is like c6288 ƒ is important when your design has many nearcritical paths 23

Partitioning

24