Calc2 Design Allows up to 4 incomplete requests on each port Tag is required to match request to response.

Slides:



Advertisements
Similar presentations
Stimulus and Response. Simple Stimulus Verifying the Output Self-Checking Testbenches Complex Stimulus Complex Response Predicting the Output.
Advertisements

Algorithmic State Machines SD192 Digital Systems Lecture notes July 16, 2004.
Simulation executable (simv)
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Calculator 3: Transformation to an ALU! Design specs.
Data-Flow Analysis Framework Domain – What kind of solution is the analysis looking for? Ex. Variables have not yet been defined – Algorithm assigns a.
Give qualifications of instructors: DAP
Internal Logic Analyzer Final presentation-part B
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
1 Design For Debug Using DAFCA system Gadi Glikberg 15/6/06.
Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of.
Creating Test Environments HDL Model HDL Testbench Simulation Engine API stimulus check Testbench Program stimulus check Non-HDL languages may be used.
2/9/2007EECS150 Lab Lecture #41 Debugging EECS150 Spring2007 – Lab Lecture #4 Laura Pelton Greg Gibeling.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 20 Datapath and Control Datapath - performs data transfer and processing operations.
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.
Data Structures and Programming.  John Edgar2.
Methods for checking simulation correctness How do you know if your testcase passed or failed?
Constructive Computer Architecture Tutorial 4: SMIPS on FPGA Andy Wright 6.S195 TA October 7, 2013http://csg.csail.mit.edu/6.s195T04-1.
Simulation Management. Pass or Fail? Managing Simulations Regression Behavioral Models.
COP1220/CGS2423 Introduction to C++/ C for Engineers Professor: Dr. Miguel Alonso Jr. Fall 2008.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
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.
An Introduction to Digital Systems Simulation Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Copyright © 2002 Qualis Design Corporation Industry and Textbook Overview Qualis Design Corporation PO Box 4444 Beaverton, Oregon USA Phone:
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Incorporating Dynamic Time Warping (DTW) in the SeqRec.m File Presented by: Clay McCreary, MSEE.
EE694v-Verification-Lect10-1- Lect 10 - Stimulus & Response Applying input stimulus to a design Creating clock signals Other waveforms Synchronizing inputs.
CPS120 Introduction to Computer Programming The Programming Process.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Lopamudra Kundu Reg. No. : of Roll No.:- 91/RPE/ Koushik Basak
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Assignment write a short notes on 1.Manufacturing Testing. 2.Functional Testing. 3.Files and Text I/O. 4.Differentiate the cpld and fpga architecture.
Structured Programming (4 Credits)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 4: Testing, Dataflow Modeling Spring 2009.
Non-Determinism In C and RTL Models ICCAD 2006 – Ira Chayut, Verification Architect.
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 Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Calculator Overview Functional Verification. Calculator Design n Calculator has 4 functions: Add Subtract Shift left Shift right n Calculator can handle.
1 Memory Test - Debugging Test Vectors Without ATE Steve Westfall Director Visual Testbench Engineering Summit Design Inc.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
 Problem Analysis  Coding  Debugging  Testing.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Operating System Interface between a user and the computer hardware
Behavioral Style Combinational Design with VHDL
Digital System Verification
Chapter 2- Visual Basic Schneider
Lecture 9: Testbench and Division
Teaching The Art of Verification
February 25-28, 2013 DoubleTree, San Jose
IAS 0600 Digital Systems Design
Chapter 2- Visual Basic Schneider
Chapter 2- Visual Basic Schneider
Srinivas Aluri Jaimin Mehta
EECS150 Fall 2007 – Lab Lecture #4 Shah Bawany
REGISTER TRANSFER LEVEL (RTL) DESIGN Using ASM CHART
IAS 0600 Digital Systems Design
Dynamic Program Analysis
KU College of Engineering Elec 204: Digital Systems Design
CSE 1020:Software Development
Presentation transcript:

Calc2 Design Allows up to 4 incomplete requests on each port Tag is required to match request to response

Calc2 Typical Timing

Some Calc2 Test Cases

Test Generation Strategies 1.Deterministic vs. random - how tests are generated 2.Pregenerated vs. on-the-fly - when tests are generated

Generic Test Generation Algorithm Describe test generation possibilities as an algorithm The algorithm will be coded in HVL Decision points are key

Test Generation Alg. for Calc2 Port Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS

Deterministic, Pregenerated for Calc2 Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Each path through the test gen. Algorithm flow is a test case Manually select a set of paths in the algorithm, prior to testing  May restrict paths to match test case requirements Manually generate expected responses

Deterministic, On-the-Fly for Calc2 Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Manually specify important inputs deterministically Allow non-important inputs to be filled in randomly during simulation Must also specify interesting outputs

Deterministic, On-the-Fly for Calc2 Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Stimulus generation must be intelligent - force overflow/underflow - Assign tags to avoid conflicts

Role of the Scoreboard Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Port Number Tag Contains information on current transactions - tags, command, inputs, port - used by checker

Pregenerated Random Test Cases Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Port Number Tag Test cases are not written manually, they are written in a directed random way Engineer provides a template for the test cases and some randomization parameters

Test Case Templates Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Port Number Tag

Randomization Parameters Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Port Number Tag Production rules are weighted to direct test stimulus generation

Result Checking Capture TAG Operand1 And CMD Set SHIFT_CMD_ LAST_CYCLE ON CLEAR ALL BUFFE RS AND QS Port Number Tag Golden Vectors Output vectors are stored in the scoreboard Checker compares DUV results to scoreboard data Cycle-Accurate Reference Model Reference model reimplements DUV function Checker compares reference model results to DUV outputs Transaction Based Testbench in defined in terms of “transactions” Scoreboard acts as a reference model, not cycle accurate

On-the-Fly vs. End-of-Test Checking On-the-Fly Easy to do using verification languages (assertions, etc.) Debugging is easier, access to entire state Lower memory requirements Probably increases simulation time End-of-Test Helpful if signal access is limited May be performed outside of simulation engine

Assertion-Based Result Checking Assertions act as a substitute for a complete reference model Example: Adder Assertions 1.If the LSBs of the inputs are the same then the LSB of the output is 0. 2.If the sign bits of the inputs are the same then the sign bit of the output is equal to the input sign bits (no overflow) Assertions catch some errors but not all errors

Debugging Bugs can exist in the following places: 1.Design 2.Environment (testbench) 3.Specification 4.Tools Tool bugs are less likely

Debug Process

Interactive Debugging Information Print Statements May be verbose May attach to monitors Assertions Efficient but may be incomplete Waveform Viewers Very verbose but shows timing information Memory Debuggers Dump entire state periodically Verbose but may reveal memory leaks