Introduction to UVM: Verification Methodologies Overview

F
u
n
k
c
i
o
n
a
l
n
a
 
v
e
r
i
f
i
k
a
c
i
j
a
h
a
r
d
v
e
r
a
P
r
e
d
a
v
a
n
j
e
 
V
2
L
e
c
t
u
r
e
 
C
o
n
t
e
n
t
Introduction to UVM
-
What is and what is not UVM?
-
Verification Methodologies History
-
Key Technical Highlights of UVM
I
n
t
r
o
d
u
c
t
i
o
n
 
t
o
 
U
V
M
V
e
r
i
f
i
c
a
t
i
o
n
 
M
e
t
h
o
d
o
l
o
g
i
e
s
W
h
a
t
 
i
s
 
U
V
M
?
U
V
M
 
(
U
n
i
v
e
r
s
a
l
 
V
e
r
i
f
i
c
a
t
i
o
n
 
M
e
t
h
o
d
o
l
o
g
y
)
 
i
s
 
a
 
m
e
t
h
o
d
o
l
o
g
y
 
f
o
r
 
w
r
i
t
i
n
g
m
o
d
u
l
a
r
,
 
s
c
a
l
a
b
l
e
,
 
c
o
n
f
i
g
u
r
a
b
l
e
 
a
n
d
 
r
e
u
s
a
b
l
e
 
t
e
s
t
b
e
n
c
h
e
s
,
 
b
a
s
e
d
 
o
n
v
e
r
i
f
i
c
a
t
i
o
n
 
c
o
m
p
o
n
e
n
t
s
 
w
i
t
h
 
s
t
a
n
d
a
r
d
i
z
e
d
 
i
n
t
e
r
f
a
c
e
s
,
 
f
o
r
 
a
 
d
e
s
i
g
n
 
t
h
a
t
c
o
u
l
d
 
b
e
 
w
r
i
t
t
e
n
 
u
s
i
n
g
 
V
H
D
L
,
 
V
e
r
i
l
o
g
 
o
r
 
S
y
s
t
e
m
C
U
V
M
 
e
n
v
i
r
o
n
m
e
n
t
 
s
u
p
p
o
r
t
s
 
m
i
g
r
a
t
i
o
n
 
f
r
o
m
 
d
i
r
e
c
t
e
d
 
t
e
s
t
i
n
g
 
t
o
w
a
r
d
s
C
o
v
e
r
a
g
e
 
D
r
i
v
e
n
 
V
e
r
i
f
i
c
a
t
i
o
n
 
(
C
D
V
)
,
 
w
h
i
c
h
 
c
o
n
s
i
s
t
s
 
o
f
 
a
u
t
o
m
a
t
e
d
s
t
i
m
u
l
u
s
 
g
e
n
e
r
a
t
i
o
n
,
 
i
n
d
e
p
e
n
d
e
n
t
 
r
e
s
u
l
t
 
c
h
e
c
k
i
n
g
 
a
n
d
 
c
o
v
e
r
a
g
e
 
c
o
l
l
e
c
t
i
o
n
UVM itself is written in SystemVerilog – has a SystemVerilog Base Class
Library (BCL)
UVM is a methodology and therefore could be implemented in many
different languages, such as:
-
SystemC
-
VHDL, …
4
W
h
a
t
 
i
s
 
n
o
t
 
U
V
M
?
I
n
f
r
a
s
t
r
u
c
t
u
r
e
 
o
f
f
e
r
i
n
g
 
t
e
s
t
s
 
o
r
 
s
c
e
n
a
r
i
o
s
 
o
u
t
-
o
f
-
t
h
e
-
b
o
x
:
 
a
l
l
 
b
e
h
a
v
i
o
r
 
h
a
s
t
o
 
b
e
 
i
m
p
l
e
m
e
n
t
e
d
 
b
y
 
u
s
e
r
Coverage-based verification templates: application is responsible for
coverage and randomization definition; UVM only offers the hooks and
technology (classes)
Verification management of requirements, test items or scenario’s is
outside the scope of UVM?
Test item execution and regression – automation via e.g. the command
line interface or “regression cockpit” is a shell around UVM
5
C
o
n
s
t
r
a
i
n
e
d
 
R
a
n
d
o
m
 
V
e
r
i
f
i
c
a
t
i
o
n
 
