Was ist ein Flip Flop?


25

Es scheint eine Reihe unterschiedlicher Definitionen von Flip-Flops und Latches zu geben, von denen einige widersprüchlich sind.

Das Informatik-Lehrbuch für den Kurs, den ich unterrichte, ist wahrscheinlich das verwirrendste (in der Tat habe ich wenig Vertrauen in das Buch, weil es an mehreren Stellen einfach falsch ist).

Ich bin mit der Funktionsweise von Latches (SR, Gated SR, Gated D) und dem Unterschied zwischen pegelgetriggerten und flankengetriggerten Geräten vertraut, zumindest in Bezug auf Logikgatter und Zeitdiagramme. Ich bin jedoch immer noch auf der Suche nach einer präzisen Definition eines Flip-Flops und eines Latches.

Das glaube ich bisher:

"Ein Flip-Flop ist ein flankengetriggertes bistabiles Gerät, das 1 Bit speichern kann."

"Ein Latch ist ein pegelgetriggertes bistabiles Gerät, das 1 Bit speichern kann."

Ich habe mir vorhergehende Posts auf dieser Website dazu angesehen und bin immer noch auf der Suche nach etwas Bestimmtem, so aufschlussreich sie auch sind.

Mein aktuelles Verständnis, das ich überprüfen möchte, ist in den folgenden Diagrammen…

Ich verstehe, dass es nebeneinander zwei Implementierungen eines pegelgetriggerten D-Latchs gibt.

Darunter befindet sich ein positiver Flankendetektor, in dem Moment, in dem das NICHT-Gatter noch nicht auf den Änderungseingang von niedrig nach hoch reagiert hat, nämlich die ansteigende Flanke (rot ist 1, blau ist 0).

Im letzten Diagramm wurde der Kantendetektor an ein datiertes D-Latch angeschlossen, und dies macht ihn zu einem Flip-Flop.

Bildbeschreibung hier eingeben

Ist das letzte Diagramm wirklich ein Flip-Flop oder ist es immer noch nur ein Latch?

Und warum brauchen wir die Master-Slave-Version gegeben, dass dieses Gerät so viel einfacher ist?


1
@DanielTork warum nicht eine Antwort machen?
Eisiger

10
In Australien und Neuseeland handelt es sich um offene Schuhe, die häufig am Strand oder bei schönem Wetter getragen werden. ;)
KyranF

3
Auch in den USA. Früher haben wir sie Tangas genannt, aber das bezieht sich jetzt auf etwas anderes
;-)

1
Jetzt möchte ich einen Schaltplan sehen, der mit den als Flip-Flops bekannten Sandalen gezeichnet ist ...
keshlam

1
@immibis raus hier ya faule Kiwi!
KyranF

Antworten:


11

Ich habe heute viel über diese Definition nachgedacht.

Wie andere betonten, variieren die genauen Bedeutungen. Darüber hinaus werden Sie wahrscheinlich feststellen, dass auch auf dieser Website mehr Menschen Unrecht haben als Recht. Es ist mir egal, was Wikipedia sagt!

Aber im Allgemeinen:

  • Ein Flip-Flop ändert seinen Ausgangszustand höchstens einmal pro Taktzyklus.
  • Ein Latch ändert seinen Zustand so oft, wie die Daten während seines Transparenzfensters übergehen.

Zusätzlich,

  • Ein Flip Flop ist sehr sicher. Fast narrensicher. Aus diesem Grund verwenden Synthesewerkzeuge normalerweise Flip-Flops. Sie sind jedoch langsamer als ein Riegel (und verbrauchen mehr Energie).
  • Verschlüsse sind schwerer zu handhaben. Sie sind jedoch schneller als Flip-Flops (und kleiner). Daher verteilen kundenspezifische Schaltungsentwickler häufig das Flip-Flop über ihren digitalen Block (eine Verriegelung an beiden Enden mit entgegengesetzter Phase), um einige zusätzliche Pikosekunden aus einem schlechten Zeitablauf herauszuholen. Dies wird am unteren Rand des Beitrags angezeigt.

Ein Flip-Flop ist am typischsten durch eine Master-Slave-Topologie gekennzeichnet. Dies sind zwei gekoppelte (es kann eine Logik dazwischen geben), gegenphasige Latches (manchmal in der Industrie als L1 / L2 bezeichnet).

Dies bedeutet, dass ein Flip-Flop von Natur aus aus zwei Speicherelementen besteht: eines zum Halten während des niedrigen Zyklus und eines zum Halten während des hohen Zyklus.

Ein Latch ist nur ein einzelnes Speicherelement (SR-Latch, D-Latch, JK-Latch). Nur weil Sie einen Clock-to-Gate-Datenfluss in das Speicherelement einführen, ist dies meiner Meinung nach kein Flip-Flop (obwohl dies dazu führen kann, dass es sich wie eines verhält: dh es wird mehr eine ansteigende Flanke ausgelöst). Es macht es nur für einen bestimmten Zeitraum transparent.

Im Folgenden ist ein echtes Flip-Flop dargestellt , das aus zwei SR-Latches erstellt wird (siehe gegenüberliegende Phasentakte).

wahr d ff

Und ein weiteres echtes Flip-Flop (dies ist der gängigste Stil in VLSI) aus zwei D-Latches (Übertragungsgatter-Stil). Beachten Sie wieder die entgegengesetzten Phasenuhren :

echter flip flop tg style

Wenn Sie die Uhr schnell genug in ein Latch treiben, ähnelt dies einem Flip-Flop-Verhalten (Puls-Latch). Dies ist im Hochgeschwindigkeits-Datenpfad-Design aufgrund der geringeren Verzögerung von D-> Out und Clk-> Out üblich, zusätzlich zu der besseren Einrichtungszeit, die durch Transparenz über die Dauer von (Haltezeit muss ebenfalls steigen, geringer Preis zu zahlen) gewährt wird der Puls. Ist es ein Flip Flop? Nicht wirklich, aber es sieht wirklich so aus!

Dies ist jedoch viel schwieriger zu gewährleisten, um zu arbeiten. Sie müssen über alle Prozessecken (schnelle nmos, langsame pmos, hohe Drahtstärke, niedrige Drahtstärke r; als Beispiel) und alle Spannungen (niedrige Spannung verursacht Probleme) prüfen, ob der Impuls von Ihrem Flankendetektor breit genug bleibt, um tatsächlich zu öffnen das Latch und erlauben Daten in.

Für Ihre spezielle Frage, warum es als Impulsverriegelung anstelle eines Flip-Flops betrachtet wird, liegt es daran, dass Sie wirklich nur ein einstufiges sensitives Bit-Speicherelement haben. Obwohl der Puls eng ist, bildet er kein Lock-and-Dam-System, das ein Flip-Flop erzeugt.

Hier ist ein Artikel, der eine sehr ähnliche Impulsverriegelung wie Ihre Anfrage beschreibt. Ein einschlägiges Zitat: "Wenn die Impulstakt-Wellenform einen Latch auslöst, wird der Latch mit dem Takt synchronisiert, ähnlich wie bei einem flankengetriggerten Flip-Flop, da die ansteigenden und abfallenden Flanken des Impulstakts zeitlich nahezu identisch sind."

BEARBEITEN Aus Gründen der Übersichtlichkeit habe ich eine Grafik mit riegelbasiertem Design beigefügt. Es gibt einen L1-Latch und einen L2-Latch mit Logik dazwischen. Dies ist eine Technik, die Verzögerungen reduzieren kann, da ein Latch eine geringere Verzögerung aufweist als ein Flip-Flop. Das Flip-Flop wird "gespreizt" und die Logik in die Mitte gelegt. Jetzt sparen Sie ein paar Gate-Verzögerungen (im Vergleich zu einem Flip-Flop an beiden Enden)!

