I have a SystemVerilog task I am trying to port to SystemC. The body of the task simply waits on a boolean expression and then pushes onto a queue. The SystemC wait mechanism doesn't work quite the same way though, it will only wait on time or events.
So I'm wondering what is the minimum length of cycles/time that SystemVerilog wait() will wait before re-testing the boolean expression. In other words, how often or what drives re-testing of boolean expressions in SV wait()?
If the answer is simply once every cycle, which I hope and expect but can not confirm, then the solution is easy.
Here is the code, with some things renamed and simplified to make more sense out of context:
virtual task put(input cls_item item);
wait (queuecount < queuemax);
push_back(item);
endtask