I
U
V
M
 
s
u
p
p
o
r
t
s
 
C
o
n
s
t
r
a
i
n
e
d
 
R
a
n
d
o
m
 
V
e
r
i
f
i
c
a
t
i
o
n
 
(
C
R
V
)
Central idea of CRV is using random vectors in verification, which currently
represents the state-of-the-art in the simulation based functional verification
CRV is based on the idea of randomization of at least some element of test
vectors that are used during the simulation
There is two key benefits from randomizing test vectors:
1.
C
o
n
s
t
r
a
i
n
e
d
 
r
a
n
d
o
m
 
s
i
m
u
l
a
t
i
o
n
 
i
s
 
g
r
e
a
t
 
f
o
r
 
f
i
n
d
i
n
g
 
u
n
e
x
p
e
c
t
e
d
 
b
u
g
s
 
 
i
f
y
o
u
 
h
a
v
e
 
t
o
 
p
l
a
n
 
a
l
l
 
t
h
e
 
d
e
t
a
i
l
s
 
o
f
 
t
h
e
 
t
e
s
t
 
v
e
c
t
o
r
s
 
t
h
a
t
 
y
o
u
 
w
i
l
l
 
u
s
e
 
d
u
r
i
n
g
 
t
h
e
s
i
m
u
l
a
t
i
o
n
,
 
y
o
u
 
w
i
l
l
 
o
n
l
y
 
f
i
n
d
 
b
u
g
s
 
t
h
a
t
 
y
o
u
 
a
r
e
 
r
e
a
l
l
y
 
l
o
o
k
i
n
g
 
f
o
r
.
 
B
y
 
u
s
i
n
g
C
R
V
 
y
o
u
 
r
a
n
d
o
m
i
z
e
 
t
e
s
t
 
v
e
c
t
o
r
s
 
a
n
d
 
t
h
e
r
e
f
o
r
e
 
p
u
s
h
 
D
U
T
 
i
n
t
o
 
s
t
a
t
e
s
 
y
o
u
 
h
a
v
e
n
e
v
e
r
 
t
h
o
u
g
h
t
 
o
f
.
2.
A
u
t
o
m
a
t
i
n
g
 
s
t
i
m
u
l
u
s
 
g
e
n
e
r
a
t
i
o
n
 
 
t
h
i
s
 
e
n
a
b
l
e
s
 
r
u
n
n
i
n
g
 
l
o
n
g
 
s
i
m
u
l
a
t
i
o
n
s
 
(
f
o
r
e
x
a
m
p
l
e
 
o
v
e
r
 
n
i
g
h
t
s
)
 
w
i
t
h
o
u
t
 
h
a
v
e
 
t
o
 
m
a
n
u
a
l
l
y
 
a
p
p
l
y
 
t
e
s
t
 
v
e
c
t
o
r
s
 
y
o
u
r
s
e
l
f
,
 
t
h
e
y
c
a
n
 
b
e
 
g
e
n
e
r
a
t
e
d
 
a
u
t
o
m
a
t
i
c
a
l
l
y
.
6
C
o
n
s
t
r
a
i
n
e
d
 
R
a
n
d
o
m
 
V
e
r
i
f
i
c
a
t
i
o
n
 
I
I
How does the CRV work? Answer is
CCC – Checkers, Coverage and
Constraints.
-
C
h
e
c
k
e
r
s
 
-
 
i
f
 
y
o
u
 
g
o
t
 
r
a
n
d
o
m
 
v
e
c
t
o
r
s
 
i
t
s
c
r
i
t
i
c
a
l
 
t
h
a
t
 
y
o
u
 
a
u
t
o
m
a
t
e
 
c
h
e
c
k
i
n
g
,
 
b
y
w
r
i
t
i
n
g
 
s
e
l
f
-
c
h
e
c
k
i
n
g
 
t
e
s
t
b
e
n
c
h
e
s
-
C
o
v
e
r
a
g
e
 
 
a
n
s
w
e
r
i
n
g
 
t
h
e
 
q
u
e
s
t
i
o
n
 
A
r
e
w
e
 
d
o
n
e
 
y
e
t
?
.
 
C
o
v
e
r
a
g
e
 
r
e
c
o
r
d
s
 
w
h
a
t
 
i
s
g
o
i
n
g
 
o
n
 
