JK-FF

JK-FF
Schaltzeichen eines Flipflop nach DIN 40900 Teil 12

Ein Flipflop (engl. flip-flop), auch bistabile Kippstufe, bistabiles Kippglied oder bistabiler Multivibrator genannt, ist eine elektronische Schaltung, die zwei stabile Zustände einnehmen und diese speichern kann.

Das Flipflop ist eine einfache elektronische Schaltung, welche eine Datenmenge von einem Bit über eine lange Zeit speichern kann. Es ist fundamentaler Bestandteil vieler elektronischer Schaltungen (sequentieller Schaltkreise) – von der Quarzuhr bis zum Mikroprozessor. Daneben ist es in vieltausend- bis milliardenfacher Ausführung in Computerspeicherchips (statischen Speicherbausteinen) enthalten.

Inhaltsverzeichnis

Entstehung

Entwickelt wurde die Flipflop-Schaltung auf der Suche nach Zählschaltungen von den Engländern William Henry Eccles und F. W. Jordan an rückgekoppelten Radioröhren-Verstärkern (Radio Review. Dez. 1919, S. 143 ff), und erhielt ursprünglich die Bezeichnung Eccles-Jordan-Schaltung.

Charakteristik

Bistabile Kippstufe mit Transistoren
Ungetaktetes RS-Flipflop aus zwei NAND-Gattern

Flipflops unterscheiden sich in der Art der Eingänge, der Reaktion auf Taktsignale, der verwendeten Schaltgatter und in anderen Eigenschaften. Gemeinsam ist jedoch allen, dass sie zwei stabile Zustände haben, welche an einem Ausgang gemessen werden können. Diese Zustände werden „gesetzt“ (set) und „zurückgesetzt“ (reset) genannt. Zwischen diesen Zuständen kann durch Signale an den Eingängen umgeschaltet werden. Üblicherweise ist neben dem Ausgang Q ein weiterer Ausgang Q vorhanden, an dem der negierte Wert von Q anliegt.

Wird ein Flipflop zum Beispiel in Transistor-Transistor-Logik (TTL) aufgebaut, dann entspricht der Zustand „gesetzt“ einer Spannung von 5 Volt am Ausgang Q. An dem negierten Ausgang Q liegen dann 0 Volt an. Bei der Verwendung von positiver Logik wird dieser Zustand als Q = 1 und Q = 0 interpretiert. In dem Zustand „zurückgesetzt“ liegen die Werte vertauscht an den Ausgängen an (Q = 0 und Q = 1).

Das einfachste Flipflop ist das ungetaktete RS-Flipflop, welches die zwei Eingänge S und R besitzt. Der Eingang S setzt den Ausgang des Flipflops, versetzt das Flipflop also in den Zustand „gesetzt“. Der Eingang R setzt den Ausgang zurück, versetzt das Flipflop also in den Zustand „zurückgesetzt“. Die Eigenschaften des RS-Flipflops und anderer Flipflop-Arten werden weiter unten detaillierter erläutert.

Durch das Zusammenschalten mehrerer Flipflops entstehen komplexe Systeme wie Zähler (asynchron oder synchron), Datenspeicher (Halbleiterspeicher) und Mikroprozessoren. Flipflops sind Grundbausteine für die gesamte Digitaltechnik und Mikroelektronik von heute, einschließlich des Computers.

Klassifizierung anhand von Taktabhängigkeit

Das oben eingeführte ungetaktete RS-Flipflop ändert seinen Zustand direkt bei Änderung der Eingangssignale S oder R. Da diese nur in bestimmten Zeitabschnitten stabil anliegen, ist es oft gewünscht, dass ein Flipflop nur zu bestimmten Zeiten auf die Eingangssignale reagiert. Dieses Verhalten kann durch Verwendung eines Taktsignals realisiert werden, das die Steuereingänge des Flipflops zu bestimmten Zeiten freischaltet. Das Berücksichtigen eines Taktsignals ermöglicht auch Synchronität mit anderen Schaltungsteilen. Hier gilt es zu unterscheiden, auf welche Weise ein Flipflop Taktsignale berücksichtigt. Das folgende Bild zeigt diesbezüglich, wie verschiedene Flipflop-Typen voneinander abhängen.

Klassifizierung von Flipflops anhand ihrer Reaktion auf Taktsignale


Taktzustands- und taktflankengesteuerte Flipflops

Impulsverläufe eines zustandsgesteuerten und eines vorderflankengesteuerten SR-Flipflops im Vergleich

