|
LCS-2016-045a |
|
6 |
|
2017-Mar-30 |
|
Voting |
|
Jim Lewis, Patrick Lehmann, Lieven Lemiengre |
|
Interface Construct and Port Mode Configurations Use Case - Complex RTL Signal CPU Interface |
|
History |
|
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 ]
interface_file_declaration ::=
file identifier_list : subtype_indication
mode_indication ::=
simple_mode_indication
| mode_view_indication
simple_mode_indication ::=
[ mode ] subtype_indication [ bus ] [ := static_expression ]
mode ::= in | out | inout | buffer | linkage
mode_view_indication ::=
record_mode_view_indication
| array_mode_view_indication
record_mode_view_indication ::=
view mode_view_name [ of unresolved_record_subtype_indication ]
array_mode_view_indication ::=
view ( mode_view_name ) of unresolved_array_subtype_indication
mode_view_declaration ::=
view identifier of unresolved_record_subtype_indication is
{ mode_view_element_definition }
end view [ mode_view_simple_name ] ;
mode_view_element_definition ::=
record_element_list : element_mode_indication ;
record_element_list ::=
record_element_simple_name { , record_element_simple_name }
element_mode_indication ::=
mode
| element_mode_view_indication
element_mode_view_indication ::=
element_record_mode_view_indication
| element_array_mode_view_indication
element_record_mode_view_indication ::=
view mode_view_name
element_array_mode_view_indication ::=
view ( mode_view_name )
entity_class ::=
[all unspecified items are unchanged]
| sequence
| view
array_mode_view_indication ::=
view ( mode_view_name ) [ of unresolved_array_subtype_indication ]
block_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
element_mode_indication ::=
mode
| element_mode_view_indication
entity_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
element_array_mode_view_indication ::=
view ( mode_view_name )
element_mode_indication ::=
mode
| element_mode_view_indication
element_mode_view_indication ::=
element_record_mode_view_indication
| element_array_mode_view_indication
element_record_mode_view_indication ::=
view mode_view_name
interface_signal_declaration ::=
[ signal ] identifier_list : [ mode ] subtype_indication [ bus ] [ := static_expression ] signal_mode_indication
mode_indication ::=
simple_mode_indication
| mode_view_indication
mode_view_declaration ::=
view identifier of unresolved_record_subtype_indication is
{ mode_view_element_definition }
end view [ mode_view_simple_name ] ;
mode_view_element_definition ::=
record_element_list : element_mode_indication ;
mode_view_indication ::=
record_mode_view_indication
| array_mode_view_indication
package_declarative_item ::=
[beginning items unchanged]
| type_declaration
| subtype_declaration
| mode_view_declaration
| constant_declaration
[remaining items unchanged]
record_element_list ::=
record_element_simple_name { , record_element_simple_name }
record_mode_view_indication ::=
view mode_view_name [ of unresolved_record_subtype_indication ]
simple_mode_indication ::=
[ mode ] subtype_indication [ bus ] [ := static_expression ]