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.
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?
Antworten:
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:
Zusätzlich,
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).
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 :
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)!
quelle
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.
quelle
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.
quelle
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.
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.
quelle
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.
quelle
(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 entwederHIGH
oder in einem bestimmten Zustand befindenLOW
. Wenn eine bestimmte Kombination vonHIGH
s undLOW
s 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.Beachten Sie, dass
Q'
abhängig ist vonQ
.Ein Beispiel ist der SR-Latch, der alle 4 möglichen Aktionen eines Latch demonstriert:
CLK
Stift wie oben erwähnt. Wenn derCLK
Pin seinen Zustand ändert (entweder vonLOW
nachHIGH
, umgekehrt oder sogar beides), werden die Datenpins "erfasst" und das Flip-Flop führt eine Aktion aus, die auf der Kombination vonHIGH
s undLOW
s der von den Datenpins erfassten Daten basiert . Es gibt zwei Aktionen für denCLK
Stift.Wieder gibt es 4 mögliche Aktionen, die die Schaltung am Ausgang ausführen kann.
DAS IST KEIN FLIP-FLOP:
Aber warum fragst du? Dieser
E
Stift 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
CLK
Pin.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.
quelle