Warum verhindern kaskadierende D-Flip-Flops die Metastabilität?

15

Ich verstehe, was Metastabilität ist, verstehe aber nicht, wie das Verknüpfen von Flip-Flops dies reduziert?

Wenn der Ausgang des ersten Flipflops metastabil ist, wird dieser als Eingang für den zweiten verwendet. Ich sehe aber nicht, wie das 2. Flip-Flop mit diesem Eingang etwas anfangen und ihn stabilisieren kann.

Danke im Voraus!

Wouter A
quelle
2
Immer auf der Suche nach einer Gelegenheit, Buridans Arsch zu erwähnen: en.wikipedia.org/wiki/…
copper.hat

Antworten:

11

Metastabilität kann nicht geheilt werden, aber wenn Sie lange genug warten , kann die Wahrscheinlichkeit, dass sie auftritt, beliebig gering gehalten werden. Wenn Sie es einmal im Zeitalter des Universums geschafft haben, ist es wahrscheinlich unwahrscheinlich, dass Sie Probleme bekommen.

Es ist, als würde man einen Bleistift auf die Spitze balancieren. Es ist wahrscheinlich, dass es umfällt und je länger Sie warten, desto unwahrscheinlicher ist es, dass es stehen bleibt.

Es gibt zwei Probleme, lange zu warten, und eines davon ist von grundlegender Bedeutung.

Das grundlegende Problem besteht darin, dass Sie physisch keine Untergrenze für die Wartezeit definieren können, wenn Sie in einem getakteten System, das die Ausgabe eines asynchronen externen Systems empfängt, über ein einzelnes Speicherelement (Latch oder Flip-Flop, die beide unter Metastabilität leiden) verfügen kann es vorkommen, dass das externe Signal in der Nähe der Verriegelungskontrollflanke übergeht. Sie müssen das Signal zu einem anderen Flip-Flop leiten, damit es dort wartet. Dies gibt Ihnen eine garantierte Mindestwartezeit von einem Taktzyklus.

Das zweite Problem ist, dass Sie häufig versuchen, ein System so schnell wie möglich zu betreiben, und die Systemtaktrate nicht verlangsamt werden kann, um im zweiten Flip-Flop genügend Zeit zu lassen. Die einzige Möglichkeit, die Signallatenz auf das Notwendige zu erhöhen, ohne den Durchsatz zu verringern, besteht darin, das Warten auf weitere Stufen zu leiten.

Einige Leute haben Probleme, sich vorzustellen, was zwischen den Flip-Flops passiert. Es gibt zwei Möglichkeiten, die Metastabilität zu induzieren, und beide beinhalten die Verletzung der Flip-Flop-Regeln. Eine Möglichkeit besteht darin, die Eingangs-Setup- und Haltezeiten zu verletzen und einen Übergang vorzunehmen, wenn das Flip-Flop erwartet, dass der Eingang stabil ist. Das andere ist, die Eingangslogikpegel zu verletzen, um den Flip-Flop-Dateneingang auf einem Zwischenspannungspegel zu halten. Ein Flip-Flop, das metastabil ist, kann jede Art von Verletzung an seinem Ausgang hervorrufen, um zum nächsten Flip-Flop weiterzuschalten.

Neil_UK
quelle
6
Als ich zum Beispiel das Chip-Design machte, bei dem ich die Metastabilität besaß, haben wir alle Taktüberschreitungen berechnet und die Wahrscheinlichkeit eines Synchronisationsfehlers bei jedem Flop, jeder Gruppe von Flops usw. untersucht Meistens brodelte ein Pixel auf dem Display, am Ende kam es auf den gesamten Weg über den Chip ungefähr alle zwei Jahre - dies war eine Grafikkarte für Win95, die zu der Zeit nicht länger als 10 Sekunden laufen konnte Ungefähr einen Tag später beschlossen wir, dass niemand einen Synchronisator bemerken würde. 2 Jahre MTBF.
Taniwha
7
Eine Sache, die niemand erwähnt, ist auch, was mit einem absoluten Metastabilitätsfehler im schlimmsten Fall passiert. Manchmal führt der Ausfall des Synchronisierers dazu, dass ein Flop intern mit einer dumm hohen Frequenz oszilliert, möglicherweise auf einem Niveau zwischen den normalen digitalen Höhen und Tiefen - wenn es Ihrem Hoch- und Tiefpegel entgeht. gewinnen anti-Metastabilität Synchron Flops , dass laut buzzy Katastrophe alle der Downstream - Flops infizieren kann (wie Sachen auffächert) , was zu großem Strom zieht und sogar potenziell Überhitzung und Chip-Tod - so tut , achten Sie auf diese als ein Problem
Taniwha
@Neil_UK Sie verwenden das Wort Latch, das ich für verwirrend halte. In meinen Kreisen ist ein Latch ein asynchrones Element. Ich würde sie aus Gründen der Klarheit Flip-Flops nennen.
Jalalipop
1
@jalalipop Ich habe Latch für Flip-Flop verwendet, obwohl sich seine Bedeutung in den Jahrzehnten, seit ich damit angefangen habe, möglicherweise geändert hat. Ich bin damit einverstanden, dass sich "Latch" im Allgemeinen auf den asynchronen transparenten Typ bezieht, aber auch sie leiden unter Metastabilität, wenn sich die Daten an der "Latching" -Kante des Freigabeeingangs ändern. Ein Master-Slave-Flip-Flop wird typischerweise intern aus einem Paar von Verriegelungen aufgebaut, die von der Uhr gegenphasig angesteuert werden. Vielen Dank, dass Sie es erwähnt haben. Ich werde die Antwort ändern, um dies zu verdeutlichen.
Neil_UK
@ Tamiwha Kannst du eine Antwort mit Diagrammen und Zeitkonstanten und der Mathematik geben, um das interne Verhalten der Latches zu verdeutlichen, während sie versuchen, sich aufzulösen. Sie müssen (wie Sie sicherlich wissen) zeigen, wie sich die Schleifenverstärkung und die Regenerationszeitkonstante sowie das Grundrauschen (thermisch und VDD) auf die Auflösungsfähigkeit auswirken.
analogsystemsrf
9

