Re: [sv-ac] 1704 proposal

From: John Havlicek <john.havlicek_at_.....>
Date: Tue Jan 23 2007 - 08:26:51 PST
Hi Dmitry:

O.k.  For the record I am working on the 1668 draft that will 
change some large parts of the text in 17.8.  E.g., I have 
draft change copied below.

J.H.

17.8, p. 259:  REPLACE

   The dynamic creation of a variable and its assignment is achieved by
   using the local variable declaration in a sequence or property
   declaration and making an assignment in the sequence.

   [

      sequence_expr ::=
         ...
         | ( expression_or_dist {, sequence_match_item } ) [ boolean_abbrev ]
         | ( sequence_expr {, sequence_match_item} ) [ sequence_abbrev ]
         ...
      sequence_match_item ::=
         operator_assignment
         | inc_or_dec_expression
         | subroutine_calla

   ]
   Syntax 17-12 -- Variable assignment syntax (excerpt from Annex A)

   The type of variable is explicitly specified. The variable can be
   assigned at the end point of any syntactic subsequence by placing the
   subsequence, comma separated from the sampling assignment, in
   parentheses.  For example, if in

WITH

   The dynamic creation of a local variable is achieved by using an  
   assertion variable declaration within a sequence or property declaration.

   [
      assertion_variable_declaration ::= 
         var_data_type list_of_variable_decl_assignments ;

   ]
   Syntax 17-12 -- Assertion variable declaration syntax (excerpt from Annex A)
   // Note to editor:  all subsequent syntax box numbers in Section 17
   // must be adjusted.

   The data type of an assertion variable declaration shall be
   specified explicitly.  The data type is followed by a
   comma-separated list of one or more identifiers with optional
   declaration assignments.  The declaration assignment is used to
   place an initial value in the corresponding local variable.  The
   initial value is defined by an expression, which need not be
   constant.

   At the beginning of each evaluation attempt of an instance of a
   declared sequence or property, new copies of its local variables
   are created and any corresponding declaration assignments are
   performed.  The declaration assignments are performed in the order
   that they appear in the sequence or property declaration.  The
   expression of a declaration assignment to a local variable can
   refer to a previously declared local variable, but in this case the
   previously declared local variable must itself have a declaration
   assignment.  A local variable without a declaration assignment
   remains unassigned at the beginning of the evaluation attempt.  For
   example, at the beginning of an evaluation attempt of an instance
   of

       sequence s;
          logic u, v = a, w = v || b;
          ...
       endsequence

   the assignment of a to v is performed first and then the assignment
   of v || b to w is performed.  The local variable u remains
   unassigned at the beginning of the evaluation attempt.

   !!! Need to check whether further modifications are needed
   !!! for declaration assignments not being made or not flowing 
   !!! when the overall sequence matches empty.

   Local variables can be assigned and re-assigned within the body 
   of the sequence or property in which they are declared.  

   [

      sequence_expr ::=
         ...
         | ( expression_or_dist {, sequence_match_item } ) [ boolean_abbrev ]
         | ( sequence_expr {, sequence_match_item} ) [ sequence_abbrev ]
         ...
      sequence_match_item ::=
         operator_assignment
         | inc_or_dec_expression
         | subroutine_calla

   ]
   Syntax 17-13 -- Variable assignment syntax (excerpt from Annex A)

   One or more local variables can be assigned at the end point of any
   syntactic subsequence by placing the subsequence, comma separated
   from the list of local variable assignments, in parentheses.  At
   the end of any non-empty match of the subsequence, the local
   variable assignments are performed in the order that they appear in
   the list.  For example, if in



