Warum takten wir Flip Flops?

19

Ich versuche Flip Flops & Latches zu verstehen. Ich lese aus dem Digital Logic-Buch von Morris Mano. Eine Sache, die ich nicht verstehen kann, ist, warum wir Flip-Flops takten?

Ich verstehe, warum wir aktivierte oder mit einem Gatter versehene Verriegelungen benötigen. Aber wozu dient die Uhr? Ich kann das nicht verstehen. Warum können wir nicht einfach die erforderlichen Flip-Flops aktivieren und ihnen Eingaben geben? Wenn wir die Eingabe ändern, ändert sich auch die Ausgabe. Warum müssen wir den Ausgang mit steigender oder fallender Taktflanke ändern (im Falle eines flankengetriggerten Flipflops)?

Jede Hilfe diesbezüglich wird gebeten.

avi
quelle

Antworten:

18

Ein Grund, warum wir Flip-Flops so takten, dass es kein Chaos gibt, wenn die Ausgänge von Flip-Flops durch einige Logikfunktionen und zurück zu ihren eigenen Eingängen geführt werden.

Wenn der Ausgang eines Flip-Flops zur Berechnung seines Eingangs verwendet wird, ist ein geordnetes Verhalten erforderlich, um zu verhindern, dass sich der Zustand des Flip-Flops ändert, bis der Ausgang (und damit der Eingang) stabil ist.

Diese Taktung ermöglicht es uns, Computer zu erstellen, die Zustandsautomaten sind: Sie haben einen aktuellen Zustand und berechnen ihren nächsten Zustand basierend auf dem aktuellen Zustand und einigen Eingaben.

Angenommen, wir möchten eine Maschine erstellen, die eine inkrementelle 4-Bit-Zählung von 0000 auf 1111 "berechnet" und dann auf 0000 umspringt und weitermacht. Wir können dies tun, indem wir ein 4-Bit-Register verwenden (das eine Bank von vier D-Flip-Flops ist). Der Ausgang des Registers wird durch eine kombinatorische Logikfunktion geführt, die 1 (einen Vier-Bit-Addierer) addiert, um den inkrementierten Wert zu erzeugen. Dieser Wert wird dann einfach in das Register zurückgeführt. Wenn nun die Taktflanke ankommt, akzeptiert das Register den neuen Wert, der eins plus dem vorherigen Wert ist. Wir haben ein geordnetes, vorhersehbares Verhalten, das die Binärzahlen ohne Störungen durchläuft.

Das Taktverhalten ist auch in anderen Situationen nützlich. Manchmal hat ein Stromkreis viele Eingänge, die sich nicht gleichzeitig stabilisieren. Wenn die Ausgabe sofort aus den Eingaben erzeugt wird, ist sie chaotisch, bis sich die Eingaben stabilisieren. Wenn wir nicht möchten, dass die anderen vom Ausgang abhängigen Schaltkreise das Chaos sehen, takten wir den Schaltkreis. Wir lassen den Eingängen eine großzügige Zeitspanne zum Einschwingen und weisen dann die Schaltung an, die Werte zu akzeptieren.

Das Takten ist auch von Natur aus Teil der Semantik einiger Arten von Flip-Flops. Ein AD-Flip-Flop kann nicht ohne Takteingang definiert werden. Ohne einen Takteingang ignoriert er entweder seinen D-Eingang (nutzlos!) Oder kopiert einfach den Eingang zu jeder Zeit (kein Flip-Flop!). Ein RS-Flip-Flop hat keinen Takt, sondern verwendet zwei Eingänge um den Zustand zu steuern, bei dem die Eingänge "selbsttaktend" sind: dh um die Eingänge sowie die Auslöser für die Zustandsänderung zu sein. Alle Flip-Flops benötigen eine Kombination von Eingängen, die ihren Zustand programmiert, und eine Kombination von Eingängen ermöglicht es ihnen, ihren Zustand beizubehalten. Wenn alle Kombinationen von Eingängen die Programmierung auslösen oder wenn alle Kombinationen von Eingängen ignoriert werden (der Status wird beibehalten), ist dies nicht sinnvoll. Was ist nun eine Uhr? Eine Uhr ist ein besonderes, dedizierter Eingang, der unterscheidet, ob die anderen Eingänge ignoriert werden oder ob sie das Gerät programmieren. Es ist nützlich, dies als separate Eingabe zu haben, anstatt es unter mehreren Eingaben zu codieren.

Kaz
quelle
Dies ist sinnvoll, wenn Sie die Notwendigkeit der Taktung für Zähler oder Zustandsautomaten erläutern. Wenn es überhaupt keine Uhr gibt, ändert der Zähler nur seinen Wert (und setzt ihn zurück) und startet unendlich? und das selbe mit state machine. (Nach dem, was ich aus dem Wiki gelesen habe, sind Zähler nur eine Art von Zustandsautomaten, da die Zustände geändert werden). Aber auch bei Registern verwenden wir die Uhr, warum? Ich möchte auch wissen, ob es Flip-Flops gibt, die in jeder Anwendung ohne Uhr verwendet werden können.
Avi
Wenn sich die Ausgänge nun stabilisieren, können andere Geräte, die Flip-Flops benötigen, sie nicht richtig empfangen, und es kann zu einem fehlerhaften Verhalten kommen. Ist das also ein Stabilitätsproblem? Jetzt versuche ich, das Konzept der Stabilität zu verstehen. Insbesondere diese beiden Paras, die Sie erklärt haben: "Um zu verhindern, dass sich der Zustand des Flip-Flops ändert, bis der Ausgang (und damit der Eingang) stabil ist." "Manchmal hat eine Schaltung viele Eingänge, die sich nicht gleichzeitig stabilisieren"
avi
7

Ein Flip-Flop mit ansteigender Flanke kann als zwei Latches hintereinander betrachtet werden, von denen eines aktiviert wird, kurz nachdem das Taktsignal auf LOW geht und aktiviert bleibt, bis es auf HIGH geht; Die Sekunde wird kurz nach dem Hochschalten der Uhr aktiviert und bleibt aktiviert, bis sie auf Tief gestellt wird. Ein kurzer Moment, in dem kein Flip-Flop aktiviert ist, bedeutet, dass der Ausgang eines Flip-Flops über eine kombinatorische Logik sicher auf seinen Eingang zurückgeführt werden kann. Eine Änderung des Ausgangs in einem Taktzyklus kann zu einer Änderung des Eingangs führen. Diese Änderung des Eingangs wird jedoch erst im nächsten Taktzyklus wirksam.

In der Vergangenheit war es bei digitalen Geräten üblich, einen sogenannten "Zwei-Phasen-Takt" zu verwenden, der zwei Taktdrähte aufwies, die für nicht überlappende Intervalle während jedes Zyklus hoch waren. Alle Latches sind in zwei Gruppen unterteilt, wobei ein Takt die erste Gruppe von Latches und der andere Takt den zweiten steuert; In den meisten Fällen werden die Ausgänge jeder Gruppe nur zur Berechnung der Eingänge der anderen Gruppe verwendet. Jeder Taktzyklus besteht aus einem oder mehreren Impulsen im ersten Takt, von denen mindestens einer die Mindestlängenspezifikationen erfüllen muss, und einem oder mehreren Impulsen im zweiten (gleiche Anforderung). Ein Vorteil eines solchen Entwurfs besteht darin, dass er gegenüber Taktversatz sehr tolerant sein kann, vorausgesetzt, dass die Totzeit zwischen Taktphasen den Taktversatzbetrag überschreitet.

Ein "moderner" Ansatz besteht darin, dass jedes Verriegelungselement (Register) eine einzelne Taktleitung empfängt und im Wesentlichen seine eigenen internen nicht überlappenden Takte erzeugt. Dies setzt voraus, dass der maximale Taktversatz die minimale Laufzeit zwischen den Registern nicht überschreitet. Moderne Tools ermöglichen jedoch eine genauere Steuerung des Taktversatzes als dies in den vergangenen Jahrzehnten möglich war. In vielen Fällen vereinfacht die einphasige Taktung das Design, da die Logik nicht in zwei Gruppen unterteilt werden muss.

Superkatze
quelle
2

Wir alle wissen, dass digitale reale Schaltkreise eine Menge Tore enthalten werden. Ein Signal muss möglicherweise mehrere Pfade zurücklegen, um zum letzten Gate zu gelangen, das den Ausgang liefert. Ein Signal benötigt eine gewisse Zeit, um sich auf den verschiedenen Pfaden, die das letzte Tor erreichen, "auszubreiten". Die für die Ausbreitung benötigte Zeit ist auf verschiedenen Pfaden nicht gleich. Dies führt zu dem, was wir als Störungen bezeichnen. Störimpulse treten auf, weil einige Pfade kürzer sind als andere, und wenn ein Signal das letzte Tor früher erreicht, indem es den kürzeren Pfad nimmt, bewirkt es dies unmittelbar bevor die anderen Signale auf dem längeren Pfad das Tor erreichen. Die Ausgabe, die dies momentan zur Folge hat, ist falsch und kann in einem digitalen Schaltkreis gefährlich werden, was zu einer Fehlerausbreitung führt.

