RE: [sv-ac] sv-ac: quick clarification questions of checker update regions

From: Korchemny, Dmitry <dmitry.korchemny@intel.com>
Date: Tue Jun 14 2011 - 05:21:17 PDT

Hi Ben,

According to the new proposal checker free variables cannot be blockingly assigned.

Regards,
Dmitry

From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of ben cohen
Sent: Tuesday, June 07, 2011 05:12
To: thomas.thatcher@oracle.com
Cc: sv-ac@eda-stds.org
Subject: Re: [sv-ac] sv-ac: quick clarification questions of checker update regions

  Tom,
One more question; For the new proposal, what if x, y were rand variables, is below correct on sampling and updates?

checker check(bit a, b, event clk, ...);
  rand bit x, y, z, v;

  always_comb
    y = a & b; // legal, changed in the Reactive Region?
  always_ff @clk
// x sampled in the preponed region.
// z updated in the Re-NBA region
    z <= !x; //
endchecker : check

module m;
   logic clk=0, a, b;
   initial forever #10 clk=!clk;
   check chk1(a, b, posedge clk);
    ...
endmodule : m

On Mon, Jun 6, 2011 at 3:28 PM, Thomas J Thatcher <thomas.thatcher@oracle.com<mailto:thomas.thatcher@oracle.com>> wrote:
Hi Ben,

For IEEE 1800-2009, continuous assignments are not allowed in checkers.
So the assignment to x would not be legal, and it was not defined when x would be sampled. Dmitry's proposal (3033) would allow continuous assignments within checker, and they would update in the Reactive region. So the assignment to x would take place in the Reactive region.

Non-blocking procedural assignments are currently updated in the Re-NBA region. This does not change. Previously, in 1800-2009 non-blocking assignments could only reference checker inputs or other checker variables assigned by non-blocking assignments. The non-blocking assignments would see the sampled value of any checker inputs, because all checker inputs were sampled, and it would see the current value of any other checker variable. Dmitry's proposal would change things so that checker inputs are not automatically sampled. However, any variable referenced by the RHS of a non-blocking assignments would be sampled.

So if Dmitry's proposal is enacted,
1. x & y updated in the Reactive region
2. z updated in the Re-NBA region, x sampled in the preponed region.

Tom

On 06/05/11 23:28, ben cohen wrote:
Questions: or model shown below: 1) When is "x" sampled? Active Region 2) In what region is "z" changed? In the Reactive?
3) are my comments correct?
checker check(bit a, b, event clk, ...);
 bit x, y, z, v;
 assign x = a & b; // legal, changed in the Reactive Region? always_comb
   y = a & b; // legal, changed in the Reactive Region? always_ff @clk
   z <= !x; // , x sampled in active region? z changed in Reactive?
endchecker : check

module m; logic clk=0, a, b;
  initial forever #10 clk=!clk;
  check chk1(a, b, posedge clk); ... endmodule : m Ben

--
This message has been scanned for viruses and
dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
believed to be clean.
--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, 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 Jun 14 05:22:52 2011

This archive was generated by hypermail 2.1.8 : Tue Jun 14 2011 - 05:22:56 PDT