Integer Type
Definition:
The integer
type is a scalar whose set of values includes integer numbers of the
specified range.
Simplified Syntax
type type_name is
integer_left_bound to integer_right_bound;
type type_name is
integer_left_bound downto integer_right_bound;
Description
An integer type is a numeric
type which consists of integer numbers within the specified range.
There is a predefined INTEGER type, which range depends on the
implementation, however, must cover at least the range 2147483648 to +2147483647.
A userdefined integer type
can be constructed on the basis of the predefined INTEGER type by
constraining its range (example 1). The bounds of the range of a
userdefined integer type should be in the form of a locally static
expression. (In VHDL an expression is said to be locally static if it
can be evaluated at compile time.) The value of an expression used as
a range for an integer type must also be of integer type, not
necessarily the same for both bounds (example 2). Negative bounds are allowed.
All integer types (including
userdefined) have the same set of arithmetic operators, defined in
the package STANDARD, namely: addition, subtraction, multiplication,
division, modulus, and remainder. In all cases both operands and the
result are of the integer type.
Besides arithmetic operations, relations can also be checked on such
integer operands as: equal,
unequal, greater than, less than, greater or equal than, and less
or equal than. In all cases, the result is Boolean.
Examples
Example 1
type Voltage_Level is range
0 to 5;
type Int_64K is range
65536 to 65535;
type WORD is range
31 downto 0;
An integer type can be defined either as an ascending or descending range.
Example 2
type MUX_ADDRESS is range
(2**(N+1)) 1 downto 0;
The parameter N must have an explicitly stated value (e.g. as a constant).
Important Notes
