# Flipflop

Ein Flipflop (auch Flip-Flop), oft auch bistabile Kippstufe oder bistabiles Kippglied genannt, ist eine elektronische Schaltung, die zwei stabile Zustände des Ausgangssignals besitzt. Dabei hängt der aktuelle Zustand nicht nur von den gegenwärtig vorhandenen Eingangssignalen ab, sondern außerdem vom Zustand, der vor dem betrachteten Zeitpunkt bestanden hat. Eine Abhängigkeit von der Zeit besteht nicht, sondern nur von Ereignissen.
Durch die Bistabilität kann die Kippstufe eine Datenmenge von einem Bit über eine unbegrenzte Zeit speichern. Dazu muss, anders als bei nichtflüchtigen Datenspeichern, jedoch die Spannungsversorgung dauernd gewährleistet sein. Das Flipflop ist als Grundbaustein der sequentiellen Schaltungen ein unverzichtbares Bauelement der Digitaltechnik und damit fundamentaler Bestandteil vieler elektronischer Schaltungen von der Quarzuhr bis zum Mikroprozessor. Insbesondere ist es als elementarer Ein-Bit-Speicher das Grundelement der statischen Speicherbausteine für Computer.

## Geschichte

Die Flipflopschaltung wurde von den Engländern William Henry Eccles und Frank W. Jordan an rückgekoppelten Radioröhrenverstärkern auf der Suche nach Zählschaltungen entwickelt und am 21. Juni 1918 zum Patent angemeldet. Ursprünglich erhielt sie die Bezeichnung Eccles-Jordan-Schaltung. Die Schaltung wurde unter anderem im Jahr 1943 während des 2. Weltkrieges im britischen Röhrencomputer Colossus verwendet.
Die heute üblichen Bezeichnungen der verschiedenen Flipflop-Typen wie RS-Flipflop, D-Flipflop, T-Flipflop oder JK-Flipflop gehen auf Montgomery Phister zurück, welcher 1954 in einer Vorlesung an der University of California, Los Angeles (UCLA) erstmals diese Bezeichnungen wählte und sie in Folge in seinem Buch Logical Design of Digital Computers aus dem Jahr 1958 verwendete.

## Charakteristik

Flipflops unterscheiden sich unter anderem
* in der Anzahl und der logischen Funktion ihrer Eingänge (beschrieben durch ihre charakteristische Gleichung oder Funktionstabelle),
* in der zeitlichen Reaktion auf die Eingangssignale (Daten- und Steuersignale), insbesondere auf die Taktsignale (Timing),
* in der Durchlässigkeit von Datensignalen bis zum Ausgang (Transparenz oder Momentanfreigabe)
* und im strukturellen Aufbau (einfache interne Mitkopplung (Einspeicher-Flipflop) oder Master-Slave-Prinzip (Zweispeicher-Flipflop)).
Gemeinsam ist jedoch allen, dass sie zwei stabile Zustände haben, welche an einem Ausgang festgestellt 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. Der Einschaltzustand ist bei einem einfachen Flipflop aus zwei symmetrisch angeordneten bipolaren Transistoren (wie im Bild „Bistabile Transistor-Kippstufe“) nicht definiert. Dieser kann mittels eines Kondensators an einem der beiden Eingänge festgelegt werden.
Für ein Flipflop in Standard-TTL-Technik mit 5 V Betriebsspannung bedeutet eine Spannung gegen „Masse“ von 2,5 bis 5 V (H-Pegel, HIGH) am Ausgang Q den Zustand „gesetzt“. Am negierten Ausgang Q liegt dann eine Spannung von 0 bis 0,4 V (L-Pegel, LOW) an. Bei der Verwendung von positiver Logik wird dieser Zustand als Q = 1 und Q = 0 interpretiert. Im Zustand „zurückgesetzt“ liegen die Spannungen und Logikwerte vertauscht an den Ausgängen an (Q = 0 und Q = 1). Genauso gut kann der L-Pegel als „gesetzt“ angesehen werden, der sich aus einem Anfangszustand mit H-Pegel abhebt – das wird negative Logik genannt. Was benutzt wird, ist eine Frage der Festlegung; je nachdem kann die eine oder andere Festlegung zweckmäßig sein. Die negative Logik wird allerdings innerhalb dieses Artikels nicht herausgestellt.
Das einfachste Flipflop ist das ungetaktete RS-Flipflop; es hat zwei Eingänge, die S und R genannt werden. Über den Eingang S kann der Ausgang des Flipflops in den Zustand „gesetzt“ kippen (oder in diesem Zustand bleiben, falls er schon „gesetzt“ ist). Über den Eingang R kann das Flipflop in den Zustand „zurückgesetzt“ schalten. Die Eigenschaften des RS-Flipflops und anderer Flipflop-Arten werden weiter unten detaillierter erläutert.
Durch das Zusammenschalten mehrerer Flipflops entstehen leistungsfähige Systeme wie Register, Zähler (asynchron oder synchron), Datenspeicher (Halbleiterspeicher) und Mikroprozessoren. Flipflops sind Grundbausteine für die gesamte Digitaltechnik und Mikroelektronik einschließlich des Computers.

## Klassifizierung anhand von Taktabhängigkeit
### Nicht taktgesteuerte Flipflops

