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.

Reply via email to