|
LCS-2016-045a |
|
4 |
|
2017-Mar-25 |
|
Voting |
|
Brent Hayhoe and Main.JimLewis |
|
Interface Construct and Port Mode Configurations Use Case - Complex RTL Signal CPU Interface |
|
Provide the independent interface mode control for the elements of composite type objects |
|
LCS-2016-045b LCS-2016-045c |
entity_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
block_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
package_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
interface_object_declaration ::=
interface_constant_declaration
| interface_signal_declaration
| interface_variable_declaration
| interface_file_declaration
interface_constant_declaration ::=
[ constant ] identifier_list : [ in ] subtype_indication [ := static_expression ]
interface_signal_declaration ::=
[ signal ] identifier_list : [ mode ] subtype_indication [ bus ] [ := static_expression ] signal_mode_indication
interface_variable_declaration ::=
[ variable ] identifier_list : [ mode ] subtype_indication [ := static_expression ] variable_mode_indication
interface_file_declaration ::=
file identifier_list : subtype_indication
mode_indication ::=
[ mode ] subtype_indication [ bus ] [ := static_expression ]
| mode_view_indication
mode ::= in | out | inout | buffer | linkage
mode_view_indication ::=
view mode_view_name [ of unresolved_composite_subtype_indication ]
mode_view_declaration ::= view identifier of unresolved_composite_subtype_indication is { mode_view_element_definition } end view [ mode_view_simple_name ] ; mode_view_element_definition ::= composite_element_list : element_mode_indication ; composite_element_list ::= composite_element_choice { , composite_element_choice } element_mode_indication ::= mode | mode_view_indicationA mode view declaration applies to the specified type or subtype as well as any other subtype that is a subtype of the same base type. For a mode view declaration, it is an error if either a resolution function appears in the subtype indication or the subtype is a resolved subtype. However, the elements of a composite may be resolved subtypes. If the type or subtype of a mode view declaration denotes a record, the composite element choice shall be an identifier. Each record element identifier of the type or subtype shall have a corresponding identifier in the mode view declaration. If the type or subtype of a mode view declaration denotes an array, the composite element choice shall be a simple expression, a discrete range, or the key word others. In addition, each element of the array shall have the same mode or mode view indication. It is an error if the mode of an element mode indication is linkage.
entity_class ::=
[all unspecified items are unchanged]
| sequence
| view
composite_element_list ::= [§ 6.5.2.1.1]
composite_element_choice { , composite_element_choice }
entity_class ::= [§ 7.2]
interface_signal_declaration ::= [§ 6.5.2]
interface_variable_declaration ::= [§ 6.5.2]
mode_indication ::= [§ 6.5.2]
mode_view_declaration ::= [§ 6.5.2.1.1]
mode_view_element_definition ::= [§ 6.5.2.1.1]
mode_view_header ::= [§ 6.5.2.1.1]
mode_view_indication ::= [§ 6.5.2]
package_declarative_item ::= [§ 4.7]