ASSERTION

Sequentielle Anweisungen – ASSERTION

ENTITY dff IS
PORT (d, clk, sig_reset : IN bit;
q : OUT bit);
END dff;

---------------------------------------------

ARCHITECTURE behave OF dff IS
BEGIN
PROCESS (clk, sig_reset)
BEGIN
IF (sig_reset = '0') THEN
q <= '0';
ASSERT false
REPORT "Reset ist aktiv,
Ausgang q wird zurueckgesetzt!"
SEVERITY note;


ELSIF ( clk'EVENT AND clk = '1') THEN
q <= d;
END IF;

IF ( clk'EVENT AND clk = '1') THEN
ASSERT sig_reset /= '0'
REPORT "Reset ist noch immer aktiv,
Eingang d wird nicht gespeichert!"
SEVERITY note;


END IF;
END PROCESS;
END behave;
Im ersten Beispiel dieser sequentiellen Anwendungen der ASSERT-Anweisung wird in jedem Fall eine Meldung ausgegeben (Bedingung ist immer ''false''), im zweiten Fall wird überprüft, ob 'sig_reset' ungleich Null ist. Die Fehlerklasse wurde auf 'note' gesetzt. Es dient zur Ausgabe von allgemeinen Informationen.

Weitere Fehlerklassen vom vordefinierten Aufzählungstyp 'severity_level' sind 'warning' (zur Anzeige von möglichen unerwünschten Bedingungen), 'error' (zeigt an, daß eine Aufgabe mit dem falschen Ergebnis abgeschlossen wurde) und 'failure' (zur Anzeige, daß eine Aufgabe nicht abgeschlossen werden konnte. Default-Fehlerklasse ist 'error'.