• Time

    From Rick C@21:1/5 to All on Thu Oct 15 21:32:53 2020
    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

    process is
    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.

    --

    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)