ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.

Slides:



Advertisements
Similar presentations
SOC Design: From System to Transistor
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Winter-Spring 2001Codesign of Embedded Systems1 Introduction to SystemC Part of HW/SW Codesign of Embedded Systems Course (CE )
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
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.
The Design Process Outline Goal Reading Design Domain Design Flow
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Spring 07, Jan 16 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
DSI Division of Integrated Systems Design Functional Verification Environments Development Goals Our main goals are in the field of developing modular.
Creating Test Environments HDL Model HDL Testbench Simulation Engine API stimulus check Testbench Program stimulus check Non-HDL languages may be used.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Test Abstractions Intent Nat. Lang. Spec. HW Behavioral Tests can be described at different abstraction levels Tests can be defined top-down or bottom-up.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Introduction to Software Testing
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
Using a Formal Specification and a Model Checker to Monitor and Guide Simulation Verifying the Multiprocessing Hardware of the Alpha Microprocessor.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
Principles Of Digital Design Chapter 1 Introduction Design Representation Levels of Abstraction Design Tasks and Design Processes CAD Tools.
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.
Hardware Design Environment Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Teaching Functional Verification – Course Organization Design Automation Conference Sunday, June 9, 2002.
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.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Spring 2007 W. Rhett Davis with minor editing by J. Dean Brock UNCA ECE Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 1: Introduction.
1 Embedded Computer System Laboratory Systematic Embedded Software Gerneration from SystemC.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
Verification – The importance
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Verification & Validation By: Amir Masoud Gharehbaghi
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
VLSI Design System-on-Chip Design
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Properties Incompleteness Evaluation by Functional Verification IEEE TRANSACTIONS ON COMPUTERS, VOL. 56, NO. 4, APRIL
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
Teaching Functional Verification – Course Organization Design Automation Conference Sunday, June 9, 2002.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Principles of Programming & Software Engineering
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
ELEC 7770 Advanced VLSI Design Spring 2016 Introduction
Overview Part 1 – Design Procedure Beginning Hierarchical Design
Chapter 1: Introduction
ELEC 7770 Advanced VLSI Design Spring 2014 Introduction
ELEC 7770 Advanced VLSI Design Spring 2012 Introduction
ELEC 7770 Advanced VLSI Design Spring 2010 Introduction
Teaching Functional Verification – Course Organization
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification and Validation
Software Verification and Validation
CS 153 Logic Design Lab Professor Ian G. Harris
Software Verification and Validation
Presentation transcript:

ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine

Reading Material No single book. Some Verilog book is useful (some are on reserve at the library) Selected papers Useful book - Writing Testbenches Functional Verification of HDL Models, Janick Bergeron, Second Edition Useful book -Introduction to Formal Hardware Verification, Thomas Kropf

Course Structure Three problem sets: two on simulation-based validation and one on formal verification Final Project - individual or pairs - Final Project Proposal - ~2 pages - Final Project Proposal Presentation - 20 min. - Final Document - Complete description + any code

Embedded Systems “A computer that doesn’t look like a computer” Complex computations hidden behind a simple interface Ex. Cell phone, digital camera, automobile, etc. Design requirements are varied 1.Power, performance, cost, life- critical Design components are varied 1.Digital/analog hardware 2.Systems/application software 3.Mechanical sensors/actuators

Validation is a bottleneck in the design process High cost of design debug (designers, time-to-market) High cost of faulty designs (loss of life, product recall) Hardware and software are often used together Hardware and software are designed separately Covalidation is performed late in the process, necessitating long redesign loops Hardware/Software covalidation problem is more acute Importance of Embedded System Validation

Validation and Test Validation/Verification  Ensuring that the design matches the designer’s intent/specification  Detection of design errors accidentally made by the designer(s)  Usually includes the debugging task as well (Manufacturing) Test  Detection of physical defects in the implementation  Defects appear as a result of manufacturing or of wear mechanisms  Tests the implementation, not the design

Validation vs. Verification Formal verification - Use of proof-based techniques –Model checking, equivalence checking –Time complexity is high –Confidence is high for specified properties Simulation based validation - Use of simulation –Full-chip/full-design validation –Confidence is not well quantified Pentium 4 bugs found by FV (492) vs. Validation (5809) [1] [1] B. Bentley, “Validating the Intel Pentium 4 Microprocessor,” DAC’01.

Embedded System Design Flow Intent Nat. Lang. Spec. Exec. Behavior HW Structural HW BehavioralSW Procedural Machine Code COTS HW/SW HW Design SW DesignPre-Designed Fabrication Embedded System Designer’s Intent: Vague idea of behavior known only to designer. Natural Language Specification: “Complete” behavioral description Written in English (or other). Executable Behavior: A simulatable description of the behavior. Written in a procedural language (SystemVerilog, SystemC, …)

Simulation-Based Validation Intent Nat. Lang. Spec. Exec. Behavior HW Structural HW BehavioralSW Procedural Machine Code COTS HW/SW HW Design SW DesignPre-Designed Fabrication Embedded System Not Simulatable Simulatable Use of simulation to compare two design representations Comparison to natural language spec (or intent) requires manual interaction Comparison to executable behavior requires cosimulation of HW, SW, and pre-designed

Formal Verification, Model Checking Intent Nat. Lang. Spec. Exec. Behavior HW Structural HW BehavioralSW Procedural Machine Code COTS HW/SW HW Design SW DesignPre-Designed Fabrication Embedded System Properties Evaluating design to determine if properties always hold Properties capture some aspect of the designer’s intent - “A traffic light cannot stay RED forever” AF(color!=RED) Strictly limited in design complexity allowable

Formal Verification, Equivalence Checking Proving that two different structural design representations are equivalent Works well for combinational logic. Requires manual interaction for sequential logic. Limited to structural hardware. Infeasible for behavioral descriptions. F1 = a’ + b’ F2 = (ab)’ A/0B/1 C/0D/ A/0B/1 1 0

Elements of Validation Test Generation Simulation Response Analysis Test Sequence Test Responses Writing a good Test Bench Evaluating a Test Bench - Coverage Metrics Using the simulator (vcs) Manual evaluation using the debugger (virsim, CLI) -Viewing waveforms -Insertion of breakpoints -Automatic evaluation -Comparison with known-good results -Assertions -Self-checking code