RE: [sv-bc] RE: Can a function contain a fork/join/any/none?

From: Steven Sharp <sharp_at_.....>
Date: Tue Mar 21 2006 - 17:45:21 PST
>From: "Bresticker, Shalom" <shalom.bresticker@intel.com>

>> Is it really true that "functions are not supposed to interact
>> with the scheduler"?

I don't believe that there is anything in the LRM that says this.
Dave Rich was stating his interpretation, which is stronger than
what the LRM actually says.


>> This implies that the scheduler may suspend function execution
>> in the middle. If this is not so, it needs to be explicitly
>> stated.

Based on the LRM, there is nothing preventing the scheduler from
suspending function execution in the middle.  There are situations
where an implementation might want to do this.  If the implementation
wants to inline a continuous assignment from a variable to a net any
place the variable is written, and the variable is written in a
function, then the continuous assignment would be inlined there.  This
is equivalent to doing the assignment to the variable, suspending the
function in favor of the continuous assignment, and then resuming the
function afterwards.

An implementation could get itself into trouble if it went too far
in suspending function execution.  If a continuous assignment called
a function, the function suspended, other processes updated inputs of
the continuous assignment that it had already read, and then the
function resumed, the continuous assignment might not work properly.
It evaluated with the old values, and might not re-evaluate for the
changes since it was suspended when they were happening.

Steven Sharp
sharp@cadence.com
Received on Tue Mar 21 17:45:27 2006

This archive was generated by hypermail 2.1.8 : Tue Mar 21 2006 - 17:45:31 PST