D-Flip-Flops, aber keine Rückkopplungsschleifen: unmöglich?

Unter Verwendung von JK- oder T-Flip-Flops ist es einfach, einen synchronen N-Bit-Zähler zu erstellen, indem sie wie hier dargestellt kaskadiert werden:

ein 4-Bit-Zähler mit T-Flops und ohne Rückkopplungsschleifen

Die obige Schaltung enthält keine Rückkopplungsschleifen. Ich bin in eine Situation geraten, in der ich lieber D-Flops verwenden würde, aber ich möchte auch unnötige Schleifen wegen Kabelstaus vermeiden. Meine Intuition sagt, dass es unmöglich ist, beides zu tun (mit D-Flops und Vermeidung von Rückkopplungsschleifen), aber ich kann nicht wirklich sagen, warum. Beide Arten von Flip-Flops speichern 1 Zustandsbit, richtig? Das Einfügen einer Rückkopplungsschleife auf den D-Flop fühlt sich an, als würde man einen weiteren Zustand hinzufügen, aber das System als Ganzes speichert keine zusätzlichen Daten.

Denke ich falsch an Schleifen? Was ist anders am D-Flip-Flop, das es hier nicht funktionieren lässt? Das letzte und wichtigste: Ist es tatsächlich unmöglich, einen Zähler nur mit D-Flops und ohne Rückkopplungsschleifen zu erstellen, oder bin ich dem Problem einfach zu nahe, um es zu sehen?

Bearbeiten , um meine Frage zu klären: Sowohl D- als auch T-Flip-Flops haben eine Art interne Rückkopplungsschleife; Ich verstehe das. Sowohl D- als auch T-Flip-Flops speichern ein Informationsbit. Was ist anders am T-Flip-Flop, das es ermöglicht, es in einem Zähler zu verwenden, ohne weitere Rückkopplungsschleifen hinzuzufügen? Oder was ist alternativ mit dem D-Flip-Flop, das es für diesen Zweck ungeeignet macht, wenn es alleine verwendet wird?

Es ist nicht synchron.
Höchstwahrscheinlich sind Ihre T-Flip-Flops als DFFs mit Rückkopplung implementiert, wie in Andys Antwort gezeigt.
Danke Andy, ich war in Eile als ich gepostet habe und habe meinen Fehler nicht bemerkt. Ich habe eine andere Schaltung gefunden, die die Schaltung zeigt, von der ich spreche.

Antworten (5)

Um ein T-Flip-Flop zu machen, nehmen Sie ein D-Flip-Flop und fügen Feedback vom Ausgang hinzu, um den nächsten Zustand zu bestimmen.

Das Bild unten zeigt die grundlegendste Betriebslogik eines T-Flipflops. Wenn Sie die Rückkopplung von Q und Q 'entfernt haben, erhalten Sie ein D-Flip-Flop (Und ich weiß, Sie müssen auch den Bit-Eingang am Lower und Gate invertieren. Halten wir es einfach, ok?)

T-Flip-Flop

Wenn Sie also anstelle eines T-Flipflops ein D-Flipflop in einer Zählerschaltung verwenden, müssen Sie die jetzt fehlende Rückkopplung manuell hinzufügen.

Ok, das ist eine Teilantwort, aber wenn man es aus der Systemperspektive betrachtet: Ein D FF hat bereits eine Rückkopplungsschleife. Warum brauche ich zwei Rückkopplungsschleifen, eine innerhalb des FF und eine außerhalb davon, wenn ich nur ein Zustandsbit benötige?
Tatsächlich hat das einfachste D FF keine Rückkopplungsschleife, da der Ausgangszustand beim nächsten Taktzyklus nicht vom aktuellen Ausgangszustand abhängt. Wie ich oben sagte, wenn Sie das abgebildete T-Flip-Flop nehmen und die Rückkopplung vom Ausgang entfernen, erhalten Sie ein D-Flip-Flop.
Jedes FF oder Latch benötigt eine Rückkopplungsschleife, um überhaupt einen Zustand zu haben; Ich verweise Sie auf die Antwort von @OlinLathrop. Aber ich glaube, ich verstehe, warum das nicht so zutrifft, wie ich dachte, dass es sollte.
Ich nenne dies die akzeptierte Antwort, weil es zwar nicht genau meine Verwirrung anspricht, aber ich sehe jetzt, dass es einen Unterschied zwischen den beiden (etwa 3) Rückkopplungsschleifen in diesem Diagramm gibt. Danke

