Modeling a hardware error detector to indicate an event on a port in a feature group.
In this case, it's a power-on self-test (POST) which is supposed to send an event indicating that POST has found an error.
However, the Xtext grammar only recognizes port identifiers, not ports as part of a feature group.
The standard actually contradicts itself here. The syntax allows for a reference to a port in nested feature groups, but naming rule N5 of section E.10 states, "The port identifier in a detection event must exist in the namespace of the component containing the component error behavior specification."
I will assume that N5 is incorrect and update EMV2 to support referencing ports in feature groups.
brlarson commentedDec 19, 2019
Summary
Modeling a hardware error detector to indicate an event on a port in a feature group.
In this case, it's a power-on self-test (POST) which is supposed to send an event indicating that POST has found an error.
However, the Xtext grammar only recognizes port identifiers, not ports as part of a feature group.
Expected and Current Behavior
Grammar from AS5506/1A, page 109:
error_detection ::=
[ defining_error_detection_identifier : ] ( error_source_state | all )
-[ [ error_condition ] ]-> error_detection_effect ;
error_detection_effect ::=
( outgoing_port_reference | internal_event_reference ) ! [ ( error_code_value ) ]
outgoing_port_reference ::=
{ featuregroup_identifier . }* port_identifier
Xtext grammar from ErrorModel.xtext, line 577:
ErrorDetection returns ErrorDetection:
(name = ID ':' )?
((state=[ErrorBehaviorState|ID] (typeTokenConstraint=TypeTokenConstraint)?)|
allStates?='all' )
'-[' (condition=ConditionExpression)? ']->'
( detectionReportingPort=[aadl2::TriggerPort|ID] ) '!'
('('errorCode=ErrorCodeValue')')?
';'
;
detectionReportingPort may only be an identifier.
Environment
The text was updated successfully, but these errors were encountered: