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 > >Received on Tue Dec 14 16:15:41 2004
This archive was generated by hypermail 2.1.8 : Tue Dec 14 2004 - 16:16:23 PST