It gets even more interesting! So if I do something simple in the rule "request server from client 0" such as
?
`$display "hello"`
?
, it fires in sim and prints "hello"... But if I do
?
`$display "Bus.bs:81" (fshow clientRequest)`
?
, it doesn't fire in sim... This is also reflected in the emitted VCD which shows `CAN_FIRE` and `WILL_FIRE` as 0...
?
So even though we assigned `clientRequest = selectedClientRequestQueue.first` earlier(we know that `selectedClientRequestQueue.first` is guarded, the compiler seems to ignore this assignment until we actually do something with the assignment such as read it in a display...
?
It seems then that as far as the compiler is concerned, even if you assign a value, if you don't observe it, then that assignment is not an implicit condition for the rule?