I'm writing a test bench where there are a series of actions in the Unit Under Test (UUT). There should be a pause at which time I'd like the test bench to write out the result of the actions. I'm not sure how to detect this lull. I'm thinking of having each action (think bus transactions) update a signal with the present time. A concurrent statement would use this variable plus a constant offset to activate and trigger a process.
trig <= '1' when now = (last_command + 5 ms) else '0';
process (trig) is ...
Or I suppose I could use a process with a wait statement
wait until now = (last_command + 5 ms);
I haven't tested either of these but I think they will both work.
Any other ideas?
Can an assert statement be used for this???
assert not (now = (last_command + 5 ms)) report...
Ultimately the report is the useful part, but I haven't thought about the details and there might be more to do than what a single report can handle.
- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209