Der Zustand des oben eingeführten ungetakteten RS-Flipflops wird direkt durch die Pegel der Eingangssignale S und R bestimmt. Solche Flipflops heißen asynchrone pegelgesteuerte (engl. level triggered) Flipflops. Es gibt aber auch die Möglichkeit, dass ein Flipflop seinen Zustand nur während eines Pegelwechsels der Eingangssignale ändert und der Pegel des Eingangssignals selbst keinen weiteren Einfluss hat. Solche Flipflops heißen asynchrone flankengesteuerte (edge triggered) Flipflops. Zur praktischen Realisierung wurden früher Differenzierglieder verwendet. Heutzutage werden die Signalflanken meist mit Hilfe von Laufzeitunterschieden intern in kurze Nadelimpulse verwandelt, oder sie werden direkt durch flüchtige interne Zustände ausgewertet.

### Taktgesteuerte Flipflops

Da die Eingangssignale 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 Ereignissen freischaltet. Das Berücksichtigen eines Taktsignals ermöglicht Synchronität mit anderen Schaltungsteilen und die Bildung von synchronen Schaltkreisen. Hier gilt es zu unterscheiden, auf welche Weise ein Flipflop Taktsignale berücksichtigt. Das Bild „Klassifizierung von Flipflops ...“ zeigt eine hierarchische Aufteilung der verschiedenen Flipflop-Typen.

### Taktzustands- und taktflankengesteuerte Flipflops

Taktgesteuerte Flipflops werden in synchronen Schaltwerken als Speicherelemente verwendet. Sie übernehmen ihre Daten- und Steuersignale durch ein (innerhalb des jeweiligen Schaltwerkes) einheitliches Taktsignal synchron und lassen sich in taktzustandsgesteuerte und taktflankengesteuerte Flipflops einteilen.
* Einfache taktzustandsgesteuerte Flipflops reagieren von der Anfangsflanke eines Taktimpulses bis zu seiner Endflanke auf die Eingangssignale. Sie werden einschließlich ihrer Änderungen zum Ausgang durchgereicht. Solche durch 1-Pegel oder 0-Pegel gesteuerte Bausteine sind transparent und vertragen keine Rückwirkung des Ausgangs auf den eigenen Eingang. Der Zustand zum Ende des Taktimpulses wird „gefangen“ und verwahrt. Das gibt dem Flipflop vor allem in der englischsprachigen Literatur die Bezeichnung Latch (was übersetzt „Riegel“ oder „Türschnapper“ bedeutet).
* Wird der Zustand dieses transparenten „Master-Flipflops“ mit der Endflanke des Taktimpulses in ein weiteres, das „Slave-Flipflop“, übergeben, so ist der Zustand hier von den Eingängen getrennt. Nur der Slave ist mit dem Ausgang verbunden; dessen Zustand ist also nichttransparent. Damit entsteht ein rückkopplungsfähiges „klassisches“ Master-Slave-Flipflop, das als Zähl-Flipflop verwendet werden kann.
* Taktflankengesteuerte Flipflops können ihren Zustand nur während einer festgelegten Taktflanke ändern. Impulse, die solche Flanken enthalten, können aus dem 0-Pegel in den 1-Pegel übergehen und wieder zum 0-Pegel zurückkehren, also mit steigender Flanke beginnen; sie können in anderen Fällen aus dem 1-Pegel in den 0-Pegel übergehen und wieder zurück zum 1-Pegel, also mit fallender Flanke beginnen (wie oben im Bild „Bistabile Transistor-Kippstufe“). Das taktflankengesteuerte Flipflop reagiert nur während einer sehr kurzen Zeit nach der festgelegten Taktflanke auf die Signale, die an den Eingängen anliegen. In der übrigen Zeit bis zur nächsten Flanke in dieselbe Richtung bleibt der vorher eingestellte Zustand gespeichert und ändert sich – im Gegensatz zu zustandsgesteuerten Flipflops – auch dann nicht, wenn sich die Eingangssignale ändern. Es wird unterschieden in einflankengesteuerte Flipflops auf Wechsel bei steigender (positiver) Taktflanke oder bei fallender (negativer) Taktflanke sowie zweiflankengesteuerte (Übernahme am Eingang mit der einen, Ausgabe mit der anderen Taktflanke).

## Flipflop-Typen
### RS-Flipflop
#### Aufbau, reguläres Verhalten

