https://verificationacademy.com/news/verification-horizons-march-2018-issue
Abstract:
Assertion-based verification has been an integral part of modern-day design verification. Concurrent SVA
is a powerful assertion language that expresses the definition of properties in a concise set of notations
and rules; its use is very wide spread and is definitely encouraged. However, SVA is designed for a static
world; it fails to easily address the use of delays and repetitions based on the values of unit variables
(module, checker, interface); it cannot reference non-static class properties or methods; care should
be taken when accessing large data structures, especially large dynamic data structures; sequence_
match_item cannot directly modify unit variables; there are very strict rules on how property local
variables are processed in the ORing and ANDing of sequences, and the flow through of those variables.
It is important to note that those restrictions should not be viewed as a discount of SVA because SVA
easily addresses most common cases of chip design requirements. In addition, the alternative presented
in this article is only applicable for simulation, but definitely not for formal verification, as that is only
supported by assertion languages (SVA, PSL).
This article first explains the concepts, and then by example, how a relatively simple assertion can be
written without SVA with the use of SystemVerilog tasks; this provides the basis for understanding
the concepts of multithreading and exit of threads upon a condition, such as vacuity or an error in the
assertion. The article then provides examples that demonstrate how some of the SVA limitations can
be overcome with the use of tasks, but yet maintain the spirit (but not vendor’s implementations) of SVA.
Another possibility to handle these issues is to use checker libraries such as OVL, Go2UVM2; those
checkers are not addressed in this article. Again, it is important to emphasize that this alternate solution
with tasks should only be used when those difficult situations arise.