| |
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