d
u
r
i
n
g
 
t
h
e
 
v
e
r
i
f
i
c
a
t
i
o
n
 
r
u
n
 
a
n
d
i
d
e
n
t
i
f
y
i
n
g
 
h
o
w
 
t
h
o
r
o
u
g
h
l
y
 
w
e
 
h
a
v
e
e
x
e
r
c
i
s
e
d
 
t
h
e
 
d
e
s
i
g
n
.
-
C
o
n
s
t
r
a
i
n
t
s
 
 
i
f
 
y
o
u
 
h
a
v
e
 
C
o
v
e
r
a
g
e
H
o
l
e
s
,
 
m
e
a
n
i
n
g
 
t
h
a
t
 
w
e
 
h
a
v
e
n
t
e
x
e
r
c
i
s
e
d
 
t
h
e
 
d
e
s
i
g
n
 
t
h
o
r
o
u
g
h
l
y
 
e
n
o
u
g
h
,
b
y
 
u
s
i
n
g
 
c
o
n
s
t
r
a
i
n
t
s
 
w
e
 
n
e
e
d
 
t
o
 
b
e
 
a
b
l
e
 
t
o
c
o
n
s
t
r
a
i
n
 
t
e
s
t
 
v
e
c
t
o
r
s
 
i
n
 
o
r
d
e
r
 
t
o
 
i
n
c
r
e
a
s
e
t
e
s
t
 
c
o
v
e
r
a
g
e
.
UVM is the methodology that enables
all these tasks
7
U
V
M
 
i
s
 
a
n
 
I
n
d
u
s
t
r
y
 
S
t
a
n
d
a
r
d
UVM is an industry standard
It was developed by Accellera, a standards body of the EDA industry
A lot of “Big Names” of the electronics industry are involved in developing
the UVM, like Cadence, Mentor, Synopsys, Intel, AMD, Cisco and
Freescale
UVM is pure SystemVerilog code
It is distributed under the open-source license model
It has a comprehensive documentation, comes with complete Reference
Manual and User Guide
8
V
e
r
i
f
i
c
a
t
i
o
n
 
M
e
t
h
o
d
o
l
o
g
i
e
s
 
H
i
s
t
o
r
y
 
I
The world of verification changed dramatically in 2000, with the emergence of new
company Verisity
I
t
 
i
n
v
e
n
t
e
d
 
b
o
t
h
 
a
 
d
e
d
i
c
a
t
e
d
 
v
e
r
i
f
i
c
a
t
i
o
n
 
l
a
n
g
u
a
g
e
 
c
a
l
l
e
d
 
e
,
 
a
n
d
 
t
h
e
 
a
s
s
o
c
i
a
t
e
d
 
e
R
e
u
s
e
 
M
e
t
h
o
d
o
l
o
g
y
The prescribed rules enabled verification teams to create testbenches that
randomized a design’s inputs subject to a set of user-specified constraints
This largely automated the verification process, especially if the tests were self-
checking and coverage metrics helped to gauge verification thoroughness
9
V
e
r
i
f
i
c
a
t
i
o
n
 
M
e
t
h
o
d
o
l
o
g
i
e
s
 
H
i
s
t
o
r
y
 
I
I
Synopsys took a similar approach with its dedicated verification language VERA,
developing the Reference Verification Methodology (RVM)
W
h
e
n
 
t
h
e
 
A
c
c
e
l
l
e
r
a
 
l
a
n
g
u
a
g
e
 
s
t
a
n
d
a
r
d
s
 
o
r
g
a
n
i
z
a
t
i
o
n
 
d
e
c
i
d
e
d
 
t
o
 
c
r
e
a
t
e
S
y
s
t
e
m
V
e
r
i
l
o
g
 
r
a
t
h
e
r
 
t
h
a
n
 
s
t
a
n
d
a
r
d
i
z
e
 
e
i
t
h
e
r
 
e
 
o
r
 
V
E
R
A
,
 
S
y
n
o
p
s
y
s
 
a
d
a
p
t
e
d
 
t
h
e
R
V
M
 
t
o
 
t
h
e
 
n
e
w
 
l
a
n
g
u
a
g
e
Verification Methodology Manual (VMM) for SystemVerilog
, published jointly by
Synopsys and ARM, was the spur for rapid evolution in the industry
Mentor Graphics responded with the Advanced Verification Methodology (AVM),
which supported both SystemVerilog and SystemC
10
V
e
r
i
f
i
c
a
t
i
o
n
 
