Hardware Reference
In-Depth Information
Example 5.4.
Reset rst should be low in clock clk tick 9.
Solution:
initial a1: assert property (@( posedge clk) nexttime [9] !rst);
Discussion: This property does not say anything about the behavior of rst in clock
ticks 0-8.
t
Finite and Infinite Traces. The definition of property nexttime is not as trivial
as it may seem. When we require a property to be true in the next clock tick we
implicitly assume that the clock ticks at least one more time. This observation holds
when clocks tick infinitely many times, and hence traces are infinite. Infinite traces
allow us to ignore this important question in the definition of property operators,
namely, what happens if the clock stops ticking in the middle of evaluation. Note
that this question is important even for Boolean properties: How can we define the
truth of a Boolean property on the empty trace? We do consider property behavior
on finite traces in Chaps. 10 and 22 , but in this chapter we ignore it because we wish
to concentrate on the main behavior of property operators.
Efficiency Tip. nexttime with a big factor is inefficient both in simulation and in
FV. Try to keep the factor small, especially in complex assertions. In simulation, it
is recommended not to exceed several hundred for simple argument properties, and
in FV not to exceed a couple of tens. The common rule is the smaller the better.
5.3
Always Property
Property always p is true in clock tick i iff p is true in all clock ticks j i . It follows
(see Sect. 5.1 ) that property always p is true iff property p is true in every clock
tick, as shown in Fig. 5.3 .
Property always p defines a series of “instances” of property p starting at
clock ticks 0; 1; : : :. We say that an always property defines a series of evaluation
attempts of the underlying property. For the always property to be true, all of the
underlying attempts must evaluate to true.
p
p
p
p
p
p
p
Fig. 5.3 always property
clock ticks
Search WWH ::




Custom Search