FUNCTION: Definition

Deklarations-Anweisungen – FUNCTION: Definition

 

FUNCTION fun1 RETURN bit IS
BEGIN


RETURN '0';
END fun1;
Bei der Funktionsdefinition muß die Schnittstellenbeschreibung wiederholt werden. Nach dem Schlüsselwort IS beginnt die Funktionsbeschreibung.
Im nebenstehenden Beispiel wird lediglich der Wert '0' vom Typ 'bit' zurückgeliefert. Es werden keine Argumente übergeben.
FUNCTION b2i (a : bit) RETURN integer IS
BEGIN


IF a = '1' THEN RETURN 1;
ELSE RETURN 0;
END IF;
END b2i;
Dies ist ein Beispiel für eine Funktion, die von 'bit' nach 'integer' wandelt. Bei den Funktionsbeschreibungen sind alle sequentiellen Anweisungen außer der WAIT-Anweisung erlaubt. Sämtliche Argumente können innerhalb der Funktion nur gelesen werden. Ferner muß die Funktion an mindestens einer Stelle mit der RETURN-Anweisung verlassen werden.
FUNCTION count_ones (a : bit_vector) RETURN integer IS  

VARIABLE count : integer := 0;
BEGIN

FOR c IN a'RANGE LOOP
IF a(c) = '1' THEN count := count + 1;
END IF;
END LOOP;
RETURN count;
END count_ones;
In dieser Beispielfunktion werden die Einsstellen des Bitvektors 'a' unbestimmter Länge gezählt. Die aktuelle Vektorlänge wird durch das Attribut RANGE ermittelt. Zum Zählen der Einsstellen wird eine Hilfsvariable 'count' deklariert und verwendet. Allgemein können im Deklarationsteil der Funktion lokale Typen und Untertypen, Konstanten, Variablen, Files, Aliase und Attribute deklariert werden.