VHDL Issue Number: Classification: Definition Problem Language Version: VHDL-93 Summary: Meaning of a changed value for reals is not clear Related Issues: Relevant LRM Sections: 12.6.2 Key Words and Phrases: event, standard operators Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1996/07/16 Author of Submission: Chuck Swart Author's Affiliation: Analogy Author's Post Address: 9205 SW Gemini Drive Beaverton OR 97008 Author's Phone Number: 503-520-2741 Author's Fax Number: 503-643-3361 Author's Net Address: cswart@analogy.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.1 $ Date Last Revised: $Date: 1996/07/16 22:17:30 $ Description of Problem ---------------------- Section 12.6.2 of the VHDL93 LRM states: "If updating a signal causes the current value of that signal to change, then an event is said to have occurred on the signal." Suppose a signal has real numbers as values and a signal value changes from +0.0 to -0.0. Has an event ocurred? Note that most, perhaps all, current implementations use either "IEEE Standard for Binary Floating-Point Arithmetic (ANSI)", 754-1985 or "IEEE Standard for Radix-Independent Floating-Point Arithmetic (ANSI)", 854-1987. Under these standards plus and minus zero have different representations, so the decision of whether or not an event ocurred is not obvious. This problem was discovered while testing the Math Package. As analog simulation becomes more common, then more extensive use will be made of real numbers in VHDL, and answers to questions like these will become more important. Proposed Resolution ------------------- An event occurs if the standard = operator returns FALSE when supplied with the current value and previous values of the signal. So, in the example above, an event has not occurred, since +0.0 is equal to -0.0. Alternatively, an event occurs if two values have different representations. So, in the example above, an event has occurred if real numbers are implemented by an appropriate IEEE standard. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD