VHDL Issue Number: 0111 Classification: Language Definition Problem Language Version: VHDL-87 Summary: What are the semantics of duplicate library name definitions? Related Issues: 0110 Relevant LRM Sections: 11.2 Key Words and Phrases: Libary names. Current Status: ISAC-Approved 1076-1993 Disposition: Bugs Fixed, Enhancements Outstanding (No ISAC Issues) Disposition Rationale: Non-ISAC issues outstanding. Superseded By: N/A ----------------------- Date Submitted: 1988/07/07 Author of Submission: Paul Menchini Author's Affiliation: CAD Language Systems, Inc. Author's Post Address: P.O. Box 13036 Research Triangle Park, NC 27709-3036 Author's Phone Number: (919) 361-1913 Author's Fax Number: Author's Net Address: mench@clsi.com ----------------------- Date Analyzed: 1991/01/05 Author of Analysis: Alex Zamfirescu Revision Number: $Revision: 1.9 $ Date Last Revised: $Date: 1995/08/03 18:31:38 $ Description of Problem ---------------------- The LRM implies that library logical names follow the normal scoping rules of VHDL declarations, but does not define library logical names as declarations. Consequently, it is unclear whether or not the following library clause is legal: library L, L; If it is, what is its meaning? Proposed Resolution ------------------- Define the semantics of multiple library name definitions to be identical to a single definition. In other words, assume that the above library clause means exactly the same as: library L; VASG-ISAC Analysis & Rationale ------------------------------ There are two cases to be considered in relation to the multiple library name definitions: CASE 1. (a) library L, L; or (b) library A, B, L, X, L; CASE 2. (a) library L; library L; or (b) library A, B, L; ................. library X, L; In case number 1 the same library name L is repeated in the same library clause, while the second case contains multiple library name definitions in different library clauses that could be separated by other library clauses or, as in the following example, could appear before maching primary-secondary pairs: library A, B, L; entity E is end; library X, L; architecture ARCH of E is begin end; Since the LRM does not specify that library logical names are declared in the library clause, it is possible to have library clauses defining the same library name several times. The decision for cases 1.(a) and 2.(a) above is simple. This cases are equivalent to: library L; Ignoring one of the appearances of library name L in cases 1.(b) and 2.(b) was the ISAC recommendation. The only diference here is that in order to maintain portability of library search, a choice was done to ignore the second and subsequent appearances of the same library logical name. In other words, superfluous library clauses or logical names in library clauses have no effect and should be ignored. The library search order can be maintained by discarding only the second and subsequent appearances of the same library name. VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- 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. VASG-ISAC Recommendation for Future Revisions --------------------------------------------- Future revisions of the LRM could include the case of multiple library logical name in a precise description of the library search order related to default configurations.