> SLICC defines a state machine -- no state can change more than once per cycle, so all future transitions,
> output changes, etc, must have at least delay 1.
>
Thats not really true. A state can change more than once in a cycle.
For example, a Directory controller could receive two GETS messages in the
same cycle that are both handled (and both potentially state changing..for
example the first GETS could transition to S where the second might
transition to SS indicating multiple outstanding GETS requests).
The EventQueue is a priority heap. Adding a new entry that is the minimum
could be dicey...for example if could change the current root of the tree.
We've always enforced that adding something to the EventQueue must have a
wakeup at least 1 cycle in the future. If you try modifying this
behavior, I'd be interested to hear your experiences.
|