Ein RS-Flipflop (Rücksetz-Setz-Flipflop), auch SR-Flipflop genannt, ist die einfachste Art eines Flipflops. Dieses Grundelement hält einen beliebigen seiner zwei möglichen Ausgangszustände auf Dauer fest. Eine Veränderung ist möglich über seine zwei Eingänge, die üblicherweise mit R und S bezeichnet werden. Mit Zusatzbeschaltungen entstehen daraus sowohl taktpegelgesteuerte RS-Flipflops als auch taktflankengesteuerte RS-Flipflops. Dafür ist ein dritter, typischerweise mit C (clock) bezeichneter Eingang notwendig, an den ein Taktsignal angelegt werden kann. Auch weitere Flipflops bauen auf diesem Grundelement auf.
Ein Grundelement aus zwei sich über Kreuz beeinflussenden Logikgattern (meist NAND- oder NOR-Gatter) möge einen Ruhezustand mit R = S = 0 haben. Mit einem Signal S = 1 am „Setz“-Eingang und gleichzeitig R = 0 wird der Ausgang Q des Flipflops auf „logisch 1“ gesetzt. Mit der Zurücknahme der „Setz“-Anforderung durch S = 0 und gleichzeitig R = 0 verharrt das Flipflop infolge der Rückkopplung des Ausgangs auf das Eingangsgatter in dem zuvor eingestellten Zustand; er wird also gespeichert. Erst wenn der „Rücksetz“-Eingang mit R = 1 bei S = 0 aktiviert wird, wird das Flipflop zurückgesetzt: Am Ausgang entsteht Q = 0. Wiederum ändert sich mit der Zurücknahme der „Rücksetz“-Anforderung der Zustand nicht. Das Ausgangssignal Q im Falle R = S = 0 ist ungewiss, wenn nicht der vorherige Verlauf bekannt ist.
Die charakteristische Gleichung lautet (ausgehend von der nebenstehend gezeigten Schaltung mit NOR-Gattern und umgerechnet mit einer der Äquivalenzregeln)
    $\mathrm {Q={\overline {R\lor Q^{*}}}={\overline {R}}\land {\overline {Q^{*}}}={\overline {R}}\land (S\lor Q)}$
Diese Gleichung ist mit den Mitteln der formalen Logik nicht nach Q auflösbar, womit das Speicherverhalten charakterisiert wird: Das Ausgangssignal ist abhängig von seiner Vorgeschichte.

#### Mechanisches Bild

Das soweit beschriebene Verhalten einer RS-Kippstufe lässt sich mit der einer mechanischen Wippe vergleichen, deren Schwerpunkt höher liegt als der Drehpunkt. Durch diesen Aufbau entsteht eine Mitkopplung wie in der Gatter-Schaltung; die Wippe nimmt dann eine von zwei möglichen stabilen Endlagen ein, ohne dass vorher klar ist, welche das sein wird. Sie kann aber durch Anstoßen unbefristet in die eine oder andere gewünschte Endlage gebracht werden. Eine Mittellage ist in einem binären System nicht möglich. (Ein Verharren im labilen Gleichgewicht – wie sich das bei einer realen Wippe infolge Reibung mit Mühe einstellen lässt – entfällt beim Flipflop.)

#### Widerspruchsverhalten

Kritisch ist der Fall des Widerspruchs, wenn „Setzen“ und „Rücksetzen“ gleichzeitig angefordert werden mit R = S = 1 bzw. R = S = 0. Für diese Eingangsbelegung ist die Schaltung streng genommen kein RS-Flipflop. Dieser in sich widersprüchliche (deshalb oft als „verboten“ bezeichnete) Zustand führt dazu, dass beim RS-Flipflop aus NOR-Gattern an den beiden Ausgängen Q und Q eine 0 entsteht, dagegen beim RS-Flipflop aus NAND-Gattern an Q und Q eine 1. Bei industriellen Steuerungssystemen sind Vorkehrungen zu treffen für den Fall, dass bei Betriebsstörungen der Widerspruch auftritt. Dazu muss bedacht werden, welcher der beiden Anforderungen „Setzen“ und „Rücksetzen“ das System in einen sicheren Zustand führt, wer also Vorrang oder Dominanz haben soll. Das Flipflop aus NAND-Gattern hat mit Q = 1 Setzvorrang. Das Flipflop aus NOR-Gattern hat mit Q = 0 Rücksetzvorrang.
Oft wird behauptet, der Zustand R = S = 1 sei instabil oder unbestimmt; tatsächlich ist dieser Zustand völlig stabil. Unbestimmt ist lediglich der Nachfolgezustand beim (fast) gleichzeitigen Umschalten in den Speicherzustand mit R = S = 0. Ferner kann es beim praktisch gleichzeitigen Umschalten zu einem metastabilen Zustand kommen, der (mit sehr hoher Wahrscheinlichkeit) nach kurzer (aber nicht garantierter) Zeit (einige Piko- bis Nanosekunden) in den einen oder anderen stabilen Zustand übergeht.
Das nebenstehende Bild zeigt eine Schaltung, die bei Widerspruch einen Vorrang realisiert. Damit wird der Fehler, dass an beiden Ausgängen Q und Q gleiche Signale entstehen, vermieden.
Bei der Software-Realisierung von RS-Flipflops in speicherprogrammierbaren Steuerungen (SPS) ist die Reihenfolge in der Befehlseingabe zu beachten. In der Programmabarbeitung dominiert der zuletzt ausgeführte Befehl. Innerhalb von Multitaskingsystemen muss daher die Abarbeitung des Setzens und Rücksetzens gekapselt sein und darf nicht unterbrochen werden. Als verfügbare SPS-Funktionsbausteine gibt es neben dem RS-Flipflop mit Rücksetzvorrang auch ein SR-Flipflop mit Setzvorrang.

#### Darstellung des Verhaltens