Jetzt komme ich dazu, warum wir eine Uhr brauchen. Eine Uhr "synchronisiert" die Schaltung im wesentlichen mit einem einzelnen externen Signal. Stellen Sie sich vor, die Schaltung ist so eingestellt, dass sie Musik mag. Die Dinge passieren im Einklang mit dieser Uhr, keine Uhr = Schaltung ist deaktiviert. Durch die Verwendung der Uhr stellen wir sicher, dass die verschiedenen Teile der Schaltung zur gleichen Zeit in Harmonie arbeiten . Auf diese Weise ist das Verhalten der Schaltung vorhersehbarer. Es wird auch weniger durch Änderungen der Ausbreitungsverzögerung durch Temperatur- und Herstellungsschwankungen beeinflusst. Dies gilt für die Uhr.

Flip-Flops sind solche digitalen Schaltungselemente, die eine Aktion ausführen (ihre Ausgabe in Reaktion auf eine Eingabe an ihrem Eingabeport ändern), wenn ein "CLOCK EDGE" auftritt. Taktflanke ist, wenn das Taktsignal von 0 auf 1 oder von 1 auf 0 geht. Zeichnen Sie einfach eine Taktwelle und Sie werden wissen, was ich meine. Es gibt eine weitere Gruppe von Elementen, die als Latches bezeichnet werden. Der Ausgang von Latches ändert sich, um den Eingang wiederzugeben, wenn ein bestimmtes Steuersignal auf einem bestimmten logischen Pegel liegt und keine Flanken abwartet. Dieses Steuersignal wird in Latches als ENABLE bezeichnet. Latches funktionieren möglicherweise, wenn enable 1 ist und ihre Ausgabe ändert, oder wenn enable 0 ist. Dies hängt vom Latch-Typ ab. Im Gegensatz Flips Flops tatsächlich tun etwas nurwenn sie von einer Uhr EDGE gespeist werden. Bitte beachten Sie diesen Unterschied zwischen Latches und Flip-Flops und denken Sie daran, dass Latches miteinander verbunden sind, um ein Flip-Flop zu erstellen, so dass die Aktivierung nur bewirkt, dass das Flip-Flop etwas tut, wenn eine Taktflanke auftritt. In diesem Fall nennen wir das Enable-Signal Clock, und es ist auch sinnvoller. Die Uhr für Menschen geht Tick Tick, der Flip Flop macht etwas nur bei Ticks und NICHTS zwischen den Ticks.

Wenn es immer noch nicht klar ist, können Sie den nptelhrd-Vortrag auf youtube vom Indian Institute of Technology für digitale Schaltungen ansehen.

quantum231
quelle
"Indem wir die Uhr verwenden, stellen wir sicher, dass die verschiedenen Teile des Stromkreises gleichzeitig harmonisch funktionieren." - Wie machen wir das? Ich werde mir die Videos ansehen.
Avi
Bitte beachten Sie, dass die Flip-Flops Geräte sind, die ihren Ausgang ändern, um den Eingang an der ansteigenden Flanke (oder der abfallenden Flanke, wenn es sich um ein durch eine negative Flanke ausgelöstes Flip-Flop handelt) eines Steuersignals für ein durch eine positive Flanke ausgelöstes Flip-Flop wiederzugeben. Dieses Steuersignal wird aufgrund seiner Periodizität als Uhr bezeichnet und ähnelt eher dem Tick-Tick unserer Wanduhren. Wenn ein Taktsignal vorhanden ist, tut das Flip-Flop etwas, andernfalls lässt der Eingang nichts mit dem Ausgang geschehen. Bitte kennen Sie den Unterschied und die Ähnlichkeit zwischen Latches und Flip-Flops von Anfang an, um nicht zu verwechseln.
quantum231
1

Es gibt so etwas wie asynchrone Zähler. Hier ist eine: - Bildbeschreibung hier eingeben

