VHDL Issue Number: 1098 Classification: Language Definition Problem Language Version: VHDL-93 Summary: Can variable parameters be left unassociated or not? Related Issues: Relevant LRM Sections: 2.1.1, 4.3.2.2 Key Words and Phrases: open, unassociated, variable parameters, interface variables Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1994/09/12 Author of Submission: Daniel S. Barclay Author's Affiliation: COMPASS Design Automation, Inc. Author's Post Address: 5457 Twin Knolls Rd. Suite 100 Columbia, MD 21045 USA Author's Phone Number: 410-992-5700 Author's Fax Number: 410-992-3536 Author's Net Address: daniel@compass-da.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.6 $ Date Last Revised: $Date: 1995/05/15 20:07:17 $ Description of Problem ---------------------- Is is not clear whether variable parameters can ever be left unassociated or associated with an actual of "open". [LRM quotes are from the almost-final 1994/06/24 version. The notation {\i word} indicates that the word (or words) is italicized; {\b word} indicates that the word (or words) is in boldface type.] The LRM is inconsistent in its treatment of variable parameters regarding whether they can be associated with "open" (or left unassociated) or not. Section 4.3.2.2 says: If an interface element in an interface list includes a default expression for a formal generic, for a formal port of any mode other than {\b linkage}, or for a formal variable or constant parameter of mode {\b in}, then any corresponding association list need not include an association element for that interface element. Given the explicit mention of "formal variable ... parameter", this says that such variable parameters may be left unassociated. Section 4.3.2.2 continues: If the association element is not included in the association list, or if the actual is {\b open}, then the value of the default expression is used as the actual expression or signal value in an implicit association element for that interface element. This says that the default value of the variable parameters is used as the actual expression value in an implicit association element for that variable parameter. However, the default expression is illegal as the actual for the variable parameter. Section 2.1.1 says: The actual designator associated with a formal of class {\b variable} must be a variable. Therefore, it is illegal to omit the association element for any variable parameter, contradicting the earlier statement that some such association elements need not be included. Additionally, note that section 12.2.2 (The generic map aspect) and section 12.2.4 explicitly deal with the elaboration of association elements containing actuals of "open" in port and generic association lists, but that no LRM wording addresses "open" for variable parameters or constant parameters. Proposed Resolution ------------------- Define what is allowed for variable parameters clearly and without contradictions. If the intended difference between constant parameters of mode in and variable parameters of mode in is that constant parameters can accept expressions as actuals, but that variable parameters accept only variable names as actuals, then do not allow variable parameters to be associated with "open" or left unassociated. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD