1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

The Design Process, RTL, Netlists, and Verilog
The need for AMS assertions Verify the analog/digital interfaces at block and SoC levels –Check properties involving voltages and currents –Check complex.
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Simulation executable (simv)
Testing and Quality Assurance
Give qualifications of instructors: DAP
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Alternate Software Development Methodologies
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Reporter:PCLee With a significant increase in the design complexity of cores and associated communication among them, post-silicon validation.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Automatic Verification of Timing Constraints Asli Samir – JTag course 2006.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
1 Design For Debug Using DAFCA system Gadi Glikberg 15/6/06.
University College Cork IRELAND Hardware Concepts An understanding of computer hardware is a vital prerequisite for the study of operating systems.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Design Synopsys System Verilog API Donations to Accellera João Geada.
Introduction To System Analysis and design
Digital Computer Design Fundamental
CSET 4650 Field Programmable Logic Devices
Simulation Management. Pass or Fail? Managing Simulations Regression Behavioral Models.
Roza Ghamari Bogazici University April Outline Introduction SystemC Language Formal Verification Techniques for SystemC Design and Verification.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
Dept of CSE, IIT KGP Assertion Based Verification of Mixed Signal Designs Sanjib Kumar Das Roll No: 03CS1018 Under Supervision of Dr. Pallab Dasgupta Department.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
1 H ardware D escription L anguages Modeling Digital Systems.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Assertion Based Testing. Testing and verification Does the design function according to the specifications? Example.
CS 3850 Lecture 3 The Verilog Language. 3.1 Lexical Conventions The lexical conventions are close to the programming language C++. Comments are designated.
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
1 SystemVerilog Enhancement Requests Daniel Schostak Principal Engineer February 26 th 2010.
16 August Verilog++ Assertion Extension Requirements Proposal.
Module 1.2 Introduction to Verilog
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth.
Chapter 4 MARIE: An Introduction to a Simple Computer.
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
Assertions Jean-Michel Chabloz. Assertions basic Idea We assert that a certain “thing” should be true. –If it is true, fine –If it is false, then we get.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
Macro Verification Guidelines Chapter 7.. Chap 7. Macro Verification Guidelines The goal of macro verification The macro is 100 percent correct in its.
Verification & Validation By: Amir Masoud Gharehbaghi
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
© Copyright Alvarion Ltd. SVA Dafna Senderovich Jan 2006.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Introduction to ASIC flow and Verilog HDL
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
RTL Hardware Design by P. Chu Chapter 9 – ECE420 (CSUN) Mirzaei 1 Sequential Circuit Design: Practice Shahnam Mirzaei, PhD Spring 2016 California State.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Timing Analysis 11/21/2018.
SystemVerilog and Verification
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

1 Assertion Based Verification

2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according to Moore's Law.  The design productivity, facilitated by EDA tool improvements, grows only 21% per year.  These numbers have held constant for the last two decades.

3 Assertion Based Verification What is the hardest challenge in design flow?  The main problem in the design flow is to clean on the functional bugs.  Functional Logic Error grow to be 72% at 2002, and 75% at  Top causes are: –12.7% - Goofs (for example, typos) –11.4% - Miscommunication. –9.3% - Micro Architecture bugs. –9.3% - Logic and micro changes.

4 Assertion Based Verification AgendaAgenda  What is verification and coverage driven?  ABV – Assertion Based Verification –What is assertion –Examples  Questions  Backup – SystemVerilog assertions –SystemVerilog overview –Advantages of SystemVerilog assertions –Examples  What is verification and coverage driven?  ABV – Assertion Based Verification –What is assertion –Examples  Questions  Backup – SystemVerilog assertions –SystemVerilog overview –Advantages of SystemVerilog assertions –Examples

5 Assertion Based Verification Coverage Driven Verification How to verify that the design meets the verification goals?  Define all the verification goals up front in terms of "functional coverage points.“ –Each bit of functionality required to be tested in the design is described in terms of events, values and combinations.  Functional coverage points are coded into the HVL (Hardware Verification Language) environment (e.g., Specman ‘e’). –The simulation runs can be measured for the coverage they accomplish.  Focus on tests that will accomplishing the coverage ("coverage driven testing“). –By Fixing bugs, releasing constraints, and improving the test environment. –In a coverage-driven project, each verification engineer is focused on achieving the tangible results for his features.

6 Assertion Based Verification Common testing schemes  Traditional simulation-based functional verification is good at validating baseline functionality Disadvantages :  The specification may not be complete –usually describes only the normal operating behavior  Hard to set up all specified operations strictly from the chip inputs  Hard to check all specified behavior strictly from the chip outputs  Hard to locate the sources of bugs exhibited at the chip outputs  Certain types of bug behaviors may not propagate all the way to the chip outputs  Certain types of implementation errors are difficult to detect using functional tests  Traditional simulation-based functional verification is good at validating baseline functionality Disadvantages :  The specification may not be complete –usually describes only the normal operating behavior  Hard to set up all specified operations strictly from the chip inputs  Hard to check all specified behavior strictly from the chip outputs  Hard to locate the sources of bugs exhibited at the chip outputs  Certain types of bug behaviors may not propagate all the way to the chip outputs  Certain types of implementation errors are difficult to detect using functional tests

