Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of.

Slides:



Advertisements
Similar presentations
System Integration and Performance
Advertisements

Control Unit Implemntation
Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
Instruction Set Design
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by SRC Contract.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by Intel.
Chapter 12 CPU Structure and Function. CPU Sequence Fetch instructions Interpret instructions Fetch data Process data Write data.
Computer Organization and Architecture
1 Architectural Complexity: Opening the Black Box Methods for Exposing Internal Functionality of Complex Single and Multiple Processor Systems EECC-756.
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
MS-SoC Best Practices – Advanced Modeling & Verification Techniques for first-pass success By Neyaz Khan Greg Glennon Dan Romaine.
Reporter:PCLee With a significant increase in the design complexity of cores and associated communication among them, post-silicon validation.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Continuously Recording Program Execution for Deterministic Replay Debugging.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
VLSI Project Neural Networks based Branch Prediction Alexander ZlotnikMarcel Apfelbaum Supervised by: Michael Behar, Spring 2005.
Chapter 12 Pipelining Strategies Performance Hazards.
Midterm Tuesday October 23 Covers Chapters 3 through 6 - Buses, Clocks, Timing, Edge Triggering, Level Triggering - Cache Memory Systems - Internal Memory.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Calc2 Design Allows up to 4 incomplete requests on each port Tag is required to match request to response.
Chapter 12 CPU Structure and Function. Example Register Organizations.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by SRC Contract.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
CH12 CPU Structure and Function
Methods for checking simulation correctness How do you know if your testcase passed or failed?
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Presented by Brian Griffin On behalf of Manu Goel Mohit Goel Nov 12 th, 2014 Building a dynamic GUI, configurable at runtime by backend tool.
1 Fault Tolerance in the Nonstop Cyclone System By Scott Chan Robert Jardine Presented by Phuc Nguyen.
Reporter: PCLee. Assertions in silicon help post-silicon debug by providing observability of internal properties within a system which are.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
A Simple Method for Extracting Models from Protocol Code David Lie, Andy Chou, Dawson Engler and David Dill Computer Systems Laboratory Stanford University.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
CS101 Introduction to Computing Lecture Programming Languages.
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.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
1 H ardware D escription L anguages Modeling Digital Systems.
Reporter: PCLee. Although assertions are a great tool for aiding debugging in the design and implementation verification stages, their use.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
1 Dynamic Branch Prediction. 2 Why do we want to predict branches? MIPS based pipeline – 1 instruction issued per cycle, branch hazard of 1 cycle. –Delayed.
1 Control Unit Operation and Microprogramming Chap 16 & 17 of CO&A Dr. Farag.
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
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.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
HARD: Hardware-Assisted lockset- based Race Detection P.Zhou, R.Teodorescu, Y.Zhou. HPCA’07 Shimin Chen LBA Reading Group Presentation.
EE694v - Verification - Lect Lect 12,13,14 – 762 Testbenches Lets look at the EE 762 testbenches Look at stimulus generation techniques Look at response.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Writing, Verifying and Exploiting Formal Specifications for Hardware Designs Chapter 3: Verifying a Specification Presenter: Scott Crosby.
EE694v - Verification - Lect 12
Lecture 2 Interrupts.
Computer Organization CS224
Control Unit Lecture 6.
Computer Architecture & Operations I
The processor: Pipelining and Branching
Module 3: Branch Prediction
Lecture 10: Branch Prediction and Instruction Delivery
Computer Architecture
Spring 2019 Prof. Eric Rotenberg
Presentation transcript:

Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of results 3.Testing Strategies - self-checking, transaction-level, etc.

Testbench Structure Testbench code may have several components

Initiator Stimulus Generation Component - This defines the test abstractly Protocol Component - Converts abstract test into bit-level detailed test

Generation vs Protocol Components Generation Component Operation - Place value 64 bit value X in an address Y Protocol Component Operation - Create detailed input signal timing to place X into Y Bus Functional Model - Just the protocol component Transaction-Based Verification - Separating generation from protocol

Responders Responders act approximately like a communicating component before the component is built

Monitors/Checkers Monitors only check adherence to the output protocol - Does not look at data details ex. Data length matches length in header Parity of output data matches parity bit Checkers check the correctness of the output data also - Generally knows the expected output ex. All outputs match predicted values No superfluous output activity

Scoreboard Observes input signals (maybe internal too) and records “interesting” information for later use by the checker It works closely with the checker Scoreboard or checker may contain the reference model

Scoreboard/Checker Example Suppose the stimulus generates a fetch request for location “ ” 1.Scoreboard sees the input request and stores the input data (address, cmd, etc.) 2.Later, the cache issues a fetch request to the main store (a miss) 3.The checker sees the fetch request to the main store 4.The checker asks the scoreboard if the cache has seen a fetch request for address “ ” Cache design property to check: The cache only issues a request to the main store if the cache has first received that request itself

Observable Points Observability refers to the variables/signals that can be evaluated Observability impacts test generation complexity and test time Example: Testing a processor with broken branch prediction Only occasionally impacts execution time May take a long time to observe at the outputs Can be immediately seen in the branch predictor state bits Strongly Taken Weakly Taken N T

Black/White/Grey Box Determines whether or not observability (on controllability) exists on internal lines Advantages of observing internal lines: Faster testing More accurate debugging Disadvantages: Depends on stability of internal lines Depends on understanding of design internals More data must be processed

Assertions A language construct that conveniently enables simple checking Like a checker without a complete reference model Example (in VHDL): assert (buf_overflow /= ‘1’) report “Internal Buffer Overflow” severity ERROR Can observe any variable/signal Great for automatic checking, relatively simple Can be used directly capture aspects of the specification (i.e. “Internal buffer should never overflow”)

Testing Strategies Deterministic Testbenches - Predetermined input data 1.Effective at revealing specific bugs 2.May be very time consuming to generate tests Self-Checking Testbenches - Check results automatically 1.Golden Vectors - Predetermined input/output data Very tedious to maintain 2.Reference Model - Calculates expected output on-the-fly Hard to build, easier to update Transaction-Based Testbenches 1.Use of abstraction in stimulus generation and checking Separating generation from protocol Output protocol recognition confined to scoreboard