Concurrent Statement
The diagrams below draw one box per node kind, with one port per field. The edge colours say how a link is held; they are listed in full on the Fields page.
Iir_Kind_Sensitized_Process_Statement
Location is on the label, or ‘postponed’ or ‘process’.
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
ref |
Chain of attribute values for declared items. To be used with Get/Set_Value_Chain. There is no order, therefore, a new attribute value may be always prepended. |
|
|
|
owned |
The concurrent statement at the origin of that process. This is Null_Iir for a user process. |
|
|
|
chain |
— |
|
|
|
of maybe ref |
Sensitivity list. Must be after the statements, because signal aliases may be referenced (in case of implicit process). |
|
|
|
of ref |
Returns the list of subprogram called in this subprogram or process. Note: implicit function (such as implicit operators) are omitted from this list, since the purpose of this list is to correctly set flags for side effects (purity_state, wait_state). Can return null_iir if there is no subprogram called. |
|
|
|
owned |
Get/Set the wait state of the current subprogram or process. TRUE if it contains a wait statement, either directly or indirectly. FALSE if it doesn’t contain a wait statement. UNKNOWN if the wait status is not yet known. |
|
|
|
owned |
Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles). |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘is’ is present. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by ‘postponed’. |
|
|
|
owned |
Set when std.env.stop/finish is called. Prevents the infinite loop warning. |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
|
|
|
owned |
Get/Set the passive flag of a process. TRUE if the process must be passive. FALSE if the process may be not passive. For a procedure declaration, set if it is passive. |
Iir_Kind_Process_Statement
Location is on the label, or ‘postponed’ or ‘process’.
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
ref |
Chain of attribute values for declared items. To be used with Get/Set_Value_Chain. There is no order, therefore, a new attribute value may be always prepended. |
|
|
|
owned |
The concurrent statement at the origin of that process. This is Null_Iir for a user process. |
|
|
|
chain |
— |
|
|
|
of ref |
Returns the list of subprogram called in this subprogram or process. Note: implicit function (such as implicit operators) are omitted from this list, since the purpose of this list is to correctly set flags for side effects (purity_state, wait_state). Can return null_iir if there is no subprogram called. |
|
|
|
owned |
Get/Set the wait state of the current subprogram or process. TRUE if it contains a wait statement, either directly or indirectly. FALSE if it doesn’t contain a wait statement. UNKNOWN if the wait status is not yet known. |
|
|
|
owned |
Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles). |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘is’ is present. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by ‘postponed’. |
|
|
|
owned |
Set on wait, procedure call and composite statements when there is a sub-statement that can suspend a procedure or a process. Also set on procedure declaration. Note that the flag is conservative: it must be true if the node contains directly or indirectly a wait statement, but need not to be false otherwise. |
|
|
|
owned |
Set when std.env.stop/finish is called. Prevents the infinite loop warning. |
|
|
|
owned |
Get/Set the passive flag of a process. TRUE if the process must be passive. FALSE if the process may be not passive. For a procedure declaration, set if it is passive. |
Iir_Kind_Concurrent_Simple_Signal_Assignment
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
maybe ref |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
chain |
— |
|
|
|
ref |
If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment. |
|
|
|
owned |
— |
|
|
|
owned |
Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
True if the target of the assignment is guarded |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
Iir_Kind_Concurrent_Conditional_Signal_Assignment
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
maybe ref |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
chain |
— |
|
|
|
ref |
If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment. |
|
|
|
owned |
— |
|
|
|
owned |
Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
True if the target of the assignment is guarded |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
Iir_Kind_Concurrent_Selected_Signal_Assignment
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
maybe ref |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Expression for an various nodes. |
|
|
|
chain |
— |
|
|
|
ref |
If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment. |
|
|
|
owned |
— |
|
|
|
owned |
Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
Matching condition for case statement. |
|
|
|
owned |
True if the target of the assignment is guarded |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
Iir_Kind_Concurrent_Assertion_Statement
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Condition of an assertion. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
Severity expression of an assertion or report statement. |
|
|
|
owned |
Report expression of an assertion or report statement. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
Iir_Kind_Concurrent_Procedure_Call_Statement
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
Set on wait, procedure call and composite statements when there is a sub-statement that can suspend a procedure or a process. Also set on procedure declaration. Note that the flag is conservative: it must be true if the node contains directly or indirectly a wait statement, but need not to be false otherwise. |
|
|
|
owned |
Set during elaboration when the statement is executed. |
Iir_Kind_Concurrent_Break_Statement
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
maybe ref |
Condition of a conditional_waveform, if_statement, elsif, while_loop_statement, next_statement or exit_statement. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
of maybe ref |
The Is_Ref flag is set for extracted sensitivity lists. |
|
|
|
chain |
— |
|
|
|
owned |
Never set. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
|
|
|
owned |
Set during elaboration when the statement is executed. |
Iir_Kind_Psl_Assert_Directive
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
Severity expression of an assertion or report statement. |
|
|
|
owned |
Report expression of an assertion or report statement. |
|
|
|
owned |
The following fields are set by canon. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Number of states in the NFA. |
|
|
|
owned |
— |
|
|
|
owned |
True if at least one of the NFA edge has the EOS flag. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
Iir_Kind_Psl_Assume_Directive
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
The following fields are set by canon. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Number of states in the NFA. |
|
|
|
owned |
— |
|
|
|
owned |
True if at least one of the NFA edge has the EOS flag. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
Iir_Kind_Psl_Cover_Directive
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
Report expression of an assertion or report statement. |
|
|
|
owned |
The following fields are set by canon. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Number of states in the NFA. |
|
|
|
owned |
— |
|
|
|
owned |
True if at least one of the NFA edge has the EOS flag. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
Iir_Kind_Psl_Restrict_Directive
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
The following fields are set by canon. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Number of states in the NFA. |
|
|
|
owned |
— |
|
|
|
owned |
True if at least one of the NFA edge has the EOS flag. |
|
|
|
owned |
If set, the concurrent statement is postponed. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
Iir_Kind_Block_Statement
LRM08 11.2 Block statement
block_statement ::=
block_label :
BLOCK [ ( guard_condition ) ] [ IS ]
block_header
block_declarative_part
BEGIN
block_statement_part
END BLOCK [ block_label ] ;
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
get/set_guard_decl is used for semantic analysis, in order to add a signal declaration. |
|
|
|
owned |
— |
|
|
|
chain |
— |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
ref |
Chain of attribute values for declared items. To be used with Get/Set_Value_Chain. There is no order, therefore, a new attribute value may be always prepended. |
|
|
|
chain |
— |
|
|
|
forward ref |
Block_Configuration that applies to this block statement. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘is’ is present. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
Iir_Kind_If_Generate_Statement
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
maybe ref |
Null_Iir for the else clause. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
|
|
|
owned |
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. |
Iir_Kind_Case_Generate_Statement
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain |
Chain is composed of Iir_Kind_Choice_By_XXX. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
Expression for an various nodes. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
Iir_Kind_For_Generate_Statement
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
The parameters specification is represented by an Iterator_Declaration. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
Iir_Kind_Component_Instantiation_Statement
LRM08 11.7 Component instantiation statements
component_instantiation_statement ::=
instantiation_label :
instantiated_unit
[ generic_map_aspect ]
[ port_map_aspect ] ;
instantiated_unit ::=
[ COMPONENT ] component_name
| ENTITY entity_name [ ( architecture_identifier ) ]
| CONFIGURATION configuration_name
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Unit instantiated. This is a name, an entity_aspect_entity or an entity_aspect_configuration. |
|
|
|
chain next |
— |
|
|
|
owned |
— |
|
|
|
owned |
If the instantiated unit contains generic types or packages, this is the instantiated unit. |
|
|
|
owned |
Set/Get the default binding indication of a configuration specification or a component configuration. |
|
|
|
chain |
Generic map aspect list. |
|
|
|
chain |
Port map aspect list. |
|
|
|
ref |
Configuration: In case of a configuration specification, the node is put into default configuration. In the absence of a specification, the default entity aspect, if any; if none, this field is null_iir. |
|
|
|
forward ref |
During Sem and elaboration, the configuration field can be filled by a component configuration declaration. Configuration for this component. FIXME: must be get/set_binding_indication. |
|
|
|
owned |
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. |
|
|
|
owned |
Layout flag: true if ‘component’ reserved identifier is present. |