Assertion Based Testing. Testing and verification Does the design function according to the specifications? Example.

Slides:



Advertisements
Similar presentations
VHDL Lecture 1 Megan Peck EECS 443 Spring 08.
Advertisements

Sequential Circuits Storage elements
Synchronous Sequential Logic
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
Analysis of Clocked Sequential Circuits
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
Lecture 12 Latches Section , Block Diagram of Sequential Circuit gates New output is dependent on the inputs and the preceding values.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
Sequential Logic Design Process A sequential circuit that controls Boolean outputs and a specific time- ordered behavior is called a controller. StepDescription.
Topics of Lecture Configuration Test Bench Encapsulation Structural Decomposition.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Lab Lecture 5 Aahlad. Process Statement-A Review…. Syntax process (sensitivity_list) declarations; begin sequential statement;... end process;
Chapter 3 Combinational Logic Design
Chapter #6: Sequential Logic Design 6.2 Timing Methodologies
Package with 4-valued logic Signal Attributes Assertion Data Flow description.
Spring 2002EECS150 - Lec0-intro Page 1 EECS150 - Digital Design Lecture 8 - Hardware Description Languages February 14, 2002 John Wawrzynek.
Propositional Calculus Math Foundations of Computer Science.
9/15/09 - L22 Sequential Circuit Design Copyright Joanne DeGroat, ECE, OSU1 Sequential Circuit Design Creating a sequential circuit to address a.
VHDL Training ©1995 Cypress Semiconductor 1 Introduction  VHDL is used to:  document circuits  simulate circuits  synthesize design descriptions 
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Combinational Logic Design BIL- 223 Logic Circuit Design Ege University Department of Computer Engineering.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 7: One More Loop Problem, Generating “random” values, Midterm Review.
Design Verification VHDL ET062G & ET063G Lecture 5 Najeem Lawal 2012.
Introduction Each logical element or condition must always have a logic value of either "0" or "1", we also need to have ways to combine different logical.
L16 – Testbenches for state machines. VHDL Language Elements  More examples HDL coding of class examples Testbench for example  Testing of examples.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 5 – Dental Payment Application: Introducing.
VHDL Project I: Introduction to Testbench Design Matthew Murach Slides Available at:
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
16 August Verilog++ Assertion Extension Requirements Proposal.
Introduction to OVL (Open Verification Library) Alexander Gnusin.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
Introduction to Design Tools COE Example design: ALU Recall that the ALUOp is 4 bits – High-order two bits used to determine operation class (ALUOp(3:2))
1 Finite State Machines (FSMs) Now that we understand sequential circuits, we can use them to build: Synchronous (Clocked) Finite State Machines Finite.
Lecture 7 Chap 9: Registers Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science.
Verification & Validation By: Amir Masoud Gharehbaghi
13 Aug 2013 Program Verification. Proofs about Programs Why make you study logic? Why make you do proofs? Because we want to prove properties of programs.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
1 Arithmetic, ALUs Lecture 9 Digital Design and Computer Architecture Harris & Harris Morgan Kaufmann / Elsevier, 2007.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
EGR 115 Introduction to Computing for Engineers Branching & Program Design – Part 3 Friday 03 Oct 2014 EGR 115 Introduction to Computing for Engineers.
Combinational Logic Design. 2 Combinational Circuits A combinational logic circuit has: ♦ A set of m Boolean inputs, ♦ A set of n Boolean outputs ♦ n.
Classification of Simulators Logic Simulators Emulator-basedSchematic-basedHDL-based Event-drivenCycle-basedGateSystem.
LECTURE 4 Logic Design. LOGIC DESIGN We already know that the language of the machine is binary – that is, sequences of 1’s and 0’s. But why is this?
ECE DIGITAL LOGIC LECTURE 21: FINITE STATE MACHINE Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2015, 11/24/2015.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Verification Presentation to SystemVerilog Basic Committee Peter Flake Nov 15, 2002.
Combinational Logic Design. 2 Combinational Circuits A combinational logic circuit has: ♦ A set of m Boolean inputs, ♦ A set of n Boolean outputs ♦ n.
CDA 4253 FPGA System Design VHDL Testbench Development Hao Zheng Comp. Sci & Eng USF.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
1 Sections 7.2 – 7.7 Nested Control Statements Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
An Introduction to Verilog: Transitioning from VHDL
Implementing Combinational
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Engineering Lecture #12.
Chapter 3 – Combinational Logic Design
ECE2030 HW-6.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Clocks A clock is a free-running signal with a cycle time.
EEL4712 Digital Design (VHDL Tutorial).
Lecture 7: Verilog Part II
Presentation transcript:

Assertion Based Testing

Testing and verification Does the design function according to the specifications? Example

Traditional approach Generate a set of test cases (vectors) Apply to the design.. See if the output is correct I.e. check addition, see if 2+2 = 4; VHDL assert/report statement built to support this activity

Coverage How many test cases does it take to check ever possible input in a design.. Percent Coverage = % of all possible cases actually tested Number of cases Combinational logic 2 #of inputs (combinatorial explosion) Sequential logic 2 (#of inputs) x (#of states) (combinatorial nuclear holocaust) Input/signal timing verification (even harder) What coverage is enough? – Use designers knowledge, generate functional test.. etc… This technique is no longer adequate for complex designs

Assertion based testing Verify a design by testing a set of behaviors derived from specifications Rather that test 2+2=4, test A+B=R. Specfic behaviors are called PROPERTIES ASSERTIONS are logical statements about properies (I.e. always true, never true)

Examples PROPERTIES – P0: (A+B) = R when ALUop = “0001” – P1: (A-B) = R when ALUop = “0010” – P2: ALUop != “1000” ASSERTIONS – Assert never Property ALUop = “1000” – Assert implication Property (A+B) = R when ALUop = “0001” – Assert implication Property (A-B) = R when ALUop = “0010”

Testing Assertions DESIGN UNDER TEST CASE GENERATOR ASSERTION CHECKER Design inputs Design outputs clock Generates a new test case on each clock edge Tests validity of each assertion on each rising clock edge

Assertions in HDL designer Open Verification library – Map the library COE1502_OVL into your project. It is located at I:\1502\COE1502_OVL – Find the documentation at – Each library component implements one type of assertion. – You will need to write VHDL to implement the properties to be tested

Using OVL in your design Property written in embedded block User defined message string set in generic “msg” Component assert_always instantiated from OVL library

Building a Testbench A testbench is a structured way of building a framework to test your design HDL designer creates a new block diagram with the component under test and a new component with the same inputs and outputs but with the directionality of each reversed

Inside the tester component Test case generator Assertion checkers Partitioned by functional block in ALU Outputs to ALU inputs Inputs from ALU outputs

Inside the test case generator Random Number generators Fixed 64-bit Component rand64 Variable 1-32 bit component randv Set seed value And width

Inside the logic assertion tester

Testing signed versus unsigned behaviors --Antecedent Expression antecedent_expr <= true when ALUop="1011" else false; --Consequent Expression consequent_expr = B) AND (R= X"0000_0000_0000_0000" )) else false;

Testing the Shifters antecedent_expr1 <= true when ALUop="1110" else false; consequent_expr1 <= true when (SHR(A,shamt)) = R else false; antecedent_expr2 <= true when ALUop="1100" else false; consequent_expr2 <= true when (SHL(A,shamt)) = R else false; USE ieee.std_logic_unsigned USE ieee.std_logic_signed