Lec2 Introduction
Lec2 Introduction
Lec2 Introduction
Introduction to Verification
Fall 2011
Meeta Yadav
Cost
There is little cost in detecting a
problem during device verification
but the cost increases substantially
if the bug is detected by the Verification Systems Customer
customer Test
Time
Source: Will, Goss, Roesner: Comprehensive Functional Verification: Elsevier
Logic/Functional
Clocking
Tuning Analog Circuit
Fast Path
Yield/Reliability
Delays/Glitches
Slow Path
Mixed-Signal Interface
Power Consumption
IR Drops
Firmware 2002 Market Study
Other 2004 Market Study
5
©2011, Meeta Yadav 5
The Verification Challenge
• Two major verification challenges are:
The challenge of state space explosion There are more theoretical
► Formal Verification states in today’s design than
there are atoms in the
universe!!!
6
©2011, Meeta Yadav 6
The Verification challenge
Verification Design
Gap Gap
Ability to Fabricate
Design Size in Millions of Gates
Ability to Design
7
©2011, Meeta Yadav 7
Traffic Controller
Design description
Light should stay green for
1 minute in each direction
when the intersection is
busy
Main Street
Elm Street
Wait 60
seconds
no yes
Main St. traffic?
Is there a problem
Elm St.
with the design? turns green
avoiding:
Re-fabrication General
specification
Re-calls and architecture
High level
chip design
Manufacturing
Fixes to
HDL HDL Functional
implementation
verification
at RTL level
Physical circuit
Timing Analysis design via Fabricated Chip
synthesis
System Testing
Source: Will, Goss, Roesner:
Comprehensive Functional
Verification: Elsevier Design Process
©2011, Meeta Yadav 11
Cost of Bugs
Cost
Time
12
©2011, Meeta Yadav 12
Verification Productivity
Productivity improvements
drive early problem discovery
Number of Bugs
Time
13
©2011, Meeta Yadav 13
Overall Testbench Functionality
• Generate stimulus
• Apply stimulus to the Design Under Test (DUT)
• Capture the response
• Check for correctness
• Measure the progress against the overall verification goals
Correctness Check
Golden Model
Application
Response
Stimulus
Capture
Design
Under
Test
100%
Coverage
Directed
Test
Time
Directed Test Progress
Uncovered
Covered Features
Features
Bug
• Why Randomize?
Create VALID “corner” states : system states of maximum device
discomfort
• What do you randomize?
Device Configuration: Move device to states of least probability
Input data
Error handling:
► Exception handling by protocols (bus protocols, handshaking, memory
interface)
► Recovery from errors in system states
Relative timing between blocks
► Blocks operating at different rates
Random
Test
Directed
Test
Time
More time to write
Constrained random tests
Constrained Random Test Progress
New Area
?
Test Overlap
Directed
testcase
? ?
Constrained-Random Test Coverage
Coverage Feedback
Directed tests
• Assertions:
1. Captures Designer Intent
2. Allows protocols to be defined and verified
3. Reduces time to market
4. Greatly simplifies the verification of reusable IP
5. Facilitates functional coverage metrics
Ship much
earlier with less Ship much later with margin of error
risk and cost
Ship
Time
• Testbench:
Emulates the environment of the DUT
• Features of an effective testbench
Re-usable and easy to modify for different DUTs
► Object-oriented!!
Layered: Orthogonalize concerns
► Transactors (encapsulation of protocol) and Interfaces!!!!!
Catches bugs or achieves coverage quickly
► Randomizable!!
System
System
level
Board Backplane Node
Board
level
Peripheral Processor Local Bus Memory PCI South Peripheral
memory arbiter controller bridge
Chip
level
DMA Cache ALU FPU X Y
Unit
level
Designer Memory Memory Bus Snoop
Access unit Unit
level
Hierarchical Diagram of Multiple Node System
Bugs
Time
Lower levels of verification tend to uncover more bugs since they occur earlier
in the design cycle and because verification of each designer or unit level occurs in
parallel with the others. It is a good practice to wait until the bug rate begins to drop
in the low levels before moving to the next level