Beruflich Dokumente
Kultur Dokumente
RTL
VERIFICATION
Verification Complexity
As Design Size Grows
Controllability decreases
Tests more difficult to write
Observeability decreases
Tests are longer
rework
Finding a bug in System Test (test floor) requires new spin of a chip
Finding bug in customers environment can cost hundreds of
Importance of Verification
DE
VE
DAVE
VE -- Verification Engineer
Verification Engineers usually outweigh designers 2-1
Verification Approaches
Black-Box Approach
White-Box Approach
Grey-Box Approach
Black-Box Approach
Inputs
Outputs
function.
or a single macro.
White-Box Approach
White box verification means that the internal
Grey-Box Approach
Grey box verification means that a limited number
Verification Techniques
Simulation-Based Verification
Formal Verification
Emulation
Assertion Based Verification
Formal Verification
Specifications are specified mathematically in
Two Types:
Equivalence Checking
Compares two models to see if equivalence
Model Checking
Looks for generic problems or violations of user defined rules
Disadvantages??
Unable to tackle industrial designs due to the
Emulation
Process of imitating the behavior of one or more
an error
intent
Can be used
in
Simulation
Formal verification
Emulation
SIMULATION
BASED
ASSERTIONS
FORMAL
EMULATION
Problems ????
Simulation-based validation raises three important
questions:
manually:
Verification Challenges
Dealing with enormous design
Detecting incorrect behavior
Lack of golden reference model
Lack of proper verification metric
How to Improve
Simulation Based
Verification???
Requirements
Easy generation of various combinations of input
stimulus
Answers.
Easy generation of various combinations of input stimulus
Constrained Random
Verification
Constrained
random stimulus
11001001
01001010
00001001
01110110
01100110
01001001
01001110
Design
Under
Test
000010
010011
000010
100100
001000
110010
000011
Constrained Random
Verification
Checker
Constrained
random stimulus
11001001
01001010
00001001
01110110
01100110
01001001
01001110
Does it work?
Design
Under
Test
000010
010011
000010
100100
001000
110010
000011
Constrained Random
Verification
Checker
Constrained
random stimulus
11001001
01001010
00001001
01110110
01100110
01001001
01001110
Does it work?
000010
010011
000010
100100
001000
110010
000011
Design
Under
Test
Functional
Coverage
Are we done?
Constrained Random
Verification
Checker
Constrained
random stimulus
11001001
01001010
00001001
01110110
01100110
01001001
01001110
Does it work?
000010
010011
000010
100100
001000
110010
000011
Design
Under
Test
Functional
Coverage
Constraints
Increase
coverage
Are we done?
Development of Verification
Languages
Verification Languages
e
OpenVera
SystemVerilog
SystemC
e Language
ewas first developed in 1992 in Israel by
forSpecmansoftware.
Properties
Object-oriented language with concurrency
Ability to generate constrained random values
Mechanisms for checking functional (variable value)
coverage
(assertions).
OpenVera
OpenVera began life around 1995 as Vera, a proprietary
Properties :
Concurrent language
Can execute in VHDL and Verilog simulators
Has all high level constructs loops, functions, strings
patterns
SystemVerilog
SystemVerilog is the industry's first unified
stages -
System C
Defined by the Open SystemC Initiative (OSCI) in 1999
Approved by the IEEE Standards Association as IEEE 1666-
SystemVerilog Assertions
As
s
er
tio
ns
pr R
og TL
ra +
m
m
in
g
C-style data types & control - enum, struct, typedef, ++, break, return
AP
I
Te
st
Be
nc
h
Features of SystemVerilog
Interfaces between Modules
Constrained Random Data Generation
Rand and randc variables
forever )
Coverage Constructs
Point coverage
Transition coverage
Cross coverage
Problems Again??
Test benches not reusable!!
Writing test benches time consuming!!
Design complexity increasing!!!
Lack of standards..!!!???
Evolution of verification
methodologies
support
Automated test pattern generation
Self checking verification environments
Configurable test benches
Customizable messaging
Transaction level communication between
Coverage metrics
Aprovenmethodologywithindustrywidesupport
andavailabilityofengineerswithexisting
knowledge/experience
URM
Mentor
Synopsys
Vera
RVM
SV/e
AVM
OVM
OVM 2.1.1
SV/SC
SV
Accellera
UVM
SV
VMM
SV
Emergence of UVM
Why UVM?
uvm_test
uvm_test
Virtual
sequencer
uvm_agent
uvm_agent
DUT
uvm_agent
Class Library
Constrained random verification
Configurable, flexible, test benches
Mixed language vision
UVM Highlights
Separation of tests from test
bench
Transaction-level communication
(TLM)
Sequences
Factory and configuration
Message reporting
End-of-test mechanism
Register layer
A consistent, uniform structure
Conclusion