Other nodes (Psl_Default_Clock … If_Generate_Else_Clause)

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.

digraph { rankdir="LR" nodesep=0.1 node [shape=point width=0.06 color="#888a85"] edge [fontname="monospace" fontsize=10 minlen=3] l0a -> l0b [label="owned" color="#000000"] l1a -> l1b [label="ref" color="#3465a4" style=dashed] l2a -> l2b [label="maybe ref" color="#3465a4" style=dotted] l3a -> l3b [label="of ref" color="#3465a4" style=dashed] l4a -> l4b [label="of maybe ref" color="#3465a4" style=dotted] l5a -> l5b [label="forward ref" color="#f57900" style=dashed] l6a -> l6b [label="maybe forward ref" color="#f57900" style=dotted] l7a -> l7b [label="chain" color="#4e9a06"] l8a -> l8b [label="chain next" color="#4e9a06" style=bold] }

Iir_Kind_Psl_Default_Clock

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Psl_Boolean

Field1

PSL_Node

owned

Chain

Field2

Iir

chain next

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Psl_Default_Clock" [style=filled fillcolor="#eeeeec" label="{Psl_Default_Clock|{<Parent> Parent|<Psl_Boolean> Psl_Boolean|<Chain> Chain}}"] "Psl_Default_Clock__Parent" [shape=box label="Iir"] "Psl_Default_Clock":Parent -> "Psl_Default_Clock__Parent" [color="#3465a4" style=dashed] "Psl_Default_Clock__Psl_Boolean" [shape=box label="PSL_Node"] "Psl_Default_Clock":Psl_Boolean -> "Psl_Default_Clock__Psl_Boolean" [color="#000000"] "Psl_Default_Clock__Chain" [shape=box label="Iir"] "Psl_Default_Clock":Chain -> "Psl_Default_Clock__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Generate_Statement_Body

LRM08 11.8 Generate statements

generate_statement_body ::=
      [ block_declarative_part
   BEGIN ]
      { concurrent_statement }
   [ END [ alternative_label ] ; ]

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Declaration_Chain

Field1

Iir

chain

Generate_Block_Configuration

Field2

Iir

forward ref

The block configuration for this statement body.

Alternative_Label

Field3

Name_Id

owned

Attribute_Value_Chain

Field5

Iir

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.

Concurrent_Statement_Chain

Field4

Iir

chain

Is_Within_Flag

Flag5

Boolean

owned

This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

End_Has_Identifier

Flag9

Boolean

owned

Layout flag: true if ‘end’ is followed by the identifier.

Has_Begin

Flag10

Boolean

owned

Layout flag: true if ‘begin’ is present.

Has_End

Flag11

Boolean

owned

Layout flag: true if ‘end’ is present (only for generate body).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Generate_Statement_Body" [style=filled fillcolor="#eeeeec" label="{Generate_Statement_Body|{<Parent> Parent|<Declaration_Chain> Declaration_Chain|<Generate_Block_Configuration> Generate_Block_Configuration|<Alternative_Label> Alternative_Label|<Attribute_Value_Chain> Attribute_Value_Chain|<Concurrent_Statement_Chain> Concurrent_Statement_Chain|<Is_Within_Flag> Is_Within_Flag|<Use_Flag> Use_Flag|<End_Has_Identifier> End_Has_Identifier|<Has_Begin> Has_Begin|<Has_End> Has_End}}"] "Generate_Statement_Body__Parent" [shape=box label="Iir"] "Generate_Statement_Body":Parent -> "Generate_Statement_Body__Parent" [color="#3465a4" style=dashed] "Generate_Statement_Body__Declaration_Chain" [shape=box label="Iir"] "Generate_Statement_Body":Declaration_Chain -> "Generate_Statement_Body__Declaration_Chain" [color="#4e9a06"] "Generate_Statement_Body__Generate_Block_Configuration" [shape=box label="Iir"] "Generate_Statement_Body":Generate_Block_Configuration -> "Generate_Statement_Body__Generate_Block_Configuration" [color="#f57900" style=dashed] "Generate_Statement_Body__Attribute_Value_Chain" [shape=box label="Iir"] "Generate_Statement_Body":Attribute_Value_Chain -> "Generate_Statement_Body__Attribute_Value_Chain" [color="#3465a4" style=dashed] "Generate_Statement_Body__Concurrent_Statement_Chain" [shape=box label="Iir"] "Generate_Statement_Body":Concurrent_Statement_Chain -> "Generate_Statement_Body__Concurrent_Statement_Chain" [color="#4e9a06"] }

Iir_Kind_If_Generate_Else_Clause

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Condition

Field1

Iir

maybe ref

Null_Iir for the else clause.

Generate_Statement_Body

Field4

Iir

owned

Generate_Else_Clause

Field5

Iir

owned

Visible_Flag

Flag4

Boolean

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.

Is_Ref

Flag12

Boolean

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "If_Generate_Else_Clause" [style=filled fillcolor="#eeeeec" label="{If_Generate_Else_Clause|{<Parent> Parent|<Condition> Condition|<Generate_Statement_Body> Generate_Statement_Body|<Generate_Else_Clause> Generate_Else_Clause|<Visible_Flag> Visible_Flag|<Is_Ref> Is_Ref}}"] "If_Generate_Else_Clause__Parent" [shape=box label="Iir"] "If_Generate_Else_Clause":Parent -> "If_Generate_Else_Clause__Parent" [color="#3465a4" style=dashed] "If_Generate_Else_Clause__Condition" [shape=box label="Iir"] "If_Generate_Else_Clause":Condition -> "If_Generate_Else_Clause__Condition" [color="#3465a4" style=dotted] "If_Generate_Else_Clause__Generate_Statement_Body" [shape=box label="Iir"] "If_Generate_Else_Clause":Generate_Statement_Body -> "If_Generate_Else_Clause__Generate_Statement_Body" [color="#000000"] "If_Generate_Else_Clause__Generate_Else_Clause" [shape=box label="Iir"] "If_Generate_Else_Clause":Generate_Else_Clause -> "If_Generate_Else_Clause__Generate_Else_Clause" [color="#000000"] }