Timing Analysis. Andreas Kuehlmann. A k = max{a 1 +D k1, A 2 +D k2,a 3 +D k3 } S k. S j. Required times: S ki. given required times on primary outputs

Similar documents
Logic Synthesis and Verification

Computation of Floating Mode Delay in Combinational Circuits: Theory and Algorithms. Kurt Keutzer. Synopsys. Abstract

VLSI Design Verification and Test Simulation CMPE 646. Specification. Design(netlist) True-value Simulator

Generation of High Quality Non-Robust Tests for Path Delay Faults

EECS150 - Digital Design Lecture 10 - Combinational Logic Circuits Part 1

For smaller NRE cost For faster time to market For smaller high-volume manufacturing cost For higher performance

USING SAT FOR COMBINATIONAL IMPLEMENTATION CHECKING. Liudmila Cheremisinova, Dmitry Novikov

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

CSE 140 Spring 2017: Final Solutions (Total 50 Points)

EECS150 - Digital Design Lecture 19 - Combinational Logic Circuits : A Deep Dive

EECS 427 Lecture 8: Adders Readings: EECS 427 F09 Lecture 8 1. Reminders. HW3 project initial proposal: due Wednesday 10/7

Fault Modeling. 李昆忠 Kuen-Jong Lee. Dept. of Electrical Engineering National Cheng-Kung University Tainan, Taiwan. VLSI Testing Class

Multi-Level Logic Optimization. Technology Independent. Thanks to R. Rudell, S. Malik, R. Rutenbar. University of California, Berkeley, CA

211: Computer Architecture Summer 2016

CSE 140 Midterm 3 version A Tajana Simunic Rosing Spring 2015

Delay Variation Tolerance for Domino Circuits

VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

( c) Give logic symbol, Truth table and circuit diagram for a clocked SR flip-flop. A combinational circuit is defined by the function

Testability Measures controllability observability Controllability Observability

ECE 2300 Digital Logic & Computer Organization

Single Stuck-At Fault Model Other Fault Models Redundancy and Untestable Faults Fault Equivalence and Fault Dominance Method of Boolean Difference

Combinational Equivalence Checking using Boolean Satisfiability and Binary Decision Diagrams

Adders, subtractors comparators, multipliers and other ALU elements

Boolean Algebra. Digital Logic Appendix A. Postulates, Identities in Boolean Algebra How can I manipulate expressions?

Fundamentals of Digital Design

EEE2135 Digital Logic Design

UNIVERSITY OF CALIFORNIA, BERKELEY College of Engineering Department of Electrical Engineering and Computer Sciences

Principles of Computer Architecture. Appendix B: Reduction of Digital Logic. Chapter Contents

Carry Look Ahead Adders

ECE/CS 552: Introduction To Computer Architecture 1. Instructor:Mikko H Lipasti. Fall 2010 University i of Wisconsin-Madison

Fundamental Algorithms for System Modeling, Analysis, and Optimization

Digital Logic Appendix A

VLSI System Testing. Testability Measures

Equalities and Uninterpreted Functions. Chapter 3. Decision Procedures. An Algorithmic Point of View. Revision 1.0

Boolean Algebra. Digital Logic Appendix A. Boolean Algebra Other operations. Boolean Algebra. Postulates, Identities in Boolean Algebra

ECE 1767 University of Toronto

EECS 579: Logic and Fault Simulation. Simulation

Issues on Timing and Clocking

Advanced Testing. EE5375 ADD II Prof. MacDonald

CPE/EE 422/522. Chapter 1 - Review of Logic Design Fundamentals. Dr. Rhonda Kay Gaede UAH. 1.1 Combinational Logic

Adders, subtractors comparators, multipliers and other ALU elements

Number System. Decimal to binary Binary to Decimal Binary to octal Binary to hexadecimal Hexadecimal to binary Octal to binary

CSEE 3827: Fundamentals of Computer Systems. Combinational Circuits

Sample Test Paper - I

Chapter 6 Testability Analysis

Chapter 4. Combinational: Circuits with logic gates whose outputs depend on the present combination of the inputs. elements. Dr.

EECS150 - Digital Design Lecture 23 - FSMs & Counters

Latches. October 13, 2003 Latches 1

Philadelphia University Student Name: Student Number:

Simplifying Logic Circuits with Karnaugh Maps

Lecture 3 Review on Digital Logic (Part 2)

Outline. EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits) Combinational Logic (CL) Defined

CMPUT 329. Circuits for binary addition

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving III & Binary Decision Diagrams. Sanjit A. Seshia EECS, UC Berkeley

EE 209 Logic Cumulative Exam Name:

Binary Decision Diagrams and Symbolic Model Checking

Skew Management of NBTI Impacted Gated Clock Trees