In der folgenden Zusammenstellung ist die obere Abteilung mit negierten Zeichen S und R am Eingang 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 in der Praxis üblich. Das gilt insbesondere bei TTL-Bausteinen, bei denen sich ein offener Eingang verhält wie an 1-Pegel gelegt. Bei der unteren Abteilung werden die Eingänge durch die Freigabestufe negiert, so dass hier wieder mit den nicht negierten Zeichen gearbeitet wird. Die Signal-Zeit-Diagramme sind zu positiver Logik gezeichnet: Ein 1-Pegel wird durch den oberen Zustand (HIGH) dargestellt, ein 0-Pegel durch den unteren (LOW).
Hinweis: Weil beim oben beschriebenen Widerspruchsfall R = S = 1 an dem üblicherweise mit Q gekennzeichneten Ausgang nicht die Negation des Signals vom Ausgang Q entsteht, bevorzugen manche Autoren eine alternative Kennzeichnung wie beispielsweise „Q“ und „Q*“.
| Name und Schaltzeichen | Signal-Zeit-Diagramm | Schaltplan | Funktionstabelle |
| Asynchrones RS-Flipflop | Standardverhalten bei Ausstat­tung mit negierten Eingängen | Logik-Schaltung eines RS-Flipflops aus zwei NAND-Gattern | SRQ 110 oder 1 (je nach früherem Verlauf) 011 (gesetzt) 100 (zurückgesetzt) 00Q=Q=1 (Fehler: widersprüchliche Eingabe; hier hat Q Setzvorrang) Die Eingänge S und R führen ihr (aktives) Setzen bzw. Rücksetzen mit 0 aus. |
| RS-Flipflop mit Taktpegel­steuerung | Verhalten mit Freigabe von R und S durch 1-Pegel an E bzw. C mit clock | Logik-Schaltung eines getakteten RS-Flipflops aus vier NAND-Gattern | CSRQ 0XXunverändert 100unverändert 1010 (zurückgesetzt) 1101 (gesetzt) 111Q=Q=1 (Widerspruch) X: beliebig (0 oder 1) |

### D-Flipflop
#### Taktpegelgesteuertes D-Flipflop

Das taktpegelgesteuerte D-Flipflop (abgekürzt für Data- oder Delay-Flipflop) enthält neben dem Dateneingang D einen statischen Eingang E, der auf Pegel reagiert. Diese Kippstufe ist ein typisches Latch. Dafür gilt die angegebene Funktionstabelle.
Das D-Latch besteht aus einem RS-Flipflop und davor einer unsymmetrischen Eingangsbeschaltung. Mit dieser wird der Widerspruchszustand R = S = 1 vermieden. Solange der (meist mit dem Takt beschaltete) Freigabeeingang auf E = 1 liegt, erscheinen die Daten am Eingang D unmittelbar am Ausgang Q. In diesem Zustand ist das D-Latch transparent. Für den Rest einer Taktperiode bleibt das Datenbit noch verfügbar, während sich das Eingangssignal bereits ändern kann.
| Name und Schaltzeichen | Signal-Zeit-Diagramm | Schaltplan | Funktionstabelle |
| Pegelgesteuertes D-Flipflop | Übernahme der Eingangsinformation solange 1-Pegel an E | D-Latch in NAND-Realisierung | E D Q 100 111 0Xunverändert X: beliebig (0 oder 1) |

#### Taktflankengesteuertes D-Flipflop

