Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.

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

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Simulation executable (simv)
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
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.
Chapter 2Test Specification Process. n Device Specification Sheet – Purpose n Design Specification – Determine functionality of design n Test List Generation.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
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.
Software Testing and Quality Assurance
Design For Verification Synopsys Inc, April 2003.
Software Testing Written by Zvika Gutterman Adam Carmi.
Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
An Evaluation of BLAST John Gallagher CS4117. Overview BLAST incorporates new, fascinating and complex technology. The engine and external components.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
Calc2 Design Allows up to 4 incomplete requests on each port Tag is required to match request to response.
Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Introduction to Software Testing
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
By Ryan Mowry.  Graphical models of system  Entire system or just parts  Complex systems easier to understand  “Capture key requirements and demonstrate.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Using a Formal Specification and a Model Checker to Monitor and Guide Simulation Verifying the Multiprocessing Hardware of the Alpha Microprocessor.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Balancing Practices: Inspections, Testing, and Others JAXA scenario (formal method) Masa Katahira Japanese Space Agency.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
A Simple Method for Extracting Models from Protocol Code David Lie, Andy Chou, Dawson Engler and David Dill Computer Systems Laboratory Stanford University.
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.
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
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.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Functional Verification of Dynamically Reconfigurable Systems Mr. Lingkan (George) Gong, Dr. Oliver Diessel The University of New South Wales, Australia.
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.
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Time Abstraction in Simulation-Based Hardware Verification Alexander Kamkin Institute for System Programming of the Russian Academy of.
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 - Lect Lect 12,13,14 – 762 Testbenches Lets look at the EE 762 testbenches Look at stimulus generation techniques Look at response.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
Challenges in Hardware Logic Verification Bruce Wile IBM Server Group Verification Lead 10/25/01.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Introduction to Computing Systems and Programming Programming.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Problem: design complexity advances in a pace that far exceeds the pace in which verification technology advances. More accurately: (verification complexity)
CS 5150 Software Engineering Lecture 21 Reliability 2.
Software Testing Strategies for building test group
Digital System Verification
Real Number Modeling Enables Fast, Accurate Functional Verification
Software Verification and Validation
Software Verification and Validation
Regression testing Tor Stållhane.
Design of Digital Circuits Lab 6 Supplement: Testing the ALU
Software Verification and Validation
Presentation transcript:

Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors

Design Error, Traffic Light Controller Figure 1.2 p 8Figure 1.3 p 9 Design may not match specification Design (and spec) may not match intent Example: Elm St. light may starve is Main St. has traffic

General Verification Approaches Simulation-Based - Simulate the design with test stimuli and check the results Formal Verification - Proving facts about the design Only a small part of the space can be explored Hard to tell if testing is sufficient Model checking, Equivalence checking Time and space issues Hard to tell if properties are complete

Functional Verification Challenges 1.State Space Size - Capturing state can consume space and exploring state space consumes time 2.Test Generation - Generating input sequences to reveal errors 3.Response Analysis - Checking the results to see that they are correct

State Space Size Fig 1.5, p colors 1024 x 768 pixels Pressing a button superimposes name on the screen Must consider screen state as well Total states = 5 * 2 32 * 1024 * 768 = 16,888,498,602,639,360

Test Generation/ Response Analysis Table 1.1, p13 Test gen and analysis depends on the design

Test and Response Options Functional-Based Stimulus - Instruction stream loaded into memory Result Validation - Do the resulting registers have the correct values after each instruction? Microprocessor Digital Video Converter Functional-Based Stimulus - Streaming encoded video Result Validation - Does the video appear correctly on a monitor?  How do you test internal components (forwarding, DCT)?

Costs of Testing Schedule (Time-to-Market) - Release your product before your competition Paying Engineers - Could be working on another project Test Hardware Purchase/Maintainance - oMachines to run simulation/debug oMay need special test fixtures to model environment Quality Requirements - oCost of recall oLoss of life/money

Cost of Errors During Lifetime Fig 1.7, p 17 The cost of undetected problems grows over time

Verification Cycle Fig 1.9, p 25 Start with a functional specification Verification partially in parallel with design process Big cycle involves learning from previous designs

Functional Specification A natural language description of the functionality Hard to define, varies based on design style Defines I/O behavior without implementation detail May include timing diagrams, UML, scenarios, etc. Ambiguous and Incomplete - All natural languages are ambiguous. Ambiguity is resolved during design Specification is generally not executable Cannot be understood by an automatic tool

Verification Plan A plan for organizing the verification process Abstract, no testing details Includes required tools, completion criteria, resources, functions to be verified, etc. Used to manage the process

Develop Environment Write code and setup tools used to perform testing 1.Write testbench to generate test stimuli 2.Define assertions to check responses 3.Define reference model to compare responses 4.Determine when and where to sample values

Debug and Regression Perform simulation, debug the HDL and the environment Regression - Continuous running of tests in verification plan Randomness in tests Design modifications

System Test and Escape Analysis Apply tests to the real system Fast, but bad observability Captures effects not modeled by a simulator Determine why simulation missed bugs Reproduce bugs in simulation Good for future designs