2.4 Kommunizierende endliche Automaten
63
3. In der dritten Phase finden die Zustandsübergänge statt und die Variablen erhalten
ihre neuen Werte.
Die Aufteilung in die Phasen 2 und 3 ist besonders wichtig, um ein deterministisches und reproduzierbares Verhalten von StateCharts-Modellen zu erreichen.
Beispiel 2.14: Wir betrachten das StateCharts-Modell in Abb. 2.21.
1
0
swap
/a:= ; b:=
e/a:=b
e/b:=a
Abb. 2.21 Gegenseitige, abhängige Wertzuweisung
In der zweiten Phase werden bei Eintreten des Ereignisses e die neuen Werte für
a und b zunächst in temporären Variablen, z.B. a’ und b’, zwischengespeichert. In
der letzten Phase werden diese Zwischenwerte dann in die eigentlichen Variablen
kopiert:
phase 2: a’:=b; b’:=a;
phase 3: a:=a’; b:=b’;
Dadurch werden die Werte der beiden Variablen jedes Mal vertauscht, wenn
das Ereignis e eintritt. Dieses Verhalten entspricht zwei über Kreuz verbundenen
Abb. 2.22 Über Kreuz verbundene Register
Takt
D
D
b
a
Registern (eines für jede Variable), die an der gleichen Taktleitung angeschlossen
sind (siehe Abb. 2.22) und modelliert das Verhalten eines getakteten Schaltwerks,
das diese zwei Register enthält13.
∇
13 Wir verwenden in diesem Buch durchgehend in allen Schaltungen die IEEE-Standardsymbole
[239] für Gatter und Register. Die Symbole in Abb. 2.22 stellen getaktete Register vom D-Typ dar.
63
3. In der dritten Phase finden die Zustandsübergänge statt und die Variablen erhalten
ihre neuen Werte.
Die Aufteilung in die Phasen 2 und 3 ist besonders wichtig, um ein deterministisches und reproduzierbares Verhalten von StateCharts-Modellen zu erreichen.
Beispiel 2.14: Wir betrachten das StateCharts-Modell in Abb. 2.21.
1
0
swap
/a:= ; b:=
e/a:=b
e/b:=a
Abb. 2.21 Gegenseitige, abhängige Wertzuweisung
In der zweiten Phase werden bei Eintreten des Ereignisses e die neuen Werte für
a und b zunächst in temporären Variablen, z.B. a’ und b’, zwischengespeichert. In
der letzten Phase werden diese Zwischenwerte dann in die eigentlichen Variablen
kopiert:
phase 2: a’:=b; b’:=a;
phase 3: a:=a’; b:=b’;
Dadurch werden die Werte der beiden Variablen jedes Mal vertauscht, wenn
das Ereignis e eintritt. Dieses Verhalten entspricht zwei über Kreuz verbundenen
Abb. 2.22 Über Kreuz verbundene Register
Takt
D
D
b
a
Registern (eines für jede Variable), die an der gleichen Taktleitung angeschlossen
sind (siehe Abb. 2.22) und modelliert das Verhalten eines getakteten Schaltwerks,
das diese zwei Register enthält13.
∇
13 Wir verwenden in diesem Buch durchgehend in allen Schaltungen die IEEE-Standardsymbole
[239] für Gatter und Register. Die Symbole in Abb. 2.22 stellen getaktete Register vom D-Typ dar.