riegelbasiertes Design


"Charakterisiert durch eine Master-Slave-Topologie" - das klingt eher nach einem Implementierungsdetail als nach einem bestimmenden Verhaltensmerkmal. Verhaltensmäßig ist ein Flip-Flop (Ihrer Definition nach) ein Einzelbit-Speicher, der zufällig flankengetriggert wird. In der Praxis benötigt die Implementierungsmagie, die zur Approximation des Flankentriggers erforderlich ist, ein zweites Speicherelement!
Oliver Charlesworth

1
@ OliverCharlesworth: Nun, es ist ein Implementierungsdetail. Sowie ein physikalisches, verhaltensbezogenes, strukturelles und topologisches Detail. Man kann ein Latch nicht einfach als Flip-Flop bezeichnen, weil es so aussieht. Vielleicht können Sie damit durchkommen, aber wenn Sie sie in vollen Zügen nutzen möchten, müssen Sie den Unterschied kennen. Wenn Sie ein Flip-Flop aufteilen, haben Sie zwei separate Latches mit entgegengesetzter Phase. Sie können die Logik in die Mitte stopfen. Dies ist schneller als ein Flip-Flop an beiden Enden. Es ermöglicht auch das "Ausleihen von Zeit" durch eine Zyklusgrenze, was ein sehr wichtiges Konzept für Hochgeschwindigkeitsentwürfe ist.
jbord39

Hier sind einige weitere nützliche Bilder von DFFs, die helfen könnten, siehe das letzte. Die oben angegebene DFF ist verwirrend, da entgegengesetzte Phasen des Takts zwischengespeichert werden (dh Master-Latches bei steigender Flanke, Slave-Latches bei fallender Flanke). electronics.stackexchange.com/a/84247/42957
mrbean

Es wäre schön, hier ein Beispiel eines echten einphasigen flankengetriggerten Flip-Flops ("TSPC" DFF) zu sehen.
Mrbean


1

Viele Leute werden getaktete Geräte als "Flip-Flops" und nicht getaktete Geräte als Latches bezeichnen. Damals, als ich es lernte, waren es "getaktete Flip-Flops" und "Flip-Flops". Beide können flankengetriggert werden.

Es gibt genug Unklarheiten, die, wenn sie wichtig sind, auf Teilenummern, Datenblättern und Zeitdiagrammen beruhen und nicht auf Wortbeschreibungen.


Dann ist ein GTO-SCR auch ein Flip-Flop?
Bradman175

1

Vielen Dank an alle, die meine Frage beantwortet haben. Wie erwartet gibt es einige Meinungsverschiedenheiten. Leider ist die Semantik bei Prüfungen oft wichtiger als das Verständnis. Wenn ich mich mit einer Prüfungskommission wegen falscher Benotung der Prüfungsarbeit eines Informatikstudenten der Stufe A auseinandersetzen muss (und das habe ich in der Vergangenheit getan), möchte ich in einer starken Position sein. Ich dachte, ich würde ein paar Seiten des offiziellen Lehrbuchs für A-Level-Kurse mit Ihnen teilen.

Das erste Diagramm ist ein aktiver Low-SR-Latch. Das Buch nennt es ein Flip-Flop.

Im Text heißt es in dem Buch: "Durch Verwendung von zwei Flip-Flops können wir eine Schaltung namens D-Flip-Flop erzeugen, die eine taktgesteuerte Schaltung zur Steuerung des Ausgangs verwendet und diesen um einen Taktimpuls verzögert. Das D steht für Verzögerung . " Dieser Text scheint sich auf die Master / Slave-Konfiguration zu beziehen. Das zweite Diagramm (Abbildung 14.2) wird als D-Flip-Flop bezeichnet. Es ist tatsächlich ein aktiv hochgesteuertes D-Latch.

Nicht sehr hilfreich!