7 Assertion Based Verification Hardware Languages for Design and Verification

8 Assertion Based Verification Assertions  Assertions capture knowledge about how a design should operate  Assertions are vital to increasing both the observability and the controllability of a design  Each assertion specifies both legal and illegal behavior of a circuit structure (which can be an RTL element, an interface, a controller, etc.) inside the design  Assertion in English: - The fifo should not overflow - The fifo should not overflow (i.e., when it is full, write should not happen) or (i.e., when it is full, write should not happen) or - TDO signal should be less then… - TDO signal should be less then…  Will be used in coverage-driven verification techniques.

9 Assertion Based Verification

10 Assertion Based Verification

11 Assertion Based Verification

12 Assertion Based Verification Automatic RTL Checks Assertion Compiler Standard Verilog Simulator Standard Verilog Simulator Coverage Reports Coverage Reports Testbench Assertion Library Assertion Library RTL Design Assertions Simulation Formal Verification Static Formal Verification Dynamic Formal Verification Formal Model Compiler Formal Metrics Formal Metrics Complete ABV Flow

13 Assertion Based Verification Performance of the ABV Flow  Assertion based verification flow provides –Find bugs faster with assertions –Find more bugs with verification hot spots –Reduce simulation cycles –Adopt the AVB/CDV methodology incrementally % Functional Coverage Project Timeline (Increasing $/Bug) Improvement in Verification Closure (Reduction in total simulation) Signoff Coverage Traditional Verification X Reduced Risk $/Bug Saving bug

14 Assertion Based Verification Conclusion   Assertion-based verification is a shift in verification methodology   Traditional functional verification tries to stimulate the design and observe the responses from the outside   observability and controllability are so low that pseudo-random simulation can no longer exercise the internals of the device sufficiently   ABV technologies and methodologies are developed to : – –Zero in to the structure of the design – –Responsibility of verification is also shifting from over-the-wall verification team to involve designers as well – –Design knowledge becomes a critical criterion for successful functional verification – –With assertions, we can detect bugs sooner – –With formal verification, we have more direct control of the verification effort

15 Assertion Based Verification Thank you for listening !

16 Backup SystemVerilog Assertions ( SVA )

17 Assertion Based Verification Four Pillars of ABV  Assertions capture the design intent by embedding them in a design and having them monitor design activities  Pillar 1: Automatic Assertion Check  Pillar 2: Static Formal Verification  Pillar 3: Simulation with Assertions  Pillar 4: Dynamic Formal Verification

18 Assertion Based Verification SystemVerilog – assertions overview Key benefits of SVA can be summarized as follows:  Familiar language and syntax  Less assertion code  Simple hookup between assertions and the test  No special interfaces  Customized messaging and error severity levels  Ability to interact with Verilog and C functions  No mismatch results between simulation and formal tools Key benefits of SVA can be summarized as follows:  Familiar language and syntax  Less assertion code  Simple hookup between assertions and the test  No special interfaces  Customized messaging and error severity levels  Ability to interact with Verilog and C functions  No mismatch results between simulation and formal tools

19 Assertion Based Verification SystemVerilog – assertions overview  SystemVerilog provides two types of assertions: –Immediate –Concurrent Both intended to convey the intent of the design and identify the source of a problem as quickly and directly. Immediate assertions  SystemVerilog provides two types of assertions: –Immediate –Concurrent Both intended to convey the intent of the design and identify the source of a problem as quickly and directly. Immediate assertions

20 Assertion Based Verification Concurrent vs. immediate Concurrent types: - Boolean expressions - Sequential expressions - Property Declarations - Assertion Directives Two important differences: - Concurrent assertions allow the specification of a temporal behavior to - Concurrent assertions allow the specification of a temporal behavior to be checked vs. combinational condition of immediate. be checked vs. combinational condition of immediate. - Concurrent assertions can also be instantiated declaratively as a module-level statement (similar to a continuous assignment). module-level statement (similar to a continuous assignment). Two important differences: - Concurrent assertions allow the specification of a temporal behavior to - Concurrent assertions allow the specification of a temporal behavior to be checked vs. combinational condition of immediate. be checked vs. combinational condition of immediate. - Concurrent assertions can also be instantiated declaratively as a module-level statement (similar to a continuous assignment). module-level statement (similar to a continuous assignment).

21 Assertion Based Verification Boolean expressions  The Boolean expressions layer is the basic layer.  Boolean expressions specifies the values of elements at a particular point in time particular point in time Syntax : Syntax :  The Boolean expressions layer is the basic layer.  Boolean expressions specifies the values of elements at a particular point in time particular point in time Syntax : Syntax :

