[sv-bc] RE: [sv-ac] Emailing: 1350_D4_$.doc

From: Fais Yaniv <yaniv.fais_at_.....>
Date: Mon Dec 03 2007 - 04:52:46 PST
Hi Shalom,

I read your document and found no issues with the new text you are
adding,
I'm sorry to bother you with this but I did found some other issues with
the existing text which I think are worth changing, perhaps better if
done in this mantis or if you know of another mantis which deals with
this text (or if possible a new mantis at this time).

Page 3, it is written:
parameter r2 = $;
property inq1(r1,r2);
@(posedge clk) a ##[r1:r2] b ##1 c |=> d;
endproperty
assert inq1(3);

I think it should be something like: (I changed "r2 = $" to "r3 = $" and
also gave default to r2 in the property declaration, also changed the
assert syntax which was incorrect)
   parameter r3 = $;
   property inq1(r1,r2=r3);
      @(posedge clk) a ##[r1:r2] b ##1 c |=> d;
   endproperty
   a1: assert property (inq1(3));
   

Page 8:
a2: assert property (width); 
Should be:
a2: assert property (assert_width_p);



I also think the interface quiet_time_checker in the example is better
to be changed,you have added the line "if (!$isunbounded(max_quiet))"
right after the generate which made this checker now don't do anything
in case min_quiet!=0 and max_quiet=$.
I suggest changing the interface it to:
interface quiet_time_checker #(parameter min_quiet = 0, 
    parameter max_quiet = 0,
    parameter string warning_msg="quiet time minimum is 0 maximum is
$,no check made")
  (input logic clk, reset_n, logic [1:0] en);

generate
   if (!$isunbounded(max_quiet))
     begin
	property quiet_time;
	@(posedge clk)
	  disable iff (!reset_n) ($rose(en == 0)||(max_quiet==0))
	   |->(en == 0)[*min_quiet:max_quiet]
		   ##1 ((en != 0));
	   endproperty
	   a1: assert property (quiet_time);
     end
    else
      if (min_quiet == 0)
       initial
          $warning(warning_msg);
      else
        a1: assert property (disable iff (!reset_n) $rose(en==0) |->
(en==0)[*min_quiet]);	
  endgenerate
endinterface

   quiet_time_checker #(0, 0) quiet_never (clk,1'b1,enables);
   quiet_time_checker #(2, 4) quiet_in_window (clk,1'b1,enables);
   quiet_time_checker #(0, $) quiet_any (clk,1'b1,enables); 

This change is better in my opinion than the original text since:
1. nothing was done in the original checker in the case where
min_quiet!=0 and max_quiet=$
2. warning_msg was some global string whereas it is better as an
interface parameter
3. used disable iff with reset instead of the check only in the first
cycle
4. there was maybe some assumption that "en" is one hot or something
like that which may explain the $countones(en)==1, what if en==2'b11 ?
5. unified cases where max_quiet!=$ to one assertion (tool error is
expected if min_quiet>max_quiet in this case also)

I would also change in the width_checker interface "(reset_n &&
$rose(expr)) " to "disable iff (!reset_n) $rose(expr) " (two places) but
that is even less important.

Regards,
Yaniv


-----Original Message-----
From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of
Bresticker, Shalom
Sent: Monday, December 03, 2007 09:58
To: sv-bc; sv-ac@eda.org
Subject: [sv-ac] Emailing: 1350_D4_$.doc

 <<1350_D4_$.doc>> Hi,

I have been working on the handling of $ as parameter and range values.
This is Manti 966, 1350, and 1982. 966 and 1982 are classed as SV-AC
issues, whereas 1350 is classed as an SV-BC issue.

This is work in progress, but I would like you to look at what I have
done so far. The attached document attempts to integrate those 3 Manti
together. The green text is incorporation of SV-AC Mantis 1549. The blue
and red text are my changes, as usual.

Please look only at the changes I have made, not at anything that has
not been changed, unless you want to make a comment which is not already
recorded in one of those Manti.

Thanks,
Shalom
---------------------------------------------------------------------
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.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Dec 3 04:55:23 2007

This archive was generated by hypermail 2.1.8 : Mon Dec 03 2007 - 04:58:05 PST