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_Library_Clause

LRM08 13.2 Design libraries

library_clause ::= LIBRARY logical_name_list ;
logical_name_list ::= logical_name { , logical_name }
logical_name ::= identifier

Note: a library_clause node is created for every logical_name. As a consequence, the scope of the library starts after the logical_name and not after the library_clause. However, since an identifier can only be used as a logical_name, and since the second occurrence has no effect, this is correct.

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.

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Library_Declaration

Field1

Iir

forward ref

Library declaration of a library clause. This is Forward_Ref as the dependency of the unit on the library is not tracked.

Chain

Field2

Iir

chain next

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Library_Clause" [style=filled fillcolor="#eeeeec" label="{Library_Clause|{<Parent> Parent|<Identifier> Identifier|<Library_Declaration> Library_Declaration|<Chain> Chain|<Has_Identifier_List> Has_Identifier_List}}"] "Library_Clause__Parent" [shape=box label="Iir"] "Library_Clause":Parent -> "Library_Clause__Parent" [color="#3465a4" style=dashed] "Library_Clause__Library_Declaration" [shape=box label="Iir"] "Library_Clause":Library_Declaration -> "Library_Clause__Library_Declaration" [color="#f57900" style=dashed] "Library_Clause__Chain" [shape=box label="Iir"] "Library_Clause":Chain -> "Library_Clause__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Use_Clause

LRM08 12.4 Use clauses

use_clause ::=
   USE selected_name { , selected_name } ;

Location is on ‘USE’.

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.

Selected_Name

Field1

Iir

owned

Selected name of an use_clause or context_reference

Chain

Field2

Iir

chain next

Use_Clause_Chain

Field3

Iir

owned

Selected names of an use_clause are chained.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Use_Clause" [style=filled fillcolor="#eeeeec" label="{Use_Clause|{<Parent> Parent|<Selected_Name> Selected_Name|<Chain> Chain|<Use_Clause_Chain> Use_Clause_Chain}}"] "Use_Clause__Parent" [shape=box label="Iir"] "Use_Clause":Parent -> "Use_Clause__Parent" [color="#3465a4" style=dashed] "Use_Clause__Selected_Name" [shape=box label="Iir"] "Use_Clause":Selected_Name -> "Use_Clause__Selected_Name" [color="#000000"] "Use_Clause__Chain" [shape=box label="Iir"] "Use_Clause":Chain -> "Use_Clause__Chain" [color="#4e9a06" style=bold] "Use_Clause__Use_Clause_Chain" [shape=box label="Iir"] "Use_Clause":Use_Clause_Chain -> "Use_Clause__Use_Clause_Chain" [color="#000000"] }

Iir_Kind_Context_Reference

LRM08 13.4 Context clauses

context_reference ::=
   CONTEXT selected_name { , selected_name }

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.

Selected_Name

Field1

Iir

owned

Selected name of an use_clause or context_reference

Chain

Field2

Iir

chain next

Context_Reference_Chain

Field3

Iir

owned

Selected names of a context_reference are chained.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Context_Reference" [style=filled fillcolor="#eeeeec" label="{Context_Reference|{<Parent> Parent|<Selected_Name> Selected_Name|<Chain> Chain|<Context_Reference_Chain> Context_Reference_Chain}}"] "Context_Reference__Parent" [shape=box label="Iir"] "Context_Reference":Parent -> "Context_Reference__Parent" [color="#3465a4" style=dashed] "Context_Reference__Selected_Name" [shape=box label="Iir"] "Context_Reference":Selected_Name -> "Context_Reference__Selected_Name" [color="#000000"] "Context_Reference__Chain" [shape=box label="Iir"] "Context_Reference":Chain -> "Context_Reference__Chain" [color="#4e9a06" style=bold] "Context_Reference__Context_Reference_Chain" [shape=box label="Iir"] "Context_Reference":Context_Reference_Chain -> "Context_Reference__Context_Reference_Chain" [color="#000000"] }