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 user-defined 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
user-defined 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
user-defined) 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
|