Das Flip-Flop vom D-Typ benötigt eine Rückkopplung von seinem invertierten Q-Ausgang, um die Frequenz durch zwei zu teilen. Das ist die kurze und lange Geschichte: -

Geben Sie hier die Bildbeschreibung ein

Die Funktionsweise eines D-Flip-Flops ist einfach. Positive Taktflanken speichern den Zustand des D-Eingangs zum Zeitpunkt des Anstiegs der Flanke. Daher ist zu dem Zeitpunkt, zu dem der QBAR-Ausgang seinen Zustand geändert hat (einige wenige Nanosekunden später), sein vorheriger Zustand bereits zwischengespeichert worden, so dass es keine Störungen gibt.

@trentcl: Das D FF mit Feedback, wie Andy zeigt, IST dein T FF (wie der Photon anmerkt). Wenn Sie also diesen Rückkopplungsdraht hinzufügen, verdrahten Sie einfach Ihr D FF (was Sie haben), um sich als T FF (was Sie wollen) zu verhalten. Diese Drähte sind auch in Ihrem Diagramm vorhanden, aber sie befinden sich in Ihren T FF-Blöcken.
(Die Schaltung im Original wurde geändert, falls Sie Ihre Antwort anpassen möchten.) Das Hinzufügen einer Schleife wirkt sich also nicht auf die ... "Zustandshaftigkeit" der Schaltung aus? Es erscheint mir nur seltsam, dass ein T-Flop selbst tun kann, was ein D-Flop nicht kann, nämlich dass beide ein Bit des Zustands speichern. Aber ich denke, es macht Sinn, dass die Rückkopplungsschleife im T-Flop impliziert ist.

Wenn man bereit ist, bestimmte Annahmen über Ausbreitungsverzögerungen zu treffen und aus jeder ansteigenden Taktflanke einen Impuls geeigneter Länge erzeugen kann, benötigt ein T-Flip-Flop nichts weiter als ein XOR-Gatter, das auf sich selbst zurückkoppelt.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Die obige Schaltung verwendet RC-Schaltungen, um dem XOR-Gatter eine Ausbreitungsverzögerung hinzuzufügen; Der Komparator unten links erzeugt verschiedene Taktimpulsbreiten. Wenn ein Takt zu kurz ist, schaltet er den Ausgang nicht; wenn es zu lang ist, schaltet es mehr als einmal (wie gezeigt, reichen die Pulse von zu schmal, um überhaupt zu schalten, bis zu breit genug, um dreimal zu schalten). Beachten Sie, dass die Standard-Gatter und Logikpuffer in diesem Simulator Schmidt-Triggereingänge haben (was das Vorhandensein einer internen Rückkopplung impliziert), die analogen Komparatoren jedoch nicht, sodass die gezeichnete Schaltung keinen anderen Rückkopplungspfad als den einzelnen Draht über der Oberseite hat.

In der Praxis ist es unpraktisch, Taktimpulse so zu konditionieren, dass sie genau die richtige Breite haben, daher fügen Flip-Flops zusätzliche interne Rückkopplungsstrukturen hinzu. Solche Strukturen erfordern mehr Schaltungen, aber es ist besser, eine größere Menge robuster Schaltungen zu haben, als eine kleinere Menge an Schaltungen zu haben, die eine präzise Optimierung erfordern, damit sie funktionieren.

