VHDL Issue Number: 0249 Classification: Language Definition Problem Language Version: VHDL-87 Summary: Visibilty outside of design units is not well-defined. Related Issues 92, 110, 111, 113, 242, 245, tangential 35, 243, possible 48 Relevant LRM Sections: Key Words and Phrases: library visibility, declarative region, scope Current Status: Submitted 1076-1993 Disposition: Superseded (ISAC Issues Outstanding) Disposition Rationale: N/A Superseded By: 1050 ----------------------- Date Submitted: 1992/01/10 Author of Submission: Alex Zamfirescu Author's Affiliation: Vantage Analysis Systems Inc. Author's Post Address: 42848 Christy Street, Suite 200 Fremont, CA. 94538 Author's Phone Number: (510) 659-0901 Author's Fax Number: Author's Net Address: uunet!vntage!anz ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.10 $ Date Last Revised: $Date: 1995/07/27 00:25:39 $ Description of Problem ---------------------- Consider the folowing example: library L; --Line 1 entity E is --Line 2 --Line 3 ** end E; --Line 4 --Line 5 use L.p.all; --Line 6 architecture A of E is --Line 7 --Line 8 **_continued begin --Line 9 **_continued --Line 10 **_continued end A; --Line 11 The LRM is not clear about the visibility of L outside the architecture (line 6). The scope of L starts after the ";" on line 1 and ends at the end of the declarative region associated with the entity (in our example line 11). The declarative region for the entity e is marked by "**" and "**_continued" for the continuation inside the architecture outer block. This declarative region does not include line 6 in our example. However, according to the majority interpretation, the use clause on line 6 is legal. It is not clear how the scope of L gets out of the declarative region for e-a and then back in. Proposed Resolution ------------------- Assume an "outer declarative region" that has the special properties like the following: 1. Library logical names and the name of the design unit are considered to be declared in this "outer or global declarative region." 2. If a string of design files is analyzed in order, the "outer declarative region" starts at the top of the first analyzed design file and continues into the next analyzed design file. 3. The second and subsequent appearances of the same library logical name in the same library clause or in diferent library clauses defining libraries for the same design unit have no effect and should be ignored. 4. An architecture body identifier may be the same as the identifier for the corresponding entity declaration. 5. Other special rules as required. VASG-ISAC Analysis & Rationale ------------------------------ Missing or purely defined semantic for visibility outside design units is apparently leading to similar problems as described in the following issue reports: IR-0092: Visibility of an architecture body identifier is unclear. IR-0110: May library names be redefined between the analysis of a primary unit and a corresponding secondary unit? IR-0111: What are the semantics of duplicate library name definitions? IR-0113: Scope of expanded names is unclear. IR-0242: Is every library unit assumed to occur within package STANDARD ? IR-0245: Direct visibility rules for USE clauses are incomplete The VASG-ISAC Recommendation for this IR might effect the correct resolutions for the following reports: IR-0035: Enumeration literals, physical units, and library names cannot be attributed. IR-0048: Entity aspect in default binding indication is unclear. IR-0243: Scope and visibility rules for predefined attributes. VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD