Assert Statment
Führen einen Vergleich aus. Stimmt der Vergleich, so passiert nichts. Nur wenn der Vergleich falsch ist, dann wird der Report ausgegeben.
ASSERT (s_midi = "010110") REPORT "Midi-value wrong" SEVERITY NOTE;
Es gibt vier Levels von severity reports: NOTE, WARNING, ERROR, FAILURE.
Das letzte Level (failure) bricht die Simulation ab.
Ist das Testing textbasiert, so steht oft auf der rechten Seite der eingelesene Wert, den das Signal haben soll (aus Textfile):
ASSERT (s_midi = note_1) REPORT "Note 1 falsch" SEVERITY WARNING;
Asserts als Passed-Points
Will man nur wissen, ob die Simulation an einer gewissen Stelle durchgekommen ist, wird Assert false (= immer ausgeben) für die Kommandoausgabe gebraucht.
ASSERT false REPORT "Read in finished" SEVERITY NOTE;
Textbasierte Testbench Passed-Point
Falls die textio-Bibliothek eingebunden und variable line_out: Line; definiert wurde, kann man mit der Funktion write() Text auf die Konsole schreiben.
write(line_out, string'("Read in finished.")); writeline(OUTPUT, line_out);
Der Text muss (leider) zuerst in den Zeilenbuffer Line gespeichert werden, und dann per OUTPUT der Konsole übergeben. Die Definition dieser Varialblen steht in der Datei std_logic_textio.vhd.