Re: implicit event expression lists

From: Michael McNamara (mac@verisity.com)
Date: Thu Feb 07 2002 - 11:54:04 PST


Precedence: bulk

Steven Sharp writes:
> >This would seem to expand to something like:
> >
> > always @(<events from something> or <event involving mem8x10>)
> > begin : named
> > reg [31:0] b;
> > b = <something>;
> > a = mem8x10[b];
> > end
> >
> >But what is <event involving mem8x10>? Saying it is mem8x10[b] seems
> >suspect to me since the b used to index mem8x10 is not visible from
> >there.
>
> Regardless of scoping, named.b can be modified from outside the block.
> If that happens, the block needs to be re-evaluated. So you have to be
> sensitive to named.b (or the equivalent of mem8x10[named.b]).
>
> It's ugly, but that's what happens when you try to hack new features
> into a language.
>
> Steven Sharp
> sharp@cadence.com
>

Certainly named.b could be modified by a hierarchial reference or from
the PLI; but if that resulted in scheduling the block to be evaluated,
a new value for b would be calculated based on <something>, and that
value would be used to fetch the value from the memory, and then would
be assigned to a. So it is sufficient to be sensitive to
mem8x10[<something>].

Are you imagining the senario where 'b' is modifed by some nefarious
entity between the calculation of b = <something>; and a =
mem8x10[b];?

In that case, since the block is already on the event queue, it would
not be rescheduled; hence the sensitivity list is not of importance.

-mac



This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:55:35 PDT and
sponsored by Boyd Technology, Inc.