Re: [sv-ac] an example for discussion of 1668

From: John Havlicek <john.havlicek_at_.....>
Date: Tue Mar 27 2007 - 04:41:51 PDT
Hi Dmitry:

I agree that this example can be rewritten in 
other ways.

Your version is a combination of the rewrite shown 
in the sketch for 1667 and a second rewrite to 
eliminate the local variable declaration assignment.

I believe that your version has the desired 
semantics.  But I do not conclude from this that 
we do not need local variable arguments.

An even simpler representation, without local variables
at all, is 

   assert property (
       @(ev1) sig_a |=> @(ev2) sig_b ##1 !sig_b
   );

I am encouraged that we agree that the local variable
argument v in my original example needs to get its
initial assignment when we get to the timestep of the
new clock @(ev2).  That was the main point I was trying
to argue.

J.H.


> X-ExtLoop1: 1
> X-IronPort-AV: i="4.14,333,1170662400"; 
>    d="scan'208"; a="203470373:sNHT12938509185"
> X-MimeOLE: Produced By Microsoft Exchange V6.5
> Content-class: urn:content-classes:message
> Date: Tue, 27 Mar 2007 11:32:27 +0200
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: [sv-ac] an example for discussion of 1668
> Thread-Index: AcdvyAvAMVTHlPTnSb2kfEJ5++LECgAhkJAw
> From: "Korchemny, Dmitry" <dmitry.korchemny@intel.com>
> X-OriginalArrivalTime: 27 Mar 2007 09:36:13.0841 (UTC) FILETIME=[5C6A3810:01C77053]
> 
> Hi John,
> 
> Why cannot the user write these properties as:
> 
>    property q(logic sig);
> 	 logic v;
>        (sig, v =3D !sig) |-> sig_b ##1 v;
>    endproperty
> 
>    assert property (
>       @(ev1) sig_a |=3D> @(ev2) q(sig_b)
>    );
> ?
> 
> Thanks,
> Dmitry
> 
> -----Original Message-----
> From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On
> Behalf Of John Havlicek
> Sent: Monday, March 26, 2007 6:57 PM
> To: sv-ac@server.eda-stds.org
> Subject: [sv-ac] an example for discussion of 1668
> 
> Hi Dmitry:
> 
> I had an action item to send you an example to help
> us discuss the problem of local variable initialization
> when the clock is changing and a signal is being assigned
> to the local variable in the initialization.
> 
> Here is an example that I think covers this situation:
> 
>    property q(input local logic v);
>        (v, v =3D !v) |-> sig_b ##1 v;
>    endproperty
> 
>    assert property (
>       @(ev1) sig_a |=3D> @(ev2) q(sig_b)
>    );
> 
> J.H.
> 
> --=20
> 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 Tue Mar 27 04:43:11 2007

This archive was generated by hypermail 2.1.8 : Tue Mar 27 2007 - 04:43:24 PDT