Lect 11 - Stimulus & Response

Slides:



Advertisements
Similar presentations
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Advertisements

Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
02/10/06EECS150 Lab Lecture #41 Debugging EECS150 Spring 2006 – Lab Lecture #4 Philip Godoy Greg Gibeling.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
L16 – Testbenches for state machines. VHDL Language Elements  More examples HDL coding of class examples Testbench for example  Testing of examples.
Digital System Verification. VERIFICATION OUTLINE Purpose of Verification –Verification effort and cost Verification Tools –Linting tools –Code Coverage.
EE694v-Verification-Lect10-1- Lect 10 - Stimulus & Response Applying input stimulus to a design Creating clock signals Other waveforms Synchronizing inputs.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Building Simulation Model In this lecture, we are interested in whether a simulation model is accurate representation of the real system. We are interested.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
EE694v - Verification - Lect Lect 12,13,14 – 762 Testbenches Lets look at the EE 762 testbenches Look at stimulus generation techniques Look at response.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
DATA Unit 2 Topic 2. Different Types of Data ASCII code: ASCII - The American Standard Code for Information Interchange is a standard seven-bit code that.
EE694v - Verification - Lect 12
Serial Communications
Real-time Software Design
OPERATING SYSTEM CONCEPT AND PRACTISE
Digital Control CSE 421.
OPERATING SYSTEMS CS 3502 Fall 2017
Chapter 6 Input/Output Organization
On-Line Transaction Processing
16.317: Microprocessor System Design I
Lecture 15 Sequential Circuit Design
Control Unit Lecture 6.
Timing and Verification
Verification: Testbenches in Combinational Design
Topics Introduction to Repetition Structures
VLSI Testing Lecture 5: Logic Simulation
Digital System Verification
Lect 11 - Stimulus & Response
‘if-else’ & ‘case’ Statements
Timing Model Start Simulation Delay Update Signals Execute Processes
Chapter 12: Concurrency, Deadlock and Starvation
Topics Introduction to Repetition Structures
Behavioral modeling of a dual ported register set.
Real-time Software Design
Chapter 10: Process Implementation with Executable Models
ECE 434 Advanced Digital System L08
Limitations of STA, Slew of a waveform, Skew between Signals
Introduction to Software Testing
Design and Programming
ChipScope Pro Software
Chapter Nine: Data Transmission
L25 – Datapath ALU.
Verification Plan & Levels of Verification
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
EECS150 Fall 2007 – Lab Lecture #4 Shah Bawany
Founded in Silicon Valley in 1984
Suppose that a certain program takes 200 seconds of elapsed time to execute. Out of these 200 seconds, 180 seconds is the CPU time and the rest is I/O.
L9 - Verification Strategies
Concurrency: Mutual Exclusion and Process Synchronization
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Lecture 9: Testbench and Division
Chapter 3 Overview • Multi-Level Logic
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
ECE 352 Digital System Fundamentals
ChipScope Pro Software
ECE 352 Digital System Fundamentals
Tonga Institute of Higher Education IT 141: Information Systems
MECH 3550 : Simulation & Visualization
Behavioral modeling of a dual ported register set.
Topics Introduction to Repetition Structures
Tonga Institute of Higher Education IT 141: Information Systems
Software Development Chapter 1.
ECE 352 Digital System Fundamentals
Serial Communications
Instructor: Michael Greenbaum
Presentation transcript:

Lect 11 - Stimulus & Response Checking the response of a design Verifying output – using listings and waveforms Signal Sampling Automating output verification Golden vectors and output timing Deadlock and deadlock recovery Predicting the output EE694v-Verification-Lect11

EE694v-Verification-Lect11 Verifying Output Generating stimulus is only half of the job. Actually, it is about only 30% of the job. You control the value and timing of the stimulus. Knowing the value and timing of the output given an input, or a sequence of inputs, is key to performing verification Verifying that the output is as expected is more time consuming is more error prone Specific points in time that are significant differ from design to design EE694v-Verification-Lect11

EE694v-Verification-Lect11 Signal Value Listing Allows for visual inspection of results Without listing of expected value is very prone to errors EE694v-Verification-Lect11

EE694v-Verification-Lect11 Signal Waveforms Also allow visual inspection of results Without showing expected value of signal, can be very hard to find errors EE694v-Verification-Lect11

