Timing Analysis Delay Analysis Models Simple model 1
- Slides: 35
Timing Analysis - Delay Analysis Models • Simple model 1: Ak Dk A 1 A 3 A 2 Ak = arrival time = max(A 1, A 2, A 3) + Dk Dk is the delay at node k, parameterized according to function fk and fanout node k • Simple model 2: Ak A = max{A Ak A 1 A 2 Dk 1 A 1 Dk 2 A 2 1+Dk 1, A 2+Dk 2, A 3+Dk 3} 0 A 3 k Dk 3 A 3 • Can also have different times for rise time and fall time 1
Static delay analysis • 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(ki)|ki fanin(k)} return(k. level) • Compute arrival times: /* Given arrival times on PI’s */ for L = 0 to MAXLEVEL for {k|k. level = L} Ak = max{Aki} + Dk 2
Required times: given required times on primary outputs 1. Traverse in reverse topological order (i. e. from primary outputs to primary inputs) 2. if (ki , k ) is an edge between ki and k, Rki , k = Rk - Dk (this is the edge required time) 3. Hence, the required time of output of node k is Rk = min ( Rk, kj | kj fanout(k) ) 3
Propagating Slacks Sk Slacks: slack at the output node k is Sk = Rk-Ak Sj Since Rki, k=Rk-Dk k j Ski, k =Rki, k - Aki Ski, k + Aki = Rk-Dk = Sk + Ak - Dk Ski ki ki Since Ak = max {Akj } + Dk Ski, k = Sk + max {Akj } - Aki kj , ki fanin (k ) Ski = min{Ski, j} j fanout (ki ) Notes: 1. each edge is the graph has a slack and a required time 2. Negative slack is bad. 4
Sequential networks l 1 C 2 C 1 l 4 C 3 l 2 • • • C 4 l 5 l 3 Arrival times known at l 1 and l 2 Required 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 4 5
Sequential Networks l 1 C 2 C 1 l 4 C 3 C 4 l 2 l 5 l 3 Note: Latch l 5 may be transparent clock t 1 t 2 • t 1 is the beginning of latch transparent time • Arrival time at l 5 output = max { arrival time at l 5 input, t 1 } + Dlatch(hold) • Required time at l 5 input = min { required time at l 5 output, t 2 } - Dlatch(set_up) 6
Static critical paths Min-Max problem: minimize max{-Si , 0} A static critical path of a Boolean network is a path P = {i 1, i 2, …, ip } where Sik, ik+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 7
Example: Static critical A 1=6 R 1=5 A 2=5 R 2=5 paths 4 R 1=5 R 2=5 6 -1 1 2 5 -1 -1 3 2 1 6 8 1 2 4 1 0 2 4 0 1 0 0 A 8=0 -1 -1 2 2 7 -1 9 A 9=0 3 1 5 1 S 1=-1 S 2=0 S 3, 1=-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 R 3=3 R 7=1 R 9=-1 critical path edges Ski, k = Sk + max{Akj } - Aki , kj, ki fanin(k) Sk = Sk + min{Ski, k }, kj fanout(k) 8
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 ith gate delay Di. M 9
Functional Timing Analysis - How to Detect False Paths What is Timing Analysis? Estimate when the output of a given circuit gets stable 0 Combinational block 0 0 clock The output needs to be stable by t=T for the correct functionality T
Why Timing Analysis? Timing verification – Verifies whether a design meets a given timing constraint • Example: cycle-time constraint Timing optimization – Needs to identify critical portion of a design for further optimization • Critical path identification In both applications, the more accurate, the better 11
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) • Perform timing analysis of a gate-level circuit assuming the gate/wire delays 12
Gate-level Timing Analysis A naive approach is topological analysis False path aware arr(z)? – Easy longest-path problem – Linear in the size of a network z 1 – False paths – If all longest paths are false, topological analysis gives delay overestimate 1 x 1 arr(x 1)=0 Not all paths can propagate signal events x 2 arr(x 2)=0 Functional timing analysis = false -path-aware timing analysis – Compute false-path-aware arrival time
Example: 2 -bit Carry-skip Adder s 0 c_in a 0 Length 5 Length 1 s 1 b 0 1 0 a 1 b 1 mux ripple carry adder c_out
End of lecture 19 15
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 16 underestimate
Controlling/Non-Controlling Values Controlled value of AND 0 0 1 Non-Controlling value of AND Controlled value of OR 1 Controlling value of OR 1 0 Non-Controlling value of OR 17
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 Controlling value! 1 0 t=0 These paths are not statically-sensitizable 1 t=0 0 The longest true path is of length 2? 18
Static Sensitization • The (dashed) path is responsible for delay! • Delay underestimation by static sensitization (delay = 2 when true delay = 3) – incorrect condition 1 0 2 1 0 1 3 2 0 19
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? 20
Timing Simulation 0 2 2 1 1 2 3 1 1 4 0 4 Implies that delay = 0 for these inputs BUT! 21
Timing Simulation 0 2 2 1 1 2 3 1 3 4 1 4 ->2 0 2 Implies that delay = 4 with the same set of inputs. 22
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 manufacturing – We are implicitly analyzing a family of circuits where gate delays are within the upper-bounds 23
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 24
Timing Simulation Revisited 0 2 2 1 1 3 1 4 0 4 4 means that the rising signal occurs anywhere between t = -infinity and t = 4. X-valued simulation 25
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] – Applies to “simple gate” networks only • viability [Mc. Geer, Brayton] – Applies to general Boolean networks
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) late 0 For final controlled output value 0 early 1 Earliest-arriving controlling value determines the output stable time For final non-controlled output value early 1 late 1 1 Latest-arriving non-controlling value determines the output stable time 27
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 = Ltop - ! = topological longest path delay - ! Lold = 0 2. Binary search: If (Delay(L)) (*) !L = (L-Lold)/2, Lold = L, L = L + !L Else, !L = (L-Lold)/2, Lold = L, L = L - !L (* ) If (L > Ltop or !L < threshold), L = Lold , 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 [Mc. Geer, Saldanha, Brayton, ASV] or a timed-ATPG [Devadas, Keutzer, Malik]
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) • Is F !F(T) satisfiable? 29
Example d g a b e f c Assume all the PIs arrive at t = 0, all gate delays = 1 Is the output stable time t > 2? 30
Example g(1, t=2) : the set of input vectors under which g gets stable to value = 1 no later than t =2 d g a b c e f Onset: stabilized by t=2? g(1, t=2) = d(1, t=1) Ç f(1, t=1) = (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) g(1, t=¥) = onset = !a!bc = g(1, t=2) = S 1 31
Example g(0, t=2) : the set of input vectors under which g gets stable to value = 0 no later than t=2 d g a b e f c 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+b) + (!c Ç Æ) = a+b = S 0(t=2) g(0, t=¥) = offset = a+b+!c = S 0 32
Example g(0, t=2) : the set of input vectors under which g gets stable to 0 no later than t=2 d g a b c e f Offset: NOTstabilized by t=2 under abc=000 g(0, t=2) = a+b g(0, t=¥) = offset = a+b+!c g(0, t=¥) g(0, t=2) = (a+b+!c) !(a+b) = !a !b !c = satisfiable 33
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 {fi(1, t = T-Dg), fi(0, t = T-Dg), i in FI(g)} Now form SAT clauses for this network and solve fi(1, T-Dg) fj(0, T-Dg) p 1 p 2 p 3 + g(1, T) 34
Summary False-path-aware arrival time analysis is wellunderstood – Practical algorithms exist • Can 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 35
- Propagation delay and contamination delay
- Difference between signal and variable in vhdl
- On delay and off delay timer symbol
- Propagation delay timing diagram
- Delay models in data networks
- Wire delay
- Distributed rc delay model
- Distributed rc delay model
- Distributed rc delay model
- Difference between modal and semi modal verbs
- Time slice windows analysis
- Timing model
- Quartus timing analysis
- Static timing analysis examples
- Present simple past simple future simple exercise
- Past simple future simple
- Simple past simple present simple future
- Present simple past simple future simple present continuous
- Simple present simple past simple future
- Present simple, past simple, future simple
- Simple future work
- Do you ______ in america? (to live) *
- Future simple present simple
- Propagation delay
- Linux kernel timer example
- Ideal inverter
- Decfsz
- He clattered and clanged as he washed the dishes
- Av node delay
- What is a disk seek
- Verilog delay
- Delay latch
- Bandwidth-delay product
- Bandwidth delay product formula
- Bandwidth-delay product
- Time delay procedures