Ich werde mich auf "Ein Flip-Flop ist in der Regel durch eine Master-Slave-Topologie gekennzeichnet." wie jbord39 angedeutet hat, mit dem Vorbehalt, dass der Begriff Flip-Flop oft verwendet wird, um einen flankengetriggerten Latch zu bezeichnen, und manchmal nur irgendeine Art von Latch. Ich denke, hierher kommt das Buch, wenn auch nicht überzeugend.

Nochmals vielen Dank an alle.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben


2
Ja, dieses Buch ist geradezu irreführend. Plus, D steht für Data, nicht delay ... lol Der wichtige Teil ist zu verstehen, wie sie funktionieren und nicht zu sehr in die Semantik verstrickt zu sein. Ich habe die Semantik so erklärt, wie sie mir in den Unternehmen erklärt wurde, in denen ich gearbeitet habe. Dies kann je nach Gebiet und Erfahrungsstufe variieren (insbesondere in Bezug auf die Interna der Logikgatter, woran ich arbeite).
jbord39

Ich muss jbord39 zustimmen. Wie ich in meiner Antwort gezeigt habe, ermöglicht diese E-Eingabe nur, dass die Daten die Ausgabe beeinflussen. Sie haben jedoch Lehrbücher, die falsche Informationen enthalten. Eigentlich ziemlich nervig.
Bradman175

1

Ein Flip-Flop unterscheidet sich von einem Latch. Sie sind beide bistabile Schaltkreise, aber sie sind tatsächlich zwei verschiedene Dinge.

Der Zwischenspeicher hat einen Aktivierungsstift und hört auf die Dateneingaben / -eingaben nur, wenn dieser Stift hoch ist. Wenn es niedrig ist, friert das Latch ein und speichert seinen Zustand. Selbst wenn Sie jetzt die Eingänge manipulieren, reagiert dieser nicht mehr.

Das Flip-Flop enthält stattdessen einen Taktstift, der nur auf sich ändernde Impulse (Pegelverschiebungen) reagiert. Denken Sie an eine Rechteckwelle. Die Übergangszeit zwischen Aus und Ein; Aus und Ein ist die Zeit, in der die Schaltung auf Eingangssignale reagiert. Nur dann kann es gewechselt werden, nicht wenn der Stift stabil und voll aufliegt.

Flip-Flop-Reaktionszeit

Beachten Sie, dass die grünen Linien den Zeitraum darstellen, in dem die Eingabe erfolgt, und die roten Linien den Zeitraum, in dem dies nicht der Fall ist. Das Latch ermöglicht die Eingabe nur während der Perioden, die durch die obersten roten Linien angezeigt werden.

Die eigenständige SR ist in der Praxis keine realisierbare Schaltung.

Wir danken jbord39 für den Hinweis auf den Fehler. Bild von radio-elctronics.com genommen und bearbeitet.


Ein Flip-Flop ist kein Latch, sondern kann aus zwei gegenphasigen Latches aufgebaut werden.
jbord39

Ich habe die Antwort @ jbord39
Daniel Tork

Danke, @ Peter Mortensen. Die habe ich nicht gesehen.
Daniel Tork

0

Die Begriffe, die Sie in Ihrer Frage verwenden, stimmen zu 100% mit den Begriffen überein, die ich im Zusammenhang mit dem analogen IC-Design verwendet habe. Latches haben ein pegelsensitives Aktivierungssignal, während Flip-Flops flankensensitive Aktivierungssignale haben, die als "Clock" bezeichnet werden. Ich habe einige Stellen im Internet oder in einigen Büchern bemerkt, in denen der Begriff Flip-Flop für beide Typen verwendet wird. Dies kann sinnvoll sein, wenn man nur an den Schaltungszustand "Flip-Flopping" zwischen zwei stabilen Punkten denkt, aber wann immer Designer darüber sprechen In Schaltkreisen, in denen ich arbeite, sind Latches pegelsensitiv und Flip-Flops (oder auch nur "Flops") sind kantensensitiv.

