Eine Schaltung zur Speicherung eines einzelnen Bits muss ihren
Zustand am Ausgang auch nach Änderung des Signals am Eingang
beibehalten können. Eine solche Schaltung könnte so aussehen:
Das Problem dieser Schaltung ist, dass man
sie nicht auf Null zurücksetzen kann. Eine Schaltwerttabelle
soll helfen, eine Grundschaltung zu entwickeln, mit der man
einen Wert setzen und auch wieder löschen kann. Dazu benötigt
man zwei Eingänge S und R. Qneu
ist der neue Ausgangswert, Qalt der
gespeicherte Wert. Besondere Aufmerksamkeit muss dem
Eingangszustand gewidmet werden, bei dem R = S = 0
ist. Dabei nimmt
das zustandgesteuerte Flipflop einen dritten Zustand an, bei dem
beide Ausgänge gleichen Pegel führen und der nicht gespeichert
werden kann. Ein gleichzeitiger bzw. annähernd gleichzeitiger
Wechsel beider Eingänge zum inaktiven Pegel führt zu einem
undefinierten
metastabilen Zustand, bei dem das Flipflop, salopp formuliert, nicht
weiß, in welchen Zustand es wechseln soll.
R |
S |
Qalt |
Qneu |
Kommentar |
0 |
0 |
0 |
1 |
unzulässig |
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
1 |
setzen |
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
löschen |
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
0 |
halten |
1 |
1 |
1 |
1 |
|
Qneu=
(¬R
∨ S
∨ Qalt)
∧ (¬R
∨ S
∨ ¬Qalt)
∧
(¬R
∨ ¬S
∨
Qalt)
=
¬R
∨
((S
∨ Qalt)
∧
(S
∨ ¬Qalt)
∧ (¬S
∨
Qalt))
=¬R
∨
((S
∧
(¬S
∨
Qalt))
= ¬R
∨
(S
∧ Qalt)
Eine solche Schaltung ist ein Grund-Flip-Flop (Grund-FF). Man
sollte aber aus Schaltungstechnischen Gründen (unterschiedliche
Laufzeiten) einheitliche Gatterbausteine verwenden.
Formuliert man mit Hilfe der Regel von De Morgan die Gleichung
um, erhält man
¬R
∨ (S
∧ Qalt)
= ¬(R ∧ ¬(S
∧ Qalt))
Der Vorteil dieser Schaltung ist, dass sie nur noch aus
NAND-Bausteinen besteht. Führt man aus dem zweiten NAND-Baustein
den Ausgang ebenfalls nach außen, so erhält man ein Grund-FF (RS-Flipflop) mit
zwei Ausgängen, die -außer beide Eingänge liegen auf 0, was ja
vermieden werden soll – entgegengesetzte Werte haben.
Da in der Regel nicht nur ein Bit gespeichert wird, muss die
Arbeitsweise von mehreren Speichergliedern synchronisiert
werden. Das benötigte Steuersignal, der Takt, sorgt dafür, dass
alle Speicherbausteine gleichzeitig Werte übernehmen. Liegt das
Taktsignal auf 1, werden Werte übernommen, liegt das Taktsignal
auf 0, bleiben die Werte erhalten. In der vorliegenden Schaltung
halten die FF ihren Wert, wenn R und S auf 1 liegen. Es werden
also Eingangsbausteine benötigt, die bei Takt 0 eine 1
produzieren und bei Takt 1 das Eingangssignal durchschalten. Der
benötigte Baustein muss also folgende Schaltwerttabelle
erfüllen:
Takt |
Eingang |
Ausgang |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Das gewünschte Ausgangsmuster liefern NAND-Bausteine. Da
bisher schon NAND-Bausteine verwandt werden, ist dies
vorteilhaft (RS-Flipflop mit Taktsteuerung).
Schaltet man S und R so, dass beide immer den
entgegengesetzten Eingangspegel erhalten, erhält man ein
D-Flipflop.
Da als Takt ein einfaches Rechtecksignal benutzt wird,
benötigt man einen Speicher, der die anliegenden Werte nicht
während der gesamten Zeit, in der der Takt auf 1 liegt,
übernimmt, sondern nur während eines kurzen, durch den Wechsel
im Taktsignal ausgelösten Zeitraums. Technisch löst man dieses
Problem, in den man zwei FF hintereinander schaltet, die im
Gegentakt arbeiten. Einen solchen zweistufigen Aufbau bezeichnet
man als Master-Slave-Flipflop, da die zweite Stufe als Slave nur
Daten der ersten Masterstufe übernehmen kann. Schaltet man
zusätzlich die Ausgänge wieder auf die Eingänge (P auf S und Q
auf R, erhält man ein taktflankengesteuertes JK-Flipflop, das
neben Setzen, Löschen, Speichern auch das Toggeln erlaubt. Unter
Toggeln versteht man ein taktweises Wechseln zwischen den beiden
Zuständen 0 und 1.
Das entsprechende Schaltsymbol zeigt die
folgende Graphik.