Download presentation

Presentation is loading. Please wait.

Published byKole Griggs Modified about 1 year ago

1
1 Timing Analysis - Delay Analysis Models Simple model 1:Simple model 1: A k = arrival time = max(A 1,A 2,A 3 ) + D k D k is the delay at node k, parameterized according to function f k and fanout node k Simple model 2:Simple model 2: DkDkDkDk A1 A2 A3 Ak A1 A2 A3 Ak 0 A1A2 A3 Ak D k1 D k2 D k3 Can also have different times for rise time and fall timeCan also have different times for rise time and fall time A k = max{A 1 +D k1, A 2 +D k2,A 3 +D k3 }

2
2 Static delay analysis Levelize Nodes:Levelize Nodes: /* level of PI nodes initialized to 0, the others are set to -1. Invoke LEVEL from PO */ LEVEL(k) if( k.level != -1) return(k.level) else k.level = 1+max{LEVEL(k i )|k i fanin(k)} return(k.level) Compute arrival times:Compute arrival times: /* Given arrival times on PI’s */ for L = 0 to MAXLEVEL for {k|k.level = L} A k = max{A ki } + D k

3
3 Required times Required times: given required times on primary outputs 1.Traverse in reverse topological order (i.e. from primary outputs to primary inputs) 2.if (k i, k ) is an edge between k i and k, R k i,k = R k - D k (this is the edge required time) 3.Hence, the required time of output of node k is R k = min ( R k,k j | k j fanout(k) )

4
4 Propagating Slacks Slacks: slack at the output node k is S k = R k -A k Since R ki, k =R k -D k S ki, k =R ki, k - A ki S ki, k =R ki, k - A ki S ki, k + A ki = R k -D k = S k + A k - D k S ki, k + A ki = R k -D k = S k + A k - D k Since A k = max {A kj } + D k S ki, k = S k + max {A kj } - A ki k j, k i fanin (k ) S ki, k = S k + max {A kj } - A ki k j, k i fanin (k ) S ki = min{S ki, j } j fanout (k i ) S ki = min{S ki, j } j fanout (k i )Notes: 1.each edge is the graph has a slack and a required time 2.Negative slack is bad. k kikikiki j S ki SkSkSkSk SjSjSjSj kikikiki

5
5 Sequential networks Arrival times known at l 1 and l 2Arrival times known at l 1 and l 2 Required times known at l 3, l 4, and l 5Required times known at l 3, l 4, and l 5 Delay analysis gives arrival and required times (hence slacks) for C 1, C 2, C 3, C 4Delay analysis gives arrival and required times (hence slacks) for C 1, C 2, C 3, C 4 C3 C1 C2 C4 l1 l2l3 l4 l5

6
6 Sequential Networks Note: Latch l 5 may be transparent t 1 is the beginning of latch transparent timet 1 is the beginning of latch transparent time Arrival time at l 5 output =Arrival time at l 5 output = max { arrival time at l 5 input, t 1 } + D latch (hold) Required time at l 5 input =Required time at l 5 input = min { required time at l 5 output, t 2 } - D latch (set_up) t2t2t2t2 t1t1t1t1 C3 C1 C2 C4 l1 l2l3 l4 l5 clock

7
7 Static critical paths Min-Max problem: minimize max{-S i, 0} A static critical path of a Boolean network is a path P = {i 1,i 2,…,i p } where S i k, i k+1 < 0 Note: if a node k is on a static critical path, then at least one of the fanin edges of k is critical. Hence, all critical paths reach from an input to an output. Note: There may be several critical paths

8
8 Example: Static critical paths 21 221 21 R2=5R1=5 A8=0 A9=0 9 8 0 0 1 0 1 0 5 76 3 1 2 4 A1=6R1=5 A2=5R2=5 S 1 =-1R3=3 S 2 =0R7=1 S 3,1 =-1R9=-1 S 4,1 = -1 S 4,2 = 0 S 5,2 = 1 S 6,3 = 0 S 7,3 = -1 S 7,4 = -1 S 7,5 = 1 S 8,6 = 0 S 9,7 = -1 critical path edges S ki, k = S k + max{A kj } - A ki, k j,k i fanin(k) S k = S k + min{S ki, k }, k j fanout(k) 1 4 2 34 56

9
9 Timing analysis problems We want to determine the true critical paths of a circuit in order to: 1.determine the minimum cycle time that the circuit will function 2.identify critical paths from performance optimization - don’t want to try to optimize the wrong (non-critical) paths Implications: –Don’t want false paths (produced by static delay analysis) –Delay model is worst case model. Need to ensure correctness for case where i th gate delay D i M

10
Functional Timing Analysis - How to Detect False Paths What is Timing Analysis? Estimate when the output of a given circuit gets stable The output needs to be stable by t=T for the correct functionality clock Combinationalblock 0 0 T 0

11
11 Why Timing Analysis? Timing verification –Verifies whether a design meets a given timing constraint Example: cycle-time constraintExample: cycle-time constraint Timing optimization –Needs to identify critical portion of a design for further optimization Critical path identificationCritical path identification In both applications, the more accurate, the better

