IEEE Standard VHDL Language Reference Manual
(IEEE Std. 1076-1993)
Table of Contents
Section 0 Overview of this standard
0.1 Intent and scope of this document
0.2 Structure and terminology of this document
0.2.1 Syntactic description
0.2.2 Semantic description
0.2.3 Front matter, examples, notes, references, and appendices
Section 1 Design entities and configurations
1.1 Entity declarations
1.1.1 Entity header
1.1.1.1 Generics
1.1.1.2 Ports
1.1.2 Entity declarative part
1.1.3 Entity statement part
1.2 Architecture bodies
1.2.1 Architecture declarative part
1.2.2 Architecture statement part
1.3 Configuration declarations
1.3.1 Block configuration
1.3.2 Component configuration
Section 2 Subprograms and packages
2.1 Subprogram declarations
2.1.1 Formal parameters
2.1.1.1 Constant and variable parameters
2.1.1.2 Signal parameters
2.1.1.3 File parameters
2.2 Subprogram bodies
2.3 Subprogram overloading
2.3.1 Operator overloading
2.3.2 Signatures
2.4 Resolution functions
2.5 Package declarations
2.6 Package bodies
2.7 Conformance rules
Section 3 Types
3.1 Scalar types
3.1.1 Enumeration types
3.1.1.1 Predefined enumeration types
3.1.2 Integer types
3.1.2.1 Predefined integer types
3.1.3 Physical types
3.1.3.1 Predefined physical types
3.1.4 Floating point types
3.1.4.1 Predefined floating point types
3.2 Composite types
3.2.1 Array types
3.2.1.1 Index constraints and discrete ranges
3.2.2 Record types
3.3 Access types
3.3.1 Incomplete type declarations
3.3.2 Allocation and deallocation of objects
3.4 File types
3.4.1 File operations
Section 4 Declarations
4.1 Type declarations
4.2 Subtype declarations
4.3 Objects
4.3.1 Object declarations
4.3.1.1 Constant declarations
4.3.1.2 Signal declarations
4.3.1.3 Variable declarations
4.3.1.4 File declarations
4.3.2 Interface declarations
4.3.2.1 Interface lists
4.3.2.2 Association lists
4.3.3 Alias declarations
4.3.3.1 Object aliases
4.3.3.2 Nonobject aliases
4.4 Attribute declarations
4.5 Component declarations
4.6 Group template declarations
4.7 Group declarations
Section 5 Specifications
5.1 Attribute specification
5.2 Configuration specification
5.2.1 Binding indication
5.2.1.1 Entity aspect
5.2.1.2 Generic map and port map aspects
5.2.2 Default binding indication
5.3 Disconnection specification
Section 6 Names
6.1 Names
6.2 Simple names
6.3 Selected names
6.4 Indexed names
6.5 Slice names
6.6 Attribute name
Section 7 Expressions
7.1 Expressions
7.2 Operators
7.2.1 Logical operators
7.2.2 Relational operators
7.2.3 Shift operators
7.2.4 Adding operators
7.2.5 Sign operators
7.2.6 Multiplying operators
7.2.7 Miscellaneous operators
7.3 Operands
7.3.1 Literals
7.3.2 Aggregates
7.3.2.1 Record aggregates
7.3.2.2 Array aggregates
7.3.3 Function calls
7.3.4 Qualified expressions
7.3.5 Type conversions
7.3.6 Allocators
7.4 Static expressions
7.4.1 Locally static primaries
7.4.2 Globally static primaries
7.5 Universal expressions
Section 8 Sequential statements
8.1 Wait statement
8.2 Assertion statement
8.3 Report statement
8.4 Signal assignment statement
8.4.1 Updating a projected output waveform
8.5 Variable assignment statement
8.5.1 Array variable assignments
8.6 Procedure call statement
8.7 If statement
8.8 Case statement
8.9 Loop statement
8.10 Next statement
8.11 Exit statement
8.12 Return statement
8.13 Null statement
Section 9 Concurrent statements
9.1 Block statement
9.2 Process statement
9.3 Concurrent procedure call statements
9.4 Concurrent assertion statements
9.5 Concurrent signal assignment statements
9.5.1 Conditional signal assignments
9.5.2 Selected signal assignments
9.6 Component instantiation statements
9.6.1 Instantiation of a component
9.6.2 Instantiation of a design entity
9.7 Generate statements
Section 10 Scope and visibility
10.1 Declarative region
10.2 Scope of declarations
10.3 Visibility
10.4 Use clauses
10.5 The context of overload resolution
Section 11 Design units and their analysis
11.1 Design units
11.2 Design libraries
11.3 Context clauses
11.4 Order of analysis
Section 12 Elaboration and execution
12.1 Elaboration of a design hierarchy
12.2 Elaboration of a block header
12.2.1 The generic clause
12.2.2 The generic map aspect
12.2.3 The port clause
12.2.4 The port map aspect
12.3 Elaboration of a declarative part
12.3.1 Elaboration of a declaration
12.3.1.1 Subprogram declarations and bodies
12.3.1.2 Type declarations
12.3.1.3 Subtype declarations
12.3.1.4 Object declarations
12.3.1.5 Alias declarations
12.3.1.6 Attribute declarations
12.3.1.7 Component declarations
12.3.2 Elaboration of a specification
12.3.2.1 Attribute specifications
12.3.2.2 Configuration specifications
12.3.2.3 Disconnection specifications
12.4 Elaboration of a statement part
12.4.1 Block statements
12.4.2 Generate statements
12.4.3 Component instantiation statements
12.4.4 Other concurrent statements
12.5 Dynamic elaboration
12.6 Execution of a model
12.6.1 Drivers
12.6.2 Propagation of signal values
12.6.3 Updating implicit signals
12.6.4 The simulation cycle
Section 13 Lexical elements
13.1 Character set
13.2 Lexical elements, separators, and delimiters
13.3 Identifiers
13.3.1 Basic identifiers
13.3.2 Extended identifiers
13.4 Abstract literals
13.4.1 Decimal literals
13.4.2 Based literals
13.5 Character literals
13.6 String literals
13.7 Bit string literals
13.8 Comments
13.9 Reserved words
13.10 Allowable replacements of characters
Section 14 Predefined language environment
14.1 Predefined attributes
14.2 Package STANDARD
14.3 Package TEXTIO
Annex A Syntax summary
Annex B Glossary
Annex C Potentially nonportable constructs
Annex D Changes from IEEE Std 1076-1987
Annex E Related standards
INDEX