-------------BEGINNING OF IR---------------- VHDL Issue Number: 2051 Language_Version: VHDL-2002 Classification: Language Definition Problem Summary: path_name and instance_name do not allow for protected types Relevant_LRM_Sections: 14.1 Related_Issues: Key_Words_and_Phrases: protected type, path_name, instance_name, attribute Authors_Name: Peter Ashenden Authors_Phone_Number: +61 8 8339 7532 Authors_Fax_Number: Authors_Email_Address: peter@ashenden.com.au Authors_Affiliation: Ashenden Designs Authors_Address1: Authors_Address2: Authors_Address3: Current Status: VASG-Approved Superseded By: ------------------------ Date Submitted: 28 January 2004 Date Analyzed: 03 February 2005 Author of Analysis: Chuck Swart Revision Number: 4 Date Last Revised: 09 May 2005 Description of Problem ---------------------- The rules for the path_name and instance_name attributes do not describe how to form a package based path, a path to an instance or a full path to an instance for a named entity declared with a protected type. Proposed Resolution ------------------- In the rules for path_instance_element and full_path_instance_element, add shared_variable_simple_name as an alternative. Change the rule for package_based_path to package_based_path ::= leader library_logical_name leader [ package_simple_name leader ] { package_path_element leader } [ local_item_name ] package_path_instance_element ::= subprogram_simple_name signature | protected_type_simple_name VASG-ISAC Analysis & Rationale ------------------------------ The submitter is essentially correct. VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- Treat the standard as if the Recommendation for Future Revisions had been adopted. VASG-ISAC Recommendation for Future Revisions --------------------------------------------- Adopt the proposals recommended by the submitter with one typographical change: 1. Add simple name as an alternative to path_instance_element. 2. Add simple name as an alternative to full_path_instance_element. 3. Change the rule for package_based_path to package_based_path ::= leader library_logical_name leader [ package_simple_name leader ] { package_path_instance_element leader } --note change from submitter [ local_item_name ] Add the rule for package_path_instance_element: package_path_instance_element ::= subprogram_simple_name signature | simple_name 4. (Added in review) add label as an alternative to path_instance_element Add the following wording for full path instance element: There is one package path instance element for each subprogram body or shared variable of a protected type in the package between the package declaration or package body and the named entity denoted by the prefix. Similarly, there is one full path instance element for each component instantiation, block statement, generate statement, process statement, loop statement, subprogram body, or variable of a protected type in the design hierarchy between the root design entity and the named entity denoted by the prefix. and add the following wording for path instance element: There is one package path instance element for each subprogram body or shared variable of a protected type in the package between the package declaration or package body and the named entity denoted by the prefix. Similarly, there is one path instance element for each component instantiation, block statement, generate statement, process statement, loop statement, subprogram body, or variable of a protected type in the design hierarchy between the root design entity and the named entity denoted by the prefix. -------------END OF IR----------------