Assertion Interview Part 1 1728124740
Assertion Interview Part 1 1728124740
Q4. What is the difference between simple immediate assertion and deferred
immediate assertions?
Deferred assertions are a special type of immediate assertions. Simple immediate
assertions are evaluated immediately without waiting for variables in its combinatorial
expression to settle down. Hence, simple immediate assertions are very prone to glitches
as the combinatorial expression settles down. This can cause the assertions to fire
multiple times and some of them could be false.
To avoid this, deferred assertions are defined which gets evaluated only at the end of time
stamp when the variables in the combinatorial expression settles down. This means they
are evaluated in the reactive region on the timestamp.
Q5. What are the different ways to write assertions for a design unit?
Certain types of checkers are better written using SVA rather than procedural code. The
languages support rich constructs to implement sequence and property specifications and
this becomes easier than using procedural code or writing class based checkers.
The other added benefit is that the same assertions can also be used in static checking
tools like a Formal Verification tool as well as in providing functional coverage.
Some examples where SVA can be used better are following:
a) Checking of internal design structures like FIFO’s overflowing or underflowing.
b) Checking of internal signals and interfaces between modules can be easier done
with embedded assertions in design.
c) Checkers for standard interface protocols like PCIE, AMBA, Ethernet, etc. can
also be easily developed using the temporal expressions.
d) Checks for arbitration, resource starvation, protocol deadlocks, etc. are normally
candidates for
Formal Verification in any design and hence writing assertions for these will help them to
be used in both static and dynamic simulations.