On 8/7/07, Suraj N. Kurapati <[EMAIL PROTECTED]> wrote: > Also, there is something to be said about the concurrency model. > During each time step, all threads are executed until they either > (1) finish executing and exit normally or (2) invoke the "wait" or > "advance_time" method -- which causes them to be re-executed at a > future time step.
There is one downside to this implementation: Since the scheduler waits for *all* threads to either (1) terminate or (2) invoke the "wait" or "advance_time" method, we cannot have non-verification-related threads running in the background. For example, if you wanted to create a watchdog timer thread that stops the simulation after a certain amount of time has passed, it would not be possible because the scheduler will wait for the watchdog timer before proceeding to the next time step. This brings up the need for excluding certain threads from the scheduler's control. So I'm thinking of having a "process" method (inspired by the "process" statement from VHDL) that creates a thread which the scheduler will monitor. Threads created through other means will not be monitored by the scheduler. Since I'm not too experienced with Verilog, I want to ask you: is there a better Verilog-related name for the creation of a verification-related thread than "process"? How would you like to name this method? I want to stay away from the word "initial" because it doesn't really suit the creation of a verification-related thread. However, I plan to add an "always" method which simply injects an infinite loop around the "process" method: always do ... end is the same as: process do loop do ... end end Thanks for your consideration.