[Top] [Prev] [Next] [Bottom]

CHAPTER 15 FIR_SequentialStatement
Derived Classes

This chapter specifies the predefined data associated with FIR_SequentialStatement and all predefined classes derived from FIR_SequentialStatement (as shown in Table 231 on page 295).

Sequential statements generally appear (directly or indirectly) within a process, procedure or function. Some language-mandated restrictions further constrain the location of sequential statements. Sequential statements are generally referenced from a sequential statement list, the next method of a sequential statement or as the target of a control-flow sequential statement.

Application-specific data elements may be added to an optional extension class layer just after differentiating the different kinds of sequential statements. For example, these extensions may provide additional debugging information or information specific to a particular backend.
TABLE 231. Class hierarchy derived from FIR_SequentialStatement class

Level 3 Derived Classes
(only classes derived from FIR_SequentialStatement)

E

Level 4 Derived Classes

E

Level 5 Derived Classes

E

FIR_WaitStatement

E

FIR_AssertionStatement

E

FIR_ReportStatement

E

FIR_SignalAssignmentStatement

E

FIR_VariableAssignmentStatement

E

FIR_ProcedureCallStatement

E

FIR_IfStatement

E

FIR_CaseStatement

E

FIR_ForLoopStatement

E

FIR_WhileLoopStatement

E

FIR_NextStatement

E

FIR_ExitStatement

E

FIR_ReturnStatement

E

FIR_NullStatement

15.1 FIR_SequentialStatement

15.1.1 Derived Class Description

The predefined FIR_SequentialStatement classes specify individual sequential statements within a process or subprogram.

15.1.2 Properties
TABLE 232. FIR_SequentialStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

None, not directly instantiated

Parent class

FIR

Predefined child classes

FIR_WaitStatement
FIR_AssertionStatement
FIR_ReportStatement
FIR_SignalAssignmentStatement
FIR_VariableAssignmentStatement
FIR_ProcedureCallStatement
FIR_IfStatement
FIR_CaseStatement
FIR_ForLoopStatement
FIR_WhileLoopStatement
FIR_NextStatement
FIR_ExitStatement
FIR_ReturnStatement
FIR_NullStatement

Application-specific data elements

Via extension classes associated with specific derived classes of the FIR_SequentialStatement class

15.1.3 Predefined Data Elements

struct FIR_SequentialStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
};

15.2 FIR_WaitStatement

15.2.1 Derived Class Description

The FIR_WaitStatement suspends execution pending a signal event, boolean condition and/or time out interval. Such statements may appear almost anywhere a sequential statement may appear (some restrictions in subprogram).

15.2.2 Properties
TABLE 233. FIR_WaitStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_WAIT_STATEMENT

Parent class

FIR_SequentialStatement

Instantiation?

Dynamically via new

15.2.3 Predefined Data Elements

struct FIR_WaitStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		condition_clause; /* reference to FIR_Expression */
	FIR_Ref		timeout_clause; /* reference to FIR_Expression */
	FIR_DesignatorList			sensitivity_list;
};

15.3 FIR_AssertionStatement

15.3.1 Derived Class Description

The predefined FIR_AssertionStatement checks that a specified condition is true. If the condition is false, a report is made with specified severity level. This statement may appear anywhere a sequential statement may appear.

15.3.2 Properties
TABLE 234. FIR_AssertionStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ASSERTION_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.3.3 Predefined Data Elements

struct FIR_AssertionStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		assertion_condition;
	FIR_Ref		report_expression;
	FIR_Ref		severity_expression;
};

15.4 FIR_ReportStatement

15.4.1 Derived Class Description

The predefined FIR_ReportStatement responds with a message at a specified severity level. Such statements may appear anywhere a sequential statement may appear.

15.4.2 Properties
TABLE 235. FIR_ReportStatement Properties

Applicable language(s)

VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_REPORT_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.4.3 Predefined Data Elements

struct FIR_ReportStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		report_expression;
	FIR_Ref		severity_expression;
};

15.5 FIR_SignalAssignmentStatement

15.5.1 Derived Class Description

The predefined FIR_SignalAssignmentStatement updates the projected waveform output of one or more signal drivers. Such statements may appear anywhere a sequential statement may appear.

15.5.2 Properties
TABLE 236. FIR_SequentialStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_SIGNAL_ASSIGNMENT_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Instantiation?

Dynamically via new

Application-specific data elements

Via extension class

15.5.3 Predefined Data Elements

struct FIR_SignalAssigmentStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref			target;
	IR_DelayMechanism			delay_mechanism; /* one of the delay_mechanism */
	FIR_Ref			reject_time_expression;
	FIR_Ref			waveform /* reference to an FIR_WaveformList */
};

15.6 FIR_VariableAssignmentStatement

15.6.1 Derived Class Description

The FIR_VariableAssignmentStatement updates the value of a variable with the value specified in an expression. Such statements may appear anywhere a sequential statement may appear.

15.6.2 Properties
TABLE 237. FIR_VariableAssignmentStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_VARIABLE_ASSIGNMENT_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.6.3 Predefined Data Elements

