RE: [sv-ac] placement of "disable iff"

From: Eduard Cerny <Eduard.Cerny_at_.....>
Date: Thu Jun 08 2006 - 08:09:12 PDT
Hi John,

true, but
- little more verbose :-)
- does not remind the user , if it is a library of properties, to add a
reset (if any).
- there are libraries of properties which do have reset as argument,
legacy code...

ed 

> -----Original Message-----
> From: John Havlicek [mailto:john.havlicek@freescale.com] 
> Sent: Thursday, June 08, 2006 11:03 AM
> To: Eduard.Cerny@synopsys.COM
> Cc: john.havlicek@freescale.com; sv-ac@verilog.org
> Subject: Re: [sv-ac] placement of "disable iff"
> 
> Hi Ed:
> 
> You are right that this idea would eliminate the ability to
> make the "disable iff" expression an argument.  But I don't 
> think that ability is all that useful because of the restriction
> of the "disable iff" to the top level. 
> 
> Suppose I have
> 
>    module foo;
>       
>       ...
>       
>       property boo_with_reset(rst, ...)
>          disable iff (rst)
>          ...
>       endproperty
>       
>       a1:  assert property (boo_with_reset(rst1,...));
>       a2:  assert property (boo_with_reset(rst2,...));
>       a3:  assert property (boo_with_reset(rst3,...));
>       
>       ...
>       
>    endmodule
> 
> Then I get the same effect with 
> 
>    module foo;
>       
>       ...
>       
>       property boo(...)
>          ...
>       endproperty
>       
>       a1:  assert property (disable iff (rst1) boo(...));
>       a2:  assert property (disable iff (rst2) boo(...));
>       a3:  assert property (disable iff (rst3) boo(...));
>       
>       ...
>       
>    endmodule
> 
> 
> Best regards,
> 
> John H.
> 
> 
> > X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
> > Content-class: urn:content-classes:message
> > Date: Thu, 8 Jun 2006 07:36:50 -0700
> > Thread-Topic: [sv-ac] placement of "disable iff"
> > thread-index: AcaLCBh6n7qyAi0+QxCCzBzVIY8ARgAAKZbQ
> > From: "Eduard Cerny" <Eduard.Cerny@synopsys.com>
> > X-OriginalArrivalTime: 08 Jun 2006 14:36:51.0899 (UTC) 
> FILETIME=[FB5070B0:01C68B08]
> > 
> > John,
> > 
> > a problem may be that you cannot write a property in which the reset
> > condition is a formal parameter because verif. statements are not
> > parameterizable.
> > 
> > The introduction of a default reset would be useful, however. =20
> > 
> > ed
> > 
> > 
> > > -----Original Message-----
> > > From: owner-sv-ac@verilog.org=20
> > > [mailto:owner-sv-ac@verilog.org] On Behalf Of John Havlicek
> > > Sent: Thursday, June 08, 2006 10:29 AM
> > > To: sv-ac@verilog.org
> > > Subject: [sv-ac] placement of "disable iff"
> > >=20
> > > All:
> > >=20
> > > We currently require that "disable iff" be placed only at the top
> > > level.
> > >=20
> > > Discussions in P1800 about the relation of "disable iff" 
> to coverage
> > > and action blocks seem to have converged (or be converging) to
> > > treating a disabled evaluation as neither "true" nor "false".
> > >=20
> > > The formal semantics currently allows "disable iff" to be 
> nested.  The
> > > main reason for this was to simplify the inductive 
> definition of the
> > > semantics.
> > >=20
> > > In the past, I have had the vision of relaxing the rules 
> on "disable
> > > iff" to make it nestable and an analog of PSL "abort".  
> However, this
> > > will not work well with the "neither true nor false" treatment of
> > > disabled evaluations.
> > >=20
> > > Now my vision is different--that "disable iff" be 
> restricted to the
> > > top level eternally.  In the future, we can add 
> accept/reject as in
> > > ForSpec, or the PSL abort syntax, to serve as the 
> nestable operators
> > > that yield "true" or "false" results.
> > >=20
> > > Assuming that we will keep "disable iff" at the top level 
> eternally,
> > > there is little or no use in putting it inside property 
> declarations.
> > > To me, it seems we should think of "disable iff" as 
> attached to the
> > > assertion directives.
> > >=20
> > > What do people think about making this change syntactically? =20
> > >=20
> > > The change would introduce a backwards compatibility 
> problem -- people
> > > who have written "disable iff" expressions inside property
> > > declarations would have to move them to the relevant assertion
> > > directives.
> > >=20
> > > The benefit would be a syntactic enforcement of the 
> top-level rule.
> > > And I think the usage of "disable iff" would be 
> simplified.  People
> > > would not have to worry about not being able to 
> instantiate a property
> > > with a "disable iff" inside another property.
> > >=20
> > > I think we should also add a default "disable iff" at the 
> module level
> > > (and in other scopes where it makes sense) and have the 
> default apply
> > > to all the assertion directives that do not have 
> otherwise specified
> > > "disable iff" expressions.
> > >=20
> > > Best regards,
> > >=20
> > > John H.
> > >=20
> 
Received on Thu Jun 8 08:08:47 2006

This archive was generated by hypermail 2.1.8 : Thu Jun 08 2006 - 08:09:00 PDT