3.1 Scalar types

3.1.1 Definitions

scalar_type_definition ::=
    enumeration_type_definition
    | integer_type_definition
    | floating_type_definition
    | physical_type_definition

3.1.2 Examples


TYPE
Bit IS ( '0', '1' ) ;

TYPE
switch_level IS ( '0', '1', 'X' ) ;

TYPE
states IS (out, sleeping, working);

TYPE
colors IS ( red, green, blue );

Different types are declared.
Types Bit and switch_level are declared as
enumeration types through characters and
can only have the values ' 0' or ' 1' and 'X '.
One has to distinguish between these values
'0 ' and '1' and the integer values 0 and 1 .
Types states and colours are declared as enumeration
types by self-explanatory element names.

TYPE byte_length_integer IS
             RANGE
0 TO 255 ;

TYPE
word_index IS RANGE 31 DOWNTO 0 ;

TYPE
my_real IS RANGE 0.0 TO 9.99 ;

SUBTYPE
high_bit_low IS byte_length_integer
      RANGE 0 TO 127 ;

Integer types are generated by stating integral
numbers in the range declaration (RANGE).
The range can be declared rising (TO) or
falling (DOWNTO).
Real types are created through realistic range
declarations.
Subtypes can be declared by stating the base type and the selected range.

TYPE distance IS RANGE 0 TO 1E16
   UNITS
      -- Basiseinheit :
         A -- Angström
      -- Metrische Einheiten :
         nm  =  10 A ;    -- Nanometer
         um  =  1000 nm ;  -- Mikrometer
         mm  =  1000 um ;  -- Millimeter
         cm  =  10 mm ;  -- Centimeter
         m  =  1000 mm ;  -- Meter
         km  =  1000 m ;   -- Kilometer
   END UNITS ;

TYPE
time IS RANGE -1E18 TO 1E18
   UNITS
      fs ;  --Femtosekunde
      ps   = 1000 fs ;  -- Picosecond
      ns   = 1000 ps ;  -- Nanosecond
      us   = 1000 ns ;  -- Microsecond
      ms   = 1000 us ;  -- Millisecond
      sec  = 1000 ms ;  -- Second
      min  = 60 sec ;   -- Minute
   END UNITS


With physical types a real-type is defined first.
Afterwards the basic unit and its derivative
units are declared.


As examples the definitions of the units of
length (distance) and the units of time (time)
are shown here.




The physical unit time is a predefined type.