Subject: Re: $driver_delay
From: Kevin Cameron x3251 (Kevin.Cameron@nsc.com)
Date: Tue Aug 20 2002 - 16:15:05 PDT
I ran into a problem trying to use "$driver_delay" (Sec 8.11.1), the are two things wrong
with it a) it returns 0 when nothing is pending, but 0 can be a valid delay - so I suggest
-1.0 instead, and b) since it can be called off the digital clock it needs to be able
to return fractional times. Although it says the return value is an integer it doesn't say
what integer, so the text needs updated anyway. If the return value is a real then it can
return an integer via casting as before, and also represent the fractional delays caused by
being called off the digital clock. Trying to calculate the fractional part of the delay
seperately is pretty difficult.
The new text would be:
$driver_delay returns the delay, from current simulation time, after which the pending state
or strength becomes active. If there is no pending value on a signal, it returns the value
minus one (-1.0)
driver_delay_function ::=
$driver_delay ( signal_name , driver_index )
driver_index is an integer value between 0 and N-1, where N is the total number of drivers
contributing to the signal value. The returned delay value is a real number which is the number
of time units in the caller's context, the fractional part arises from the possibility of a
driver being updated by an A2D event off the digital clock.
Is that OK?
Kev.
This archive was generated by hypermail 2b28 : Tue Aug 20 2002 - 16:17:17 PDT