12
12 Timing Analysis - Basics Naïve approach - Simulate all input vectors with SPICE –Accurate, but too expensive Gate-level timing analysis Focus of this lecture –Less accurate than SPICE due to the level of abstraction, but much more efficient –Scenario: Gate/wire delays are pre-characterized (accuracy loss)Gate/wire delays are pre-characterized (accuracy loss) Perform timing analysis of a gate-level circuit assuming the gate/wire delaysPerform timing analysis of a gate-level circuit assuming the gate/wire delays

13
Gate-level Timing Analysis A naive approach is topological analysis –Easy longest-path problem –Linear in the size of a network Not all paths can propagate signal events –False paths –If all longest paths are false, topological analysis gives delay overestimate Functional timing analysis = false-path-aware timing analysis –Compute false-path-aware arrival time arr(x1)=0 arr(x2)=0 False path aware arr(z)? z x1x2 1 1

14
Example: 2-bit Carry-skip Adder c_in a0 b0 a1 b1 s0 s1 c_out mux Length 5 Length 1 ripple carry adder ripple carry adder 1 0

15
15 End of lecture 19

16
16 False Path Analysis - Basics Is a path responsible for delay? –If the answer is no, can ignore the path for delay computation Check the falsity of long paths until we find the longest true path –How can we determine whether a path is false? Delay underestimation is unacceptable –Can lead to overlooking a timing violation Delay overestimation is not desirable, but acceptable –Topological analysis can give overestimate, but never give underestimate

17
17 Controlling/Non-Controlling Values 0 0 1 Controlling value of AND Controlled value of AND 1 1 Controlling value of OR Controlled value of OR Non-Controlling value of AND 0 Non-Controlling value of OR

18
18 Static Sensitization A path is statically-sensitizable if there exists an input vector such that all the side inputs to the path are set to non-controlling values –This is independent of gate delays 1 0 Controlling value! These paths are not statically-sensitizable The longest true path is of length 2? t=0 1 0

19
19 Static Sensitization The (dashed) path is responsible for delay!The (dashed) path is responsible for delay! Delay underestimation by static sensitization (delay = 2 when true delay = 3)Delay underestimation by static sensitization (delay = 2 when true delay = 3) –incorrect condition 1 0 0 1 2 1 2 3 0

20
20 What is Wrong with Static Sensitization? The idea of forcing non-controlling values to side inputs is okay, but timing was ignored –The same signal can have a controlling value at one time and a non-controlling value at another time. How about timing simulation as a correct method?

21
21 Timing Simulation 2 1 4 1 1 0 0 2 1 4 2 3 Implies that delay = 0 for these inputs BUT!

22
22 2 1 4->2 1 1 Timing Simulation 0 0 2 2 1 2 3 3 4 Implies that delay = 4 with the same set of inputs.

23
23 What is Wrong with Timing Simulation? If gate delays are reduced, delay estimates can increase Not acceptable since –Gate delays are just upper-bounds Delay uncertainty due to manufacturingDelay uncertainty due to manufacturing –We are implicitly analyzing a family of circuits where gate delays are within the upper-bounds

24
24 Monotone Speedup Property Definition : For any circuit C, if –C’ is obtained from C by reducing some gate delays, and –delay_estimate(C’) delay_estimate(C), then delay_estimate has Monotone Speedup property Timing simulation does not have this property

25
25 Timing Simulation Revisited 2 1 4 1 1 0 0 2 1 4 3 4 4 means that the rising signal occurs anywhere between t = -infinity and t = 4. X-valued simulation

26
Timing Simulation Revisited Timed 3-valued (0,1,X) simulation –called X-valued simulation Monotone speedup property is satisfied. Underlying model of floating mode condition [Chen, Du]floating mode condition [Chen, Du] –Applies to “simple gate” networks only viability [McGeer, Brayton]viability [McGeer, Brayton] –Applies to general Boolean networks

27
27 Floating Mode Analysis Assume that all nodes have X before applying an input vector –conservative assumption Path sensitization (floating-mode - for simple gate networks only) 0 0 For final controlled output value 1 Earliest-arriving controlling value determines the output stable time late early 1 1 1 For final non-controlled output value Latest-arriving non-controlling value determines the output stable time early late

28
False Path Analysis Algorithms Checking the falsity of every path explicitly is too expensive - exponential # of paths State-of-the-art approach: 1.Start: set L = L top - ! = topological longest path delay - ! L old = 0 2.Binary search: If (Delay(L)) ( * ) ! L = (L-L old )/2, L old = L, L = L + ! L ! L = (L-L old )/2, L old = L, L = L + ! L Else, ! L = (L-L old )/2, L old = L, L = L - ! L Else, ! L = (L-L old )/2, L old = L, L = L - ! L If (L > L top or ! L L top or ! L < threshold), L = L old, done ( * ) Delay(L) = 1 if there an input vector under which an output gets stable only at time t where L t ? Can be reduced to –a SAT problem [McGeer, Saldanha, Brayton, ASV] or –a timed-ATPG [Devadas, Keutzer, Malik]

