RE: [sv-ac] call to vote on 1667

From: Lisa Piper <piper_at_.....>
Date: Tue Jan 15 2008 - 05:30:39 PST
Thanks John.  I vote yes.

-----Original Message-----
From: John Havlicek [mailto:john.havlicek@freescale.com] 
Sent: Tuesday, January 15, 2008 7:53 AM
To: Lisa Piper
Cc: john.havlicek@freescale.com; sv-ac@eda.org
Subject: Re: [sv-ac] call to vote on 1667

Hi Lisa:

Please see my answers below.  Let me know if you have further questions.

J.H.

> 1. in the illegal examples, you mention that event is a type
disallowed
> in 16.5.1. Unfortunately, we defined an "event" type in 1549. It may
not
> be exactly the same as that defined in 16.5.1, but I think that is
> confusing.

I checked 1549, and I do not think that it changes 16.5.1.

I checked 1668, and it adds the following sentence:

   The data type [of an assertion variable declaration] shall be one of
the
   types allowed within assertions as defined in Subclause 16.5.1.

In 1667, we say

   The type of a local variable argument shall be one of the types
allowed
   in 16.5.1.

This doesn't seem confusing to me, although it might be better if we
change
the sentence in 1668 to align it with the one in 1667.

Can you make a specific suggestion to address your concern?

> 2. "It shall be an error if there exists a match of the named sequence
> for which an inout or output local variable formal argument is
> unassigned at the completion of the match."   Does this make sense for
> an inout? I thought an inout would have a default initial value, so
what
> does "unassigned" really mean?
> 

Here is an example:

   sequence foo (local logic inout v);
      (a == v)
      ##1
      (
         (b[->1], v = d)
         and
         (c[->1], v = e)
      )
      ;
   endsequence

Because v is assigned in both operands of the "and", v does not flow
out of the "and" subsequence.  Therefore, v is unassigned at the end
of a match of foo.

> 3. "If a local variable formal argument has direction input, then a
> default actual argument may be specified for that argument in the
> optional declaration assignment in the port item, subject to the rules
> for default actual arguments described in 16.7."   I am confused
between
> "default actual argument" and "initialization value".  How do I
> distinguish?

A "default actual argument" is an expression.  An "actual argument" is
also
an expression.  In general, the "actual argument bound to a given formal

argument" is either 

   1) the expression bound to the given formal argument in the instance
(by
      position, by name, by .* resolution, etc.), or,

   2) the default actual argument expression associated with the given
formal
      argument in the declaration if no actual argument expression is
bound to
      the formal argument in the instance.

I think that these are general statements about arguments in
SystemVerilog
(and other langauges) and do not have anything specifically to do with
1667.

The "initial value" of a local variable formal argument of direction
input
or inout is the value of the actual argument expression bound to that 
formal argument that is used in the initialization assignment.  In the 
singly-clocked case, this value will be determined from teh actual
argument
expression by using preponed values of non-local variable and current
values
of local variables in the timestep in which the attempt begins.  In the 
multiply-clocked case with multiple semantic leading clocks, then the
initial
value is determined separately for each semantic leading clock, as
described 
in the changes to 16.13.7.

> Also, it seems inconsistent to state that "It shall be
> illegal to specify a default actual argument for a local variable
> argument of direction inout or output." And "The directions input and
> inout indicate the instantiation context is expected to provide an
> initial value for the local variable argument." Which is stated in the
> "goal of this proposal" but not in the proposal.

The initial value for an inout must be provided by the actual argument
specified in the instance.

For an inout or output local variable, a value is supposed to be
returned
to the instantiation context.  The recipient of that value is the local
variable referenced in the associated actual argument.  This is why 
the use of default actual arguments is not allowed -- if the default 
actual argument were bound to the local variable formal argument, then
this would mean that there is no recipient specified for the output
value
in the instantiation context.

> 4. In the example sub_seq2, the value of v1 is assigned the value of
> "lv" which is data_in, right?  Is it true that it is only assigned to
> the output at the sequence match and not earlier?=20