M
e
t
h
o
d
o
l
o
g
i
e
s
 
H
i
s
t
o
r
y
 
I
I
I
C
a
d
e
n
c
e
,
 
a
f
t
e
r
 
i
n
i
t
i
a
l
l
y
 
a
d
v
o
c
a
t
i
n
g
 
S
y
s
t
e
m
C
 
f
o
r
 
v
e
r
i
f
i
c
a
t
i
o
n
,
 
a
c
q
u
i
r
e
d
 
V
e
r
i
s
i
t
y
 
a
n
d
t
r
a
n
s
f
o
r
m
e
d
 
t
h
e
 
e
R
M
 
i
n
t
o
 
t
h
e
 
U
n
i
v
e
r
s
a
l
 
R
e
u
s
e
 
M
e
t
h
o
d
o
l
o
g
y
 
(
U
R
M
)
,
 
w
h
i
c
h
s
u
p
p
o
r
t
e
d
 
S
y
s
t
e
m
V
e
r
i
l
o
g
 
i
n
 
a
d
d
i
t
i
o
n
 
t
o
 
e
 
a
n
d
 
S
y
s
t
e
m
C
Industry convergence began in 2008, when Cadence and Mentor collaborated on
the Open Verification Methodology (OVM), notable for being available as open
source with simple licensing
When Accellera decided to tackle verification standardization, it selected the OVM
as the baseline while including key VMM features. The result is the widely adopted
Universal Verification Methodology (UVM).
11
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
L
a
y
e
r
e
d
 
S
t
i
m
u
l
u
s
UVM features a layered approach to
generating test vectors using so-called
sequences
Sequence generates transactions, but
a sequence is also an object that can
be manipulated, so sequences are
both a function and an object, so-called
function-object
Sequences can be built-up out of other
sequences, to have a hierarchical or a
layered structure sequences
As sequences get instantiated they can
be overridden and controlled in order to
constrain precisely the set of test
vectors that get generated
12
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
V
e
r
i
f
i
c
a
t
i
o
n
 
R
e
u
s
e
The other big thing in UVM is
verification reuse – reuse of verification
components (also called Verification IP)
A testbench for a Design Under
Verification (DUV) will be built out of
verification components
Those verification components you
could build from the scratch, or you
might reuse them from previous
projects, or can try and buy them
UVM offers standardized, consistent
structure for building verification
components
13
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
V
e
r
i
f
i
c
a
t
i
o
n
 
R
e
u
s
e
One of those standardized structures is
the 
uvm_agent
Uvm_agent consists from:
-
S
e
q
u
e
n
c
e
r
 
-
 
t
h
a
t
 
g
e
n
e
r
a
t
e
s
s
e
q
u
e
n
c
e
s
,
 
a
n
d
 
t
h
o
s
e
 
s
e
q
u
e
n
c
e
s
g
e
n
e
r
a
t
e
 
t
r
a
n
s
a
c
t
i
o
n
s
 
t
h
a
t
 
a
r
e
p
a
s
s
e
d
 
o
u
t
 
t
o
 
d
r
i
v
e
r
s
-
D
r
i
v
e
r
 
-
 
 
t
h
a
t
 
t
o
g
g
l
e
s
 
p
i
n
s
 
o
f
 
t
h
e
 
D
U
V
-
M
o
n
i
t
o
r
 
 
t
h
a
t
 
w
a
t
c
h
e
s
 
i
n
t
e
r
f
a
c
e
s
 
o
f
t
h
e
 
D
U
V
,
 
e
x
t
r
a
c
t
s
 
t
r
a
n
s
a
c
t
i
o
n
s
 
a
n
d
t
h
e
n
 
s
e
n
d
s
 
t
h
o
s
e
 
t
r
a
n
s
a
c
t
i
o
n
s
 
t
o
 
t
h
e
r
e
s
t
 
o
f
 
t
h
e
 
v
e
r
i
f
i
c
a
t
i
o
n
 
e
n
v
i
r
o
n
m
e
n
t
Consistency, and not reinventing of the
wheel, is an important element of the
UVM
14
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
E
a
s
y
R
e
c
o
n
f
i
g
u
r
a
t
i
o
n
 
