Hi Ben,
I implemented your comments.
Thanks,
Dmitry
From: ben cohen [mailto:hdlcohen@gmail.com]
Sent: Saturday, August 06, 2011 23:25
To: Seligman, Erik
Cc: Korchemny, Dmitry; sv-ac@eda-stds.org
Subject: Re: [sv-ac] RE: Call to vote: Due August 8
Vote + 3 friendly amendments:
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
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
Friendly amendment:
1) Example is missing an "end" statement for the module m
2) The model needs to be beautified -- below is a copy that does it
module m(input logic rst, clk, logic en, logic[7:0] in1, in2,
in_array [20:0]);
c1 check_outside(posedge clk, in1);
always @(posedge clk) begin
automatic logic [7:0] v1 = 0;
if (en) begin
// v1 is automatic, so current procedural value is used
c1 check_inside(posedge clk, in1, v1);
end
for (int i = 0; i < 4; i++) begin
v1 = v1 + 5;
if (i != 2) begin
// v1 is automatic, so current procedural value is used
c1 check_loop(posedge clk, in1, in_array[v1]);
end
end
end
endmodule : m
3) Change "if (rst) z <= b; // sampled value of rst" TO
if (rst) // sampled value of rst
hecker check(logic a, b, c, clk, rst);
logic x, y, z, v, t;
assign x = a; // current value of a
always_ff @(posedge clk or negedge rst) // current values of clk and rst
begin
a1: assert (b); // sampled value of b
if (rst) z <= b; // sampled value of rst
z <= b; // sampled value of b
else z <= !c; // sampled value of c
On Fri, Aug 5, 2011 at 2:38 PM, Seligman, Erik <erik.seligman@intel.com<mailto:erik.seligman@intel.com>> wrote:
My votes:
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
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
Friendly amendments:
- p.9, example: check_outside is missing an arg
- p.15, 1st bullet point: "In always_ff procedure" ==> "In always_ff procedures"
- C.2.7: Rephrase 1st paragraph: "The always procedure allowed by IEEE Std 1800-2009 in checkers, but always_comb, always_latch, and always_ff were forbidden. The limitations imposed on the always procedure in checkers included the limitations imposed on always_ff procedures outside checkers. In this version of the standard always_comb, always_latch, and always_ff have been added for checkers. As a result the general always procedure in checkers would have imposed the same limitations as always_ff does. Therefore the usage of always procedures in checkers is deprecated and does not appear in this version of the standard."
Also, a question about 17.3. Since we're adding a new limitation on checkers containing procedural code, is it important for us to include an example with a deferred assertion outside a procedure, and point out how its implicit always_comb prevents its checker from being instantiated by other checkers?
-- 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 Aug 9 08:07:55 2011
This archive was generated by hypermail 2.1.8 : Tue Aug 09 2011 - 08:07:59 PDT