Hardware Reference
In-Depth Information
of s.triggered at a past or future time slot, because the notion of the current
value makes sense for the current time slot only.
t
￿ The sampled value of any other expression is defined recursively using the values
of its operands.
Example A.10. If a is a static variable and s is a sequence then
$sampled(a && s.triggered) = $sampled(a)&& $sampled(s.triggered) ,
i.e., the value of a is taken from the Preponed region, and the value of
s.triggered is the current value.
t
Example A.11. If a and s are variables and f is a function then
$sampled(f(a, b)) = f($sampled(a), $sampled(b)) .
Discussion: The LRM is not clear whether the global variables accessed by the
function are sampled or not. Our interpretation is that these variables should be
sampled. Otherwise, it would cause sampling inconsistency when a function is
invoked from a right-hand side of a checker NBA. See, for example, function
next_tx_ptr in Fig. 23.5 , Lines 11 - 18 . Note that in the concurrent assertion
context functions must be automatic and have no side effects (see Sect. 5.1 ),
therefore the definition is accurate in this case.
t
Search WWH ::




Custom Search