Verification – The importance

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
L7 – Derivation of State Graphs and Tables – Moore Machines.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
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.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Hardware Functional Verification By: John Goss Verification Engineer IBM
Cleanroom Engineering and the B-Method: A Comparison Drew Connelly.
Spring 07, Feb 6 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Verification Vishwani D. Agrawal James J. Danaher.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Senior Design I Lecture 7 - Verification.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Illinois Institute of Technology
Testing an individual module
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Types and Techniques of Software Testing
9/15/09 - L22 Sequential Circuit Design Copyright Joanne DeGroat, ECE, OSU1 Sequential Circuit Design Creating a sequential circuit to address a.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
MAPLDDesign Integrity Concepts You Mean We’re Still Working On It? Sustaining a Design.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Presenter : Ching-Hua Huang 2013/9/16 Visibility Enhancement for Silicon Debug Cited count : 62 Yu-Chin Hsu; Furshing Tsai; Wells Jong; Ying-Tsai Chang.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Digitaalsüsteemide verifitseerimise kursus1 Digitaalsüsteemide verifitseerimine IAF0620, 5.0 AP, E Jaan Raik IT-208,
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.
EE694v-Verification-Lect11-1- Lect : The FP adder test plan As noted earlier – there is a difference in black box and while box testing and verificiation.
Copyright © 2002 Qualis Design Corporation Industry and Textbook Overview Qualis Design Corporation PO Box 4444 Beaverton, Oregon USA Phone:
Verification Plan & Levels of Verification
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
1/8/ L20 Project Step 8 - Data Path Copyright Joanne DeGroat, ECE, OSU1 State Machine Design with an HDL A methodology that works for documenting.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
Software Construction Lecture 18 Software Testing.
Copyright 2009 Joanne DeGroat, ECE, OSU 1 ECE 762 Theory and Design of Digital Computers, II (A real course title: Design and Specification of Digital.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
ECE-C662 Lecture 2 Prawat Nagvajara
Testing Chapter 23 IB103 Week 12 (part 3). Verify that a complex (any) program works correctly, that the program meets specifications The chapter reviews.
Software Engineering Saeed Akhtar The University of Lahore.
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
EE694v-Verification-Lect7-1- Verification Plan & Levels of Verification The Verification Plan Yesterdays and today’s design environment Design specification.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Silicon Programming--Testing1 Completing a successful project (introduction) Design for testability.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
FPGA-Based System Design Copyright  2004 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Common Elements in Sequential Design. Lecture 3 topics  Registers and Register Transfer  Shift Registers  Counters Basic Counter Partial sequence counters.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
Speaker: Nansen Huang VLSI Design and Test Seminar (ELEC ) March 9, 2016 Simulation-Based Equivalence Checking.
ASIC Design Methodology
Testing Tutorial 7.
Software Testing.
Software Engineering (CSI 321)
Topics Modeling with hardware description languages (HDLs).
Hardware Functional Verification
Topics Modeling with hardware description languages (HDLs).
Introduction to Software Testing
Lecture 09:Software Testing
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Design Specification Document
Digital Design Verification
Presentation transcript:

Verification – The importance EE694v-Verification-Lect2

EE694v-Verification-Lect2 Project 1 is underway Open discussion of the Verification Plan for project 1. Discussion. EE694v-Verification-Lect2

Verification – The Importance Verification model Verification approaches Verification issues Versus testing Design for verification Reuse Type I & II mistakes Reference: “Writing Testbenches: Functional Verification of HDL Models,: Janick Bergeron, Kluwer Academic Press, 2000. for all figures in this lecture. EE694v-Verification-Lect2

Importance of Verification Verification consumes 70% of design effort and is often 80% of total code. Typical textbooks on VHDL or Verilog treat verification and testbench creation only very lightly Navabi textbook used in EE762 3 pages on verification 4 pages on testbenches In today’s environment verification resides squarely on the critical path. EE694v-Verification-Lect2

EE694v-Verification-Lect2 Importance (cont) Verification is currently the target of several new tools That reduce to overall verification time by enabling parallelism of effort Write and debug testbenches in parallel with each other and with implementation of design That enable higher levels of abstraction Work more efficiently as low-levels of detail are ignored. This is acceptable as long as reduction in control and observability are acceptable and chosen wisely That employ automation Must fully understand what tool is and is not capable of. EE694v-Verification-Lect2

EE694v-Verification-Lect2 Reconvergence Model A conceptual representation of the verification process. One of the most important questions is: “What are you verifying?” EE694v-Verification-Lect2

Reconvergence Model (cont) Purpose of verification - ensure result of some transformation is as intended or expected, i.e., reconcile result with starting point. Examples of possible transformations RTL coding of a design from a specification Insertion of a scan chain Synthesizing code into a gate-level netlist Layout of a gate-level netlist in the target technology EE694v-Verification-Lect2

EE694v-Verification-Lect2 Human Intervention Necessary for a group or individual to interpret a specification If the same individual does both the interpretation of the specification and the verification of the coding the common origin is the interpretation not the specification. If the interpretation is wrong… EE694v-Verification-Lect2

Reducing human-itroduced errors Human-introduced errors reduced through Automation – Take human intervention completely out of the process (or kind of – still there in the specification and design of the automation process) Poka-Yoka – Reduce human intervention to simple and foolproof steps. Usually last step toward complete automation. Verification process remains an art. Redundancy – Every transformation accomplished is either verified independently by another individual or separate transformations are done and the results compared. EE694v-Verification-Lect2

Verification Approaches Formal Verification - Equivalence Checking Mathematically prove origin and output are logically equivalent and transformation preserved functionality Keeps synthesis tool honest, i.e., identify when the synthesis tool produces an incorrect result. EE694v-Verification-Lect2

Verification Approaches Formal Verification - Model Checking Assertion or characteristics of a design are formally proven or disproved. Example: Are all states in a state machine reachable? EE694v-Verification-Lect2

Verification Approaches Functional Verification Main purpose is to insure design implements intended functionality Only shows that design meets intent of specification but cannot prove it. Can prove that a design does not implement intended function by finding a single case. EE694v-Verification-Lect2

Verification Approaches Testbench Generation Use code coverage metrics and the source code under analysis to generate a testbench that either meets some code coverage or exercises the design to violate a property. Actually do little to contribute to the verification process EE694v-Verification-Lect2

Functional Verification Approaches Black Box verification Performed without knowledge of actual implementation Access to I/O interface only No access to internal signals and no knowledge of structure and implementation Only approach possible if functional verification was implemented in parallel while the design was being done EE694v-Verification-Lect2

Functional Verification Approaches (continued) White Box verification Full visibility and controllability of internal structure and signals Tightly integrated with a particular implementation Gray Box verification Compromise between the other two Uses the I/O interface but also has knowledge of significant features EE694v-Verification-Lect2

Testing versus Verification Verification – Ensure design meets its functional intent Testing – Ensure part was manufactured correctly EE694v-Verification-Lect2

Design for Verification Just as design-for-test requires addition of circuitry, add non-functional features to facilitate verification As you do a design need to ask not only “what is this supposed to do?” but also “how is this going to be verified?” EE694v-Verification-Lect2

EE694v-Verification-Lect2 Design Reuse Major obstacle to reuse is cultural!! Engineers have little willingness to incorporate an unknown design into their own. Do not trust that the design is as good to the one they can produce. Requires trust in the design to be used Trustworthiness can be demonstrated through a proper verification process EE694v-Verification-Lect2

Type I and Type II mistakes Type I – False negatives – verification finding errors where none exist – Type I errors are easy to identify Type II – False positives – MOST SERIOUS – failed to identify an error where one exists EE694v-Verification-Lect2

EE694v-Verification-Lect2 Project 1 and Type I/II When you find discrepancies what is approach Establish if reference model or RTL model is the source of the error. High probability that it is the RTL model, but that is not a certainty!  Elevates analysis of errors to a critical level in the verification effort. EE694v-Verification-Lect2