System Verilog Assertion:-
Concurrent Assertion:-
Concurrent assertions are the
work horses of the assertion notation. They must be clocked, either by
specifying a clock edge with the assertion or by deriving a clock edge
specification from a surrounding statement. Clocking is the key, because the
evaluation of concurrent assertions starts every clock cycle with a new
incarnation of a checker.
Example :- assert property @(posedge
clk)
a |=> b ##1 c ;
endproperty
Concurrent assertions
can also occur in sequential code. Here, they derive the synchronization and
activation from the surrounding always block.
always_ff @(posedge clk) case
(state) s0 : state <= s1; assert property ($past(state) = s4);
Sequence :-
Boolean expression
events that evaluate over a period of time involving single/multiple clock
cycles.
Property :-
A number of
sequences can be combined logically or sequentially to create more complex
sequences.
Assert :-
The property is the
one that is verified during a simulation. It has to be asserted to take effect
during a simulation
Operator information :-
- and :
When both sequence are expected to match, and both the sequence start at
same time, but are not expected to finish at same time. Then and operator is used.
- intersect :
When both sequence are expected to match, and both the sequence start and
end at same time. Then intersectoperator
is used.
- or :
When one of the both sequence are expected to match. Then or operator is used.