|
LCS-2016-070a |
|
1 |
|
26-Mar-2017 |
|
Voting |
|
Patrick Lehmann Martin Zabel |
|
Main.PatrickLehmann Main.MartinZabel |
|
Bidirectional Connections |
|
Adds signal map aspects to concurrent signal associations. |
association_list ::=
association_element { , association_element }
association_element ::=
[ formal_part => ] actual_part
formal_part ::=
formal_designator
| function_name ( formal_designator )
| type_mark ( formal_designator )
formal_designator ::=
generic_name
| port_name
| parameter_name
actual_part ::=
actual_designator
| function_name ( actual_designator )
| type_mark ( actual_designator )
actual_designator ::=
[ inertial ] expression
| signal_name
| signal_map_aspect
| variable_name
| file_name
| subtype_indication
| subprogram_name
| instantiated_package_name
| open
Each association element in an association list associates one actual designator with the corresponding interface element in the interface list
signal_map_aspect ::=
map ( signal_association_list )
signal_association_list ::=
signal_association_element { , signal_association_element } [ , ] optional comma, if LCS-2016-071b is approved
signal_association_element ::=
[ signal_association_formal_part => ] signal_association_actual_part
signal_association_formal_part ::=
signal_association_formal_designator
| function_name ( signal_association_formal_designator )
| type_mark ( signal_association_formal_designator )
signal_association_formal_designator ::=
subelement_name
signal_association_actual_part ::=
signal_association_actual_designator
| function_name ( signal_association_actual_designator )
| type_mark ( signal_association_actual_designator )
signal_association_actual_designator ::=
signal_name
| open
Both named and positional association are allowed in a signal association list.
The following definitions are used in the remainder of this subclause:
concurrent_signal_association_statement ::=
[ label : ] concurrent_simple_signal_association
concurrent_simple_signal_association ::=
lhs_signal_association_target <=> rhs_signal_association_target ;
lhs_signal_association_target <=> rhs_signal_association_target ;
signal_association_target ::=
signal_name
lhs_signal_association_target ::=
signal_name
rhs_signal_association_target ::=
signal_name
| signal_map_aspect
A signal association implies no direction of information exchange between signal association targets (henceforth referred to as targets). actual_designator ::= [ inertial ] expression | signal_name | signal_map_aspect | variable_name | file_name | subtype_indication | subprogram_name | instantiated_package_name | open [...] concurrent_assertion_statement ::= [ label : ] [ postponed ] assertion ; concurrent_signal_association_statement ::= [ label : ] concurrent_simple_signal_association concurrent_conditional_signal_assignment ::= target <= [ guarded ] [ delay_mechanism ] conditional_waveforms ; concurrent_procedure_call_statement ::= [ label : ] [ postponed ] procedure_call ; concurrent_selected_signal_assignment ::= with expression select [ ? ] target <= [ guarded ] [ delay_mechanism ] selected_waveforms ; concurrent_signal_assignment_statement ::= [ label : ] [ postponed ] concurrent_simple_signal_assignment | [ label : ] [ postponed ] concurrent_conditional_signal_assignment | [ label : ] [ postponed ] concurrent_selected_signal_assignment concurrent_simple_signal_association ::= lhs_signal_association_target <=> rhs_signal_association_target ;lhs_signal_association_target <=> rhs_signal_association_target ;concurrent_simple_signal_assignment ::= target <= [ guarded ] [ delay_mechanism ] waveform ; concurrent_statement ::= block_statement | process_statement | concurrent_procedure_call_statement | concurrent_assertion_statement | concurrent_signal_assignment_statement | concurrent_signal_association_statement | component_instantiation_statement | generate_statement | PSL_PSL_Directive [...] lhs_signal_association_target ::= signal_name [...] rhs_signal_association_target ::= signal_name | signal_map_aspect [...] signal_map_aspect ::= map ( signal_association_list )signal_association_target ::= signal_namesignal_association_list ::= signal_association_element { , signal_association_element } [ , ] optional comma, if LCS-2016-071b is approved signal_association_element ::= [ signal_association_formal_part => ] signal_association_actual_part signal_association_formal_part ::= signal_association_formal_designator | function_name ( signal_association_formal_designator ) | type_mark ( signal_association_formal_designator ) signal_association_formal_designator ::= subelement_name signal_association_actual_part ::= signal_association_actual_designator | function_name ( signal_association_actual_designator ) | type_mark ( signal_association_actual_designator ) signal_association_actual_designator ::= expression | signal_name | open