RE: [sv-cc] Re: [sv-ec] RE: [sv-bc] RE: [sv-ac] New keywords in SV-AC proposals

From: Jim Vellenga <vellenga_at_.....>
Date: Fri Mar 21 2008 - 05:27:16 PDT
In reviewing the Mantis item 1503, prepared by the SV-AC
team for review by the SV-CC, I have already been exposed
to the fact that "The assertion portion of that language
already has untyped formal  arguments which you seem to
associate with 'substitution/macro' like assumptions,"
as Mark has noted.  For what it's worth, I didn't like it
either, but there it is.

As to the impact on VPI, yes, there is one.  I am still
not comfortable with the revised proposal for handling
these 'substitution/macro-like' arguments; it does not
fit with the rest of VPI.  But even more, formal arguments
and local assertion variables in general have behaviors
that vary distinctly from other value-bearing
objects in VPI and for that matter in the rest of
SystemVerilog.  For example, a single assertion variable
can be cloned and coalesced many times in the processing
and termination of "attempts".  The VPI object model is
just not equipped to handle this.

Again, the VPI object model now generally assumes that
formal arguments can have data types.  While assertion
properties are moving so as to allow that, that has
not historically been the case, and one can freely
substitute arbitrary expressions for the untyped
formals and use them in the instantiated properties
in a pass-by-name sort of way.  But again, it is not
necessarily a single pass-by-name, as parts of the expression
can be cloned independently of others during the
generation of attempts, according to my admittedly
limited understanding.

So, I agree with Mark that these aspects of checkers are
not new to SystemVerilog, but I also agree with Gordon
that they are semantically at variance with the non-assertion
parts of SystemVerilog, including within the context of VPI.

Regards,
Jim Vellenga

--------------------------------------------------------- 
James H. Vellenga                            978-262-6381 
Software Architect                     (FAX) 978-262-6636 
Cadence Design Systems, Inc.         vellenga@cadence.com 
270 Billerica Rd
Chelmsford, MA 01824-4179
"We all work with partial information." 
----------------------------------------------------------  

]-----Original Message-----
]From: owner-sv-cc@eda.org [mailto:owner-sv-cc@eda.org] On 
]Behalf Of Gordon Vreugdenhil
]Sent: Thursday, March 20, 2008 6:41 PM
]To: Mark Hartoog
]Cc: Steven Sharp; stuart@sutherland-hdl.com; sv-bc@eda.org; 
]sv-ec@eda.org; sv-cc@eda.org; sv-ac@eda.org; 
]shalom.bresticker@intel.com; Eduard.Cerny@synopsys.com
]Subject: [sv-cc] Re: [sv-ec] RE: [sv-bc] RE: [sv-ac] New 
]keywords in SV-AC proposals
]
]
]
]Mark Hartoog wrote:
]> Gord wrote: 
]>>> Steven Sharp wrote:
]>>>>> From: "Eduard Cerny" <Eduard.Cerny@synopsys.com>
]>>>>
]>>>>> For my information - the system functions like 
]$inferred_clock are
]> 
]>>>>> processed during compilation / elaboration and are 
]replaced by the
]> 
]>>>>> actual expressions from the design.
]>>> Ed, I think you are *assuming* that would be what one would do.
]>>> I understand that is a nice "macro like" model for the 
]special case, 
]>>> but isn't clear to me that one would necessarily be
]>>> *required* to do so.  In fact, it seems that such a requirement 
]>>> would end up conflicting with vpi assumptions about being able to 
]>>> recreate (non-macro expanded) source and navigate around the
]> expreessions.
]> 
]> Processing of $inferred_clock during compilation/elaboration does not
]> imply a
]> a "macro like model".
]
]Hmm - Ed said "replaced by the actual expressions".  If one
]says "is equivalent to the inferred event" or similar, no
]problem.  The "replaced by" certainly makes it sound to
]me like a macro-like processing step.  If not is not the
]expectation, that is fine (obviously).  The vpi and other
]related issues are then also not an issue although I would
]wonder how one would access the *actual* inferred expression
]via vpi.  I know that is arguing both for and against my
]earlier question but I know that some people are very
]concerned about source-faithful vpi expression access and
]if both that AND the replacement (or "determined sensitivity")
]are needed, that should be covered.
]
]
]> 
]> module #(type T = int) m (input T x);
]> logic [$bits(T):0] y;
]> endmodule
]> 
]> One could say that during compilation/elaboration, the type parameter
]> 'T' is
]> replaced by the actual type, and the $bits(T) function is evaluated. 
]> Does that make modules into macros ?
]
]> Nothing in the statement that $inferred_clock is "processed during
]> compilation/
]> elaboration" would require a conflict with the vpi assumption. 
]
]I agree -- "processed" does not.  "Replaced by", particularly
]given earlier "rewriting" approaches into generates that AC
]suggested and which are problematic, do make me take note.
]
]Gord
]-- 
]--------------------------------------------------------------------
]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 Mar 21 05:29:08 2008

This archive was generated by hypermail 2.1.8 : Fri Mar 21 2008 - 05:32:14 PDT