Hardware Reference
In-Depth Information
Example 5.10.
Reset rst should eventually be deactivated.
Solution:
initial a1: assert property (@( posedge clk) s_eventually !rst);
t
Checking s_eventually Property. The s_eventually property differs signifi-
cantly from all other properties described in this chapter. 5 Consider, for instance,
assertion a1 from Example 5.10 . Suppose that we simulated the DUT for 10,000
clock ticks and rst remained high all the time. Does it mean that assertion a1 is
wrong? No, it does not, since it might pass if we simulate few more clock cycles.
The failure of this assertion can only be observed on an infinite trace in which rst
is always high. Such assertions are called liveness assertions, and they are studied in
Chap. 21 . Generally speaking, liveness assertions cannot be falsified in simulation,
but only in FV. However, we can say something about property s_eventually
even observing its behavior in simulation: It looks suspicious if the condition of
s_eventually does not happen during simulation. For instance, when executing
any test from the testbench, it is reasonable to expect that in Example 5.10 a zero
value of rst will be observed. In the case when the condition of s_eventually has
never been observed, a simulation tool usually issues a warning message at the end
of simulation. 6
Example 5.11. What does s_eventually always p mean?
Solution: According to the definition of s_eventually this property means that
there exists some clock tick where always p is true. This is equivalent to the
statement that p is true from some clock tick on.
Discussion: Strictly speaking, this property can neither fail nor pass in simulation.
As mentioned earlier, a simulation tool may issue a warning message (or failure) at
the end of simulation if in the last clock cycle a Boolean p is false.
t
Efficiency Tip. Checking property s_eventually always p in simulation may be
costly, especially if it is not in the scope of an initial procedure.
5 Here, for convenience, we use the terms “property” and “assertion” interchangeably in the context
of failure or success.
6 As we explain in Chap. 10 ,since s_eventually is a strong operator, at the end of simulation
when there are no more clock ticks and rst was high all the time, the simulator may declare
failure of the property.
Search WWH ::




Custom Search