o
f
 
V
e
r
i
f
i
c
a
t
i
o
n
 
C
o
m
p
o
n
e
n
t
s
UVM component gets reused as a part
of a bigger verification environment,
which is defined by the 
uvm_env
 class
As it is being reused it can be
configured to the precise needs of that
verification environment
One of the big highlights of the UVM is
the ability to reconfigure verification
components without needing to go in
and “hack the source code” of those
components
15
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
E
a
s
y
R
e
c
o
n
f
i
g
u
r
a
t
i
o
n
 
o
f
 
V
e
r
i
f
i
c
a
t
i
o
n
 
C
o
m
p
o
n
e
n
t
s
The verification environment contains
a number of standardized structures,
including components such as virtual
sequencers and scoreboards
V
i
r
t
u
a
l
 
s
e
q
u
e
n
c
e
r
 
i
s
 
a
 
c
o
m
p
o
n
e
n
t
t
h
a
t
 
c
o
o
r
d
i
n
a
t
e
s
 
t
h
e
 
a
c
t
i
v
i
t
y
 
o
f
 
o
t
h
e
r
s
e
q
u
e
n
c
e
r
s
S
c
o
r
e
b
o
a
r
d
 
i
s
 
a
 
c
o
m
p
o
n
e
n
t
 
d
o
i
n
g
t
h
i
n
g
s
 
l
i
k
e
 
c
o
l
l
e
c
t
i
n
g
 
f
u
n
c
t
i
o
n
a
l
c
o
v
e
r
a
g
e
 
a
n
d
 
c
h
e
c
k
i
n
g
16
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
S
e
p
a
r
a
t
i
o
n
 
o
f
T
e
s
t
s
 
f
r
o
m
 
t
h
e
 
r
e
s
t
 
o
f
 
V
e
r
i
f
i
c
a
t
i
o
n
 
E
n
v
i
r
o
n
m
e
n
t
The overall verification environment
in UVM is reused, within the 
uvm_test
class, according to the demands of
the specific tests
On of the features of UVM is the
separation of test from the rest of
reusable verification environment
Again, the same kind of configuration
mechanism can be applied, to reuse
verification environment for individual
tests
There are a couple of ways to do that.
One is the resource database – this
is a general way of reusing resources
between the UVM components
17
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
S
t
a
n
d
a
r
d
i
z
e
d
E
x
e
c
u
t
i
o
n
 
P
h
a
s
e
s
There is also a standardized set of execution phases in UVM
B
u
i
l
d
 
p
h
a
s
e
 
 
b
u
i
l
d
s
 
t
h
e
 
h
i
e
r
a
r
c
h
i
c
a
l
 
s
t
r
u
c
t
u
r
e
 
o
f
 
t
h
e
c
o
m
p
o
n
e
n
t
s
C
o
n
n
e
c
t
 
p
h
a
s
e
 
 
c
o
n
n
e
c
t
s
 
t
o
g
e
t
h
e
r
 
p
o
r
t
s
 
o
n
 
t
h
o
s
e
c
o
m
p
o
n
e
n
t
s
Build and connect phases together are bit like elaboration
phase in VHDL and Verilog
T
h
e
n
 
c
o
m
e
s
 
c
o
u
p
l
e
 
o
f
 
H
o
u
s
e
 
K
e
e
p
i
n
g
 
p
h
a
s
e
s
:
e
n
d
_
o
f
_
e
l
a
b
o
r
a
t
i
o
n
,
 
s
t
a
r
t
_
o
f
_
s
i
m
u
l
a
t
i
o
n
R
u
n
 
p
h
a
s
e
 
f
o
l
l
o
w
s
,
 
w
h
e
r
e
 
t
h
e
 
d
y
n
a
m
i
c
 
t
h
i
n
g
s
 
h
a
p
p
e
n
,
 
a
n
d
s
e
q
u
e
n
c
e
s
 
e
x
e
c
u
t
e
A
f
t
e
r
 
t
h
e
 
R
u
n
 
p
h
a
s
e
,
 
t
h
e
r
e
 
i
s
 
a
 
n
u
m
b
e
r
 
o
f
 
H
o
u
s
e
 
K
e
e
p
i
n
g
p
h
a
s
e
s
 
t
o
 
