Ich kann mich nicht darum kümmern, wie der SR Latch funktioniert. Anscheinend steckt man eine Eingangsleitung von R und eine andere von S und soll Ergebnisse in Q und Q 'erhalten.
Sowohl R als auch S erfordern jedoch eine Eingabe von der Ausgabe des anderen, und die Ausgabe des anderen erfordert eine Eingabe von der Ausgabe des anderen. Was kommt zuerst das Huhn oder das Ei?
Wie fängt es an, wenn Sie diese Schaltung zum ersten Mal anschließen?
digital-logic
flipflop
CodyBugstein
quelle
quelle
Antworten:
Eine einfühlsame Frage. Wenn Sie dieses Latch in einem Simulationsprogramm erstellen, wird es Ihnen in der Tat zeigen, dass es nicht vorhersagen kann, in welchem Zustand es starten wird:
Wenn Sie jedoch einen der Eingänge auf "High" setzen (das sind die Drucktasten auf der linken Seite), breitet sich das Signal aus (denken Sie daran, dass 1 ODER [alles] gleich 1 ist), und die Schaltung speichert diesen Zustand zwischen:
Dies sind NOR-Gatter, so dass der invertierte Ausgang niedrig wird, wenn einer der Eingänge hoch ist. Das von mir verwendete Programm ist Logisim. Es ist klein und ich empfehle es für den Anfang. Logik-Compiler (FPGA und alles andere) beklagen sich gerne über nicht initialisierte Zustände. Dies war ein großartiges erstes Beispiel.
Jetzt weiß ich, dass die Schaltung im wirklichen Leben zufällig in den einen oder anderen Zustand einrastet. Viele andere haben darauf hingewiesen. Aber manchmal ist es wichtig, dass es zuverlässig in dem einen oder anderen Zustand startet, und darum geht es in allen Warnungen.
quelle
Ein Flip-Flop ist als bistabiler Multivibrator implementiert; daher ist garantiert, dass Q und Q 'für alle Eingaben umgekehrt sind, mit Ausnahme von S = 1, R = 1, was nicht zulässig ist. Die Erregertabelle für das SR-Flip-Flop ist hilfreich, um zu verstehen, was passiert, wenn Signale an die Eingänge angelegt werden.
Die Ausgänge Q und Q 'ändern schnell ihren Zustand und kommen in einem stationären Zustand zum Stillstand, nachdem Signale an S und R angelegt wurden.
Wenn wir die einfachste Implementierung eines SR-Flip-Flops untersuchen (siehe http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg) ), stellen wir fest, dass es aus zwei Bipolar Junction-Transistoren (BJTs) und vier besteht Widerstände (ersetzen Sie die SPST-Kippschalter gegen Masse durch SPDT-Schalter, mit denen die Setz- und Rücksetzleitungen zwischen Massepotential und V + geschaltet werden können). Die BJTs sind als Common Emitter Inverter konfiguriert. Der Kollektor (Ausgang) jedes Transistors wird in die Basis (Eingang) des gegenüberliegenden Transistors zurückgeführt. Der Eingang S ist mit dem Ausgang des BJT verdrahtet, dessen Kollektoranschluss als Ausgang Q dient (Verbindungsstelle von R1 / R3). Der Eingang R ist mit dem Ausgang BJT verdrahtet, dessen Kollektoranschluss als Ausgang Q '(Verbindungsstelle von R2 / R4) dient.
Wenn die Schaltung zum ersten Mal eingeschaltet wird, wird keiner der Transistoren für einen winzigen Bruchteil einer Sekunde in den Sättigungsbereich vorgespannt, was bedeutet, dass sowohl Q als auch Q 'auf dem logischen Pegel 1 liegen. Die an jedem Kollektor verfügbare Spannung wird der Basis zugeführt des gegenüberliegenden Transistors, was bewirkt, dass er in den Sättigungsbereich vorgespannt wird. Der Transistor, der zuerst in Vorwärtsrichtung vorgespannt wird, beginnt zuerst Strom zu leiten, was wiederum einen Spannungsabfall an seinem Kollektorwiderstand verursacht und seinen Ausgang auf den logischen Pegel 0 setzt. Dieser Abfall der Kollektorspannung verhindert, dass der gegenüberliegende Transistor abfällt voreingenommen sein; daher Einstellen des Anfangszustands des Flip-Flops. Dies ist im Grunde eine Hardware-Race-Bedingung, die zu einem unvorhersehbaren Ergebnis führt.
quelle
Wie Sie sagten, ist es undefiniert. In der Praxis gibt es Transienten oder Macken, die die Verriegelung in einen bestimmten Zustand versetzen sollten, es gibt jedoch keine Garantie dafür, in welchem Zustand sie sich befinden wird. Dies wird durch eine Fehlanpassung in den beiden Gattern verursacht, die einen gegebenen Anfangszustand definieren (im Grunde genommen tut dies die Schaltung nicht) verhält sich nicht wie ein echtes digitales SR-Latch, sondern ist eine komplexe analoge Schaltung wie im echten Leben. Die anfängliche Ausgabe erfolgt entweder
Q=1 and ~Q=0
oder mehr oder weniger zufälligQ=0 and ~Q=1
.Wenn in einem Datenblatt nicht ausdrücklich darauf hingewiesen wird, dass ein Zustand vor dem anderen gewählt wird, kann sich der tatsächliche Anfangszustand zwischen verschiedenen Teilen der Charge, der Platzierung auf einer Platine, den Umweltfaktoren (Temperatur / Luftfeuchtigkeit / usw.) und der Alterung ändern (Auf keinen Fall eine vollständige Liste der Faktoren).
Der beste Weg, einen Zustand zu definieren, besteht darin, nach dem Start entweder das Setzen oder Zurücksetzen zu bestätigen, um den SR-Latch in einen bekannten Zustand zu versetzen.
Als Randnotiz: Im Allgemeinen führen SR-Latches, die gleichzeitig S und R aktivieren, auch zu undefiniertem Verhalten, und Sie verlassen sich auf einen ähnlichen Voodoo, um die Ausgänge zu setzen (eine echte Implementierung kann beide Ausgänge ausschalten, die beiden zufällig umschalten, beide Ausgänge einschalten usw.). Wie Supercat kommentierte, kann der SR-Zwischenspeicher in einen bekannten Zustand versetzt werden, wenn ein Pin vor dem anderen nicht belegt ist, da nur ein Pin belegt wird. Andere Arten von Latches / Flip-Flops können ein anderes Verhalten definieren, beispielsweise definieren JK-Flip-Flops das Aktivieren beider Pins zum Umschalten der Ausgänge (Q = ~ Qprev, ~ Q = Qprev).
quelle
Denken Sie daran, dass sich die Tore umkehren. Dies liefert eine positive Rückkopplungsschleife. Unter der Annahme, dass sowohl S als auch R Null sind und ein Ausgang Eins ist, wird dieser in das andere Gate zurückgeführt, um den anderen Ausgang auf Null zu zwingen. Auf diese Weise befinden sich die Tore in einem von zwei stabilen Zuständen.
Sobald Sie eines von S oder R auf eins setzen, wird das entsprechende Gate dazu gezwungen, Null auszugeben, was wiederum dazu führt, dass das andere Gate Null ausgibt. Wieder stabil.
Beispiel: Anfangszustand: S = 0, R = 0, Q = 0, Q # = 1. Sie setzen jetzt S = 1. Dadurch wird der untere Gate-Ausgang (Q #) auf 0 gesetzt. Diese 0 wird in den oberen eingespeist Gate, wodurch dieser Ausgang (Q) auf 1 gesetzt wird. Diese 1 führt zum unteren Gate zurück. Wenn Sie S auf 0 zurücksetzen, empfängt das untere Tor immer noch die 1 vom anderen Tor. Dadurch bleibt der Q # -Ausgang auf 0.
Wenn Q bereits 1 ist und Sie S auf 1 setzen, sind beide Eingänge des unteren Gates 1 und es gibt keine Änderung.
quelle
Ich denke, der wichtige Punkt, nach dem Sie fragen, hat mit der Tatsache zu tun, dass die Verriegelung in einem unbekannten Zustand hochfährt. Wie können wir sie also jemals in einen bekannten Zustand versetzen? Sie müssen sich daran erinnern, dass, wenn einer der Eingänge eines NOR-Gatters eine 1 ist, der Ausgang eine 0 sein muss, unabhängig vom Status des anderen Eingangs. Das Anwenden der SET- oder RESET-Eingangskombinationen zwingt den Latch immer in den Set- oder Reset-Zustand, unabhängig vom vorherigen Zustand des Latch.
quelle