Über Ihre andere Frage, ob Sie ein Flip-Flop als Latch mit einem Flankendetektor im Vergleich zu einem Paar von Master-Slave-Latches entwerfen sollen. In beiden Fällen kann dies funktionieren, vorausgesetzt, Ihr Kantendetektor verfügt über eine ausreichende Verzögerung. Latches haben eine gewisse Mindestdauer für die Aktivierung. Ich vermute, es ist nur schwieriger, ein Hochgeschwindigkeits-Flip-Flop mithilfe der Kantendetektortechnik zu erstellen, und die Einricht- / Haltezeit kann je nach Prozess / Spannung / Temperatur stärker variieren.


Ich frage mich, warum ich selten Flops sehe, die mit einem Master / Slave-Paar mit nicht überlappenden logischen Schwellenwerten implementiert sind (also würde eine Eingangsspannung unter VDD / 4 den Master aktivieren und eine Spannung über VDD / 2 den Slave aktivieren. Wenn mehrere kaskadierte Flops vorhanden sind) fed ein langsam ansteigender oder verrauschten Eingangssignal, würde Verhalten zuverlässig nur bei einer ansteigenden Flanke , dass, vorausgesetzt , sein, keiner von ihnen eine Spannung unterhalb VDD / 4 zu sehen , nachdem jeder eine Spannung oberhalb VDD / 2 gesehen.
supercat

@supercat Du sprichst von Hysterese?
Cort Ammon - Reinstate Monica

@ CortAmmon: Nein - etwas besseres. Wenn zwei Flip-Flops mit unabhängigen Schmidt-Triggern in Kaskade geschaltet sind, kann eine fehlerhafte Operation auftreten, wenn das erste Flop die Taktflanke erkennt und den Eingang zum Ausgang weiterleitet, bevor das zweite Flop seine Taktflanke erkennt. Wenn die Flip-Flops geteilte Eingangsschwellen verwenden, erfasst das zweite Flop seine Eingabe, wenn der Takt über die untere Schwelle steigt, aber die Ausgabe des ersten Flops ändert sich nicht, bis der Takt die obere Schwelle erreicht.
Superkatze

0

(Springen Sie zum Ende, wenn Sie wissen möchten, ob der letzte Stromkreis des OP ein Flip-Flop oder ein Latch ist.)

Grundsätzlich ist ein Flip-Flop eine Anordnung von Logikgattern (oder Komponenten), die das Zwischenspeichern von 2 Zuständen zusammen mit einem Taktstift ermöglicht, der diese Zustandsänderungen ermöglicht.

Hier ist der Unterschied zwischen einem Flip-Flop und einem Latch. Latches sind asynchron, während Flip-Flops synchron sind.

  • Asynchrone Latches erfordern keinen Aktualisierungs-Pin, der üblicherweise als CLK(kurz für Clock) -Pin in einem Flip-Flop bezeichnet wird. Sie kümmern sich nur darum, ob sich die Eingänge entweder HIGHoder in einem bestimmten Zustand befinden LOW. Wenn eine bestimmte Kombination von HIGHs und LOWs in der Eingabe ausgelöst wird, entscheidet die Schaltung, eine Aktion auszuführen, und Ihr gewünschtes Ergebnis wird "sofort" zurückgegeben. Es gibt 4 mögliche Aktionen in einem Latch.

    1. Nichts tun
    2. Stellen Sie QaufHIGH
    3. Stellen Sie QaufLOW
    4. Der ungültige Zustand (angeblich den Wert von invertieren Q)

    Beachten Sie, dass Q'abhängig ist von Q.

