Re: [sv-ac] Sv-AC 1737

From: Doron Bustan <dbustan_at_.....>
Date: Thu Mar 22 2007 - 11:47:18 PDT
Hi Long,

1737 suppose to complete proposal 1381, which had
already passed and which redefine vacuity. I think that
1737 is consistent with 1381.

Doron


Long, Jiang wrote:

> Hello all,
>
> Please excuse the intrusion too. 
>
> I have a question about the 'equivalent' translation of cover statement
> through "double negation".
>
> property r4;
>       @(posedge mclk)((q != d) ##1 ack);
> endproperty
>
> always @(posedge mclk) begin
>       case (a)
>             1: begin q <= d1;
>                   r4_p: assert property (r4);
>                   r4_c: cover property (r4);
>             end
>             default: q1 <= d1;
>       endcase
> end
> property r4_cover;
>       @(posedge mclk) not((a==1) |-> not ((q != d) ##1 ack));
> endproperty
> r4_c: cover property (r4_cover);
>
> In the above example from the proposal, I suspect the use of double
> negation is to avoid the 'vacuous pass' of the antecedent inferred from
> the context. However, the double negation makes unclear what is a
> pass/vacuous pass for the original cover property ( in this case, it is
> r4).
>
> For example, if r4 is defined as
>
> property r4;
> @(posedge mclk)  ( q!=d ) |=> ##[1:2] ack;
> endproperty
>
> //double negation:
> property r4_cover;
> not ( ( a==1) |-> not (r4)  ) ;
> endproperty ;
> r4_c : cover property (r4_cover);
>
> It seems that the double negation form will make it non-intuitive (if
> not inconsistent) with regard to  what is to count as a vacuous pass,
> non-vacuous pass or number of attempts as defined in the LRM ( version
> published 22 Nov 2005)  page  288.
>
> Thanks in advance,
>
> -Jiang
>
>
> -----Original Message-----
> From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On
> Behalf Of John Havlicek
> Sent: Thursday, March 22, 2007 10:24 AM
> To: jonathan.bromley@doulos.com
> Cc: sv-ac@server.eda-stds.org
> Subject: Re: [sv-ac] Sv-AC 1737
>
> Hi Jonathan:
>
> I know you have already received several responses that have explained
> that "b ##0 P" is not legal for a general property expression P and that
> the double negation expresses the dual of "|->", which has the desired
> semantics.
>
> I think it would be nice if we could get away with overloading "##0" to
> stand for the dual of "|->", so that the form "b ##0 P" would be legal
> for general P, but this might cause the grammar to become too ambiguous
> or to have other bad technical properties.
>
> J.H.
>
> >
> > SV-AC,
> > 
> > Please excuse the intrusion.  I've been following the 1737 discussion
> > and wanted to ask a question that will probably expose my ignorance
> > and/or stupidity.
> > 
> > When creating "cover property" with an inferred antecedent,
> > 
> >   ... if (condition) begin
> >         cover property (P);
> >   ...
> > is rewritten as
> > 
> > cover property (not (condition |-> not (P)));
> > 
> > I understand and agree with this, but I can't see any difference
> > between
> >   cover property (not (condition |-> not (P))); and the
> > easier-to-understand
> >   cover property (condition ##0 P);
> > 
> > Can someone kindly explain why the double-negation form is preferable?
> >
> > Thanks in advance
> > --
> > Jonathan Bromley
> > 
> >
> > -- This message has been scanned for viruses anddangerous content by
> MailScanner, and isbelieved to be clean.
> >
>
> --
> 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.
>
>


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Mar 22 11:47:42 2007

This archive was generated by hypermail 2.1.8 : Thu Mar 22 2007 - 11:47:47 PDT