Re: [sv-ac] another small flaw in 1549 Annex F

From: John Havlicek <john.havlicek_at_.....>
Date: Wed Oct 03 2007 - 04:43:59 PDT
Hi Manisha:

O.k., then we need a technical proposal for how to treat
$ as a typed entity.  What value will represent $?  How
will it behave in comparisons?  What are the casting 
rules for $?  Into what data containers can $ be placed?

J.H.

> X-MimeOLE: Produced By Microsoft Exchange V6.5
> Content-class: urn:content-classes:message
> Date: Tue, 2 Oct 2007 22:58:42 -0700
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: [sv-ac] another small flaw in 1549 Annex F
> Thread-Index: AcgENOS+kRL47cPnTLiU4rFfO5L6+ABSn+Gg
> From: "Kulshrestha, Manisha" <Manisha_Kulshrestha@mentor.com>
> Cc: <sv-ac@eda-stds.org>
> X-OriginalArrivalTime: 03 Oct 2007 05:58:45.0317 (UTC) FILETIME=[755FF750:01C80582]
> 
> Hi John,
> 
> I feel that by putting this limitation we are encouraging usage of
> untyped formals (now with the introduction of more typed formals it
> should be other way around). Since a property writer may not know
> whether a user will ever pass a '$' for the range, he/she is forced to
> keep the upper bounds for these as untyped args.=20
> 
> Thanks.
> Manisha
> 
> -----Original Message-----
> From: John Havlicek [mailto:john.havlicek@freescale.com]=20
> Sent: Monday, October 01, 2007 7:41 PM
> To: shalom.bresticker@intel.com
> Cc: john.havlicek@freescale.com; Kulshrestha, Manisha;
> sv-ac@eda-stds.org
> Subject: Re: [sv-ac] another small flaw in 1549 Annex F
> 
> Hi Shalom:
> 
> Maybe there has not been criticism of the example of assigning $ to
> an int parameter. =20
> 
> However, I still do not think that there is agreement on how to cast $
> into a type or whether to treat it as a "special value" that is not
> really cast. =20
> 
> We discussed this in a recent SV-AC meeting and my recollection is
> that people did not think it was worth trying to define passing $ as
> actual argument to a typed sequence or property formal argument at
> this time.
> 
> Below are some comments from Gord in one of the notes on 1350.
> 
> J.H.
> 
> ----------------------------
> 
> 
> From Gord (Mar 13):
> 
> This note is a summary of some issues that were discussed today in
> SV-BC. Since this impact EC and AC issues, BC agreed this should go
> out for general discussion.
> 
> There are numerous issues with the current descriptions regarding
> passing $ as a parameter value. In particular, in 6.3.2.1, we have:
> 
>       The value $ can be assigned to parameters of integer types.
>       A parameter to which $ is assigned shall only be used
>       wherever $ can be specified as a literal constant.
> 
> A minor issue is that "integer" was likely meant to be "integral".
> 
> In the first example in 6.3.2.1, there is a generate condition:
> 
>       if ( max_quiet =3D=3D 0) begin
> 
> with an instantiation of the module where "max_quiet" is $.
> 
> 
> There are numerous questions regarding this and other contexts for
> parameters which denote $.
> 
> 1) Is a parameter denoting $ valid in a comparison expression? The
>     example indicates that it is, but there are no semantics.
> 
> 2) Is a parameter denoting $ valid as an operand in other expressions?
>     For example would "max_quiet + 1" be valid if max_quiet is $?
> 
> 3) Do $right, $left, $bits, etc have defined results for a
>     parameter which denotes $?
> 
> 4) The intent of $ appears to be to allow $ to be used in assertions.
>     But there are other contexts where $ is valid but means different
>     things. For example, $ is used to denote a dynamic array
> declaration,
>     the last element of a queue, and range bounds of covergroup
>     bins expressions. Was the intent to allow parameters that denote
>     $ in all such scenarios? There are some implementation impacts
>     of such a generalization that were likely not considered
>     originally.
> 
> 5) Can a parameter which denotes $ propagate down through other
>     parameters?
> 
> 6) What is the meaning of $ if it propagates through a typed
>     parameter? Is it the "last value of the range" or is it
>     a special value which retains the $ meaning? In particular,
>     if $ propagates from a 32-bit parameter to an 8-bit and then
>     back to a 32-bit parameter, does it still represent the
>     "last value in a 32-bit range" when used in a range context
>     (such as a covergroup bins).
> 
> 7) Depending on some of the above, the discussion of "$" as
>     "unbounded" is problematic since in some contexts it really
>     means "last value" or has other meanings.
> 
> 
> 
> My personal suggestion is that some of the issues could be resolved by
> the rule such as:
> 
>     A parameter that denotes $ may only be used in the following
> contexts:
>        a) a context in which $ is valid as a primary
>        b) as an actual to $unbounded
>        c) as the parameter value in a parameter assignment or override
>     A parameter which denotes $ continues to denote $ without regard
>     to the type of the integral parameter to which it is assigned.
> 
> This does not address the other meanings of $ in array and queue
> contexts.
> 
> Personally, I would very much prefer to disallow use of a parameter
> which denotes $ in array and queue contexts. Such use is much too
> close to a "macro substitution" view and can change the "natural"
> meaning of a type from a parametrically determined array size to a
> dynamic array.
> 
> I would like to see a restriction that a parameter denoting $ should
> only be legal in a range expression which admits $. This would involve
> assertion sequences and covergroups. This, I think, covers the
> original intent without introducing issues that we haven't thought
> about and that might be somewhat problematic in terms of
> implementation.
> 
> 
> > X-ExtLoop1: 1
> > X-IronPort-AV: E=3DSophos;i=3D"4.21,217,1188802800";=20
> >    d=3D"scan'208";a=3D"290369526"
> > X-MimeOLE: Produced By Microsoft Exchange V6.5
> > Content-class: urn:content-classes:message
> > Date: Mon, 1 Oct 2007 15:56:31 +0200
> > X-MS-Has-Attach:=20
> > X-MS-TNEF-Correlator:=20
> > Thread-Topic: [sv-ac] another small flaw in 1549 Annex F
> > Thread-Index: AcgEHoGKPwLMry4NRDWs9SPp9KpLeQAEL5zg
> > From: "Bresticker, Shalom" <shalom.bresticker@intel.com>
> > Cc: <sv-ac@eda-stds.org>
> > X-OriginalArrivalTime: 01 Oct 2007 13:56:32.0311 (UTC)
> FILETIME=3D[DF689C70:01C80432]
> >=20
> > John,=3D20
> >=20
> > > There is not general agreement on how to cast $ into a type=3D20
> > > or whether to treat it as a "special value" that is not=3D20
> > > really cast.  There has been criticism of the example of=3D20
> > > assigning $ to an int parameter.
> >=20
> > I think the situation was the reverse.
> >=20
> > 6=3D2E20.2.1 says explicitly, "The value $ can be assigned to =
> parameters
> of
> > integer types."
> >=20
> > The question would be about other types.
> >=20
> > Shalom
> > ---------------------------------------------------------------------
> > Intel Israel (74) Limited
> >=20
> > 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 Wed Oct 3 04:44:32 2007

This archive was generated by hypermail 2.1.8 : Wed Oct 03 2007 - 04:44:57 PDT