VHDL Issue Number: 1066 Classification: Language Definition Problem Language Version: VHDL-93 Summary: Conversion function definition assumes different types. Related Issues: 0127 Relevant LRM Sections: 12.6.2 Key Words and Phrases: Composite Types, Type Conversion Function, Association Elements Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1988/06/21 Author of Submission: Ken Scott (edited by Daniel Barclay) Author's Affiliation: Vantage Analysis Systems, Inc. Author's Post Address: 42840 Christy St., Suite 201 Fremont, CA 94538 Author's Phone Number: (415) 659-0901 Author's Fax Number: Author's Net Address: N/A ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.7 $ Date Last Revised: $Date: 1995/05/15 21:26:37 $ Description of Problem ---------------------- In the second full paragraph of chapter 12.6.2 (starts with "If a signal of a given ..."), there is an error. The first statement reads: "If a signal of a given composite type has a source that is of a different type (and therefore a conversion function or type conversion appears in the corresponding association element), then each scalar subelement of that signal is considered to be active if the source itself is active." The problem with this text is that it does not take care of the strange but legal case where the user has inserted a "type conversion function" whose parameter and return value are of the same type: function SIMPLE_TCF( SOURCE : TM ) return TM; This function does not translate between types, but nonetheless may translate the actual value of the source to something the user wants. The correct thing to do would be to consider each scalar subelement of the formal or actual to be active whenever its source is active. This is not implied in the LRM. There is a similiar statement that has the same error later on in the same paragraph concerning "port of a given composite type". Proposed Resolution ------------------- The following modified paragraph will fix the problem: "If a signal of a given composite type has a source WHICH GETS TRANS- LATED BY A CONVERSION FUNCTION OR TYPE CONVERSION APPEARING IN A PORT ASSOCIATION ELEMENT, then each scalar subelement is considered to be active if the source itself is active. Similiarly, if a port of a given composite type is associated with a signal WHOSE VALUE GETS TRANSLATED BY A CONVERSION FUNCTION OR TYPE CONVERSION APPEARING IN THE CORRESPONDING PORT ASSOCIATION ELEMENT, then each scalar subelement of that port is considered to be active if the actual signal itself is active." VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD