RS-FlipFlop
Wie verhalten sich unterschiedliche RS-FlipFlops bei $R=S=1$?
RS-FlipFlop aus 2 NOR-Gattern
Das RS-FlipFlop aus 2 NOR-Gattern geht bei $R=S=1$ immer in den Zustand $Q=\bar{Q}=0$. Begründung: Bei $s=1$ liegt am unteren Eingang des unteren NOR-Gatters 1 an. Deshalb gibt das untere NOR-Gatter 0 aus - unabhängig vom Zustand des oberen Eingangs. Die Begründung für das obere NOR-Gatter verläuft analog.
RS-FlipFlop aus 2 NAND-Gattern
Das RS-FlipFlop aus 2 NAND-Gattern geht bei $R=S=1$ immer in den Zustand $Q=\bar{Q}=1$. Begründung: Bei $s=1$ liegt am oberen Eingang des oberen NAND-Gatters 0 an. Deshalb gibt das NAND-Gatter 1 aus - unabhängig vom Zustand des unteren Eingangs. Die Begründung für das untere NAND-Gatter verläuft analog.
RS-FlipFlop aus je einem AND, OR und NOT-Gatter
Das RS-FlipFlop aus je einem AND, OR und NOT-Gatter geht bei $R=S=1$ immer in den Zustand $Q=1$. Begründung: Bei $S=1$ liegt am oberen Eingang des OR-Gatters 1 an. Deshalb gibt das OR-Gatter 1 aus - unabhängig vom Zustand des unteren Eingangs.
Ergebnis: Solange man bei dem gleichen Aufbau des RS-FlipFlops bleibt, ist das Verhalten im Zustand $R=S=1$ immer gleich. Das Verhalten ist also definiert.
Wie verhalten sich unterschiedliche RS-FlipFlops, wenn bei $R=S=1$ beide Eingänge gleichzeitig auf 0 gesetzt werden?
FlipFlops aus 2 NOR- oder 2 NAND-Gattern
Welcher Zustand erreicht wird, hängt von den Schaltzeiten der beiden Gatter ab. In DSimWeb werden die Schaltzeite eines Gatters nicht immer gleich. Bei jedem Event (d.h. Änderung eines Signales am Eingang eines Gatters) wird zu der Basisschaltzeit des Gattertyps eine kleine Zufallszahl addiert.
Wenn man beide Eingänge zunächst auf 1 setzt, dann gleichzeitig auf 0 setzt und dann auf den Pause-Button drückt, kann man den zeitlichen Verlauf der Zustände der FlipFlops nach dem letzten 0 setzen der Eingänge beobachten. Man sieht, dass die Signale einige Zeit schwingen und irgendwann in einen stabilen Zustand übergehen. Dieses Verhalten nennt man Race-Condition. Ob dann der Zustand $Q=1$ oder der Zustand $Q=0$ das "Rennen gewinnt" und stabil wird, hängt vom zufälligen Gatterlaufzeiten ab.
RS-FlipFlop aus je einem AND, OR und NOT-Gatter
Wenn beide Eingänge von $R=S=1$ gleichzeitig auf $R=S=0$ gesetzt werden,
geht das FlipFlop immer in den Zustand $Q=0$.
Begründung: Am OR-Gatter liegt am oberen Eingang eine 0. Deshalb gibt das Gatter eine 0 aus.
Das RS-FlipFlop als Modul in Simulatoren
Bonsai
Auf der Seite https://inf-schule.de/rechner/digitaltechnik/flipflop/uebungen gibt es bei Aufgabe 4 eine Schaltung, bei der das RS-FlipFlop untersucht wird. Im Zustand $R=S=1$ ist der Wert von "Q" tatsächlich zufällig. Dieses Verhalten besitzt keine der oben untersuchten Implementierungen aus Gattern. Deshalb denke ich, dass der Bonsai hier fehlerhaft arbeitet. Leider kann ich nicht nachvollziehen, warum sich Pina und Klaus Merkert für dieses Verhalten entschieden haben.
DSimWeb
Im Bonsai verhält sich das Modul im Zustand $R=S=1$ wie die Implementierung aus 2 NOR-Gattern.
Gehen im Zustand $R=S=1$ beide Eingänge gleichzeitig auf 0, so geht das Modul immer in den Zustand $S=0$. Es gibt also keine Race-Condition. Dieses Verhalten gibt es auch bei dem RS-FlipFlop aus je einem AND-, OR- und NOT-Gatter. Dort ist im Zustand $R=S=1$ jedoch $Q=\bar{Q}=1$. Eventuell werde ich in einer zukünftigen Version von DSimWeb das Verhalten des eingebauten RS-FlipFlops verändern, so dass es sich so verhält wir das FlipFlop aus je einem AND-, OR- und NOT-Gatter.
Antares
Antares verhält sich wie DSimWeb:
Wie unterrichten wir den Zustand $R=S=1$ in der Weiterbildung und auf inf-schule?
Vorschlag:
- Wir zeigen auf, dass es nicht sinnvoll ist, ein FlipFlop gleichzeitig auf 1 zu setzen ($S=1$) und auf 0 zu setzen ($R=1$). Deshalb vermeiden wir den Zustand $R=S=1$.
- Um dies zu untermauern, könnte man das Verhalten von zwei FlipFlop-Typen vergleichen (z.B. 2 NOR und 1 OR, 1 AND und 1 NOT). Dann würde man sehen, dass sich die beiden Flip-Flops unterschiedlich verhalten. Außerdem würde man sehen, dass das Flip-Flop aus 2 NOR-Gattern die Werte $Q=\bar{Q}=0$ ausgibt. Dies ist nicht sinnvoll, da aus $Q=0$ eigentlich $Q=1$ folgt und nicht $Q=0$.