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

From: Stuart Sutherland <stuart_at_.....>
Date: Fri Jul 24 2009 - 13:02:41 PDT
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.
Received on Fri Jul 24 13:03:53 2009

This archive was generated by hypermail 2.1.8 : Fri Jul 24 2009 - 13:05:07 PDT