struct FIR_VariableAssignmentStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		target; /* reference to */
	FIR_Ref		expression;
};

15.7 FIR_ProcedureCallStatement

15.7.1 Derived Class Description

The predefined FIR_ProcedureCallStatement dynamically elaborates and executes a procedure declaration. It may appear anywhere sequential statements are allowed.

15.7.2 Properties
TABLE 238. FIR_ProcedureCallStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_PROCEDURE_CALL_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.7.3 Predefined Data Elements

struct FIR_ProcedureCallStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		procedure_name;
	FIR_AssociationList			actual_parameter_part;
};

15.8 FIR_IfStatement

15.8.1 Derived Class Description

The predefined FIR_IfStatement provides for the optional, selective execution of one or more sequential statement lists. Such statements may appear anywhere sequential statements are allowed.

15.8.2 Properties
TABLE 239. FIR_IfStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_IF_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.8.3 Predefined Data Elements

struct FIR_IfStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		condition;
	FIR_Ref		elsif; /* reference to FIR_Elsif */
	FIR_SequentialStatementList				then_sequence;
	FIR_SequentialStatementList				else_sequence;
};

15.9 FIR_CaseStatement

15.9.1 Derived Class Description

The predefined FIR_CaseStatement provides for execution of at most one sequential statement list from a set of alternatives. Such statements may appear anywhere sequential statements are allowed.

15.9.2 Properties
TABLE 240. FIR_CaseStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_CASE_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.9.3 Predefined Data Elements

struct FIR_CaseStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		expression;
	FIR_CaseStatementAlternativeList					case_statement_alternatives;
};

15.10 FIR_ForLoopStatement

15.10.1 Derived Class Description

The predefined FIR_ForLoopStatement executes a sequences of statements zero or more times, advancing the value of an iterator constant once before each execution of the loop body. Such statements may appear anywhere a sequential statement is allowed.

15.10.2 Properties
TABLE 241. FIR_ConcurrentGenerateForStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_FOOR_LOOP_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.10.3 Predefined Data Elements

struct FIR_ForLoopStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		iterator; /* reference to a FIR_ConstantDeclaration */
	FIR_SequentialStatementList				sequence_of_statements;
};

15.11 FIR_WhileLoopStatement

15.11.1 Derived Class Description

The predefined FIR_WhileLoopStatement executes a sequential statement list zero or more times. A boolean condition evaluates once before each iteration. If the condition evaluates true, the enclosed statement sequence executes, otherwise execute continues with the statement following the while loop statement.

15.11.2 Properties
TABLE 242. FIR_WhileLoopStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_WHILE_LOOP_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.11.3 Predefined Data Elements

struct FIR_WhileLoopStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		while_condition;
	FIR_SequentialStatementList				sequence_of_statements;
};

15.12 FIR_NextStatement

15.12.1 Derived Class Description

The predefined FIR_NextStatement conditionally terminates execution of an enclosing loop iteration, potentially advancing to another iteration of the loop. Next statements may appear anywhere within an enclosing for or while loop.

15.12.2 Properties
TABLE 243. FIR_NextStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_NEXT_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.12.3 Predefined Data Elements

struct FIR_NextStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		enclosing_loop; /* reference to FIR_SequentialStatement */
	FIR_Ref		condition;
};

15.13 FIR_ExitStatement

15.13.1 Derived Class Description

The predefined FIR_ExitStatement conditionally terminates (all) iterations of an enclosing loop statement. Such statements may appear anywhere within an enclosing for or while loop.

15.13.2 Properties
TABLE 244. FIR_ExitStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_EXIT_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.13.3 Predefined Data Elements

struct FIR_ExitStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		enclosing_loop; /* FIR_SequentialStatement */
	FIR_Ref		condition;
};

15.14 FIR_ReturnStatement

15.14.1 Derived Class Description

The predefined FIR_ReturnStatement terminates execution of the inner-most enclosing subprogram body. Such statements may appear anywhere within a subprogram body.

15.14.2 Properties
TABLE 245. FIR_ReturnStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_RETURN_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.14.3 Predefined Data Elements

struct FIR_ReturnStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
	FIR_Ref		enclosing_subprogram; /* reference to FIR_SubprogramDeclaration */
	FIR_Ref		return_expression;
};

15.15 FIR_NullStatement

15.15.1 Derived Class Description

The predefined FIR_NullStatement statements have no behaviour. They act as a place-holder where one or more sequential statements are syntactically required, however no behavioural action is required. Such statements may appear anywhere a sequential statement is allowed.

15.15.2 Properties
TABLE 246. FIR_NullStatement Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_NULL_STATEMENT

Parent class

FIR_SequentialStatement

Predefined child classes

None

Application-specific data elements

Via extension class

15.15.3 Predefined Data Elements

struct FIR_NullStatement {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		next; /* FIR_SequentialStatementList linkage */
	FIR_Ref		label; /* reference to an FIR_Label or FIR_Identifier */
};



[Top] [Prev] [Next] [Bottom]

aire@vhdl.org
Copyright © 1995, 1996 FTL Systems Inc. All rights reserved except as noted in the document copyright statement.