|
LCS-2016-070 |
|
3 |
|
26-Mar-2017 |
|
Voting |
|
Patrick Lehmann Martin Zabel |
|
Main.PatrickLehmann Main.MartinZabel |
|
Bidirectional Connections |
|
LCS2016_070_History |
|
Adds bidirectional connections aka. Spaceship assignments. |
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
concurrent_signal_association_statement ::=
[ label : ] concurrent_simple_signal_association
concurrent_simple_signal_association ::=
lhs_signal_association_target <=> rhs_signal_association_target ;
signal_association_target ::=
signal_name
A signal association implies no direction of information exchange between signal association targets (henceforth referred to as targets). & ' ( ) * + , - . / : ; < = > ` | [ ] ? @or one of the following compound delimiters, each composed of two or more adjacent special characters:
=> ** := /= >= <= <> <=> ?? ?= ?/= ?< ?<= ?> ?>= << >>
[...]
NOTE 2 -- The following names are used when referring to compound delimiters:
Delimiter | Name |
---|---|
=> | Arrow |
** | Double star, exponentiate |
:= | Variable assignment |
/= | Inequality (pronounced "not equal") |
>= | Greater than or equal |
<= | Less than or equal; signal assignment |
<> | Box |
<=> | Signal association |
?? | Condition conversion |
?= | Matching equality |
?/= | Matching inequality |
?< | Matching less than |
?<= | Matching less than or equal |
?> | Matching greater than |
?>= | Matching greater than or equal |
<< | Double less than |
>> | Double greater than |
[...] 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 ; 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 [...] signal_association_target ::= signal_name