Ein Beispiel ist der SR-Latch, der alle 4 möglichen Aktionen eines Latch demonstriert: RS Verriegelung

  1. Wann Sist LOWund Rist LOW, ändert sich nichts.
  2. Wann Sist HIGHund Rist LOW, Qwird auf gesetzt HIGH.
  3. Wann Sist LOWund Rist HIGH, Qwird auf gesetzt LOW.
  4. Wann Sist HIGHund Rist HIGH, Qwird mit einer "unvorhersehbaren" schnellen Rate invertiert. Dieser Zustand ist ungültig.
  • Mit synchronen Flip-Flops können Sie einen Wert für Datenpins festlegen. Dies bedeutet, dass es nur darum geht, wie der Zustand dieser Pins ist. Die Schaltung entscheidet jedoch noch nicht, eine Aktion für den Ausgang durchzuführen. Sie haben den CLKStift wie oben erwähnt. Wenn der CLKPin seinen Zustand ändert (entweder von LOWnach HIGH, umgekehrt oder sogar beides), werden die Datenpins "erfasst" und das Flip-Flop führt eine Aktion aus, die auf der Kombination von HIGHs und LOWs der von den Datenpins erfassten Daten basiert . Es gibt zwei Aktionen für den CLKStift.
  1. Nichts tun
  2. "Erfassen" von Daten von den Datenstiften und Ausführen einer Aktion am Ausgang basierend auf den Werten der Datenstifte zu diesem bestimmten Zeitpunkt.

Wieder gibt es 4 mögliche Aktionen, die die Schaltung am Ausgang ausführen kann.

  1. Nichts tun
  2. Stellen Sie QaufHIGH
  3. Stellen Sie QaufLOW
  4. Invertiere den Wert von Q(jetzt ist er gültig, weil er es nur einmal tut)

DAS IST KEIN FLIP-FLOP:

Bildbeschreibung hier eingeben

Aber warum fragst du? Dieser EStift ist kein Uhrstift. Mit Clock-Pins kann die Schaltung die Informationen von den Daten-Pins EINMAL analysieren, wenn diese Informationen als Anweisungen zum Ausführen bestimmter Aktionen am Ausgang gesendet werden. Mit Aktivierungspins wie diesem kann die Schaltung die Informationen von den Datenpins analysieren, solange sie hochgehalten werden und ständig die Werte des Ausgangs einstellen. Somit ist es eine Falle. (Danke an jbord39 für den Hinweis auf meinen Fehler).

Das Flip-Flop ist also wie ein Latch, außer dass Sie einen zusätzlichen "Bestätigungs" -Schritt benötigen, den CLKPin.

Ist also diese letzte Schaltung der OP-Frage ein Flip-Flop? Versuchen Sie, das C hoch zu halten, und prüfen Sie, ob sich der Ausgang ändert, wenn Sie den Wert von D ändern. Wenn sich der Ausgang ändert, sollte er stattdessen als enable bezeichnet werden und ist ein Latch. Aber wenn sich der Ausgang nicht ändert (was auch der Fall ist), dann ist es ein Flip-Flop.

Die Bilder stammen von Wikipedia.


Nein, viele Latches haben Clock Pins. nxp.com/documents/data_sheet/74HC_HCT373.pdf in der Tat Sie die Schaltung zeigte ein Riegel kein Flip - Flop ...
jbord39

@ jbord39? Welcher Uhrstift? Und der Aktivierungsstift unterscheidet sich von einem Taktstift.
Bradman175

@ jbord39 und whoops du hast recht. Die beiden unteren Schaltkreise sind Latches. Bitte überdenken Sie meine Antwort.
Bradman175

Lassen Sie mich sehen, ob ich das verstehe. Flip-Flops prüfen jeden Eingang und schalten einen Ausgang ein, und ein Latch prüft den Takt und handelt, wenn er 1 ist, und gibt den Wert von D aus. aber das D-Latch ist ein echtes Latch.
Daniel Tork

@DanielTork Die Sache ist, dass Sie mehrere "Uhren" haben und eine Uhr nicht zwischen Stiften wechseln kann und auch als Datenstift dient.
Bradman175
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.