Warum werden Flip-Flops normalerweise mit der steigenden Flanke der Uhr ausgelöst?

14

In der Regel handelt es sich beim digitalen Design um Flip-Flops, die bei einem 0-zu-1-Taktsignalübergang (durch positive Flanke ausgelöst) und nicht bei einem 1-zu-0-Übergang (durch negative Flanke ausgelöst) ausgelöst werden. Ich kenne diese Konvention seit meinen ersten Studien über sequentielle Schaltungen, habe sie aber bis jetzt nicht in Frage gestellt.

Ist die Wahl zwischen einer positiven und einer negativen Flanke willkürlich? Oder gibt es einen praktischen Grund, warum durch positive Flanken ausgelöste Flip-Flops dominant geworden sind?

Travisbartley
quelle
2
Die Art und Weise, wie die meisten dieser Dinge passieren, ist, dass jemand es auf eine Weise tut, jemand anderes Hardware-kompatibel machen muss und dasselbe tut, und ein paar Jahre später haben Sie einen zufälligen Standard.
Connor Wolf
1
Ich arbeite mit Flip-Flops, die meistens durch Falling Edge ausgelöst werden. Ich hatte genau die entgegengesetzte Frage!
Swanand

Antworten:

10

Beste Vermutung: Der positive Trend ist ein Nebenprodukt von Designs, die vor den 1970er Jahren versuchen, möglichst wenig Fläche / Teile zu verbrauchen . Eine kostensparende Maßnahme zur Herstellung durch Erhöhung der Chipanzahl pro Wafer. Moderne DFFs mit positiver / negativer Flanke haben oft die gleiche Gesamtfläche, daher ist der Trend mit positiver Flanke mittlerweile Tradition.

Die Flächenersparnis wurde durch "klassische" D-Flip-Flop-Designs erreicht. Die modernen Master / Slave-Komponenten eines D-Flip-Flops können zwei 5-Transistor-Latches verwenden. Patente WO1984003806 A1 und US4484087 A wurden beide am 23. März 1984 eingereicht. Ein 8-Transitor-D-Latch wurde am 6. Februar 1970 zum Patent angemeldet; US3641511 A . Der Einfachheit halber werden Designs, die auf SR / SnRn-Latches basieren, als "klassisch" und "modern" für Designs bezeichnet, die die erwähnten D-Latch / S-Zellen-Patente verwenden.

In einem IC-Entwurf verwendet ein NAND-Gatter aufgrund der charakteristischen Eigenschaften eines NMOS und PMOS weniger Fläche als ein NOR-Gatter. Dort bilden sich flächensparende Trendkaskaden. D-Latches von SnRn-Latches sind kleiner als von SR-Latches. Die klassischen D-Flip-Flop-Designs basieren auf diesen Logikgattern. Nach der Suche nach mehreren Designs sind klassische Designs mit positiver Kante immer kleiner als klassische Designs mit negativer Kante. Die Migration zur Moderne geschah, als die Kosten für die Chips günstig wurden: Flächenersparnis vs. Lizenzgebühr.


Graben Sie ein wenig tiefer, um die Unterschiede zwischen den Gebieten zu demonstrieren:

Klassisches D-Flip-Flop mit positiver Flanke: Schematische Beschreibung und Diagramm des durch eine klassische positive Flanke ausgelösten D-Flip-Flops von Wikipedia mit fünf NAND2 und einem NAND3. Dies verwendet insgesamt dreizehn NMOS und dreizehn PMOS.

schematisch

simulieren Sie diese Schaltung - erstellt mit CircuitLab

Das beste klassische D-Flip-Flop mit negativer Flanke, das ich finden konnte, sind zwei D-Latches und zwei Inverter. Schematisch referenziertes Formular http://students.cs.byu.edu/~cs124ta/labs/L02-FSM/HowToUseMasterSlave.html . Dies verwendet insgesamt achtzehn NMOS und achtzehn PMOS. Durch Platzieren eines Wechselrichters auf der obigen klassischen Position wird die Anzahl der Transistoren dieses Entwurfs verringert. In beiden Fällen ist die klassische negative Flanke größer als die positive Flanke.

schematisch

simulieren Sie diese Schaltung

Ein modernes D-Flip-Flop-Design kann basierend auf den Patenten WO1984003806 A1 und US4484087 A, Beschreibung eines D-Latch mit fünf Transistoren, wie folgt aussehen . Dies verwendet insgesamt fünf NMOS- und Fice-PMOS; Große Flächenersparnis im Vergleich zu Classical. Das Umkehren der Master / Slave-Reihenfolge würde ein gleich großes Flip-Flop mit negativer Flanke erzeugen.

schematisch

simulieren Sie diese Schaltung

Ich zeige nur die kleinstmöglichen Designs. Entwürfe können sehr stark von Designanforderungen, zulässigen Standardzellenbibliotheken, zurückgesetzten / voreingestellten Funktionen oder anderen Gründen abhängen.

