VHDL Issue Number: 2000 Language_Version: VHDL-2000 Classification: Language Definition Problem Summary: Where may/must deferred constant declaration appear Relevant_LRM_Sections: P1076 2000/D1 4.3.1.1 Related_Issues: Key_Words_and_Phrases: Authors_Name: Paul Graham Authors_Phone_Number: 734-994-3223 Authors_Fax_Number: Authors_Email_Address: pgraham@cadence.com Authors_Affiliation: Cadence Authors_Address1: Authors_Address2: Authors_Address3: Current Status: VASG-Approved Superseded By: ------------------------ Date Submitted: 2 March 2000 Date Analyzed: 28 October 2002 Author of Analysis: Chuck Swart Revision Number: 2 Date Last Revised: 09 May 2005 Description of Problem ---------------------- In the old days, section 4.3.1.1 said, referring to a deferred constant declaration: such a constant declaration may only appear in a package declaration. In 2000/D1, this section says: such a constant declaration must appear in a package declaration. I think the first form was more accurate. Consider the difference between employees may only smoke outside the building and employees must smoke outside the building The revised LRM wording makes it seem that every package declaration must contain a deferred constant declaration. Proposed Resolution ------------------- TBD VASG-ISAC Analysis & Rationale ------------------------------ The wording used in VHDL-2000 is at least confusing, and, strictly speaking, incorrect. VASG-ISAC Recommendation for IEEE Std 1076-2002 ----------------------------------------------- Interpret the LRM as it was intended: the only legal declarative region in which a deferred constant may occur is in a package header. VASG-ISAC Recommendation for Future Revisions --------------------------------------------- Replace the sentence in 4.3.1.1 which reads: "Such a constant declaration must appear in a package declaration." by something like: "It is an error if a deferred constant declaration appears anywhere other than in a package declaration." -------------END OF IR----------------