Hardware Reference
In-Depth Information
10.1
Sequential Property
In addition to the property operators listed in Table 10.1 , sequences are promoted
to properties when used in a property context. We call them sequential properties,
or sequence properties (see also Sect. 6.2 ). This happens when a sequence is used
as the only expression in an assertion or as an operand to a property operator that
requires the operand to be a property. Sequential properties can be weak or strong .
A sequence becomes a strong property when it is the argument to a strong (...)
qualifier, e.g., strong (a ##1 b) . A strong sequential property holds if and only if
the underlying sequence has a match. Without this strong qualifier, a sequential
property is weak (see Sect. 6.2 , the definition given there corresponds to the week
sequential property) in the assertion or assumption context, and strong in the cover
context. As we shall see, in situations where a sequence is strong by default, it can
be made weak by using the qualifier weak (...) . The distinction between strong and
weak sequential properties is reflected in their truth value when there are not enough
clock ticks to complete the evaluation of the sequence: If there are not enough clock
ticks the weak sequence property succeeds, while the strong one fails.
Example 10.1.
Consider the following assertions:
initial a1: assert property (a ##[+] b);
initial a2: assert property ( strong (a ##[+] b));
a3: assert property (!a ##1 a |-> b[ * ] ##1 c);
a4: assert property (!a ##1 a |-> strong (b[ * ] ##1 c));
c1: cover property (a ##[+] b);
c2: cover property ( weak (a ##[+] b));
Table 10.1
Property
Operator Associativity
not -
nexttime , s_nexttime -
and Left
or Left
iff Right
until , s_until Right
until_with , s_until_with Right
implies Right
|-> , |=> Right
#-# , #=# Right
always , s_always -
eventually , s_eventually -
if else , case -
accept_on , sync_accept_on -
reject_on , sync_reject_on -
operators
 
Search WWH ::




Custom Search