Sva Tutorial
Sva Tutorial
Sva Tutorial
SVA
In this appendix, we provide a quick tutorial for
SystemVerilog Assertions (SVA). It is not our objective to
present a comprehensive overview of SVA. Our goal is to
provide you with enough information so that you can
understand the examples presented in this book. For a
complete overview and reference of the SVA language, we
recommend the following sources: [Cohen 2005], [Haque et
al., 2006], and [Vijayaraghavan and Ramanathan 2005].
Using SVA, we are able to specify the design intent (that is,
expected behavior) in terms of properties. Once defined, we
can check our properties as assertions or use them as
verification constraints (assumptions), or they can describe
Figure A-1. Trace on which the sequence (start ##1 transfer) holds
v
| | | |
start
transfer
Figure A-2. Trace on which the sequence (start ##2 transfer) holds
v
| | | |
start
transfer
| | | |
start
transfer
a module
an interface
a program
a clocking block
a package
a compilation-unit scope
Sequences can be declared with or without parameters, as
demonstrated in Example A-10.
$countones ( expression)
$asserton(levels, [ list_of_modules_or_assertions])
$assertkill(levels, [ list_of_modules_or_assertions])
$assertoff(levels, [ list_of_modules_or_assertions])