160 Chapter Six
The passive process executes for each event on signal clk. When the
clkinput has a rising edge, the ASSERTstatement is executed and per-
forms the check for a setup violation.
The ASSERTstatement checks to see that input dhas not had an event
during the setup time passed in by the generic setup_time. Attribute
d’LAST_EVENTreturns the time since the most recent event on signal d.If
the time returned is less than the setup time, the assertion fails and
reports a violation.
Attribute ’ACTIVE and ’LAST_ACTIVE
Attributes ’ACTIVEand ’LAST_ACTIVEtrigger on transactions of the signal
attached to AND events. A transaction on a signal occurs when a model
in or inout port has an event occur that triggers the execution of the
model. The model is executed, but the result of the execution produces
the same output values. For instance, if an AND gate has a ’ 1 ’value on
one input and a ’ 0 ’on the other, the output value is ’ 0 ’. If the input
with a ’ 1 ’value changes to a ’ 0 ’value, the output remains ’ 0 ’; no event
is generated, but a transaction will have been generated on the output of
the AND gate.
Attribute ’ACTIVEreturns true when a transaction or event occurs on
a signal, and attribute ’LAST_ACTIVEreturns the time since a previous
transaction or event occurred on the signal it is attached to. Both of these
attributes are counterparts for attributes ’EVENTand ’LAST_EVENT, which
provide the same behavior for events.
Signal Kind Attributes
Signal kind attributes are used to create special signals, based on other sig-
nals. These special signals return information to the designer about the
signal that the attribute is attached to. The information returned is very
similar to some of the functionality provided by some of the function
attributes. The difference is that these special signals can be used any-
where that a normal signal can be used, including sensitivity lists.
Signal attributes return information such as whether a signal has been
stable for a specified amount of time, when a transaction has occurred on
a signal, and a delayed version of the signal can be created.