Das D-Flipflop kann auch zum Verzögern des Signals am Dateneingang dienen bis zur Freigabe synchron zu einer Taktflanke. Es besitzt einen Dateneingang D und einen dynamischen Eingang C (Clock), der im Schaltzeichen mit $\vartriangleright$ gekennzeichnet wird, wenn er auf steigende Flanken reagiert. (Wenn eine fallende Flanke die aktive ist, wird noch ein Negierungszeichen $\circ$ außerhalb der Symbolkontur davorgesetzt.) Dieses D-Flipflop realisiert die elementare charakteristische Funktion der taktgesteuerten direkten Übernahme des Dateneingangs zum Ausgang
    $\mathrm {Q'=D}$
Darin gilt D für den Zustand bis zur Triggerung und Q' nach der Triggerung. Bis zur nächsten aktiven Taktflanke wird der aktuelle Zustand gehalten („verzögert“). Die gegenläufige Flanke hat keinen Einfluss.
Dieses Verhalten führt auf drei wichtige Anwendungen:
* Speicherung eines Datenbits solange, bis die Taktflanke eine neue Speicherung auslöst
* Synchronisierung paralleler, gleichzeitig begonnener Vorgänge, die je nach Anzahl und Art der durchlaufenen Bauelemente unterschiedlichen Laufzeitverzögerungen unterliegen
* Verhinderung kurzzeitiger Falschaussagen (Glitches oder Spikes).
Weil sich alle Änderungen an D, die nach der aktiven Flanke eintreffen, erst zur nächsten aktiven Flanke auswirken, ist es nichttransparent und als elementares Flipflop direkt rückkopplungsfähig. Beispielsweise ist eine Verbindung von Ausgang Q zum Eingang D derselben Kippstufe zulässig, durch die sich das Ausgangssignal in sein Gegenteil ändert, aber immer erst zur nächsten aktiven Taktflanke. Damit eignet sich das D-Flipflop als Grundbaustein von Zählschaltungen. Durch Zusammenschluss mehrerer solcher Kippglieder und äußere Beschaltung lassen sich – wie mit weiteren taktflankengesteuerten Flipflops – umfangreiche Schaltungen wie Synchronzähler, Frequenzteiler oder Schieberegister realisieren.
Mit einem Clock-Enable-Eingang CE (im deutschsprachigen Raum „Vorbereitungseingang“ V) kann der Takteingang in seiner Funktion freigeschaltet werden (engl. enable = freigeben); ohne Freigabe bleibt der Zustand bis zu einer späteren Taktflanke unverändert. In dieser Ausstattung wird das Flipflop als DV-Flipflop bezeichnet.
| Name und Schaltzeichen | Signal-Zeit-Diagramm | Schaltplan | Funktionstabelle |
| Flankengesteuertes D-Flipflop | Übernahme der Eingangsinformation bei steigender Flanke an C | Bei C = 0 ist R = S = 1. Bei $\lrcorner \!\ulcorner$ an C wird S = 0 oder R = 0 je nach D. Verzögert um die Laufzeit wird der D-Eingang blockiert. Oder wie JK-Flipflop mit J = K = D | C D Q $\lrcorner \!\ulcorner$00 $\lrcorner \!\ulcorner$11 0, 1, $\urcorner \!\llcorner$Xunverändert $\lrcorner \!\ulcorner$: steigende Flanke $\urcorner \!\llcorner$: fallende Flanke X: beliebig (0 oder 1) |

### JK-Flipflop

JK-Flipflops basieren auf dem asynchronen RS-Flipflop, sind aber flankengesteuert oder als Master-Slave-Flipflop ausgeführt. Die Bedeutung bzw. die Herkunft der Eingangsbezeichnungen J und K ist nicht erklärbar. Mit dem Taktsignal und der Eingangsbelegung J = 1 und K = 0 wird am Ausgang eine 1 erzeugt und gespeichert, alternativ bei K = 1 und J = 0 eine 0. Der Zustand J = K = 1 ist erlaubt; in diesem Fall wechselt der Ausgangspegel mit jeder wirksamen Flanke des Taktsignals. Dieses Verhalten lässt die Bezeichnung als Toggle-Flipflop zu. Für J = K = 0 bleibt der letzte Ausgangszustand erhalten. Die charakteristische Gleichung lautet (mit J, K, Q bis zur Flanke und Q' nach der Flanke)
    $\mathrm {Q'=(J\land {\overline {Q}})\lor ({\overline {K}}\land Q)}$
Bei der Realisierung des JK-Flipflops als taktzustandsgesteuertem Master-Slave-Flipflop muss als wesentliche Einschränkung beachtet werden, dass sich in der Transparenzphase des Masters die Zustände der beiden Eingänge J und K nicht mehr ändern dürfen. Damit liegt kein rein zustandsgesteuertes Flipflop vor. Dieser Nachteil ist ein Grund, warum sie als Master-Slave-Flipflops in komplizierteren Digitalschaltungen nur noch selten verwendet werden und durch flankengetriggerte Flipflops ersetzt werden, die diesen Nachteil nicht aufweisen.
Bei der Realisierung des JK-Flipflops als taktflankengesteuertem Flipflop kann der Eingang C für steigende Flanken (Wechsel von 0 auf 1) oder für fallende Flanken (Wechsel von 1 auf 0) ausgelegt sein.
| Name und Schaltzeichen | Signal-Zeit-Diagramm | Schaltplan | Funktionstabelle |
| Flanken­gesteuertes JK-Flipflop | Übernahme der Eingangsinformation durch steigende Flanke an C (clock) | Nur solange eine an C aufgetretene Flanke $\lrcorner \!\ulcorner$ durch die 3 Nicht-Gatter läuft, kann S = 0 oder R = 0 werden. | bis zur nach der … n-ten Taktflanke J K Q$_n$ 0 0 Q$_{n−1}$ (unverändert) 0 1 0 (zurückgesetzt) 1 0 1 (gesetzt) 1 1 Q$_{n−1}$ (gewechselt) |

### T-Flipflop
#### Synchrones T-Flipflop

Das synchrone T-Flipflop besitzt neben dem dynamischen C-Takteingang einen T-Eingang. T steht dabei für toggle – hin- und herschalten. Es zeigt ein Wechselverhalten synchron zur aktiven Flanke immer dann und nur dann, wenn T = 1 ist. Es kann aus einem flankengesteuerten JK-Flipflop gebildet werden, indem J- und K-Eingang verbunden werden und gemeinsam als T-Eingang fungieren. Das synchrone T-Flipflop wird beispielsweise in Synchronzählern verwendet. Sein Verhalten wird durch die angegebene Tabelle beschrieben. Darin bedeutet Q$_n$ den Zustand des Flipflops am Ausgang Q nach der n-ten aktiven Taktflanke. Die charakteristische Funktion lautet (mit T, Q bis zur Flanke und Q' nach der Flanke)
    $\mathrm {Q'=(T\land {\overline {Q}})\lor ({\overline {T}}\land Q)}$ .
| Name und Schaltzeichen | Signal-Zeit-Diagramm | Schaltplan | Funktionstabelle |
| Synchrones T-Flipflop | | Wie flankengesteuertes JK-Flipflop mit J = K = T | bis zurnach der … n-ten Taktflanke TQ$_n$ 0Q$_{n−1}$ (unverändert) 1Q$_{n−1}$ (gewechselt) |

#### Asynchrones T-Flipflop

Wird der T-Eingang fest auf „1“ gelegt, so bekommt der bisherige Takteingang C die Funktion eines Signaleingangs. Da keine Anbindung an einen Takt gegeben ist, wird diese Ausführung als asynchrones T-Flipflop bezeichnet. Obwohl das Eingangssignal nicht periodisch auftreten muss, wird es teilweise ebenfalls Taktsignal genannt. Die charakteristische Funktion vereinfacht sich zu
    $\mathrm {Q'={\overline {Q}}}$ .
Eine elektromechanische Realisierung eines Toggle-Flipflops ist der Stromstoßschalter. Er schaltet mit Hilfe eines von oft mehreren Tastern bei jedem Tastendruck zwischen den Zuständen Ein und Aus um.
Das asynchrone T-Flipflop kann durch ein taktflankengesteuertes D-Flipflop gebildet werden, wenn dessen Ausgang Q auf den Eingang D zurückgeführt wird. Eine Ausführung als Master-Slave-FF zeigt nebenstehendes Bild, in dem während C = 1 der Master (linkes RS-FF) mit dem zurückgeführten Ausgangssignal belegt wird; so lange ist der Eingang des Slaves (rechtes RS-FF) gesperrt. Mit C = 0 wird der Eingang des Masters gesperrt, und der Slave wird mit dem Zustand des Masters belegt. Das Signal an Q ändert sich bei jeder fallenden Flanke an C.
Bei periodischem Eingangssignal erfährt das Ausgangssignal durch das Hin- und Herschalten eine Halbierung der Frequenz (Frequenzteilung durch 2); dementsprechend dienen diese Flipflops vor allem als Grundelement in asynchronen binären Zählern und in dezimalen Frequenzteilern und Frequenzzählern. Ferner werden sie verwendet, wenn ein Rechtecksignal mit einem Tastgrad von genau 50 % gewonnen werden soll, wenn nur ein unsymmetrisches Signal, aber von doppelter Frequenz, zur Verfügung steht.

## Zusätzliche asynchrone Steuereingänge bei Flipflops

Je nach Bauart besitzen die getakteten Flipflops (taktzustands- und auch taktflankengesteuerte Flipflops) zusätzliche Eingänge für asynchrone Steuersignale. Diese beeinflussen das Flipflop unabhängig vom Taktsignal. Je nach Bauart besitzen diese Bauelemente einen zusätzlichen Reset-Eingang R, einen Set-Eingang S oder beide. Das Reset wird manchmal als „Clear“ (Löschen) bezeichnet, das Setzen als „Preset“ (Vorbelegen). Häufig werden die beiden zusätzlichen Eingänge auf LOW-aktive Ansteuerung ausgelegt und dann mit S und R bezeichnet.
Durch den asynchronen Reset-Eingang kann das Flipflop in den Anfangszustand Q = 0 (Reset-Zustand) gebracht werden. Diese Funktion wird beispielsweise beim Einschalten der Versorgungsspannung verwendet oder wenn die Schaltung während des Betriebs erneut in den Anfangszustand gebracht werden muss. Der Set-Eingang entspricht im Verhalten dem Reset-Eingang, bringt aber das Flipflop in den Setz-Zustand Q = 1. Eine gleichzeitige Betätigung des asynchronen Setz- und Rücksetzeingangs wird als „verbotener“ Zustand bezeichnet.

## Timing der Flipflops

Bei zeit-kritischen Anwendungen der Flipflop-Bauelemente in Elektronik-Schaltungen müssen verschiedene Vorgaben beachtet werden. Als Beispiel wird hier ein taktflankengetriggertes D-Flipflop mit Einflankentriggerung betrachtet. Als Referenz für jeden einzelnen Schaltvorgang wird die aktive Schaltflanke des Takts (Clk) verwendet.
Das Eingangssignal (Data) des Flipflops darf sich vor der aktiven Schaltflanke des Taktsignals für eine definierte Mindestdauer nicht ändern. Diese Zeit wird als Setzzeit $t_{\mathrm {su} }$ (engl. setup-time) bezeichnet. Entsprechend darf sich der Logikzustand am D-Eingang nach der aktiven Schaltflanke des Taktsignals für eine definierte Mindestdauer ebenfalls nicht ändern. Diese Zeit wird als Haltezeit $t_{\mathrm {h} }$ (engl. hold-time) bezeichnet. Bis sich nach der Flanke das Ausgangssignal eingestellt hat, ist die Signallaufzeit durch das Bauelement (engl. propagation delay time) $t_{\mathrm {pd} }$ zu beachten.
Die garantierte Frequenz des Taktsignals $f_{\mathrm {clk,max} }$ darf nicht überschritten werden. Ferner darf die Mindest-Pulsbreite (engl. pulse-width) des Taktsignals $t_{\mathrm {pw,clk} }$ nicht unterschritten werden. Diese wird ab der aktiven Taktflanke bis zur umgekehrten Taktflanke des Impulses gezählt. Bei Flipflops mit zusätzlichen asynchronen Steuereingängen dürfen sich die Steuersignale ebenfalls für eine definierte Mindestzeit vor der aktiven Taktflanke des Taktsignals und für eine definierte Mindestdauer hinterher nicht ändern. Die spezifizierten Zeiten dienen auch dazu, Fertigungstoleranzen zulassen zu können. Wenn die Timing-Vorgaben verletzt werden, muss damit gerechnet werden, dass es zu Fehlern bei der Verarbeitung der Daten durch die Flipflops kommt, z. B. durch Metastabilität oder fehlende Synchronität mehrerer Flipflops.
Alle anderen Flipflops mit Takteingang haben grundsätzlich dasselbe Verhalten wie das D-Flipflop. Beim JK-Flipflop müssen zusätzlich Setz- und Haltezeiten für die J- und K-Eingänge eingehalten werden. Ebenso sind für das RS-Flipflop Zeitvorgaben einzuhalten.

## Verwendung von Flipflops

Bei den eingangs und zu den einzelnen Typen aufgeführten Anwendungen sind Flipflops typischerweise Teil eines größeren Elektronikbauelements. In der professionellen Schaltungsentwicklung werden Flipflops kaum noch als Einzelbauelemente eingesetzt. Typischerweise werden Bauelemente eingesetzt, die neben Flipflops aus weiteren Schaltungsfunktionen in einem gemeinsamen Bauelement bestehen. Hierunter fallen unter anderem FPGA-, PLD- und ASIC-Bauelemente. In diesen Bauelementen sind typischerweise D-Flipflops enthalten.

## Diskrete Schaltkreise

Die nachfolgende Tabelle enthält neben den Flipflops und Monoflops auch die funktionsverwandten Latches und Businterfaces.
Übersicht von Flipflops und Monoflops auch die funktionsverwandten Latches und Businterfaces (größere Auswahl) :
| Type | FF-Art | Logikfamilie/Serie | Beschreibung | Spannungsbereich |
| 74ACT74 | | 74xx | |
| 74HCT73 | | 74xx | | 4,5–5,5 V |
| 74HC374 | D | 74xx | 8× D-Flipflop | 2–6 V |
| 74HC377 | D | 74xx | 8× D-Flipflop | 2–6 V |
| 74HCT377 | D | 74xx | 8× D-Flipflop | 4,5–5,5 V |
| 74AC74 | D | 74xx | 2× D-Flipflop | 2–6 V |
| 4027 | JK | CMOS:4000 | 2× JK-Flipflop | 3–18 V |
| 7429 | | TTL | | |
| 4095 | JK | CMOS:4000 | J-K Master-Slave Flipflop | |
| 4096 | JK | CMOS:4000 | J-K Master-Slave Flipflop | |
| 4003 | D | CMOS:1/4000? | 8-Bit adressierbares Latch | |
| 4013 | D | CMOS:4000 | 2× D-Flipflop | 3–18 V |
| 4042 | D | CMOS:4000 | 4× Latch | |
| 4043 | D-Latch | CMOS:4000 | 4× NOR-RS Latch | |
| 4044 | D-Latch | CMOS:4000 | 4× NAND-RS Latch | |
| 4076 | D-Latch | CMOS:4000 | 4× D-Latch | |
| 4099 | D-Latch | CMOS:4000 | 8-Bit adressierbares Latch | 3–15 V |
| 4508 | D-Latch | CMOS:4000 | 2× 4-Bit Latch | |
| 4047 | Monoflop | CMOS:1/4000? | monostabiler/astabiler Multivibrator | |
| 4098 | Monoflop | CMOS:1/4000? | 2× monostabiler Multivibrator | |
| 4099 | D | CMOS:4000 | 2× monostabiler Multivibrator | 3–15 V |
| 4528 | Monoflop | CMOS:4000 | 2× monostabiler Multivibrator | |
| 4538 | Monoflop | CMOS:4000 | 2× monostabiler Multivibrator (Präzisionstype) | |
| 4723 | D-Latch | CMOS:4000 | 2× adressierbares 4-Bit Latch | |
| 4724 | D-Latch | CMOS:4000 | adressierbares 8-Bit Latch | |
| 40174 | D | CMOS:4000 | 6× D-Flipflop mit Master-Reset | 3–15 V |
| 40175 | D | CMOS:4000 | 4× D-Flipflop mit Master-Reset | 3–15 V |
| 40373 | D-Latch | CMOS:4000 | 8× Latch | |
| 40374 | D | CMOS:4000 | 8× D-Flipflop | |
| 4548 | Monoflop | CMOS:4000 | 2× Monoflop | |
| 74107 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear, flankengetriggert/impulsgetriggert | |
| 74109 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear und Preset, flankengetriggert | |
| 74112 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear und Preset, flankengetriggert | |
| 74113 | JK | CMOS:7400 | 2× JK-Flipflop mit Preset, flankengetriggert | |
| 74114 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear und Preset, flankengetriggert | |
| 7473 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear, flankengetriggert/impulsgetriggert | |
| 7476 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear und Preset, flankengetriggert/impulsgetriggert | |
| 7478 | JK | CMOS:7400 | 2× JK-Flipflop mit Clear und Preset, flankengetriggert/impulsgetriggert | |
| 74279 | RS-Latch | CMOS:7400 | 4× Latch | |
| 7477 | D-Latch | CMOS:7400 | 4× Latch, nicht invertierend | |
| 74373 | D-Latch | CMOS:7400 | 8× Latch, nicht invertierend | |
| 74573 | D-Latch | CMOS:7400 | 8-Bit Businterface, nicht invertierend | |
| 74841 | D-Latch | CMOS:7400 | 10-Bit Businterface, nicht invertierend | |
| 74843 | D-Latch | CMOS:7400 | 9-Bit Businterface, nicht invertierend | |
| 74845 | D-Latch | CMOS:7400 | 8-Bit Businterface, nicht invertierend | |
| 74533 | D-Latch | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74533 | D-Latch | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74563 | D-Latch | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74846 | D-Latch | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74844 | D-Latch | CMOS:7400 | 9-Bit Businterface, invertierend | |
| 74842 | D-Latch | CMOS:7400 | 10-Bit Businterface, invertierend | |
| 74563 | D-Latch | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 7475 | D-Latch | CMOS:7400 | 4× D-Latch mit Komplementärausgängen | |
| 74375 | D-Latch | CMOS:7400 | 4× D-Latch mit Komplementärausgängen | |
| 74173 | D | CMOS:7400 | 4× D-Flipflop, nicht invertierend | |
| 74174 | D | CMOS:7400 | 6× D-Flipflop, nicht invertierend | 3–15V |
| 74378 | D | CMOS:7400 | 6× D-Flipflop, nicht invertierend | |
| 74273 | D | CMOS:7400 | 8× D-Flipflop, nicht invertierend | |
| 74374 | D | CMOS:7400 | 8× D-Flipflop, nicht invertierend | |
| 74377 | D | CMOS:7400 | 8× D-Flipflop, nicht invertierend | |
| 74534 | D | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74564 | D | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74576 | D | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74821 | D | CMOS:7400 | 10-Bit Businterface, nicht invertierend | |
| 74822 | D | CMOS:7400 | 10-Bit Businterface, invertierend | |
| 74823 | D | CMOS:7400 | 9-Bit Businterface, nicht invertierend | |
| 74824 | D | CMOS:7400 | 9-Bit Businterface, invertierend | |
| 74825 | D | CMOS:7400 | 8-Bit Businterface, nicht invertierend | |
| 74826 | D | CMOS:7400 | 8-Bit Businterface, invertierend | |
| 74173 | D | CMOS:7400 | 4× D-Flipflop, nicht invertierend | |
| 74175 | D | CMOS:7400 | 4× D-Flipflop, Komplementärausgänge | |
| 74379 | D | CMOS:7400 | 4× D-Flipflop, Komplementärausgänge | |
| 7474 | D | CMOS:7400 | 2× D-Flipflop, Komplementärausgänge | |
| 74221 | Monoflop | CMOS:7400 | Monoflop mit Schmitt-Trigger-Eingang | |
| 74123 | Monoflop | CMOS:7400 | 2× nachtiggerbarer Monoflop | |
| 74423 | Monoflop | CMOS:7400 | 2× nachtiggerbarer Monoflop | |
| D172 (SN7472) -DDR- | JK | TTL | JK-Master-Slave-Flipflop mit je 3 J- und 3 K-Eingängen | |
| D174 (SN7474) -DDR- | D | TTL | 2× D-Flipflop, positiv flankengetriggert | |
| D175 (SN7475) -DDR- | D | TTL | 4× D-Flipflop (Auffang-Flipflop) | |
| D274 (SN74H74) -DDR- | D | TTL | 2× D-Flipflop, positiv flankengetriggert, High-Speed-TTL-Version | |
| DL112D (SN74LS112N) -DDR- | JK | LS-TTL (niedrigere Betriebsspannung und Pegel als bei TTL) | 2× JK-Flipflop, flankengetriggert, S- und R-Eingang, max. Taktfrequenz 30 MHz | |
| U103D -DDR- | „RST“ | „p-MOS“ | "RST-Flipflop" (?) | |
| U108D -DDR- | JK | „p-MOS“ | 2× JK-Flipflop | |
| V4013D (CD4013) -DDR- | D | CMOS | 2× Master-Slave-D-Flipflop, max. Taktfrequenz >3.5/8/12MHz bei 5/10/15V | 3–18 V |
| V4027D (CD4027) -DDR- | JK | CMOS | 2× JK-Flipflop, max. Taktfrequenz wie V4013D | |
| V4044D (CD4044) -DDR- | RS-Flipflop (Latch) | CMOS | 2× RS-Flipflop (Latch), Verzögerungszeit zum Ausgang 300/140/100ns bei U=5/10/15V | |
| SN74LS74 | D | 74xx | 2× D-Flipflop | 4,75–5,25 V |
| LS76 | JK | LS-TTL (niedrigere Betriebsspannung und Pegel als bei TTL) | 2× JK-Flipflop | 4,75–5,25 V |
| LS112 | JK | LS-TTL (niedrigere Betriebsspannung und Pegel als bei TTL) | 2× JK-Flipflop | 4,75–5,25 V |
| LS273 | D | LS-TTL (niedrigere Betriebsspannung und Pegel als bei TTL) | 8 Bit | 4,75–5,25 V |