Hardware Reference
In-Depth Information
Table 10.2
Comparison of suffix implication and followed-by
Operator
Antecedent match
Antecedent no match
|-> |=> Each must yield consequent true
Vacuous success
#-# #=# At least one must yield consequent true
Failure
Suffix Implication
The suffix implications have been discussed in Chap. 6 . We summarize them here
because we need them to describe the followed-by operators.
A suffix implication operator takes a sequence as the left-hand operand and a
property as the right-hand operand: s |-> p and s |=> p . Whenever s matches,
property p must hold. When s has no match then a suffix implication is vacuously
true.
The difference between the two forms is that in the case of |-> the evaluation of
property p starts at the clock tick that occurs at or after the tick when s matches.
In the case of |=> the evaluation of p starts at the clock tick that occurs strictly
after the clock tick when s matches. When the ending clock of s (meaning the
clock of the latest evaluated expression of s ) is the same as the leading clock of
p , then in the case of s |-> p property p starts at the same clock tick when s
matches, while in the case of s |=> p , property p starts at the clock tick following
the match of s .Thisiswhy |-> is called an overlapping suffix implication, and |=>
is a nonoverlapping one.
Suffix Conjunction (Followed-By)
The followed-by operators #-# and #=# also have a sequence as the left-hand
operand and a property as the right-hand operand: s #-# p and s #=# p .If s
has no match, then followed-by evaluates to false. If s has one or more matches
for a given evaluation attempt, then for the property to evaluate to true, at least
one match of s must result in p evaluating to true (see Table 10.2 ). In this sense,
the behavior is similar to sequence concatenation with ##0 and ##1 cycle delays.
The difference is that sequence concatenation requires a sequence as the right-hand
side operand, while followed-by accepts a property there. This is also the reason
that followed-by is sometimes called a suffix conjunction or suffix concatenation .If
property p is in fact a strong sequential property (e.g., if s1 #-# s2 appears in a
cover), then s1 #-# strong (s2) is the same as strong (s1 ##0 s2) . Similarly,
s1 #=# strong (s2) is the same as strong (s1 ##1 s2) . As to when p starts its
evaluation relative to the match of s , the difference between #-# and #=# is the same
as between the two forms of the suffix implication. The former is overlapping and
the latter is nonoverlapping.
 
Search WWH ::




Custom Search