VHDL Simulation: Wait statements

Neben den Assert statements (Vergleiche) basiert die Simulation vor allem auf den richtigen Pausen.

Warten bis…
–  Zustand eintrifft   WAIT UNTIL (s_midi = „1011);  wait until (clk = ‚1‘)
.  sehr wichtig für Koordination unter parallelen Prozessen.
–  Signal wechselt     wait on s_enable_datat;
–  Eines der Signale wechselt  wait on s_note_1, s_note_2, s_note_3;
.                 (nicht 100% sicher, ob nur 1 Signale oder alle)
–  Eine gewisse Zeit verstrichen ist wait for 10 us  wait for 1 * CLK_HALFPERIOD
–  Unbestimmt wait;  Hilft Simulation bei internen timing.
.   (Falls ein parameter noch nicht frei ist, wird gewartet.)
.   Ist z. B. sinnvoll nach read(file) ;

waits dürfen nur in processen eingebaut werden

Einfluss auf den Programmfluss
–  Wait-Statements sind sequentiell und stoppen den laufenden Prozess für diese Zeit
–  Stoppt der Prozess, werden die davor zugewiesenen Signale zugewiesen
– Ein wait aktualisert auch den Zeitstempel. Ohne waits in einem Process, kann nie die abgelaufene Zeit zum Simulieren übergeben (und das Programm beendet) werden. Der Prozess hängt in einem endlos loop.
– Ein (unbestimmtes) wait am Ende eines loop regelt selbständig, wie lang das Programm warten kann, bis wieder oben begonnen werden kann. (So entfiel z.B. die Fehlermeldung: „Can’t open file. Already used.“ Sobal die Datei wieder frei war, machte die Simulation weiter.