Flipflops lassen sich in zustandsgesteuerte (auch „pegelgesteuert“) und flankengesteuerte Flipflops einteilen. Zustandsgesteuerte Flipflops reagieren während der gesamten aktiven Taktphase auf die Spannungen, welche an den Eingängen angelegt werden. Sie arbeiten asynchron. Zustandsgesteuerte Flipflops werden auch (transparente) Latches genannt. Strenggenommen werden nur flankengesteuerte Bausteine als „Flipflop“ bezeichnet. Pegelgesteuerte Bausteine werden vor allem in der englischsprachigen Literatur als „Latch“ bezeichnet.

Taktflankengesteuerte Flipflops können ihren Zustand nur bei einer Taktflanke ändern. Genauer gesagt, reagiert das Flipflop nur während einer sehr kurzen Zeit nach der Taktflanke auf die Spannungen, die an den Eingängen anliegen. In der übrigen Zeit, zwischen den Flanken, bleibt der vorher eingestellte Zustand gespeichert und ändert sich, im Gegensatz zu taktzustandsgesteuerten Flipflops, auch dann nicht, wenn sich die Eingangsspannungen ändern. Man unterscheidet vorderflankengesteuerte (Wechsel bei steigender (positiver) Taktflanke) und rückflankengesteuerte (Wechsel bei fallender (negativer) Taktflanke) Flipflops. Zweiflankengesteuerte Flipflops werden auch „Master-Slave-Flipflops“ genannt. Sie bestehen aus zwei hintereinandergeschalteten Flipflops. Die erste Flanke setzt nur den Master, die zweite den Slave. Dieser ist mit dem Ausgang verbunden, so dass der Ausgang erst bei der zweiten Flanke reagiert. Es gibt eine Vielzahl von verschiedenen Ausführungen.

Flipflop-Typen

Im Folgenden sind einige typische Flipflops dargestellt, welche sich durch die vorhandenen Steuereingänge unterscheiden.

RS-Flipflop

Ein RS-Flipflop ist die einfachste Art eines Flipflops. Grundelement dieser Schaltungen ist ein Flipflop ohne Taktsteuerung, wie es in der nachfolgenden Tabelle in der ersten Zeile gezeigt ist. Mit geeigneter Zusatzbeschaltung können daraus sowohl taktpegelgesteuerte RS-Flipflops (asynchrone Schaltungen) als auch taktflankengesteuerte RS-Flipflops generiert werden. Diese RS-Flipflops dienen als Grundschaltungen zum Aufbau komplexerer Flipflops.

Ein RS-Flipflop verfügt über zwei Eingänge, die üblicherweise mit R (Reset) und S (Set) bezeichnet werden, ggf. ist ein dritter, typischerweise mit C (Clock) bezeichneter Eingang vorhanden, an den ein Taktsignal angelegt werden kann. Mit einem Signal am „Setz“-Eingang (d.h. S = 1 und gleichzeitig R = 0) wird der Ausgang Q des Flipflops auf 1 gesetzt. Aktiviert man hingegen den „Rücksetz“-Eingang (also R = 1 und gleichzeitig S = 0), so wird das Flipflop zurückgesetzt: Am Ausgang Q liegt dann eine logische 0 an. Liegt anschließend an beiden Eingängen eine 0 an, so verharrt das Flipflop in dem zuvor eingestellten Zustand. Besondere Aufmerksamkeit muss dem Eingangszustand gewidmet werden, bei dem sowohl R- als auch S-Eingang aktiv sind (R = S = 1 beim RS-Flipflop aus NOR-Gattern bzw. \bar R = \bar S = 0 beim RS-Flipflop aus NAND-Gattern). 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 (race condition), bei dem das Flipflop, salopp formuliert, nicht weiß, in welchen Zustand es wechseln soll. Bei idealsymmetrischen Flipflops, zum Beispiel wenn dieses bewusst so in Software realisiert ist, dauert dieser Zustand unendlich lange. Bei elektronisch realisierten Logikbausteinen, die in aller Regel sogar bewusst nie idealsymmetrisch sind, fällt es spätestens innerhalb von Mikrosekunden in einen der beiden stabilen Zustände. Deshalb sollte ein solcher Wechsel vermieden werden. Ist das Flipflop taktgesteuert, können Änderungen der Ausgangszustände natürlich nur dann vorgenommen werden, wenn der steuernde Eingang aktiviert ist. Bei taktzustandsgesteuerten Flip-Flops muss dementsprechend eine 1 am Eingang C anliegen, bei Takt-Flankengesteuerten Flipflop eine geeignete Flanke (steigend oder fallend, je nach Konstruktion). Ein flankengesteuertes RS-Flipflop kann durch (annähernd) gleichzeitiges Takten beider Eingänge ebenfalls in einen undefinierten Zustand gelangen.

Man kann jedoch einen Eingang dominierend schalten und somit den dritten Zustand vermeiden. Solche Flipflops werden am dominierenden Eingang mit einer 1 nach dem Buchstaben gekennzeichnet. In der Automatisierungstechnik, z. B. bei Speicherprogrammierbaren Steuerungen ist die Nutzung der Dominanz verpflichtend, da instabile oder nicht vorhersagbare Zustände hier nicht tolerierbar sind. Die Dominanz wird dabei dadurch sichergestellt, dass der dominante Zustand zeitlich nach dem dominierten programmiert wird und diesen somit überschreibt, so dass zum Synchronisationszeitpunkt das gewünschte dominierende Verhalten gewährleistet ist. Innerhalb von Multitaskingsystemen muss daher die Abarbeitung des Setzens und Rücksetzens gekapselt sein und darf nicht unterbrochen werden.

Vergleich zwischen RS-Flip-Flop und Wippe

Die Arbeitsweise eines RS-Flipflops lässt sich grob mit der einer mechanischen Wippe vergleichen (dieser Vergleich motiviert auch die Bezeichnung Kippstufe). Eine Wippe besitzt zwei stabile Zustände: Einerseits, wenn ihr linkes Ende den Boden berührt, andererseits, wenn ihr rechtes Ende auf dem Boden aufliegt. Durch geeigneten Kraftaufwand kann man die Wippe von einem stabilen Zustand in den anderen stabilen Zustand überführen (bei einem Flipflop entspricht dies der Aktivierung der Eingänge, d.h. R = 0,S = 1 bzw. R = 1,S = 0). Lässt die steuernde Kraft nach (entspricht R = 0 und S = 0), so verharrt die Wippe in dem zuvor eingestellten Zustand: Dieser ist damit gleichsam gespeichert. Eine horizontale Ausrichtung der Wippe führt jedoch zu einem metastabilen Zustand (entspricht dem Fall R = 1 und S = 1): Da die Wippe nicht exakt symmetrisch gebaut ist und nicht alle äußeren Störeinflüsse ausgeschaltet werden können, kippt die Wippe nach einer bestimmten Zeit und nimmt einen der beiden stabilen Zustände ein, sobald die steuernde Kraft nachlässt. I.d.R. kann nicht vorhergesagt werden, ob ihr linkes Ende oder ihr rechtes Ende in Richtung des Erdbodens kippen wird, da z.B. nicht alle Störungen exakt genug bekannt sind. Ein getaktetes Flipflop entspricht dabei einer Wippe, bei der die steuernde Kraft nur während einer durch ein äußeres Taktsignal bestimmten Zeit wirken kann.

In der folgenden Gegenüberstellung ist die erste Ausführung in negativer Logik ausgeführt. Das heißt, dass der Ruhezustand der Eingangssignale durch den 1-Pegel gebildet wird, und der aktive, schaltende Zustand durch 0-Pegel der Eingänge. Das ist durch den Aufbau des Flipflops aus NAND-Gattern bedingt und durchaus auch in der Praxis üblich. Bei der zweiten Ausführung ist den Eingängen praktisch eine zusätzliche Inverterstufe vorgeschaltet, so dass hier wieder in positiver Logik gearbeitet wird.

Name Schaltsymbol Impulsdiagramm Ersatzschaltbild Wahrheitstabelle
RS-Flipflop
RS-Flipflop
Impulsdiagramm SR-Flipflop in negativer Logik
Logik-Schaltung eines RS-Flipflops aus zwei NAND-Gattern (ungetaktet)

Die Eingänge R und S sind als negative Logik zu verstehen

S R Q
1 1 unverändert
0 1 1 (gesetzt)
1 0 0 (zurückgesetzt)
0 0 Q=Q=1 (wird nicht gespeichert; potenzielle Race condition)
RS-Flipflop mit Taktpegelsteuerung
RS-Flipflop pegelgesteuert
Impulsdiagramm (SR-Latch)
Logik-Schaltung eines getakteten RS-Flip-Flops aus vier NAND-Gattern (taktpegelgesteuert)
S R C Q
0 0 0 unverändert
0 0 1 unverändert
0 1 0 unverändert
0 1 1 0 (zurückgesetzt)
1 0 0 unverändert
1 0 1 1 (gesetzt)
1 1 0 unverändert
1 1 1 Q=Q=1 (wird nicht gespeichert; potenzielle Race condition)

Ein RS-Flipflop mit nur einem Eingang, der gleichzeitig Setz- und negierter Rücksetz-Eingang ist, wird D-Flipflop (D für Delay, nach anderer Definition auch für Daten) oder Latch genannt. Solange der Takteingang (C für Clock) aktiv ist, nimmt das Flipflop den Zustand an, der am Eingang anliegt. Der Vorteil des D-Flipflops ist, dass der illegale Zustand R = S = 1 vermieden wird. Sowohl RS- als auch D-Flipflop haben den (allerdings nur in bestimmten Schaltungen bedeutsamen) Nachteil, dass der Eingangswert sofort am Ausgang sichtbar wird, solange der Takt vorliegt (C = 1).

JK-Flipflop

Eine weitere Klasse von Flipflops, die primär in diskreten digitalen Schaltungen Anwendung findet, sind die JK-Flipflops. Sie wurden wahrscheinlich nach Jack Kilby benannt, werden aber oft Jump-/Kill-Flipflops genannt, da bei der Eingangsbeschaltung J = 1 eine 1 und bei K = 1 eine 0 gespeichert wird. Sie sind fast immer als flankengesteuertes Bauelement ausgeführt. Der Eingang C kann für steigende Flanken (Wechsel von 0 auf 1) oder für fallende Flanken (Wechsel von 1 auf 0) ausgelegt werden. Der Zustand J = K = 1 ist erlaubt. In diesem Fall wechselt der Ausgangspegel mit jeder wirksamen Flanke des Taktsignals, was dem Verhalten eines Toggle-Flipflops entspricht. Für J = K = 0 bleibt der Zustand erhalten.

Bei JK-Flipflops muss als wesentliche Einschränkung beachtet werden, dass sich bei aktivem Taktzustand (C = 1) die Zustände der beiden Eingänge J und K nicht mehr ändern dürfen. Es liegt also kein rein taktflankengesteuertes Flipflop vor. Dieser Nachteil ist auch der primäre Grund, warum JK-Flipflops in komplexen Digitalschaltungen nur noch selten verwendet werden und primär durch einflankengetriggerte D-Flipflops ersetzt werden, die diesen Nachteil nicht aufweisen.

Name Schaltsymbol Impulsdiagramm Wahrheitstabelle
JK-Flipflop
JK-Flipflop
Impulsdiagramm (vorderflankengesteuertes JK-Flipflop)
während des Taktes nach Taktflanke
J K Q
0 0 unverändert
0 1 0 (Flipflop zurückgesetzt)
1 0 1 (Flipflop gesetzt)
1 1 Zustand wechselt (toggle)


Viele der erhältlichen Flipflops vereinen verschiedene Bauformen in sich und sind so vielseitiger einsetzbar.

D-Flipflop

D-Flipflop

Eine in komplexeren integrierten Schaltungen wie Field Programmable Gate Array (FPGAs) und ASICs anzutreffende taktflankengesteuerte Klasse von Flipflops sind die D-Flipflops. Diese besitzen einen Daten- (D) und einen Clock-Eingang (C, oft dargestellt als ">", siehe Grafik). Oft ist noch ein sogenannter Clock-Enable-Eingang (CE) vorhanden, mit dem der Takteingang in seiner Funktion freigeschaltet werden kann (engl. enable = freigeben). Als Ausgang kommt Q und nur selten der dazu invertierte Ausgang vor.

Das D-Flipflop speichert bei freigeschaltetem Takteingang und aktiver Taktflanke den logischen Zustand des Eingangs und gibt seinen Wert in Folge auf Q aus. Liegt keine aktive Taktflanke an oder ist der Clock-Enable-Eingang deaktiviert, erfolgt keine Übernahme des Eingangswertes.

Aus diesem elementaren Flipflop lassen sich durch externe Beschaltung alle weiteren taktflankengesteuerten Typen von Flipflops und komplexere Schaltungen wie Synchronzähler, Taktteiler oder auch Schieberegister realisieren.

T-Flipflop

Ein T-Flipflop kann durch ein D-Flipflop gebildet werden, wenn dessen Ausgang Q invertiert auf den Eingang D zurückgeführt wird. Damit entsteht ein T-Flipflop. T steht dabei für englisch toggle - Hin- und herschalten. Vor allem bei diskreten Digitalschaltungen wird zur Realisierung eines T-Flipflops manchmal auch das oben beschriebene JK-Flipflop verwendet. Dabei müssen beide Eingänge des JK-FF auf logisch "1" gelegt werden.

Ein T-Flipflop funktioniert ähnlich wie ein Druckkugelschreiber oder ein Stromstoßrelais (Stromstoßschalter). Wegen der oben schon erwähnten Eigenschaft des mit halber Frequenz des Taktsignals wechselnden Ausgangspegels dienen diese Flipflops vor allem als Frequenzteiler und als Grundelement in digitalen Zählern. Man verwendet sie auch, um ein Rechtecksignal mit einem Tastverhältnis von exakt 1:1 zu gewinnen.

bgc Q
0 0
1 1
0 1
1 0
Zeitverhalten eines echten T-FF. 0, 1. links=Takt, rechts=Q. Die Leitungen sind an den Kreuzungen isoliert.


Schaltzeichen verschiedener Flipflop-Typen

Schaltzeichen

Verwendung von Flipflops

Einfaches Beispiel einer Aufzugsteuerung

Aufzugsteuerung mittels Flipflop. Der gezeigte Flipflop ist für das Erdgeschoss verantwortlich.

An dem einfachen Beispiel einer Aufzugsteuerung soll die Speicherfunktion eines SR-Flipflops verdeutlicht werden. Wir betrachten einen Aufzug in einem mehrgeschossigen Gebäude. Auf jeder Etage befindet sich ein Rufknopf für den Aufzug. Der Vorgang ist aus dem Alltag bekannt: Drückt man die Ruftaste, so leuchtet diese auch dann noch auf, wenn man den Knopf loslässt. Der Rufbefehl bleibt also gespeichert, auch wenn der Schalter nicht gedrückt bleibt. Das Licht hinter der Taste verlischt erst, wenn der Aufzug auf unserer Etage angehalten und die Türen geöffnet hat. Erst jetzt ist auch der Rufbefehl gelöscht. Ein solches Verhalten lässt sich mit einem SR-Flipflop realisieren. Dazu benötigen wir für jede Etage einen Flipflop. Seine beiden Eingänge (S und R) legen wir dazu jeweils an eine Spannungsquelle (HI = High), die eine für eine logische 1 hinreichend große Spannung liefert. Zwischen Spannungsquelle und den Flipflop-Eingängen sitzen jeweils Taster. Der eine Taster ist mit dem Rufknopf der jeweiligen Etage verbunden, der andere Taster kann nur vom Aufzug selbst bedient werden. Indem wir die Ruftaste auf einer Etage drücken, schließen wir kurz die Verbindung zwischen der Spannungsquelle und dem S-Eingang des Flipflops, der für unsere Etage zuständig ist. Damit wird wegen S = 1,R = 0 der Flipflop gesetzt: Q = 1 und \bar Q = 0. Der Ausgang Q speichert damit den Rufbefehl. Lassen wir den Knopf wieder los, schnellt der Taster zurück, die Verbindung zwischen der Spannungsquelle und dem Eingang S ist unterbrochen, der Eingang S des Flipflops fällt auf 0 zurück (S = 0,R = 0). Dennoch verharrt das Flipflop in dem zuvor eingestellten Zustand: Q bleibt nämlich solange auf 1, bis der Reset-Eingang aktiviert wird (Speicherfall). Der Aufzug setzt sich nun in Bewegung. Sobald er an unserer Etage anhält und seine Türen öffnet, betätigt ein Mechanismus den Taster, der den R-Eingang und die Spannungsquelle trennt. Dadurch wird wegen S = 0,R = 1 der Rufbefehl gelöscht (Q = 0) und bleibt solange gelöscht, bis ein weiterer Besucher die Ruftaste erneut drückt. In der Realität ist die Steuerung natürlich weit komplexer, die in den jeweiligen Etagen gespeicherten Rufbefehle werden an eine Steuerelektronik des Aufzugs gegeben, die dann aus diesen und aus den in der Aufzugkabine gedrückten Tasten eine sinnvolle Reihenfolge errechnet, nach der die Etagen angefahren werden sollen.


Breite Verwendung in der Digitalelektronik

Flipflops können als 1-Bit-Speicher betrachtet werden. Aus ihnen können Register verschiedener Wortbreiten zusammengesetzt werden, wie sie beispielsweise in Mikroprozessoren Verwendung finden.

Ein 8-Bit-Register, aus D-Flipflops zusammengesetzt

Auch die einzelnen Speicherzellen von statischen RAMs bestehen aus Flipflop-Schaltungen. Beim Dynamischen RAM hingegen besteht eine Speicherzelle nur aus einem Kondensator und einem Transistor.

Weiterhin sind Flipflops unverzichtbar in digitalen Zählschaltungen. Hier kommen besonders T-Flipflops (verschiedener Typen) als Frequenzteiler zum Einsatz.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”