VHDL Issue Number: 1011 Classification: Language Deficiencies and Modeling Problems Language Version: VHDL-93 Summary: Enumeration literals, physical units, and library names cannot be attributed. Related Issues: 0012, 0014, 0017, 0027, 0035 Relevant LRM Sections: 5.1 Key Words and Phrases: Enumeration literals, physical unit names, library logical names, files, attributes, generate parameters,attribute specifications Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1990/11/09 Author of Submission: Paul Menchini Author's Affiliation: Menchini Consultancy Author's Post Address: 2 Davis Drive, PO Box 13036 Research Triangle Park, NC 27709-3036 Author's Phone Number: (919) 361-1913 Author's Fax Number: (919) 990-8561 Author's Net Address: mench@clsi.com ----------------------- Date Analyzed: 1994/07/25 Author of Analysis: John Willis Revision Number: $Revision: 1.2 $ Date Last Revised: $Date: 1995/05/15 19:09:55 $ Description of Problem ---------------------- Section 5.1 allows virtually every VHDL entity that has a name to be given user-defined attributes. The exceptions are enumeration literals, physical unit names, and library logical names. In addition, the LRM is unclear whether certain named entities may be given user-defined attributes: Are files attributable as variables? Are attributes themselves attributable as constants? If we add a declarative part to generate statements (see Issue Report 27), are the generate parameters attributable as constants? The ability to attribute enumeration literals is of interest for synthesis applications. There may be other reasons to attribute physical unit names and library logical names. Proposed Resolution ------------------- Allow enumeration literals, physical unit namess, and library logical names to be given user-defined attributes. In addition, assume that files can be attributed as variables, attributes are themselves attributable as constants, and (if a declarative part is added to generate statements) generate parameters are attributable as constants. The following productions in Section 5.1 would have to be modified as shown: entity_class ::= entity | architecture | configuration | procedure | function | package | type | subtype | constant | signal | variable | component | label | literal | unit | library entity_designator ::= simple_name | operator_symbol | character_literal The entity class "literal" denotes enumeration literals. The class "unit" denotes physical unit names. The entity class "library" denotes library logical names. Other extensions may also be desirable so that similarly named enumeration literals of different types may be individually attributed. (Subprograms and operators would also benefit from this capability--see Issue Reports 12, 14, and 17.) Another desirable extension allows all enumeration literals of a given type to be attributed with a single specification. No other extensions are necessary for the support of physical unit names and library logical names. VASG-ISAC Analysis & Rationale ------------------------------ The 1993 VHDL revision provides for assigning attributes to physical unit names, enumeration literals, files (see 5.1). Since a generate parameter is a constant object, generate parameters are presumably attributed as constants. Since an attribute is referenced as a constant, attributes are presumably attributable as constants. Assignment of attributes to library names is still not provided in the 1993 VHDL revision. VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- Generate parameters and attributes should be attributable as if they were declared constants. VASG-ISAC Recommendation for Future Revisions --------------------------------------------- Libraries should be added to the list of attributable constructs for consistency. However, it should be noted that no one I spoke with on the topic felt a need to attribute libraries.