Interessant. Tatsächlich ist es in der von mir verwendeten Technologie (supraleitende Logik) möglich, eine ähnliche Schaltung herzustellen, ohne RC-Schaltungen zu verwenden, um die Impulsbreite zu fummeln. Die Kompromisse sind jedoch seltsam (DFFs sind beispielsweise billiger als XORs). Danke!
@trentcl: In der NMOS-Technologie würde ich denken, dass ein XOR, dessen Eingänge für keinen anderen Zweck verwendet werden, mit zwei aktiven Transistoren und einem passiven Pullup realisiert werden könnte; Ich weiß nicht, ob hergestellte Chips eine solche Schaltung verwendet haben. Ich gebe gerne zu, dass die Verwendung einer XOR in einem Schaltplan vielleicht ein bisschen ein "Cheat" ist, da es verschiedene Realisierungen von XOR mit unterschiedlichen Leistungsmerkmalen gibt. Dennoch sollten die RC-Schaltungen im obigen Schema nicht so sehr auf "absichtliche" RC-Schaltungen hinweisen, sondern auf parasitäres RC-Verhalten. Da Sie Supraleiter erwähnen, bin ich neugierig ...
...was sind die Leistungsmerkmale von supraleitenden Gates? In diesem Simulator fungieren Gates als Verzögerungsleitungen, was meiner Meinung nach für jede "normale" Art von Logik höchst unrealistisch ist. Wenn ich einen Simulator entwerfen würde, würde ich Tp (min) und Tp (max) definieren und sagen, dass der Ausgang eines Gatters nach jeder Änderung des Eingangs, die sich auf den Ausgang auswirken könnte, auf Tp (min) in der Mitte geht. und werden erst gültig Tp(max) nachdem die Eingaben gültig geworden sind; Unter einer solchen Simulation könnten einige Schaltungen, die sich im wirklichen Leben vernünftig verhalten würden, mit allem in der Mitte der Schiene stecken bleiben, aber Schaltungen, die unter Simulation funktionieren ...
... mit vernünftigen Parametern, die auf den zugrunde liegenden Komponenten definiert sind, würde in der Realität mit jeder Kombination von realem Verhalten zwischen Tp (min) und Tp (max) funktionieren - eine Situation, die nicht überprüfbar ist, wenn Simulatoren eine feste Ausbreitungszeit verwenden. Verhalten sich Supraleiter wie Verzögerungsleitungen oder Trägheitstore oder etwas dazwischen?
Es hängt von der spezifischen Logikfamilie ab, aber im Allgemeinen stellen Sie fest, dass Gatter dazu neigen, ein Latch oder Flip-Flop "eingebaut" zu haben, da ihre Verzögerung immer von einer Uhr abhängt. Prinzipiell verhalten sie sich eher wie Verzögerungsleitungen, aber im Kontext dominiert die getaktete Natur der Schaltung jede Frage nach dem Verhalten des tatsächlichen Gates. Darüber hinaus hängt es von der Implementierung ab (RQL oder einige RSFQ-Varianten, die zahlreich sind). Beantwortet dies Ihre Frage?
@trentcl: Die Wiki-Seite sagt nicht viel, aber sie erinnert mich an etwas, bei dem ein Logikgerät entweder die Uhr durchläuft oder nicht, basierend auf den Impulsen, die es an seinen anderen Eingängen erhalten hat, was im Wesentlichen bedeutet, dass jedes Gate am Ende hat eine Verzögerung von einem Taktzyklus. In einigen dieser Technologien ist jede Stufe eine Inversion, was bedeutet, dass es schwierig ist, eine Schaltung zu haben, die ein Signal um eine ungerade Anzahl von Zyklen verzögert, ohne es zu invertieren, oder ein Signal invertiert, ohne es um eine ungerade Anzahl von Zyklen zu verzögern. Das Entwerfen eines XOR-Gatters nach solchen Regeln wäre in der Tat schwierig. Du erwähntest...
...xor Tore als teuer; Liegt das an den erwähnten Problemen mit gerader / ungerader Parität (die das Verzögern eines Signals erfordern würden, ohne es durch ein Gatter zu leiten) oder einfach daran, dass für ein XOR mehrere andere Gatter implementiert werden müssen?
RSFQ hat tatsächlich die Ein-Gate-pro-Zyklus-Beschränkung, aber nicht die Every-Stage-Inverts-Beschränkung. (Tatsächlich sind Inversionen in impulsbasierter Logik schwer durchzuführen, da ein Inverter manchmal ex nihilo einen Impuls erzeugen muss .) RQL unterliegt diesen Einschränkungen nicht, aber ein XOR in RQL erfordert immer noch die Kombination von zwei "normalen" Gattern . Darüber hinaus können XORs unabhängig von der Taktgeschwindigkeit nicht mehr als viermal tief in einem Taktzyklus kaskadiert werden, was unbequemer ist, als es sich anhört. Im Vergleich dazu verbrauchen D-Flip-Flops weniger und andere Ressourcen, weniger als ein gewöhnliches Gate. Daher meine ursprüngliche Frage.
@trentcl: In einigen Arten von Logik gibt es keinen Inversionsoperator, aber es gibt einen Operator "X und nicht Y" (z. B. kann man nach allen Dokumenten fragen, die "Smith", aber nicht "John" enthalten, aber man kann nicht einfach Fragen Sie nach allen Dokumenten, die nicht "John" enthalten). Wäre RFSQ so, in diesem Fall würde die Konstruktion eines Inverters erfordern, dass man eine Impulsquelle hat, die durchgelassen werden sollte, wenn ein anderes Signal falsch ist, und unterdrückt wird, wenn es wahr ist?
Schließen. RSFQ-Inverter sind im Grunde X-und-nicht-Y-Gatter, bei denen X immer mit einer Uhr verbunden ist. Das Eintreffen eines Impulses auf Y verhindert, dass der nächste Taktimpuls einen Ausgangsimpuls erzeugt. Es ist also eine Art Wechselrichter gefolgt von einem DFF. Alle RSFQ-Gatter (glaube ich) haben dieses "eingebaute" DFF; RSFQ hat keine kombinatorische Logik im üblichen Sinne.
Obwohl, da Sie es erwähnen, RQL-Inverter genau so sind, wie Sie es beschreiben: ein Impulsgenerator (Reihe von 1s), der mit einem ANDNOT-Gatter kaskadiert ist. Einige Details hier (suchen Sie nach "Logic Gates" für die guten Sachen), aber das verlinkte Papier beschreibt nicht wirklich den Impulsgenerator + und nicht die Konstruktion.
@trentcl: Normalerweise würde ich den Begriff "D-Latch" verwenden, um etwas zu beschreiben, das seinen Zustand unbegrenzt halten und ausgeben kann, bis eine Uhr, die nicht innerhalb eines bestimmten Zeitrahmens eintreffen muss. Das Papier war etwas undurchsichtig, aber nach Ihrer Beschreibung klingt es eher so, als wäre das, was man bekommt, semantisch äquivalent zu einer freien DRAM-Zelle, die bei jedem Schreiben nur einmal gelesen werden kann. Wäre das fair zu sagen?
Ich scheue mich vor dem Begriff "Latch", weil dieses Wort (für mich) "level-sensitiv" impliziert, was bei impulsbasierter Logik nicht sinnvoll ist. Aber "Flip-Flop" hat seine eigenen Grenzen, das gebe ich zu. In jedem Fall ist der DRAM-Vergleich fair, aber ich möchte hinzufügen, dass ein RSFQ-Gatter bei jedem Schreiben gelesen werden muss , da das Eintreffen des "Lese" -Impulses (der Uhr) erforderlich ist, um den internen Zustand des Gatters zurückzusetzen . Sonst funktioniert das Tor nicht richtig.

Jedes Flip-Flop hat von Natur aus ein gewisses Feedback im Inneren. Betrachten Sie den sehr einfachen Fall eines RS-Flipflops:

Andere Arten von Flip-Flops beginnen mit diesem einfachen und fügen Dinge hinzu.

Das ist es, was mich verwirrt. AD FF hat internes Feedback. AT FF hat internes Feedback. Beide Arten von Flip-Flops speichern die gleiche Menge an Informationen: ein Bit. Warum muss ich mehr Feedback hinzufügen, damit der D-Flop als Zähler funktioniert?

Ein Ripple-Through-Zähler verwendet T-Flops (Toggle-Flip-Flops, die entweder JK-Flops sein können, bei denen J und K hoch gehalten werden, oder D-Flops, bei denen /Q mit D verbunden ist) ohne Rückkopplung zwischen ihnen . Sie sind nützlich zum Teilen durch Potenzen von 2, können hohe Eingangsfrequenzen verarbeiten, die nur durch das erste Flipflop begrenzt sind, aber ihre Ausgänge ändern sich aufgrund sich ansammelnder Verzögerungen nicht synchron. http://en.wikipedia.org/wiki/Counter_(digital) >**Asynchroner (Ripple-)Zähler