Hardware Reference
In-Depth Information
Table 11.1
Sequence
Operator Associativity
[
*
...]
-
[
*
]
-
[+]
-
[->...]
-
[=...]
-
##
Left
throughout
Right
within
operators
Left
Left
intersect
Left
and
Left
or
Fig. 11.1
e
throughout
s
e
e
e
e
e
s
clock ticks
throughout
. The sequence
e
throughout
s
, where
e
is a Boolean expression and
s
is a sequence, has a match in clock tick t iff
s
has a match at t , and in each clock
tick from the start of the evaluation of
s
until and including the match of
s
,the
condition
e
is
true
(see Fig.
11.1
).
Example 11.1.
Write a sequence describing the following scenario: “Three con-
secutive enabled occurrences of
read
followed by four enabled occurrences of
write
”. The occurrences of
read
and
write
are enabled if
en
is asserted.
Solution:
The sequence may be implemented as
(read && en)[
*
3] ##1 (write && en)[
*
4]
Using the
throughout
operator, the same sequence may be rewritten in a more
expressive way:
t
Example
11.1
illustrates the fact
1
that
throughout
is a convenience operator
which does not introduce any additional expressive power to the language. Yet, it
greatly improves assertion readability and makes the intent clear.
en
throughout
read[
*
3] ##1 write[
*
4]
Efficiency Tip.
The
throughout
operator is efficient both in simulation and in FV.
1
It can be proven formally [
23
].
Search WWH ::
Custom Search