On Tuesday, November 10, 2020 at 8:58:57 PM UTC-5, Jim Lewis wrote:
Did you ask Google?
Here is what Google says:
S'Last_event: the amount of time since last event occurred on S, if no event has yet occurred it returns Time'High
Here is what the VHDL LRM says:
S'LAST_EVENT
Kind: Function.
Prefix: Any signal denoted by the static signal name S.
Result type: Type TIME.
Result: The amount of time that has elapsed since the last event occurred on signal S. Specifically:
For a signal S, S'LAST_EVENT returns the smallest value T of type TIME such that
S'EVENT = TRUE during any simulation cycle at time NOW – T, if such a value exists;
otherwise, it returns TIME'HIGH.
Hence if 'event is true, then 'last_event = 0.
You might want to look at the Vital timing library as it has setup and hold checkers. If you cannot find anything else, I recommend Rick Munden's book, "ASIC and FPGA Verification"
If you truely want to write your own, you might want to read up on 'delayed and postponed. Although, I prefer to log process run times to instead and use the function now.
Where did you find that on Google? I didn't find anything useful. I did post this to stackexchange.com and got a response a couple of days ago. As you say, the standard says assigned signals are time'high which makes them easy to detect.
Thanks for the suggestions. I'm about done with this test bench, but I'll keep Vital in mind for the next one.
When it came to the definition of "last" it reminded me of the Seinfeld joke about the meaning of "next" Wednesday. "If I had meant THIS Wednesday, I've have said THIS Wednesday".
--
Rick C.
+ Get 1,000 miles of free Supercharging
+ Tesla referral code -
https://ts.la/richard11209
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)