> X-ExtLoop1: 1
> X-IronPort-AV: i="4.13,226,1167638400"; 
>    d="scan'208"; a="188096161:sNHT34960604"
> X-MIMEOLE: Produced By Microsoft Exchange V6.5
> Content-class: urn:content-classes:message
> Date: Tue, 23 Jan 2007 18:19:04 +0200
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: [sv-ac] 1704 proposal
> thread-index: Acc/Cf3S/b+EwNgaRGyJh1W3vcgi/QAABcPA
> From: "Korchemny, Dmitry" <dmitry.korchemny@intel.com>
> Cc: <sv-ac@eda-stds.org>
> X-OriginalArrivalTime: 23 Jan 2007 16:19:24.0924 (UTC) FILETIME=[3F664BC0:01C73F0A]
> 
> Hi Lisa, John,
> 
> I meant to add this comment to section 17.8.
> 
> Dmitry
> 
> -----Original Message-----
> From: John Havlicek [mailto:john.havlicek@freescale.com]=20
> Sent: Tuesday, January 23, 2007 6:16 PM
> To: piper@cadence.com; Korchemny, Dmitry
> Cc: sv-ac@eda-stds.org
> Subject: Re: [sv-ac] 1704 proposal
> 
> Hi Lisa, Dmitry:
> 
> My opinion is that it is not necessary to add a sentence specifically
> about local variable assignments in 17.9.  This might be confusing,
> raising the question, "what about other sequence match items?"
> 
> However, we probably need to scan through the other parts of Section
> 17, in particular the description of local variable flow, to see=20
> if there are other places where we need to clarify regarding empty
> match.
> 
> E.g., I imagine  some text like the following being added somewhere:
> 
>    A local variable that is assigned within a subsequence=20
>    does not flow out of an empty match of that subsequence.
> 
> J.H.
> 
> 
> > X-MimeOLE: Produced By Microsoft Exchange V6.5
> > Content-class: urn:content-classes:message
> > Date: Tue, 23 Jan 2007 10:37:27 -0500
> > X-MS-Has-Attach:=20
> > X-MS-TNEF-Correlator:=20
> > Thread-Topic: [sv-ac] 1704 proposal
> > Thread-Index: Acc9pzJ7hvlNNYNkQ2+/JsBjEA3dRgBLHJogAAwaDkA=3D
> > From: "Lisa Piper" <piper@cadence.com>
> > Cc: <sv-ac@eda-stds.org>
> > X-Received: By mx-sanjose.cadence.com as l0NFbRGe001425 at Tue Jan 23
> 07:37:40 2007
> > X-OriginalArrivalTime: 23 Jan 2007 15:37:48.0953 (UTC)
> FILETIME=3D[6FAF5890:01C73F04]
> >=20
> > This is a multi-part message in MIME format.
> >=20
> > ------_=3D_NextPart_001_01C73F04.605EAD2F
> > Content-Type: text/plain;
> > 	charset=3D"us-ascii"
> > Content-Transfer-Encoding: quoted-printable
> >=20
> > Dmitry,
> >=20
> > =3D20
> >=20
> > I thought assignment of a local variable was simply one form of
> > "sequence_match_item".  Is that not the case?  I have no problem with
> > adding it though.
> >=20
> > =3D20
> >=20
> > lisa
> >=20
> > =3D20
> >=20
> > ________________________________
> >=20
> > From: Korchemny, Dmitry [mailto:dmitry.korchemny@intel.com]=3D20
> > Sent: Tuesday, January 23, 2007 4:55 AM
> > To: Lisa Piper; john.havlicek@freescale.com
> > Cc: sv-ac@eda-stds.org
> > Subject: RE: [sv-ac] 1704 proposal
> >=20
> > =3D20
> >=20
> > HI Lisa,
> >=20
> > =3D20
> >=20
> > It probably makes sense to add to your proposal a sentence about local
> > variable assignment in case of an empty match. Though this behavior
> > follows from the formal semantics definition, this point should be
> made
> > clear in the text itself. Of course, one can open an additional Mantis
> > item for it, but it might also be included to yours.
> >=20
> > =3D20
> >=20
> > What do you think?
> >=20
> > =3D20
> >=20
> > Thanks,
> >=20
> > Dmitry=3D20
> >=20
> > =3D20
> >=20

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Jan 23 08:27:26 2007

This archive was generated by hypermail 2.1.8 : Tue Jan 23 2007 - 08:27:43 PST