NEXT (TLM - Measuring Utilisation and Modelling Contention)
Adding The Timing Annotations
For approximate timing:
For loose timing:
In the non-blocking coding style, we can make a note of the simulator tnow
in a local variable at the start of a transaction and not return success
of the transaction (or a sub-part of it) until tnow
has sufficiently advanced.
In the blocking coding style we can block the caller's thread
for the appropriate number of cycles before returning with the result.
In the blocking coding style, we can compare the delay time so far
accumulated with a desired maximum (the quantum for that thread or
component or system wide quantum) and if it is exceeded then do a resynch.
In the non-blocking coding style we can do the same, but non-blocking with loose
timing is not commonly used.
The loose timing allows transactions to execute out of order (see later slides).