| |
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_name
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 ::=
expression
| signal_name
| open