Listings and Waveforms Should log significant signals Should log signals at appropriate times The signals which are significant, and the times at which they are important, changes as the simulation progresses Should always list/display the expected value of the significant signals EE694v-Verification-Lect11

EE694v-Verification-Lect11 Sampling Signals One method of monitoring is to just add the signal to those captured by the listing file to those displayed on the the waveform To maximize to speed of simulation, need to minimize the amount of simulation output. Use Text I/O to save certain signal values to a file EE694v-Verification-Lect11

EE694v-Verification-Lect11 When to Sample? Simplest technique: sample relevant signals at regular intervals Interval can be Periodic, i.e., simply time Based on a reference signal such as a clock Based on whenever one signal in a set of signals changes EE694v-Verification-Lect11

Inspection of Waveform Visual inspection, without the expected result, is prone to error. Even with the expected result, visual inspection can allow for errors being missed How long would it take to notice error? And this is for a D F/F with a 2-to-1 mux on the data inputs EE694v-Verification-Lect11

Automating Output Verification The first step to automating output verification is to know and include the expected result along with the input stimulus. A problem with outputs is that you need to know not only the value, but also the time at which the output value will be present. Interfaces that pose difficulty are Asynchronous interfaces Out or order execution Variable output sequences given the same set of inputs Different clock domains EE694v-Verification-Lect11

EE694v-Verification-Lect11 Golden Vectors A set of reference output results determined to be correct. May be used in HDL simulations May be used in/with other tools to check for the validity of the result Can become invalid and no longer help if the design specification changes EE694v-Verification-Lect11

EE694v-Verification-Lect11 Output Timing To properly and completely verify the functionality of a design, must also verify the output stays stable as specified, the value of the output is as specified, the timing of the output is as specified For busses may need to insure bus is at high-impedance (Z) prior to a signal value, the signal value is then applied and held until the bus again returns to high-impedance. EE694v-Verification-Lect11

Complex Stimulus/Response Applying stimulus to simple inputs, such as a clock, is straightforward. The verification engineer determines the value and timing of the signal. If the signals being interfaced contain handshaking or flow control, the testbench must cooperate with the design under test. Problems in handshaking can occur in both the design under test and the testbench. EE694v-Verification-Lect11

EE694v-Verification-Lect11 Deadlock If feedback from the design under test is used to apply the test(s) then deadlock becomes possible. If the design under test does not provide the feedback as expected, stimulus generation may be halted. If deadlocked, you are waiting on a condition that will never occur. If deadlocked, the simulation may still be running and the logging of some signals may still be taking place, but anything useful is not!! EE694v-Verification-Lect11

EE694v-Verification-Lect11 Deadlock Recovery If deadlock is possible must make sure simulation halts or at least identifies what has occurred. EE694v-Verification-Lect11

EE694v-Verification-Lect11 Complex Response Complex responses are Responses that cannot be checked at one point in time Responses that have long delays from application of the stimulus until the response Responses that result from out of order execution of the inputs Definitely not verifiable using visual inspection. A complex response cannot be verified in the same process that generates the stimulus EE694v-Verification-Lect11

Predicting (Knowing) the Output Unstated assumption of self-checking testbenches is that you know the output to be produced, given the inputs. Sometimes output prediction is Easy – RAM, ROM, adders, … Hard – Video compressor, speech synthesizer, … Knowing the response is key to verification. EE694v-Verification-Lect11

Classes of Designs – Data Formatters Predicting the output is dependent on the device/system/ sub-system/… being verified. Data Formatters – class of designs where the input information is not transformed, simply reformatted EE694v-Verification-Lect11

EE694v-Verification-Lect11 Data Formatters (2) EE694v-Verification-Lect11

Classes of Designs – Packet Processors Family of designs that use some of the input information for processing, sometimes transforming it. The remainder is untouched and sent to the output. Examples – Ethernet hubs, ATM switches, etc. Output monitors assure the packet is correctly processed EE694v-Verification-Lect11

Classes of Designs – Complex Transformations Design processes and transforms the input data completely and thoroughly to produce outputs that may differ in both data, timing, and the number of outputs per input. Must either hand compute output(s) or use an alternative model (may even be written in another language, such as C or C++) EE694v-Verification-Lect11