Greg
quelle
Das ist ein guter Punkt. Ich näherte mich dem Problem von der Taktverteilung aus, aber ich kann sehen, wie sich die DFF-Architektur unterscheiden könnte. Ich denke jedoch, dass durch negative Flanken ausgelöste Flops auch eine NAND-basierte Architektur haben können. Können Sie ein Schema der Architektur (en) hinzufügen, über die Sie sprechen?
Travisbartley
1
Bei trav1s habe ich meine Antwort mit Beispielen und einigen Patentrecherchen aktualisiert.
Greg
Ich frage mich, inwieweit Chips andere Techniken für Latches verwenden, die basierend auf Flanken eines extern angelegten Takts arbeiten müssen. Beispielsweise könnte man unter Verwendung von Zweiphasentaktung und semidynamischer Logik die erforderliche Anzahl von Transistoren pro Flop auf sieben reduzieren [ein vollständig dynamischer Ansatz wäre sechs, aber das Hinzufügen eines siebten Transistors ermöglicht es einem, einen vollständig statischen "Halte" -Zustand hinzuzufügen ].
Supercat
@ Greg, tolle Arbeit. Ihr Befund entspricht ungefähr meinen Erwartungen. Dieser 10T-Transistor am Ende ist eine schöne Sache.
Travisbartley
Interessante Antwort und sehr aufschlussreich. Sie sagen, dass der Posedge-Trend vor den 70er Jahren stattgefunden hat, aber dies steht nicht im Einklang mit meinen Erkenntnissen (siehe meine Antwort). Wie bist du auf dieses Date gekommen? Nur eine Vermutung, oder haben Sie zusätzliche Informationen? Wenn es das letztere ist, freue ich mich über eine Referenz (um meine eigene Antwort zu verbessern :))
Vasiliy
3

Es gibt hier einige Grundannahmen, die in einem anderen Beitrag behandelt wurden (den ich jetzt nicht finde).

Wenn Sie die Gesamtzahl der platzierten Logikelemente und der getakteten Logik (Gesamtzahl der ausgelieferten FFs) zählen, werden sie wahrscheinlich in Prozessoren und Mikroprozessoren, Intel, DEC usw. gespeichert Personen / Teams, die für jahrzehntelange Entwürfe verantwortlich sind und nicht viele Details der internen Abläufe enthalten.

Umgekehrt haben Sie viele verschiedene Teams, die an ASIC-Flows arbeiten, mit viel mehr Projekten, aber entsprechend weniger Volumen.

Die meisten Prozessorkonstruktionen sind nicht positiv oder negativ flankentaktet, sondern arbeiten mit einem doppelten Latch-NOC-Taktschema (Non Overlapped Clock).

Sie erhalten also einen Eingang -> (Logikwolke) -> Latch von Takt -> Logikwolke -> Latch von! Taktschema. Welches ist die kanonische Form eines Master-Slave-FF mit Logik im Inneren gestopft.

Diese Art der Entwurfsmethodik bietet mehrere Vorteile, ist jedoch zusätzlich komplex.

Ein weiteres Unglück ist, dass diese Entwurfsmethodik an den meisten Universitäten nicht gelehrt wird. Alle Intel x86-Designs sind von dieser Art (man darf den externen Betrieb von Schnittstellen nicht mit dem internen Betrieb verwechseln) mit den bemerkenswerten synthetisierbaren SOC-Kernen, die sie für Mobiltelefone entwickelt haben.

Ein ausgezeichneter Diskurs darüber findet sich in "Dally, William J. und John W. Poulton". Digitale Systemtechnik. Cambridge University Press, 1998. In Abschnitt 9.5 wird der Titel "Synchrones Timing mit offener Schleife" <- Kapitel behandelt. Aber um es zu zitieren: "Flankengetriggertes Timing wird in High-End-Mikroprozessoren und Systemdesigns jedoch selten verwendet, da es zu einer minimalen Zykluszeit führt, die vom Taktversatz abhängt."

Ja, eine völlig umständliche Antwort. Aber eine wichtige Methode, die wenig bekannt ist, wenn man bedenkt, wie viele Gesamttransistoren es in diesen Designs gibt (viele, viele).