22 Assertion Based Verification Sequential expressions  Sequences of Boolean expressions with clear temporal relationships between them relationships between them  Sequences of Boolean expressions with clear temporal relationships between them relationships between them Basic sequential expression : "a followed by b on the next clock" which is represented in SystemVerilog as a ##1 b ##1 indicates one clock delay Basic sequential expression : "a followed by b on the next clock" which is represented in SystemVerilog as a ##1 b ##1 indicates one clock delay

23 Assertion Based Verification Important to understand that in SystemVerilog each element of a sequence may be either a Boolean expression or another sequence. Thus, the expression s1 ##1 s2 means that sequence s2 begins on the clock after sequence s1 ends. Important to understand that in SystemVerilog each element of a sequence may be either a Boolean expression or another sequence. Thus, the expression s1 ##1 s2 means that sequence s2 begins on the clock after sequence s1 ends.

24 Assertion Based Verification  The optional list of arguments allows for specification of sequences as a generic temporal relationship. as a generic temporal relationship.  The optional list of arguments allows for specification of sequences as a generic temporal relationship. as a generic temporal relationship. - Some operations on sequences :

25 Assertion Based Verification Property declarations  More general behaviors to be specified.  Properties allow you to invert the sense of a sequence - As when the sequence should not happen. - As when the sequence should not happen.  Disable the sequence evaluation.  Specify that a sequence be implied by some other occurrence. Syntax :  More general behaviors to be specified.  Properties allow you to invert the sense of a sequence - As when the sequence should not happen. - As when the sequence should not happen.  Disable the sequence evaluation.  Specify that a sequence be implied by some other occurrence. Syntax : "as long as the test signal is low, check that the abort_seq sequence does not occur."

26 Assertion Based Verification Assertions directives ( Procedural )  System implication - "when this happens, then that will happen“ thus require the writer to specify the trigger assertion. thus require the writer to specify the trigger assertion.  Declarative assertions, require additional work by the designer to use them effectively. Consider a finite state machine design. Assertion "when in state ACK, if foo is high, then req should be held low for 5 clocks."  System implication - "when this happens, then that will happen“ thus require the writer to specify the trigger assertion. thus require the writer to specify the trigger assertion.  Declarative assertions, require additional work by the designer to use them effectively. Consider a finite state machine design. Assertion "when in state ACK, if foo is high, then req should be held low for 5 clocks."

27 Assertion Based Verification State machine cont’ This assertion could be coded declaratively as: The fact that the assertions are syntactically part of the language allows them to be embedded procedurally in the RTL code and automatically infer this information, as in: The fact that the assertions are syntactically part of the language allows them to be embedded procedurally in the RTL code and automatically infer this information, as in:

28 Assertion Based Verification Assertion example Two blocks A,B exchange data via a common bus : A and/or B sends ‘Req’ to the Arbiter. Arbiter sends ‘Gnt’ back to A or B, making it Master. Arbiter sets ‘Busy’ while A or B is Master. Master sets ‘DRdy’ when Data is on the bus. Master sets ‘Done’ in the last cycle of a grant. A and/or B sends ‘Req’ to the Arbiter. Arbiter sends ‘Gnt’ back to A or B, making it Master. Arbiter sets ‘Busy’ while A or B is Master. Master sets ‘DRdy’ when Data is on the bus. Master sets ‘Done’ in the last cycle of a grant.

29 Assertion Based Verification Some Assertions to Check :   A Grant never occurs without a Request. – –Assert never GntA && !ReqA   If A (B) receives a Grant, then B (A) does not. – –Assert always GntA -> !GntB   A (B) never receives a Grant in two successive cycles. – –Assert never GntA && nextGntA   A Request is eventually followed by a Grant – –Assert always ReqA -> eventually GntA   A Grant never occurs without a Request. – –Assert never GntA && !ReqA   If A (B) receives a Grant, then B (A) does not. – –Assert always GntA -> !GntB   A (B) never receives a Grant in two successive cycles. – –Assert never GntA && nextGntA   A Request is eventually followed by a Grant – –Assert always ReqA -> eventually GntA

30 Assertion Based Verification Tool Support

31 Assertion Based Verification Assertion Debug Environment

32 Assertion Based Verification Conclusion  SystemVerilog is a unified language that contains design and verification constructs  Assertions communicate to the test bench and vice-versa.  Customize messaging resulting from the assertions  Create calls to Verilog and C functions dependent on the success or failure of the assertions  Minimize assertion code by inferring design control structures Furthermore, SystemVerilog assertions will eliminate the debugging of mismatches between simulation and formal tools Furthermore, SystemVerilog assertions will eliminate the debugging of mismatches between simulation and formal tools  SystemVerilog is a unified language that contains design and verification constructs  Assertions communicate to the test bench and vice-versa.  Customize messaging resulting from the assertions  Create calls to Verilog and C functions dependent on the success or failure of the assertions  Minimize assertion code by inferring design control structures Furthermore, SystemVerilog assertions will eliminate the debugging of mismatches between simulation and formal tools Furthermore, SystemVerilog assertions will eliminate the debugging of mismatches between simulation and formal tools

33 Assertion Based Verification Had Fun ?! Come any time Barak & Daniel VLSI Seminar