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