RE: [sv-ec] implicit sensitivity list and class dynamic members

From: Rich, Dave <Dave_Rich_at_.....>
Date: Fri Jul 24 2009 - 21:57:55 PDT
The LRM says this about explicit events

Changing the value of object data members, aggregate elements, or the
size of a dynamically sized array referenced by a method or function
shall cause the event expression to be reevaluated. An implementation
can cause the event expression to be reevaluated when changing the value
or size even if the members are not referenced by the method or
function.


Repeating Gordon's comment, it says nothing about implicit events.

Dave


> -----Original Message-----
> From: owner-sv-ec@server.eda.org [mailto:owner-sv-ec@server.eda.org]
On
> Behalf Of Stuart Sutherland
> Sent: Friday, July 24, 2009 1:03 PM
> To: 'Mark Hartoog'; Vreugdenhil, Gordon
> Cc: 'Daniel Mlynek'; sv-ec@server.eda.org
> Subject: RE: [sv-ec] implicit sensitivity list and class dynamic
members
> 
> What about continuous assignments?  Will the assignment update on a
call to
> a method function.  For example (not in full context):
> 
> mailbox foo = new;
> assign empty == (foo.num() == 0);
>
> Stu
> ~~~~~~~~~~~~~~
> Stuart Sutherland
> stuart@sutherland-hdl.com
> (503) 692-0898
> 
> 
> > -----Original Message-----
> > From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of
Mark
> > Hartoog
> > Sent: Friday, July 24, 2009 11:25 AM
> > To: Gordon Vreugdenhil; Mark Hartoog
> > Cc: Daniel Mlynek; sv-ec@eda.org
> > Subject: RE: [sv-ec] implicit sensitivity list and class dynamic
members
> >
> > I agree with you.
> >
> > Daniel's question was "Should such references be added to implicit
> > sensitivity list?"
> >
> > I was just pointing out that if Daniel was asking if the LRM should
be
> > changed to allow this, there are some problems with doing it.
> >
> > -----Original Message-----
> > From: Gordon Vreugdenhil [mailto:gordonv@model.com]
> > Sent: Friday, July 24, 2009 11:21 AM
> > To: Mark Hartoog
> > Cc: Daniel Mlynek; sv-ec@eda.org
> > Subject: Re: [sv-ec] implicit sensitivity list and class dynamic
members
> >
> >
> > Mark,
> >
> > always_comb addresses the class method side directly in the text I
> > quoted so I don't think virtual comes into play -- you don't impact
> > the sensitivity list with a virtual method call either.
> >
> > I view the "write rule" for always_comb as being tied to the
> > sensitivity lists -- if we ignore methods and class objects for
> > sensitivity, I think they should also be ignored for the
> > "write rule".
> >
> > Gord.
> >
> >
> >
> > Mark Hartoog wrote:
> > > I agree with Gord's interpretation that class objects, class
methods and
> > class properties do not add to the sensitivity list of always_comb
or
> @(*).
> > >
> > > If Daniel's question is should the LRM be changed to allow this,
there
> are
> > a number of issues to consider.
> > >
> > > Always_comb sensitivity lists include sensitivities from functions
> called
> > from the always_comb. Since class methods can be virtual, there is
no way
> to
> > do this for virtual class methods.
> > >
> > > Always_comb also says it is an error for multiple always_comb to
write
> to
> > the same variable. The aliasing problem with class handles makes it
very
> > difficult to do this check for class fields.
> > >
> > >
> > > -----Original Message-----
> > > From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf
Of
> Gordon
> > Vreugdenhil
> > > Sent: Friday, July 24, 2009 6:49 AM
> > > To: Daniel Mlynek
> > > Cc: sv-ec@eda.org
> > > Subject: Re: [sv-ec] implicit sensitivity list and class dynamic
members
> > >
> > > Daniel,
> > >
> > > 9.2.2.2.1 explicitly deals with always_comb:
> > >     References to class objects and method calls of class objects
do
> > >     not add anything to the sensitivity list of an always_comb.
> > >
> > > 9.2.2.2.2 (on @(*)) is less clear although it claims that
> > >     The SystemVerilog always_comb procedure differs from
> > >     always @* (see 9.4.2.2) in the following ways:
> > >        ...
> > >
> > > Whether @(*) is sensitive to class refs was never explicitly
> > > addressed in the LRM, but it would be reasonable to interpret
> > > the lack of comment about classes in 9.2.2.2.2 to imply that
> > > @(*) should be sensitized to class references either.
> > >
> > > Gord.
> > >
> > > Daniel Mlynek wrote:
> > >> I've a question related to implicit sensitivity list (@*,
always_comb).
> > >> This feature was assumed to help users in design code - for
> > >> combinatorial blocks. But in blocks under @* or always_comb also
> > >> references to dynamic class members can be used - as in below
code.
> > >> Should such references be added to implicit sensitivity list>
> > >>
> > >>     class class0;
> > >>      int x;
> > >>     endclass
> > >>
> > >>     module top_006;
> > >>      class0 c0 = new;
> > >>      class0 c1 = new;
> > >>
> > >>      initial begin
> > >>         #10 c0.x = 1;
> > >>         #10 c0.x = 0;
> > >>         #10 c0.x = 1;
> > >>         #10 c0 = c1;
> > >>      end
> > >>      always@* $display($time, c0.x);        //should this be
sensitive
> > >>     to c0.x?
> > >>     endmodule
> > >>
> > >> DANiel
> > >>
> > >> --
> > >> This message has been scanned for viruses and
> > >> dangerous content by *MailScanner*
<http://www.mailscanner.info/>, and
> is
> > >> believed to be clean.
> > >
> > > --
> > >
--------------------------------------------------------------------
> > > Gordon Vreugdenhil                                503-685-0808
> > > Model Technology (Mentor Graphics)
gordonv@model.com
> > >
> > >
> > > --
> > > This message has been scanned for viruses and
> > > dangerous content by MailScanner, and is
> > > believed to be clean.
> > >
> >
> > --
> > --------------------------------------------------------------------
> > Gordon Vreugdenhil                                503-685-0808
> > Model Technology (Mentor Graphics)                gordonv@model.com
> >
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> 
> 
> 
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Fri Jul 24 21:58:49 2009

This archive was generated by hypermail 2.1.8 : Fri Jul 24 2009 - 21:59:40 PDT