29
29 SAT-based False Path Analysis Decision problem: Is there an input vector under which the output gets stable only after t = T ? Idea: 1.characterize the set of all input vectors S(T) that make the output stable no later than t = T 2.check if S(T) contains S = all possible input vectors This check is solved as a SAT problem: Is S \ S(T) empty? - set difference + emptiness check Let F and F(T) be the characteristic functions of S and S(T)Let F and F(T) be the characteristic functions of S and S(T) Is F !F(T) satisfiable?Is F !F(T) satisfiable?

30
30 Example Assume all the PIs arrive at t = 0, all gate delays = 1 Is the output stable time t > 2? a b c d e f g

31
31 Example g(1,t=2) : the set of input vectors under which g gets stable to value = 1 no later than t =2 a b cde f g g(1,t=2) = d(1,t=1) f(1,t=1) g(1,t= ) = onset = !a!bc = g(1,t=2) = S 1 Onset: stabilized by t=2? = (a(0,t=0) b(0,t=0)) (c(1,t=0) e(1,t=0)) = !a!b(c ) = !a!bc = S 1 (t=2)

32
32 Example g(0,t=2) : the set of input vectors under which g(0,t=2) : the set of input vectors under which g gets stable to value = 0 no later than t=2 g gets stable to value = 0 no later than t=2 a b cde f g g(0,t=2) = d(0,t=1) f(0,t=1) g(0,t=2) = d(0,t=1) f(0,t=1) = (a(1,t=0) b(1,t=0)) (c(0,t=0) e(0,t=0)) = (a(1,t=0) b(1,t=0)) (c(0,t=0) e(0,t=0)) = (a+b) + (!c ) = a+b = S 0 (t=2) = (a+b) + (!c ) = a+b = S 0 (t=2) g(0,t= ) = offset = a+b+!c = S 0 g(0,t= ) = offset = a+b+!c = S 0

33
33 Example g(0,t=2) : the set of input vectors under which g(0,t=2) : the set of input vectors under which g gets stable to 0 no later than t=2 g gets stable to 0 no later than t=2 a b cde f g g(0,t=2) = a+b g(0,t=2) = a+b g(0,t= ) = offset = a+b+!c g(0,t= ) = offset = a+b+!c Offset: NOTstabilized by t=2 under abc=000 g(0,t= ) \ g(0,t=2) = (a+b+!c) !(a+b) = !a !b !c = satisfiable g(0,t= ) \ g(0,t=2) = (a+b+!c) !(a+b) = !a !b !c = satisfiable

34
34 For general networks Can build a companion network to represent each output: output(0,t=T’) or output(1,t=T’) Take each gate g from outputs in reverse topological order. For g(1,t=T): 1.Compute all primes of gate onset 2.Make AND gate for each prime 3.OR these together to form g(1,t=T) For g(0,t=T), do same but for offset For inputs to these primes, form companion networks for {f i (1,t = T-D g ), f i (0,t = T-D g ), i in FI(g)} p1p1p1p1 p2p2p2p2+ p3p3p3p3 g(1,T) f i (1,T-D g ) f j (0,T-D g ) Now form SAT clauses for this network and solve

35
35 Summary False-path-aware arrival time analysis is well- understood –Practical algorithms exist Can handle industrial circuits easilyCan handle industrial circuits easily Remaining problems –Incremental analysis (make it so that a small change in the circuit does not make the analysis start all over) –Integration with logic optimization –DSM issues such as cross-talk-aware false path analysis

36
36 Timed ATPG Yet another way to solve the same decision problem A generalization of regular ATPG: –regular ATPG find an input vector that differentiates a fault-free circuit and a faulty circuit in terms of functionalityfind an input vector that differentiates a fault-free circuit and a faulty circuit in terms of functionality –Timed ATPG find an input vector that exhibits a given timed behaviorfind an input vector that exhibits a given timed behavior Timed extension of PODEMTimed extension of PODEM

37
37 Timed ATPG (0,[3,3])(X,[0,0])(X,[0,0]) (X,[0,0])

38
38 Timed ATPG (0,[3,3]) (0,[0,0]) (X,[0,0]) (X,[0,0]) (X,[1,2]) (0,[1,1]) (X,[1,1]) (X,[2,3])

39
39 Timed ATPG (0,[3,3]) (0,[0,0]) (X,[0,0]) (0,[0,0]) (0,[1,1]) (1,[1,1]) (X,[1,2]) (X,[2,3])

40
40 Timed ATPG (0,[3,3]) (0,[0,0]) (1,[0,0]) (0,[0,0]) (0,[1,1]) (1,[1,1]) (1,[1,1]) (1,[2,2]) Value and time conflict! Backtrack!

41
41 Timed ATPG (0,[3,3]) (0,[0,0]) (0,[0,0]) (0,[0,0]) (0,[1,1]) (1,[1,1]) (0,[2,2]) (0,[3,3]) Justified! Found an input vector that makes the output stable to 0 no earlier than t=3

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google