HOME       UP       PREV       FURTHER NOTES       |ENDOFPACK|

ESL Loose Timing Continued

Keeper code is just a conditional resynch:

  if (delay > myQ) { sc_wait(delay); delay = 0; }

By calling wait(delay) the simulation time will advance to where the caller has got to while running other pending processes.

Or where a thread needs to block to wait for a result from some other thread:

  while (!condition_of_interest)
    delay = 0;

Generally, we can choose the quantum according to our current modelling interest:

Transactions may execute in a different sequence from reality: sequential consistency compromised ?

27: (C) 2008-11, DJ Greaves, University of Cambridge, Computer Laboratory.