What is SystemVerilog Assertion (SVA)?
SVA is an integral part of IEEE-1800 SystemVerilog languages focusing on the temporal aspects of specification, modeling and verification. SVA allows sophisticated, multi-cycle assertions and functional checks to be embedded in HDL code. SVA allows simple HDL boolean expressions to be built into complex definitions of design behavior, which can be used for assertions, functional coverage, debug and formal verification.
CVC’s ABV SystemVerilog course gives you an in-depth introduction to the language, together with guidelines and methodologies to help you create, manage and debug effective assertions for complex design properties. The course is packed full of examples and case studies to demonstrate real life applications of the language.
To explain the advantages of Assertion Based Verification (ABV) using the System Verilog Assertions (SVA).
To describe in detail the boolean, temporal, verification layers of SVA and show how the layers are used to build assertions.
To demonstrate, with examples, good and bad SVA coding styles and show workarounds for simulators with language support issues.
Delegates must be able to read, write and understand VHDL or Verilog code, and be familiar with running and debugging HDL simulations. This training assumes no prior knowledge of SVA.
Table of Contents
Session 1: Introduction
Session 2: ABV flow
Session 3: SVA Basics
Introduction to SystemVerilog
Assertion vs. procedural code
Types of assertions
Immediate Assertions examples
Session 4: Layers in SVA - the Pyramid structure
Session 5: SVA for Functional Coverage, constraint modeling
Session 6: Bind construct in SVA
Session 7: Sequences in SVA
Introduction to Temporal layer in SVA
Sequence delay operators, use models
Attempt vs thread terminology definitions
Session 8: Sequence Repetition Operators
Real life scenarios on temporal behaviors
Consecutive repetition operator (seq [*])
Non-Consecutive repetition operator (signal [=])
GOTO repetition operator (seq [->])
Summary of repetition operators
Session 9: Property layer in SVA
Introduction to property..endproperty
Implication operator - overlapping (a |-> b)
Non-overlapping implication (a |=> b)
Concept of vacuity in SVA
Using disable..iff as abort condition
Session 10: System Functions in SVA
Value change functions: $rose, $fell, $stable
Vector analysis functions: $onehot/$countones etc.
Value access function: $past()
Guidelines on $rose() usage
Non-Consecutive repetition operator (