#### 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

· It is an error to assign to an integer object a value which is from outside its range.

## No comments:

## Post a Comment