Dies wird auch als Ripple-Zähler bezeichnet, da beim Eintreffen eines Eingangsimpulses am Eingang (Ändern des Zustands des ersten Flip-Flops) diese Zustandsänderung eine endliche Zeit benötigt, um die verbleibenden Flip-Flops zu durchlaufen. Während dieser kleinen, aber begrenzten Zeitspanne haben die Ausgänge ABCD einen unvorhersehbaren Übergangswert, bis sich das endgültige Flip-Flop gesetzt hat.

Wenn die Ausgänge ABCD dann alle über D-Flip-Flops gespeist und einige Zeit nach der Einschwingzeit zusammen getaktet würden, würde diese "bessere" Version von ABCD dieses Einschwingverhalten niemals "anzeigen".

Um dies zu vermeiden, verwenden Ingenieure manchmal synchrone Taktschaltungen. Entschuldigung, die Eingabe erfolgt von links und Q0 bis Q3 entsprechen ABC und D im vorherigen Diagramm:

Bildbeschreibung hier eingeben

Es ist etwas komplexer, aber schneller und hat weniger Teile als ein Asynchronzähler mit einer Reihe von D-Typen an den Ausgängen.

Andy aka
quelle
Nun, mit Zählern macht es Sinn. Aber gibt es eine Anwendung, bei der Flipflops ohne Uhren verwendet werden? oder Flipflops können nie ohne Uhren verwendet werden?
Avi
@avi Das erste Beispiel (asynchroner Zähler) muss nicht als Eingabe von einer "Uhr" betrachtet werden. Es können Impulse sein, die von einem Magnetsensor kommen, um zu sehen, wie schnell sich eine Welle dreht. Es würde eine "Haupt" -Uhr auf dem System geben, die die Zählung jede Sekunde "abtastet", aber das "Signal", das in den Zähler eingeht, ist nicht unbedingt eine Uhr. Der Ausgang eines analogen Komparators kann eine "1" auf den Ausgang eines D-Typs "takten" und der Ausgang eines anderen analogen Komparators kann den D-Typ zurücksetzen - dies kann verwendet werden, um ein von einer analogen Wellenform abgeleitetes Signal zu erzeugen - keine Takte als solches
Andy aka
Ich würde das Verhalten eines Welligkeitszählers eher als quantitativ als als qualitativ verschieden von dem des synchronen Zählers betrachten. Die Ausgänge beider Zähler werden einige Zeit nach dem Eintreffen eines Taktimpulses ungültig und einige Zeit danach wieder gültig. Der Synchronzähler hat ein kleineres Fenster, in dem seine Ausgaben ungültig sind, das Fenster ist jedoch in jedem Fall ungleich Null. Es ist auch erwähnenswert, dass die maximale Zählgeschwindigkeit bei gezogenem Zähler durch die Zählerlänge begrenzt wird. Man könnte diese Einschränkung umgehen ...
Supercat
... indem die Übertrags-Kette zB beim vierten Bit beginnt, das "und" der ersten drei Bits erzeugt und dann jedes Bit nur dann umdreht, wenn die Eingabe von der Übertrags-Kette hoch war, Bit 2 hoch war, Bit 1 war hoch und Bit 0 war hoch. Selbst wenn sieben Zählimpulse rechtzeitig eintreffen würden, damit sich ein Signal durch die Übertragskette ausbreiten kann, wäre dies kein Problem, da die Übertragskette den Übertrag ausbreiten würde, wenn die Zählung xxx111 ... 111000 erreicht wurde, aber die Ausgabe wäre bis gleichgültig der Takt nach xxx111 ... 111111 wurde erreicht.
Supercat
Diese Ripple Counter sind einfach, aber in der realen Welt der digitalen Schaltkreise, in denen ich arbeite, verabscheut. Es ist gut zu wissen, dass sie existieren, aber es ist sehr unwahrscheinlich, dass Sie sie für echte Projekte verwenden dürfen. Es kann immer in einfachen Übungen verwendet werden, bei denen ihre "asynchrone" Natur kein Problem darstellt.
quantum231
0

Weil es einfacher ist, synchrone Systeme zu entwerfen (synchrones System bedeutet jede Sammlung kombinatorischer Logik und getakteter Flip-Flops) als asynchrone Systeme und synchrone Systeme zuverlässiger sind. Das asynchrone Zustandsmaschinendesign ist jedoch eine Untersuchung wert, da es eine Ausgabe viel schneller und mit geringerer Leistung als ein synchrones System berechnen kann.

user39588
quelle