RE: [vhdl-200x] VHDL LRM issue re: S'Last_Value

From: Peter Ashenden <peter@ashenden.com.au>
Date: Tue Dec 14 2004 - 16:15:50 PST

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