TYPE

Deklarations-Anweisungen – TYPE

TYPE state     IS (init, run, stop);

TYPE logic_01Z IS ('0', '1', 'Z');
Aufzähltypen können als Werte Bezeichner (1. Beispiel) verwenden oder mit Character (2. Beispiel) arbeiten.
TYPE augenzahl          IS RANGE 1 TO 6;

TYPE duplikat_augenzahl IS RANGE augenzahl'RANGE;

TYPE neg_zweistellige IS RANGE -10 DOWNTO -99;
In diesen Beispielen wird die Deklaration von ganzzahligen Typen erläutert. Der Zahlenbereich des Typs kann dabei direkt angegeben werden oder von einem anderen Typ abgeleitet werden.
TYPE scale   IS RANGE -1.0 TO 1.0;

TYPE my_real IS RANGE real'RANGE;
Fließkommatypen werden durch Angabe von reellen Zahlengrenzen deklariert. Auch hier ist eine Ableitung des Zahlenbereiches von anderen Typen möglich.
TYPE length IS RANGE -1E9 TO 1E9
UNITS mm;
cm = 10 mm;
dm = 10 cm;
m = 10 dm;
km = 1E3 m;
inch = 25 mm;
foot = 305 mm;
mile = 16093 dm;
END UNITS;
Physikalische Typen erfordern die Angabe eines ganzzahligen oder reellen Zahlenbereiches und der Basiseinheit. Daneben können weitere Einheiten angegeben werden, die sich direkt oder indirekt von der Basiseinheit ableiten.
TYPE int_vector1   IS ARRAY (0 TO 255)   OF integer;

TYPE my_bit_vector IS ARRAY (7 DOWNTO 0) OF bit;

TYPE int_vector2 IS ARRAY (augenzahl RANGE <>) OF integer;
Bei Feldtypen (Arrays) muß der Indextyp ganzzahlig oder ein Aufzähltyp sein. Der Index kann durch Bereichsangaben in positiver oder negativer Richtung definiert werden, oder den gesamten Bereich eines anderen Typs umfassen.
Der Typ der Basiselemente kann frei gewählt werden.
TYPE int_array_3d IS ARRAY 
(integer RANGE 31 DOWNTO 0,
1 TO 10,
natural RANGE <>) OF integer;



TYPE bit_matrix1 IS ARRAY
(integer RANGE 31 DOWNTO 0,
integer RANGE 7 DOWNTO 0) OF bit;



TYPE bit_matrix2 IS ARRAY
(integer RANGE 31 DOWNTO 0) OF my_bit_vector;
Mehrdimensionale Felder werden durch entsprechende Anzahl von Indizes deklariert. Ein mehrdimensionales Feld kann auch durch Basiselemente deklariert werden, die bereits ein Vektor sind.
TYPE complex IS RECORD
real_part : real;
imag_part : real;
END RECORD;



TYPE months IS (january, february, ...);
SUBTYPE days IS integer RANGE 1 TO 31;
TYPE date IS RECORD
year : natural;
month : months;
day : days;
END RECORD;
Zusammengesetzte Typen (Records) bestehen aus mehreren Elementen von unterschiedlichem Typ.