Es verringert die Wahrscheinlichkeit einer Metastabilität, die die Schaltung beeinträchtigt, indem mehr Zeit eingeräumt wird, bis das Signal tatsächlich verwendet wird. Mit zwei Flip-Flops wird ein ganzer zusätzlicher Taktzyklus für das Einschwingen des Signals ermöglicht. Bei drei Takten sind zwei zusätzliche Taktzyklen möglich.

user253751
quelle
2
Gute Antwort. Der wichtige Punkt ist, dass Metastabilität nicht verhindert wird , wir reduzieren nur die Wahrscheinlichkeit auf ein akzeptables Maß.
Elliot Alderson
1
Kaskadierende Flip-Flops geben dem Signal also Zeit, sich zwischen 0 und 1 zu bewegen, lösen aber keinen falschen Wert? kann da ein metastabiles signal in beide richtungen fallen?
Wouter A
2
@WouterA Wenn es metastabil ist, sind beide Werte richtig.
user253751
4
Ich denke nicht, dass dies eine gute Antwort ist, nur der erste Flop tastet in diesem Fall das Eingangssignal ab. Wie oben erwähnt, besteht bei einem bestimmten Flop die Wahrscheinlichkeit, dass eine Metastabilität auftritt (abhängig von der Verstärkung der internen Rückkopplungsschleifen des Flops, der Taktfrequenz und der Rate, mit der das abzutastende Objekt zwischen den Eingangsschwellen passiert) kleine Zahl <1 = p - zwei Flops geben uns die Chance, dass MS 2 Flops, 3 P ^ 3 usw. usw. übergibt.
Taniwha
4

Sie verhindern nicht, dass sich die Metastabilität auf die Ausgabe auswirkt, können jedoch die mittlere Zeit zwischen Vorfällen erheblich verlängern, da die Metastabilität relativ lang sein müsste.

Das Kaskadieren von drei (oder mehr) gut gestalteten Flip-Flops kann die Zeit zwischen Ereignissen auf ein Alter wie das der Erde verlängern.

Spehro Pefhany
quelle
Hängt von Ihrer Taktrate und Prozesstechnologie ab. Ein Flip-Flop könnte ausreichen, um Ihre MTBF infinitesimal zu machen, solange Sie den Durchhang hoch halten.
Jalalipop
@ Jalalipop Sicher. Das ursprüngliche IEEE-Papier enthält einige aktuelle Testinformationen (die jetzt sehr alt sind). DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany
@jalalipop: Im Allgemeinen ist dies ein Problem, das relevanter ist, wenn Sie die Leerlaufzeit nicht garantieren können. Andernfalls stellen Sie einfach eine harte Einrichtungszeit ein und garantieren, dass keine Metastabilität auftritt.
jbord39
Ja, Metastabilität ist ein Problem bei einer asynchronen Schnittstelle. Der Schlupf, auf den ich mich beziehe, ist der Schlupf der synchronen Logik nach dem Flip-Flop. Wenn Ihr Durchhang hoch ist, erlischt das Metastabilitätsereignis, bevor es sich auf den Rest Ihres Designs auswirkt.
Jalalipop
2

Weil das erste Flip-Flop, selbst wenn es metastabil ist, die gesamte Periode der Uhr hat, um sich zu stabilisieren. Zu dem Zeitpunkt, zu dem das zweite Flip-Flop das erste Flip-Flop abtastet, könnte sein Ausgang bereits stabil sein.

Claudio Avi Chami
quelle
1

Wenn Sie die Aufregung der Metastabilität wünschen, implementieren Sie ZWEI SEHR LANGSAME WECHSELRICHTER, schließen Sie sie aneinander an und spannen Sie sie (in einer Simulation) bei VDD / 2 vor. Entfernen Sie dann die Vorspannung und achten Sie auf die Geschwindigkeit des Auflösens auf die Pegel logisch1 und logisch0. Möglicherweise müssen Sie eine andere anfängliche Vorspannung als VDD / 2 auswählen.

Wenn Ihre 2 oder 3 Flipflops im Vergleich zur Taktperiode LANGSAM sind, kann das Leben mit Problemen gefüllt sein.

analogsystemsrf
quelle
1

Metastabilität bedeutet einfach, dass sich die Ausgabe für einen bestimmten Zeitraum nach der Taktflanke schlecht verhält, wenn Sie eine Datenübertragung innerhalb eines bestimmten Zeitfensters haben, das auf die Uhr bezogen ist. Das Fenster ist jedoch kein festes Intervall. Vielmehr nimmt die Wahrscheinlichkeit eines schlechten Wertes (Schwingungs- oder Zwischenspannungspegel) mit der Zeit exponentiell ab. Wenn Sie also das Signal mit einer Clock abtasten und dann ein wenig warten, bevor Sie die Clock auf das zweite Flip-Flop anwenden, können Sie die Wahrscheinlichkeit eines schlechten Bits auf eine beliebige (aber nicht null) Wahrscheinlichkeit reduzieren. Wenn die erforderliche Zeit zu lang ist, können Sie 3 oder mehr Flip-Flops in Reihe verwenden.

WhatRoughBeast
quelle