RE: [sv-ac] Review of Mantis 3033 proposal

From: Korchemny, Dmitry <dmitry.korchemny@intel.com>
Date: Tue Jul 26 2011 - 04:33:58 PDT

Hi Tom,

Please, see my comments below.

Thanks,
Dmitry

-----Original Message-----
From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of Thomas J Thatcher
Sent: Monday, July 25, 2011 20:16
To: sv-ac@eda.org
Subject: [sv-ac] Review of Mantis 3033 proposal

Hello Everyone,

This is my review of the latest Mantis 3033 proposal.

1. At the start of the proposal, but the Mantis number and one-line description. I know that in the motivation section you list all the Mantis items covered, but this is primarily Mantis 3033. The reader should see that as the title of the proposal.
[Korchemny, Dmitry] Done

2. I don't know if this matters . . .
The {attribute_instantce} was added in the BNF for checker declaration.
However, in modules, the {attribute_instance} appears inside the definition of module_or_generate_item. If we wanted to be consistent with the structure of the module BNF, it seems that the attribute_instance should appear in the definition of checker_or_generate_item On the other hand, the Module BNF has one more level of hierarchy.

[Korchemny, Dmitry] We can discuss it further. Note, however, that, for example, the parallel definition for programs is different than that for modules.

3. 17.3 Checker Instantiation

A paragraph of strikeout text got lost here. It's also missing from the reference text. Do you intend to keep this paragraph now?

  -- If the checker is instantiated within another checker, then all
     formal arguments are considered to be directly connected to their
     actual arguments, as in a module instantiation. . . .

[Korchemny, Dmitry] This requires more discussion.

Regarding the deprecation of "always" within a checker:

Anupam has discussed the pitfalls of using sequence.triggered() in a combinational context. It seems that it is more useful to use the triggered function as an event to trigger something:

        sequence txn_complete;
                @(posedge clk) req ##1 ack [->1];
        endsequence
        covergroup cg;

        always @(sequence.triggered()) begin
                cg.sample()
        end

The intent is to call the covergroup sample method only on cycles where the sequence txn_complete matches. Is a sequence triggered method one of the legal event types for an always_ff? If not, then I would oppose deprecating the always construct within checkers.

[Korchemny, Dmitry] I think that this should be specified as always @txn_complete ..., no .triggered. This should also be legal with always_ff.

"The following example illustrates usage of free variable assignments."
This paragraph and example now seem to be out of place. The bullet directly above is talking about use of the triggered method on the RHS of an assignment.

[Korchemny, Dmitry] I added the following sentence: " The right hand side of a nonblocking assignment may contain a free checker variable."

17.7.3 and 17.7.2
The section "Checker variable randomization with assumptions should be numbered 17.7.2, and the section "Scheduling semantics" should be numbered 17.7.3 (They are in the correct order, though.)

[Korchemny, Dmitry] Fixed.

Tom

--
This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Jul 26 04:34:22 2011

This archive was generated by hypermail 2.1.8 : Tue Jul 26 2011 - 04:34:37 PDT