Floating Point Type
  
    
    
     
   
   Formal Definition
  
   Floating point
   type provides an approximation of the real number value. 
  
   Simplified Syntax
  
   type type_name is
    real_number_left_bound downto
    real_number_right_bound; 
  
   type type_name is
    real_number_left_bound to real_number_right_bound; 
  
   Description
  
   A floating point type is a 
   numeric type consisting of real numbers which values are constrained 
   by a specified range. 
  
   There exists only one predefined floating point type: REAL. The range 
   of the values for the type REAL are implementation-dependent, but it 
   is required by the standard that it covers the values from -1.0E38 to +1.0E38. 
  
   A user-defined floating point type 
   can be constructed on the basis of the predefined REAL type by 
   constraining its range (example 1). The bounds of the range of a 
   user-defined floating point type should be in the form of locally 
   static expression. The expression is classified as a locally static 
   if it is possible to determine its value without running the code. 
   The value of an expression used as a range for a floating point type 
   must also be of floating point type, not necessarily the same for 
   both bounds (example 2). Negative bounds are allowed. 
  
   All floating point types (including user-defined) have the same set 
   of arithmetic operators, namely: addition, subtraction, 
   multiplication, division, absolute function and exponentiation. 
  
   Examples
  
   Example 1 
  
   type Voltage_Level is range 
   -5.5 to +5.5; 
   type Int_64K is range 
   - 65536.00 to 65535.00; 
  
     
  
   Example 2 
  
   type APPROX_VALUES_DOWNTO is range
    (2.0**(N+1)) - 1.0 downto 0.0; 
   type APPROX_VALUES_TO is range
    0.0 to (2.0**(N+1)) 
   - 1.0; 
  
     
  
   Important Notes
  
   - 
   
    In order to add, subtract, multiply or divide integer object to/from 
    a real object, type conversion of the integer object is needed. The 
    only exception from this rule is multiplication and division of 
    universal integer and universal real. 
    - 
   
    The floating point types are not synthesizeable by any of the 
    existing tools. Their use is thus very limited. 
     
  
    
 
    |