t
i
d
y
 
t
h
i
n
g
s
 
u
p
:
 
e
x
t
r
a
c
t
,
 
c
h
e
c
k
,
 
r
e
p
o
r
t
 
a
n
d
 
f
i
n
a
l
18
K
e
y
 
T
e
c
h
n
i
c
a
l
 
H
i
g
h
l
i
g
h
t
s
 
o
f
 
U
V
M
 
 
O
t
h
e
r
 
F
e
a
t
u
r
e
s
UVM also supports Transaction Level Modeling and communication,
which is borrowed from SystemC
Message reporting – with possibility of easily controlling the verbosity of
generated reports
End-of-test mechanism, also known as “objections”, so each component
raises an objection when it is busy, and drops it when it is finished
Register Layer – which is borrowed from VMM Register Abstraction Layer
19
20
 
Slide Note
Embed
Share

Explore the Universal Verification Methodology (UVM) for writing modular, scalable, and reusable testbenches. Learn about UVM's key technical highlights, its support for migration towards Coverage Driven Verification (CDV), and the advantages of Constrained Random Verification (CRV) in functional hardware verification.

  • UVM
  • Verification Methodologies
  • Hardware Verification
  • Constrained Random Verification
  • Functional Verification

Uploaded on Oct 06, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Funkcionalna verifikacija hardvera Predavanje V

  2. Lecture Content Introduction to UVM - What is and what is not UVM? - Verification Methodologies History - Key Technical Highlights of UVM 2

  3. Introduction to UVM Verification Methodologies

  4. What is UVM? UVM (Universal Verification Methodology) is a methodology for writing modular, scalable, configurable and reusable testbenches, based on verification components with standardized interfaces, for a design that could be written using VHDL, Verilog or SystemC UVM environment supports migration from directed testing towards Coverage Driven Verification (CDV), which consists of automated stimulus generation, independent result checking and coverage collection UVM itself is written in SystemVerilog has a SystemVerilog Base Class Library (BCL) UVM is a methodology and therefore could be implemented in many different languages, such as: - SystemC - VHDL, 4

  5. What is not UVM? Infrastructure offering tests or scenario s out-of-the-box: all behavior has to be implemented by user Coverage-based verification templates: application is responsible for coverage and randomization definition; UVM only offers the hooks and technology (classes) Verification management of requirements, test items or scenario s is outside the scope of UVM? Test item execution and regression automation via e.g. the command line interface or regression cockpit is a shell around UVM 5

  6. Constrained Random Verification I UVM supports Constrained Random Verification (CRV) Central idea of CRV is using random vectors in verification, which currently represents the state-of-the-art in the simulation based functional verification CRV is based on the idea of randomization of at least some element of test vectors that are used during the simulation There is two key benefits from randomizing test vectors: Constrained random simulation is great for finding unexpected bugs if you have to plan all the details of the test vectors that you will use during the simulation, you will only find bugs that you are really looking for. By using CRV you randomize test vectors and therefore push DUT into states you have never thought of. 1. Automating stimulus generation this enables running long simulations (for example over nights) without have to manually apply test vectors yourself, they can be generated automatically. 2. 6

  7. Constrained Random Verification II How does the CRV work? Answer is CCC Checkers, Coverage and Constraints. - Checkers - if you got random vectors its critical that you automate checking, by writing self-checking testbenches - Coverage answering the question Are we done yet? . Coverage records what is going on during the verification run and identifying how thoroughly we have exercised the design. - Constraints if you have Coverage Holes , meaning that we haven t exercised the design thoroughly enough, by using constraints we need to be able to constrain test vectors in order to increase test coverage. UVM is the methodology that enables all these tasks 7

  8. UVM is an Industry Standard UVM is an industry standard It was developed by Accellera, a standards body of the EDA industry A lot of Big Names of the electronics industry are involved in developing the UVM, like Cadence, Mentor, Synopsys, Intel, AMD, Cisco and Freescale UVM is pure SystemVerilog code It is distributed under the open-source license model It has a comprehensive documentation, comes with complete Reference Manual and User Guide 8

  9. Verification Methodologies History I The world of verification changed dramatically in 2000, with the emergence of new company Verisity It invented both a dedicated verification language called e, and the associated e Reuse Methodology The prescribed rules enabled verification teams to create testbenches that randomized a design s inputs subject to a set of user-specified constraints This largely automated the verification process, especially if the tests were self- checking and coverage metrics helped to gauge verification thoroughness 9

  10. Verification Methodologies History II Synopsys took a similar approach with its dedicated verification language VERA, developing the Reference Verification Methodology (RVM) When the Accellera language standards organization decided to create SystemVerilog rather than standardize either e or VERA, Synopsys adapted the RVM to the new language Verification Methodology Manual (VMM) for SystemVerilog, published jointly by Synopsys and ARM, was the spur for rapid evolution in the industry Mentor Graphics responded with the Advanced Verification Methodology (AVM), which supported both SystemVerilog and SystemC 10

  11. Verification Methodologies History III Cadence, after initially advocating SystemC for verification, acquired Verisity and transformed the eRM into the Universal Reuse Methodology (URM), which supported SystemVerilog in addition to e and SystemC Industry convergence began in 2008, when Cadence and Mentor collaborated on the Open Verification Methodology (OVM), notable for being available as open source with simple licensing When Accellera decided to tackle verification standardization, it selected the OVM as the baseline while including key VMM features. The result is the widely adopted Universal Verification Methodology (UVM). 11

  12. Key Technical Highlights of UVM Layered Stimulus UVM features a layered approach to generating test vectors using so-called sequences Sequence generates transactions, but a sequence is also an object that can be manipulated, so sequences are both a function and an object, so-called function-object Sequences can be built-up out of other sequences, to have a hierarchical or a layered structure sequences As sequences get instantiated they can be overridden and controlled in order to constrain precisely the set of test vectors that get generated 12

  13. Key Technical Highlights of UVM Verification Reuse The other big thing in UVM is verification reuse reuse of verification components (also called Verification IP) A testbench for a Design Under Verification (DUV) will be built out of verification components Those verification components you could build from the scratch, or you might reuse them from previous projects, or can try and buy them UVM offers standardized, consistent structure for building verification components 13

  14. Key Technical Highlights of UVM Verification Reuse One of those standardized structures is the uvm_agent Uvm_agent consists from: - Sequencer - that generates sequences, and those sequences generate transactions that are passed out to drivers - Driver - that toggles pins of the DUV - Monitor that watches interfaces of the DUV, extracts transactions and then sends those transactions to the rest of the verification environment Consistency, and not reinventing of the wheel, is an important element of the UVM 14

  15. Key Technical Highlights of UVM Easy Reconfiguration of Verification Components UVM component gets reused as a part of a bigger verification environment, which is defined by the uvm_env class As it is being reused it can be configured to the precise needs of that verification environment One of the big highlights of the UVM is the ability to reconfigure verification components without needing to go in and hack the source code of those components 15

  16. Key Technical Highlights of UVM Easy Reconfiguration of Verification Components The verification environment contains a number of standardized structures, including components such as virtual sequencers and scoreboards Virtual sequencer is a component that coordinates the activity of other sequencers Scoreboard is a component doing things like collecting functional coverage and checking 16

  17. Key Technical Highlights of UVM Separation of Tests from the rest of Verification Environment The overall verification environment in UVM is reused, within the uvm_test class, according to the demands of the specific tests On of the features of UVM is the separation of test from the rest of reusable verification environment Again, the same kind of configuration mechanism can be applied, to reuse verification environment for individual tests There are a couple of ways to do that. One is the resource database this is a general way of reusing resources between the UVM components 17

  18. Key Technical Highlights of UVM Standardized Execution Phases There is also a standardized set of execution phases in UVM Build phase builds the hierarchical structure of the components Connect phase connects together ports on those components Build and connect phases together are bit like elaboration phase in VHDL and Verilog Then comes couple of House Keeping phases: end_of_elaboration, start_of_simulation Run phase follows, where the dynamic things happen, and sequences execute After the Run phase, there is a number of House Keeping phases to tidy things up: extract, check, report and final 18

  19. Key Technical Highlights of UVM Other Features UVM also supports Transaction Level Modeling and communication, which is borrowed from SystemC Message reporting with possibility of easily controlling the verbosity of generated reports End-of-test mechanism, also known as objections , so each component raises an objection when it is busy, and drops it when it is finished Register Layer which is borrowed from VMM Register Abstraction Layer 19

  20. 20

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#