Hw 6 due Thursday, Nov 3, 5pm No lab this week

Combinational Logic. Mantıksal Tasarım BBM231. section instructor: Ufuk Çelikcan

Optimum Prefix Adders in a Comprehensive Area, Timing and Power Design Space

Hardware Design I Chap. 4 Representative combinational logic

Testability. Shaahin Hessabi. Sharif University of Technology. Adapted from the presentation prepared by book authors.

SAT-Solving: From Davis- Putnam to Zchaff and Beyond Day 3: Recent Developments. Lintao Zhang

EGFC: AN EXACT GLOBAL FAULT COLLAPSING TOOL FOR COMBINATIONAL CIRCUITS

CSE140: Components and Design Techniques for Digital Systems. Decoders, adders, comparators, multipliers and other ALU elements. Tajana Simunic Rosing

Enrico Nardelli Logic Circuits and Computer Architecture

Lecture 4. Adders. Computer Systems Laboratory Stanford University

Logic BIST. Sungho Kang Yonsei University

On Critical Path Selection Based Upon Statistical Timing Models -- Theory and Practice

Lecture 11: Adders. Slides courtesy of Deming Chen. Slides based on the initial set from David Harris. 4th Ed.

Design of Sequential Circuits

Final Exam. ECE 25, Spring 2008 Thursday, June 12, Problem Points Score Total 90

Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 3: Practical SAT Solving

Counters. We ll look at different kinds of counters and discuss how to build them

Digital Integrated Circuits A Design Perspective. Arithmetic Circuits. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

Chapter 2 Fault Modeling

Combinational Logic Design Arithmetic Functions and Circuits

EECS150 - Digital Design Lecture 22 - Arithmetic Blocks, Part 1

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall Midterm Examination CLOSED BOOK

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary

EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits)

Delay Testing from the Ivory Tower to Tools in the Workshop

Simplify the following Boolean expressions and minimize the number of literals:

EECS150 - Digital Design Lecture 17 - Sequential Circuits 3 (Counters)

Numbers & Arithmetic. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See: P&H Chapter , 3.2, C.5 C.

EECS 579: Test Generation 4. Test Generation System

Logic in Automatic Verification

Lecture 5. MOS Inverter: Switching Characteristics and Interconnection Effects

VLSI Design. [Adapted from Rabaey s Digital Integrated Circuits, 2002, J. Rabaey et al.] ECE 4121 VLSI DEsign.1

Z = F(X) Combinational circuit. A combinational circuit can be specified either by a truth table. Truth Table

Lecture 8: Sequential Networks and Finite State Machines

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Digital Logic

Efficient Circuit Analysis under Multiple Input Switching (MIS) Anupama R. Subramaniam

Logarithmic Circuits

Arithmetic Building Blocks

Combina-onal Logic Chapter 4. Topics. Combina-on Circuit 10/13/10. EECE 256 Dr. Sidney Fels Steven Oldridge

CMPT 710/407 - Complexity Theory Lecture 4: Complexity Classes, Completeness, Linear Speedup, and Hierarchy Theorems

Lecture 10: Synchronous Sequential Circuits Design

EE241 - Spring 2000 Advanced Digital Integrated Circuits. Announcements

Transcription:

EECS 9B Spring 3 Timing Analysis - Delay Models Simple model : D k Ak A A A3 Timing Analysis A k = arrival time = max(a,a,a 3 ) + D k D k is the delay at node k, parameterized according to function f k and fanout node k Andreas Kuehlmann Simple model : Ak D k D D k k3 A3 A A A A A3 Can also have different times for rise time and fall time Ak A k = max{a +D k, A +D k,a 3 +D k3 } Static delay analysis Required Times // level of PI nodes initialized to, // the others are set to -. // Invoke LEVEL from PO Algorithm LEVEL(k) { // levelize nodes if( k.level!= -) return(k.level) else k.level = +max{level(k i ) k i fanin(k)} return(k.level) } // Compute arrival times: // Given arrival times on PI s Algorithm ARRIVAL() { for L = to MAXLEVEL for {k k.level = L} A k = MAX{A ki } + D k } Required times: given required times on primary outputs Traverse in reverse topological order (i.e. from primary outputs to primary inputs) if (k i, k ) is an edge between k i and k, R ki,k = R k - D k (this is the edge required time) Hence, the required time of output of node k is R k = min ( R k,kj k j fanout(k) ) k i k S k k i S ki S j j 3