Platzhalter
quelle
Ich habe das dreimal gelesen, aber ich kann immer noch nicht sehen, wie das mit der Frage von OP zusammenhängt ...
Vasiliy
1
Zu sagen, dass CPUs nur aus Latches bestehen, ist ein bisschen übertrieben (vielleicht sogar kein "bisschen"). Zwischenspeicher werden in der kritischen Hochleistungslogik (hauptsächlich Datenpfade) verwendet, es sind jedoch immer noch viele Flip-Flops vorhanden. Der Hauptnachteil von Latches ist die Schwierigkeit der Timing-Analyse. Aufgrund der Fähigkeit des Latch-basierten Designs zum "Ausleihen in der Zeit" (dieselbe Fähigkeit, die dieses Design "schneller" macht) ist es sehr schwierig, das Latch-basierte Design auf Timing-Schließung zu testen. In unkritischen Teilen von CPUs werden hauptsächlich FFs eingesetzt.
Vasiliy
Das Schlüsselwort im Titel ist "normalerweise" - 1) in der Gesamtzahl der verschiedenen Arten von Chips - dann sind ASIC-Fluss und Flankentrigger normal. 2) Wenn die Gesamtanzahl der gelieferten Logikelemente / Transistoren, die die CPU entwirft, gewinnt und dann der auf Latch basierende Doppeltakt gewinnt, ist die Anweisung ungültig.
Platzhalter
1
Sie können nicht auf die Schnittstelle dieser Chips schauen, um festzustellen, was der interne Vorgang ist. Wie ich bereits sagte, ist ein Master-Slave-Flip-Flop nur eine vereinfachte Version eines zweiphasigen, auf doppelter Logik basierenden Cloud-Latch-Designs. Die Timing-Analyse ist nicht schwierig, sondern vereinfacht. Sie sollten sich nur sicher sein, welche Uhrdomänen Sie haben.
Platzhalter
1
Nein, Schlüsselwörter sind "Flip-Flop" und "Flanke der Uhr". Latches sind pegelempfindliche Geräte, die nicht kantenempfindlich sind. Äpfel und Orangen Mann - wenn ich wissen will, warum Orangen Orange sind, ist die Tatsache, dass es viele Menschen gibt, die Äpfel bevorzugen, völlig irrelevant.
Vasiliy
2

Die Leistung der aktuellen CMOS-Technologie (in Bezug auf Leistung / Fläche / Geschwindigkeit / Kosten) scheint unempfindlich gegenüber dem verwendeten Auslöseschema zu sein.

Ich kann die obige Aussage nicht konsequent beweisen, da sie viel Vorwissen und Recherche erfordert, und selbst die Zusammenfassung des Beweises wird wahrscheinlich zu lang für eine Antwort sein. Meines Wissens gibt es keine Unterschiede, daher gehe ich einfach davon aus, dass dies der Fall ist.

Ich weiß auch nicht, ob Ihre Aussage, dass Flip-Flops normalerweise an der positiven Flanke der Uhr ausgelöst werden, richtig ist (glaube ich). Lassen Sie mich annehmen, dass dies auch für die Zwecke der folgenden Erörterung richtig ist.

Unter all diesen Annahmen sehe ich nur zwei Möglichkeiten:

  • Positives Flankentriggern wurde zum Standard, da es in der Vergangenheit einige klare Vorteile hatte. Nachdem die Technologie, die diesen Vorteil ausnutzte, veraltet war, blieb die positive Flankenauslösung immer noch der Standard.
  • Positive Flankentriggerung wurde zum Standard ohne jede technische Berechtigung, dh sie bot in der Vergangenheit in keiner logischen Familie und in keinem Technologieknoten Vorteile.

Um zu sehen, wann das positive Flankentriggern zum Standard wurde, habe ich mich entschlossen, die Entwicklung der Intel-CPU- Taktschemata zu verfolgen :

  1. 4004 : Verwendete zweiphasige extern versorgte Uhr. Es scheint, dass das Latching von Data Out an der negativen Flanke von durchgeführt wurdeϕ2.
  2. 8086 : Die Datenausgabe wurde an der negativen Flanke von CLK zwischengespeichert.
  3. 80386 : Verwendete positive Flanke von CLK2.
  4. 80486 : Positiv verwendet Flanke von CLK.
  5. Pentium : Verwendete positive Flanke von CLK ...

Es scheint, dass Intel mit einer negativen Flanke gestartet hat (wenn dieser Begriff überhaupt auf die allerersten CPUs angewendet werden kann), aber ab 386 auf eine positive Flanke umgestellt hat.

8086 verwendete HMOS-Technologie (irgendeine Art von NMOS-Logik zum Entleeren und Laden) ), wohingegen 80386 CHMOS (eine Art von CMOS) war. Offenbar erfolgte die Einführung der positiven Flankentriggerung parallel zur Einführung der CMOS-Technologie. Wir gingen davon aus, dass CMOS der positiven Flankentriggerung keinen Vorteil verschafft, daher scheint diese Konvention willkürlich zu sein.

Wir müssen jedoch drei Punkte berücksichtigen:

  • Wir gingen davon aus, dass aktuelle CMOS-Technologien keinen Vorteil bieten.
  • Die obige Annahme wurde in keiner Form bewiesen oder diskutiert.
  • Aus den Datenblättern geht hervor, an welcher Kante der Datenausgang zwischengespeichert ist, dies repräsentiert jedoch möglicherweise nicht die interne Implementierung.

Natürlich gibt es Raum für zusätzliche Forschung. Fortsetzung folgt...

Vasiliy
quelle