The existence of global time in the HDL side gives a natural order to
two messages which occur at different uclocks. So if message A occurs
at uclock u(A) and message B occurs at u(B) then A happens before B if
u(A) < u(B). That order was respected for message delivery. This
allows synchronous or reactive models as well as asynchronous or
streaming ones to be written easily. In the case that u(A)==u(B) there
is some ambiguity in ordering. This is where the priority mechanism
came in.
Especially with reactive models, which could implement state machines
based on the messages they receive, the global time of HDL must be
respected. If implementations were allowed to ignore the global time
in HDL, synchronous and reactive models would become far too difficult
to implement.
Since the software side has no notion of global time other than that
inherited through its interaction with HDL, the requirements for
ordering of input messages are different. The user is responsible for
guaranteeing one of three conditions:
Input Message A happens before input message B
Input Message B happens before input message A
the order of input messages A and B is irrelevant.
Duaine
Received on Wed Mar 24 12:03:58 2004
This archive was generated by hypermail 2.1.8 : Wed Mar 24 2004 - 12:04:02 PST