RE: [sv-ac] Call to vote: Due August 8

From: Korchemny, Dmitry <dmitry.korchemny@intel.com>
Date: Tue Aug 09 2011 - 08:18:02 PDT

Hi Tom,

Please, see my comments below.

Thanks,
Dmitry

-----Original Message-----
From: Thomas J Thatcher [mailto:thomas.thatcher@oracle.com]
Sent: Monday, August 08, 2011 20:19
To: Korchemny, Dmitry
Cc: sv-ac@eda-stds.org
Subject: Re: [sv-ac] Call to vote: Due August 8

My Votes:

On 08/03/11 09:56, Korchemny, Dmitry wrote:

> Mantis 2578 __x__ Yes ____ No
>
> http://www.eda-stds.org/mantis/view.php?id=2578
>
> http://www.eda-stds.org/mantis/file_download.php?file_id=5251&type=bug
> <http://www.eda-stds.org/mantis/file_download.php?file_id=5251&type=bu
> g>
>
>
>
> Mantis 3033 __x__ Yes ____ No
>
> http://www.eda-stds.org/mantis/view.php?id=3033
>
> http://www.eda-stds.org/mantis/file_download.php?file_id=5257&type=bug
> <http://www.eda-stds.org/mantis/file_download.php?file_id=5257&type=bu
> g>

Friendly amendments:

17.3 Checker instantiation
Include the entire paragraph in the change. It's much easier to find the context that way.

[Korchemny, Dmitry] Done.

Was there a reason for adding the restriction on instantiating a checker
  containing procedural code?

[Korchemny, Dmitry] Yes, the reason is explained in the preamble. Consider the following example:

module m (logic clk, a);
        always_ff @(posedge clk) begin
                a = 1'b0;
                c check1(a);
                a = 1'b1;
                c check2(a);
        end
endmodule : m

checker c(x):
        var type(x) y;
        assign y = x;
        a1: assert #0 (y);
endchecker

We need to instantiate two assignments outside always_ff:
assign y1 = first_occurrence(a);
assign y2 = second_occurrence(a);

It is very difficult to provide a formal definition of that, unless we introduce an SSA (Static Single Assignment) form. Even SSA won't work in the code which is not statically unrollable.

17.3.1
Change:
For instance check_outside,
To
For checker instance check_outside,

In reading the proposal, I kept interpreting this as "for example"

[Korchemny, Dmitry] Done. This statement is taken from the current LRM.

Additional Comment:
I think we did determine that a sequence triggered() method would be
legal in an always_ff:

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

But it still feels more natural to write it as an always block rather
than an always_ff.

[Korchemny, Dmitry] I think that the correct form is
always_ff @sequence begin
        cg.sample()
end

Do we need to keep always for it?

Tom

---------------------------------------------------------------------
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 Aug 9 08:18:51 2011

This archive was generated by hypermail 2.1.8 : Tue Aug 09 2011 - 08:18:55 PDT