SOC Verification Methodology: Tures - HTML
SOC Verification Methodology: Tures - HTML
SOC Verification Methodology: Tures - HTML
http://www.cse.psu.edu/~vijay/verify/protected/Lec tures.html
Agenda
Verification Overview Verification Strategies Tools for Verification SoC Verification Flow
Terms in verification
Verification Validation Testing Test bench Test vector Scenario DUT Equivalence checking Checker Comparator Monitor Bug Debug Bug fix Close Reference
Verification Terminology
EDA: Engineering Design Automation Tool vendors. Synopsys, ModelTech, Cadence, etc. Behavioral: Code written to perform the function of logic on the interface of the DUV. Macro: 1) A behavioral. 2) A piece of logic. Driver/Agitator/Stimulator/Generator/Bus Functional Model (BFM): Code written to manipulate the inputs of the DUV. Typically this is behavioral code. It understands the interface protocols.
Other References
Text References:
Writing Testbenches: Functional Verification of HDL Models by Janick Bergeron Verilog HDL A Guide to Digital Design and Synthesis.pdf by Samir Palnitkar
Introduction
Prior Knowledge
This class focuses on functional verification of hardware design using either VHDL or Verilog Expect students to have a basic knowledge of one of these languages Expect students to have basic understanding of digital hardware design Class will focus more on Verilog
Development costs
"Early User Hardware" (EUH)
Finding a bug in System Test (test floor) requires new spin of a chip Finding bug in customers environment can cost hundreds of millions and worst of all - Reputation
What is Verification?
Not a testbench Not a series of testbenches
Verification is a process used to demonstrate the functional correctness of a design. Also called logic verification or simulation.
What is a testbench?
A testbench usually refers to the code used to create a predetermined input sequence to a design, then optionally observe the response.
Generic term used differently across industry Always refers to a testcase Most commonly (and appropriately), a testbench refers to code written (VHDL, Verilog, etc) at the top level of the hierarchy. The testbench is often simple, but may have some elements of randomness No inputs or outputs effectively a model of the universe as far as the design is concerned. What input patterns to supply to the Design Under Verification and what is expected for the output for a properly working design
Verification challenge
Importance of Verification
Most books focus on syntax, semantics and RTL subset
Given the amount of literature on writing synthesizable code vs.. writing verification test benches, one would think that the former is a more daunting task. Experience proves otherwise.
Reconvergence Model
Conceptual representation of the verification process Most important question
What are you verifying?
Transformation
Verification
interpret
specification
Verification
correct function.
Automation
Take human intervention out of the process
Poka-Yoka
Make human intervention fool-proof
Redundancy
Have two individuals (or groups) check each others work
Automation
Obvious way to eliminate humanintroduced errors take the human out.
Good in concept Reality dictates that this is not feasible
Processes are not defined well enough Processes require human ingenuity and creativity
Poka-Yoka
Term coined in Total Quality Management circles Means to mistake-proof the human intervention Typically the last step in complete automation Same pitfalls as automation verification remains an art, it does not yield itself to well-defined steps.
Redundancy
Duplicate every transformation
Every transformation made by a human is either:
Verified by another individual Two complete and separate transformations are performed with each outcome compared to verify that both produced the same or equivalent result
Simplest Most costly, but still cheaper than redesign and replacement of a defective product Designer should NOT be in charge of verification!
Formal Verification
Once the end points of formal verification reconvergence paths are understood, then you know exactly what is being verified. 2 Types of Formal:
Equivalence Model Checking
Equivalence Checking
Compares two models to see if equivalence Proves mathematically that the origin and output are logically equivalent Examples:
RTL to Gates (Post Synthesis) Post Synthesis Gates to Post PD Gates
RTL
Gates
Check
Model Checking
Form of formal verification Characteristics of a design are formally proven or disproved Looks for generic problems or violations of user defined rules about the behavior of the design
Functional Verification
Verifies design intent
One must trust that the transformation of a specification to RTL was performed correctly
Specification
RTL
Functional Verification
Testbench Generators
Tool to generate stimulus to exercise code or expose bugs Designer input is still required RTL code is the origin and there is no reconvergence point Verification engineer is left to determine if the testbench applies valid stimulus If used with parameters, can control the generator in order to focus the testbenches on more specific scenarios
Testbench
Grey-Box Approach
Black-Box
Inputs
Some piece of logic design written in VHDL
Outputs
The black box has inputs, outputs, and performs some function. The function may be well documented...or not. To verify a black box, you need to understand the function and be able to predict the outputs based on the inputs. The black box can be a full system, a chip, a unit of a chip, or a single macro.
White-Box
White box verification means that the internal design is visible and utilized by the testbench stimulus. Examples: Unit/Module level verification
Grey-Box
Grey box verification means that a limited number of facilities are utilized in a mostly black-box environment. Example: Most environments! Prediction of correct results on the interface is occasionally impossible without viewing an internal signal.
Perfect Verification
To fully verify a black-box, you must show that the logic works correctly for all combinations of inputs. This entails:
Driving all permutations on the input lines Checking for proper results in all cases
Full verification is not practical on large pieces of designs, but the principles are valid across all verification.
Fabrication
Net list
Silicon
Verification
Test
Cost of Verification
Necessary Evil
Always takes too long and costs too much Verification does not generate revenue
Yet indispensable
To create revenue, design must be functionally correct and provide benefits to customer Proper functional verification demonstrates trustworthiness of the design
Cost of Verification
Thank You