Propagating Slacks Sequential networks Slacks: slack at the output node kiss k = R k -A k Since R ki, k =R k -D k S ki, k =R ki, k - A ki 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 = min{s ki, j } j fanout (k i ) k i k S k S ki k i S j j l l C C3 l5 C C l l3 Notes: Each edge is the graph has a slack and a required time Negative slack is bad. Arrival times known at l and l Required times known at l 3, l, and l 5 Delay analysis gives arrival and required times (hence slacks) for C, C, C 3, C 5 6 Static critical paths Min-Max problem:minimize max{-s i, } A static critical path of a Boolean network is a path P = {i,i,,i p } where S ik, ik+ < Note: if a node k is on a static critical path, then at least one of the fanin edges of kis critical. Hence, all critical paths reach from an input to an output. Note: There may be several critical paths Example: Static critical paths 6-5 - - 3 3 5 6 8 A8= R=5 - R=5-7 - 9 A9= A=6 R=5 A=5 R=5 S =- R3=3 S = R7= S 3, =- R9=- S, = - S, = S 5, = S 6,3 = S 7,3 = - S 7, = - S 7,5 = S 8,6 = S 9,7 = - critical path edges S ki, k = S k + max{a kj } - A ki, k j,k i fanin(k) S k = min{s k, kj }, k j fanout(k) 7 8

Timing analysis problems Functional Timing Analysis We want to determine the true critical paths of a circuit in order to: determine the minimum cycle time that the circuit will function 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 worstcase model. Need to ensure correctness for case where i th gate delay D i M What is Timing Analysis? Estimate when the output of a given circuit gets stable clock Combinational block T 9 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 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 3

Gate-level Timing Analysis Example: -bit Carry-skip Adder False path aware arr(z)? z 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-pathaware timing analysis Compute false-path-aware arrival time c_in a b a b Length 5 Length s s c_out x x arr(x )= arr(x )= mux ripple carry adder False Path Analysis - Basics Controlling/Non-Controlling Values 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? Controlled value of AND 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 Controlling value of AND Non-Controlling value of AND Controlled value of OR Controlling value of OR Non-Controlling value of OR 5 6

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! Static Sensitization The (dashed)path is responsible for delay! Delay underestimation by static sensitization (delay = when true delay = 3) incorrect condition t= t= t= These paths are not statically-sensitizable 3 The longest true path is of length? 7 8 What is Wrong with Static Sensitization? Timing Simulation The idea of forcing non-controlling values to side inputs is okay, buttiming 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? 3 9 Implies that delay = for these inputs BUT! 5

Timing Simulation What is Wrong with Timing Simulation? -> 3 3 If gate delays are reduced, delay estimates can increase Not acceptable since Gate delays are just upper-bounds, actual delay is in [,d] Delay uncertainty due to manufacturing We are implicitly analyzing a familyof circuits where gate delays are within the upper-bounds Implies that delay = with the same set of inputs. Monotone Speedup Property Timing Simulation Revisited 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 nothave this property 3 3 means that the rising signal occurs anywhere between t = -infinity and t =. X-valued simulation 6

Timing Simulation Revisited Timed 3-valued (,,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 [McGeer, Brayton] Applies to general Boolean networks False Path Analysis Algorithms Checking the falsity of every path explicitly is too expensive - exponential # of paths State-of -the-art approach:. Start: set L = L top -! = topological longest path delay -! L old =. Binary search: If (Delay(L)) ( * )! L = L-L old /, L old = L, L = L +! L Else,! L = L-L old /, L old = L, L = L -! L If (L > L top or! L < threshold), L = L old, done (* ) Delay(L) = 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] SAT-based False Path Analysis Example Decision problem: Is there an input vector under which the output gets stable only after t = T? Idea:. characterize the set of all input vectors S(T) that make the output stable no later than t = T. 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? a b c e d Assume all the PIs arrive at t =, all gate delays = Is the output stable time t >? f g 7 8 7

Example g(,t=) : the set of input vectors under which g gets stable to value = no later than t = a b c e d g(,t=) = d(,t=) f(,t=) = (a(,t=) b(,t=)) (c(,t=) e(,t=)) =!a!b(c ) =!a!bc = S (t=) g(,t= ) = onset =!a!bc = g(,t=) = S 9 f g Onset: stabilized by t=? Example a b c g(,t=) : the set of input vectors under which g gets stable to value = no later than t= e d g(,t=) = d(,t=) f(,t=) = (a(,t=) b(,t=)) (c(,t=) e(,t=)) = (a+b) + (!c ) = a+b = S (t=) g(,t= ) = offset = a+b+!c = S 3 f g Example a b c g(,t=) : the set of input vectors under which g gets stable to no later than t= g(,t=) = a+b e d g(,t= ) = offset = a+b+!c g(,t= ) \ g(,t=) = (a+b+!c)!(a+b) =!a!b!c = satisfiable f g Offset: NOTstabilized by t= under abc= 3 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 3 8

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-freecircuit and a faulty circuit in terms of functionality Timed ATPG find an input vector that exhibits a given timed behavior Timed extension of PODEM 33 9