2.7 Diskrete, ereignisbasierte Sprachen
97
Tabelle 2.4 Folge von Werten an
Ein- und Ausgängen eines RSFlipflops
t < 0 t=0
t > 0
R 0 1 1 1 1
S 0 0 0 0 0
Q 1 1 0 0 0
nQ 0 0 0 1 1
zunächst inaktiv, während sie auf Ereignisse an den Eingängen a oder b warten.
Dieses Warten wird durch die Listen (a,b) ausgedrückt. Man sagt, gate1 und
gate2 seien sensitiv bezüglich der Einträge in der Liste.
Angenommen, zur Zeit 0 ändern wir den Wert am Eingang R, dem Rücksetzeingang, auf Wir erwarten, dass das Flipflop zurückgesetzt wird. In Form von
Ereignissen passiert dies wie folgt: Die Änderung am Eingang R ist ein Ereignis,
welches in der Warteschlange gespeichert wird. Dieses Ereignis wird sofort verarbeitet, denn es ist das einzige Ereignis in der Warteschlange. Dieses Ereignis weckt
gate2, da dieses sensitiv ist bezüglich Änderungen an seinem Eingang b. gate2
wird daraufhin die nor-Funktion berechnen (mit einem Ergebnis von 0) und wird
sodann die Zuweisung c <=0 ausführen. Diese Schreibweise bezeichnet eine sogenannte Signalzuweisung. Dies bedeutet, dass die neuen Werte zunächst nur in der
Warteschlange gespeichert werden. Die tatsächliche Zuweisung zur Variablen auf
der linken Seite erfolgt erst, wenn der Zeitpunkt zur Bearbeitung dieses Eintrags in
der Warteschlange erreicht ist. In unserem Beispiel wird ein Ereignis erzeugt, welches verlangt, dass Ausgang c von gate2 auf 0 gesetzt wird und dieses Ereignis
wird in der Warteschlange gespeichert.
Dieses Ereignis wird sofort aus der Warteschlange geholt, da es das einzige
Ereignis ist. Das Ereignis wird Ausgang c auf 0 setzen. Diese Änderung wird
gate1 wecken, da gate1 darauf sensitiv ist. gate1 wird folglich ebenfalls die nor -
Funktion berechnen. Diese Berechnung führt zu einem Ereignis, als dessen Wirkung
Ausgang c von gate1 auf 1 zu setzen ist. Dieses Ereignis wird ebenfalls in der
Warteschlange gespeichert.
Dieses Ereignis wird ebenfalls sofort verarbeitet und es führt zum gewünschten
Setzen des Werts am Ausgang. Diese Änderung wird gate2 erneut wecken. gate2
berechnet wieder den Wert 0 am Ausgang. Der weitere Verlauf wird etwas davon
abhängen, auf welche Weise man erkennt, dass sich ein stabiler Zustand eingestellt
hat und dass keine weiteren Ereignisse zu erzeugen sind.
Im Beispiel hätten wir echte Verzögerungen um physikalische Zeiten hinzufügen
können und so eine Übersicht über die verstrichene Zeit gehabt. Insgesamt approximiert diese ereignisbasierte Simulation das Verhalten eines echten Flipflops.
∇
2.7.2 Mehrwertige Logik
Welche Werte sollten wir für die Simulation im obigen Beispiel benutzen? In diesem
Buch beschränken wir uns auf die Beschreibung von eingebetteten Systemen, die mit
97
Tabelle 2.4 Folge von Werten an
Ein- und Ausgängen eines RSFlipflops
t < 0 t=0
t > 0
R 0 1 1 1 1
S 0 0 0 0 0
Q 1 1 0 0 0
nQ 0 0 0 1 1
zunächst inaktiv, während sie auf Ereignisse an den Eingängen a oder b warten.
Dieses Warten wird durch die Listen (a,b) ausgedrückt. Man sagt, gate1 und
gate2 seien sensitiv bezüglich der Einträge in der Liste.
Angenommen, zur Zeit 0 ändern wir den Wert am Eingang R, dem Rücksetzeingang, auf Wir erwarten, dass das Flipflop zurückgesetzt wird. In Form von
Ereignissen passiert dies wie folgt: Die Änderung am Eingang R ist ein Ereignis,
welches in der Warteschlange gespeichert wird. Dieses Ereignis wird sofort verarbeitet, denn es ist das einzige Ereignis in der Warteschlange. Dieses Ereignis weckt
gate2, da dieses sensitiv ist bezüglich Änderungen an seinem Eingang b. gate2
wird daraufhin die nor-Funktion berechnen (mit einem Ergebnis von 0) und wird
sodann die Zuweisung c <=0 ausführen. Diese Schreibweise bezeichnet eine sogenannte Signalzuweisung. Dies bedeutet, dass die neuen Werte zunächst nur in der
Warteschlange gespeichert werden. Die tatsächliche Zuweisung zur Variablen auf
der linken Seite erfolgt erst, wenn der Zeitpunkt zur Bearbeitung dieses Eintrags in
der Warteschlange erreicht ist. In unserem Beispiel wird ein Ereignis erzeugt, welches verlangt, dass Ausgang c von gate2 auf 0 gesetzt wird und dieses Ereignis
wird in der Warteschlange gespeichert.
Dieses Ereignis wird sofort aus der Warteschlange geholt, da es das einzige
Ereignis ist. Das Ereignis wird Ausgang c auf 0 setzen. Diese Änderung wird
gate1 wecken, da gate1 darauf sensitiv ist. gate1 wird folglich ebenfalls die nor -
Funktion berechnen. Diese Berechnung führt zu einem Ereignis, als dessen Wirkung
Ausgang c von gate1 auf 1 zu setzen ist. Dieses Ereignis wird ebenfalls in der
Warteschlange gespeichert.
Dieses Ereignis wird ebenfalls sofort verarbeitet und es führt zum gewünschten
Setzen des Werts am Ausgang. Diese Änderung wird gate2 erneut wecken. gate2
berechnet wieder den Wert 0 am Ausgang. Der weitere Verlauf wird etwas davon
abhängen, auf welche Weise man erkennt, dass sich ein stabiler Zustand eingestellt
hat und dass keine weiteren Ereignisse zu erzeugen sind.
Im Beispiel hätten wir echte Verzögerungen um physikalische Zeiten hinzufügen
können und so eine Übersicht über die verstrichene Zeit gehabt. Insgesamt approximiert diese ereignisbasierte Simulation das Verhalten eines echten Flipflops.
∇
2.7.2 Mehrwertige Logik
Welche Werte sollten wir für die Simulation im obigen Beispiel benutzen? In diesem
Buch beschränken wir uns auf die Beschreibung von eingebetteten Systemen, die mit
