Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
I agree that the for loop execution should not be interleaved execution in Active. My problem is that I'm seeing a different behavior in the simulator. I do have the standard, it's free through IEEE Get.
While this resolves my confusion regarding the snippet in question, it creates a different confusion for me. Could you please have a look at electronics.stackexchange.com/questions/728081/… as well?
I don't think there's a race though. The value of pass in $display(pass) should be captured at the point of queueing (in Active) and that value should be printed even if the action block executes in Reactive, possibly after pass was modified.
Thank you! I completely missed the fact that not only must the entire Reactive region be drained before moving on, the entire reactive region set must be drained before moving on to Active. That also probably means that my attempts at completely getting rid of the concept of time when testing combinatorial modules are in vain.