I submitted this as a bug. The generated IR is attached.
-Steve Bailey
> -----Original Message-----
> From: Peter Ashenden [mailto:peter@ashenden.com.au]
> Sent: Tuesday, December 14, 2004 5:16 PM
> To: 'Erich Marschner'; Bailey, Stephen
> Cc: 'Jim Lewis'; 'VHDL-200x'; Swart, Chuck
> Subject: RE: [vhdl-200x] VHDL LRM issue re: S'Last_Value
>
> Erich,
>
> Thanks for raising the issue.
>
> Steve et al: I'd suggest we inject this into ISAC. We've
> established a good process for addressing issues in a timely
> manner. Where required, I'm turning them into LCSs for the next rev.
>
> Cheers,
>
> PA
>
> --
> Dr. Peter J. Ashenden peter@ashenden.com.au
> Ashenden Designs Pty. Ltd. www.ashenden.com.au
> PO Box 640 Ph: +61 8 8339 7532
> Stirling, SA 5152 Fax: +61 8 8339 2616
> Australia Mobile: +61 414 70 9106
>
>
> > -----Original Message-----
> > From: owner-vhdl-200x@eda.org
> > [mailto:owner-vhdl-200x@eda.org] On Behalf Of Erich Marschner
> > Sent: Wednesday, 15 December 2004 06:46
> > To: Bailey, Stephen
> > Cc: Jim Lewis; VHDL-200x
> > Subject: [vhdl-200x] VHDL LRM issue re: S'Last_Value
> >
> >
> >
> > Steve,
> >
> > This is a reminder regarding the VHDL LRM issue that we noted today
> > during the IEEE 1850 Extensions SC meeting.
> >
> > Issue: Definition of S'Last_Value was apparently broken in 1993
> >
> > Summary:
> > - VHDL 87 defines the value of S'Last_Value at time 0
> (and prior to
> > the first change on S) to be equal to S.
> > - VHDL 93 does not appear to define the value of S'Last_Value at
> > time 0 / prior to the first change on S.
> > - VHDL 2002 contains the same definition as in VHDL 93
> >
> > Details:
> >
> > The VHDL 1076-1987 LRM contains the following definition for
> > S'Last_Value (on page 14-8):
> >
> > S'LAST_VALUE
> > Kind: Function
> > Prefix: Any signal denoted by the static signal name S.
> > Result Type: The base type of S.
> > Result: The previous value of S, immediately before the last
> > change of S. Specifically:
> >
> > For a scalar signal S, S'LAST_VALUE = S'DELAYED(T) where T >=
> > 0ns is the
> > smallest value such that S'STABLE(T) is FALSE. If no such T
> > exists, then
> > S'LAST_VALUE is equal to S.
> >
> > For a composite signal S, S'LAST_VALUE is equal to
> the aggregate
> > of the previous
> > values of each element of S.
> >
> > Note that this defines the value of S'Last_Value at time 0,
> by saying
> > that if no previous change on S occurred (i.e., no
> > T>=0ns exists for which S'STABLE(T) = False), then
> > S'Last_Value is equal to S. This applies at time 0, since
> all signals
> > are presumed to be stable at time 0, and to have had their initial
> > values for an infinite time into the past (see 12.6.4, The
> simulation
> > cycle, first bullet of initialization phase), and furthermore
> > continues to apply up until the first change on S.
> >
> > The VHDL 1076-1993 LRM contains the following definition for
> > S'Last_Value (on page 188):
> >
> > S'LAST_VALUE
> > Kind: Function
> > Prefix: Any signal denoted by the static signal name S.
> > Result Type: The base type of S.
> > Result: The previous value of S, immediately before the last
> > change of S.
> >
> > Note that the specific details were apparently deleted, so the new
> > definition no longer addresses the issue of the value at time zero
> > (and up until the first change), nor does it address the meaning of
> > S'Last_Value for a composite signal S.
> > It may be that it is unnecessary to define S'Last_Value separately
> > for scalar and composite signals, but it is clearly important to
> > define the value of S'Last_Value at time 0 (and prior to the first
> > change on S).
> >
> > The VHDL 1076-2002 LRM contains the same definition of S'Last_Value
> > (on page 198) as appears in the VHDL 1076-1993 LRM.
> >
> > Recommendation:
> >
> > Restore the definition of S'LAST_VALUE to the form that appeared in
> > the VHDL 1076-1987 LRM.
> >
> > Regards,
> >
> > Erich
> >
> > -------------------------------------------
> > Erich Marschner, Cadence Design Systems Senior Architect, Advanced
> > Verification
> > Phone: +1 410 750 6995 Email: erichm@cadence.com
> > Cell: +1 410 294 2599 Email: erichm@comcast.net
> >
> >
>
>
attached mail follows:
The following IR arrived over the Worldwide Web.
The remote user's system is (67.173.250.58).
-------------BEGINNING OF IR----------------
VHDL Issue Number:
Language_Version: VHDL-2002
Classification: Language Definition Problem
Summary: Definition of S'Last_Value was apparently broken in 1993
Relevant_LRM_Sections: Section 14.
Description_of_Problem: - VHDL 87 defines the value of S'Last_Value at time 0 (and prior to the first change on S) to be equal to S.
- VHDL 93 does not appear to define the value of S'Last_Value at time 0 / prior to the first change on S.
- VHDL 2002 contains the same definition as in VHDL 93
The VHDL 1076-1987 LRM contains the following definition for S'Last_Value (on page 14-8):
S'LAST_VALUE
Kind:
Function
Prefix: Any signal denoted by the static signal name S.
Result Type: The base type of S.
Result: The previous value of S, immediately before the last change of S. Specifically:
For a scalar signal S, S'LAST_VALUE = S'DELAYED(T) where T >= 0ns is the
smallest value such that S'STABLE(T) is FALSE. If no such T exists, then
S'LAST_VALUE is equal to S.
For a composite signal S, S'LAST_VALUE is equal to the aggregate of the previous
values of each element of S.
Note that this defines the value of S'Last_Value at time 0, by saying that if no previous change on S occurred (i.e., no T>=0ns exists for which S'STABLE(T) = False), then S'Last_Value is equal to S. This applies at time 0, since all signals are presumed to be stable at time 0, and to have had their initial values for an infinite time into the past (see 12.6.4, The simulation cycle, first bullet of initialization phase), and furthermore continues to apply up until the first change on S.
The VHDL 1076-1993 LRM contains the following definition for S'Last_Value (on page 188):
S'LAST_VALUE
Kind: Function
Prefix: Any signal denoted by the static signal name S.
Result Type: The base type of S.
Result: The previous value of S, immediately before the last change of S.
Note that the specific details were apparently deleted, so the new definition no longer addresses the issue of the value at time zero (and up until the first change), nor does it address the meaning of S'Last_Value for a composite signal S. It may be that it is unnecessary to define S'Last_Value separately for scalar and composite signals, but it is clearly important to define the value of S'Last_Value at time 0 (and prior to the first change on S).
The VHDL 1076-2002 LRM contains the same definition of S'Last_Value (on page 198) as appears in the VHDL 1076-1993 LRM.
Proposed_Resolution: Recommendation:
Restore the definition of S'LAST_VALUE to the form that appeared in the VHDL 1076-1987 LRM.
Related_Issues:
Key_Words_and_Phrases: 'last_value
Authors_Name: Erich Marschner
Authors_Phone_Number: 410 750 6995
Authors_Fax_Number:
Authors_Email_Address: erichm@cadence.com
Authors_Affiliation: Cadence
Authors_Address1:
Authors_Address2:
Authors_Address3:
irmail.pl: Submit Issue Report
Current Status:
1076-1993 Disposition:
Disposition Rationale:
Superseded By:
------------------------
Date Submitted: 14 December 104
Date Analyzed:
Author of Analysis:
Revision Number: $Revision$
Date Last Revised: $Date$
Description of Problem
----------------------
TBD
Proposed Resolution
-------------------
TBD
VASG-ISAC Analysis & Rationale
------------------------------
TBD
VASG-ISAC Recommendation for IEEE Std 1076-1993
-----------------------------------------------
TBD
VASG-ISAC Recommendation for Future Revisions
---------------------------------------------
TBD
-------------END OF IR----------------
Received on Tue Dec 14 21:28:12 2004
This archive was generated by hypermail 2.1.8 : Tue Dec 14 2004 - 21:28:57 PST