Hardware Reference
In-Depth Information
Table 11.3
Past temporal operators
Operator
Description
sofar
p
Holds in clock tick t iff p holds in all clock ticks t
1
t (Fig.
11.8
).
once
p
Holds in clock tick t iff p holds in some clock tick t
1
t (Fig.
11.9
).
p
since
q
Holds in clock tick t iff q holds in some clock tick t
1
t ,andp holds in
all clock ticks t
2
, t
1
<t
2
t (Fig.
11.10
).
p
backto
q
A weak version of p
since
q:ifq has not happened yet, p should hold in
all clock ticks t
1
t .
previously
p
Holds in clock tick t iff t
ยค
0,andp holds in clock tick t
1 (Fig.
11.11
).
before
p
Holds in clock tick t iff either t
D
0 or p holds in clock tick t
1. Thus,
the only difference between
previously
p and
before
p is that
previously
p
is false in clock tick 0, whereas
before
p is true.
sequence
ack;
!rst
throughout
enable ##[1:10] end_ack;
endsequence
One problem remains: the reset specified by the
disable iff
operator is
asynchronous (see Chap.
13
), while the behavior of the
throughout
operator is
synchronous: it is checked only at clock ticks. Usually, this difference is not
important. When it is, the sequence to which the method
triggered
is applied as
well as the assertion should be controlled by the global clock if it exists.
t
To make the sequence to which the method
triggered
is applied sensitive to
the assertion disabling condition
reset
, include
!reset
throughout
as the
top operator in the sequence. The sequence is disabled synchronously with
the clock ticks of the sequence, however.
p
p
p
p
p
p
t
clock ticks
Fig. 11.8
sofar
property
p
t
Fig. 11.9
once
property
clock ticks
q
p
p
p
t
clock ticks
Fig. 11.10
since
property
Search WWH ::
Custom Search