In the example in 16.7.2, v1 is passed as actual to lv.  The initial
value
of lv is the value of v1 at the beginning of the attempt of sub_seq2.
This
is the same as the value of data in the preceding cycle (see the text of
seq2).
Later (upon matching a ##1 !a), sub_seq2 updates lv by 

   lv += data_in

This value is the value in lv that flows out of the match of sub_seq2,
and
so this value gets assigned into v1 at completion of the match.

> x-mimeole: Produced By Microsoft Exchange V6.5
> Content-class: urn:content-classes:message
> Date: Mon, 14 Jan 2008 13:44:35 -0500
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: [sv-ac] call to vote on 1667
> Thread-Index: AchSKIjkj4KrehoOSxGyeeUwY1qqpgEpNISQ
> From: "Lisa Piper" <piper@cadence.com>
> X-Received: By mx-sanjose.cadence.com as m0EIibc3015321 at Mon Jan 14
10:44:37 2008
> X-OriginalArrivalTime: 14 Jan 2008 18:45:08.0157 (UTC)
FILETIME=[95D4C6D0:01C856DD]
> 
> Hi John,
> 
> I have the following questions/comments:
> 
> 1. in the illegal examples, you mention that event is a type
disallowed
> in 16.5.1. Unfortunately, we defined an "event" type in 1549. It may
not
> be exactly the same as that defined in 16.5.1, but I think that is
> confusing.
> 
> 2. "It shall be an error if there exists a match of the named sequence
> for which an inout or output local variable formal argument is
> unassigned at the completion of the match."   Does this make sense for
> an inout? I thought an inout would have a default initial value, so
what
> does "unassigned" really mean?
> 
> 3. "If a local variable formal argument has direction input, then a
> default actual argument may be specified for that argument in the
> optional declaration assignment in the port item, subject to the rules
> for default actual arguments described in 16.7."   I am confused
between
> "default actual argument" and "initialization value".  How do I
> distinguish?  Also, it seems inconsistent to state that "It shall be
> illegal to specify a default actual argument for a local variable
> argument of direction inout or output." And "The directions input and
> inout indicate the instantiation context is expected to provide an
> initial value for the local variable argument." Which is stated in the
> "goal of this proposal" but not in the proposal.
> 
> 4. In the example sub_seq2, the value of v1 is assigned the value of
> "lv" which is data_in, right?  Is it true that it is only assigned to
> the output at the sequence match and not earlier?=20
> 
> Lisa
> 
> -----Original Message-----
> From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of
John
> Havlicek
> Sent: Tuesday, January 08, 2008 1:39 PM
> To: sv-ac@eda.org
> Subject: [sv-ac] call to vote on 1667
> 
> Hi Folks:
> 
> This is the call to vote on 1667.  I think it is better to
> review the capability now before the VPI stuff is added in
> case there are issues.
> 
> The proposal on Mantis is in two parts:
> 
>   1667_part_1_2008-01-07_jhec.pdf
>   1667_part_2_2008-01-07_jh.pdf
> 
> 
> Please vote if you are eligible.  See the details below.
> 
> J.H.
> 
>
------------------------------------------------------------------------
> ----------
> Ballot on Mantis 1667
> 
> - Called on 2008-01-08, final ballots due by 2008-01-14 T 23:59-08:00.
> 
>  v[xxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx-xx] Doron Bustan
> (Intel)
>  v[xxxx--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-x] Eduard Cerny
> (Synopsys)    =20
>  n[---------------------x-xxx---------x-x-xxx-x---x] Surrendra Dudani
> (Synopsys)
>  v[xxxxxxx-xxxxxx-xxxxxxxxx-xx-xxxxx-xxx-xxx-------] Yaniv Fais
> (Freescale)
>  t[xxx--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] John Havlicek
> (Freescale - Chair)
>  v[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrxxxxxxxxxxxxx-xxx] Dmitry Korchemny
> (Intel - Co-Chair)
>  v[xxxx-xxxxxxxxx-xxx-x--xx--xxxxx----------xx-xxxx] Manisha
Kulshrestha
> (Mentor Graphics)
>  n[-----------------------------xxxxx-------x-xx-x-] Jiang Long
(Mentor
> Graphics)
>  n[--------x------------x--xxx.....................] Joseph Lu
(Altera)
>  v[xxxxxxxxxxxxxxxxxx..............................] Johan Martensson
> (Jasper)
>  n[--------------------------x--x-xx--xx-xxxxxxx-x-] Hillel Miller
> (Freescale)
>  v[xxxx-xxxx-xxxxxxxxxxxxxxxxxxx-xxxxxxxx-xxxxxxxxx] Lisa Piper
> (Cadence)
>  v[xxxxx-x-x-xx-xxxxxxx-x-xxxxx-x..................] Erik Seligman
> (Intel)
>  n[------x-x----x--------xxxx-----xxxx-xx----------] Tej Singh (Mentor
> Graphics)
>  v[xxxxx-x-xxxxxx--xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxx] Bassam Tabbara
> (Synopsys)
>  v[xxxxxxxx-xxxxxxxxxxxxx-xxxxxxxxxx...............] Tom Thatcher (Sun
> Microsystems)
>    |------------------------------------------------ attendance on
> 2008-01-08
>  |-------------------------------------------------- voting
eligibility
> for this ballot
> |--------------------------------------------------- email ballots
> received
> 
>         Legend:
>                 x =3D attended
>                 - =3D missed
>                 r =3D represented
>                 . =3D not yet a member
>                 v =3D valid voter (2 out of last 3 or 3/4 overall)
>                 n =3D not a valid voter
>                 t =3D chair eligible to vote only to make or break a
tie
> 
> 
> 
> --=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 Jan 15 05:32:06 2008

This archive was generated by hypermail 2.1.8 : Tue Jan 15 2008 - 05:32:40 PST