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
  
  
    
 
    |