Frage:
Setzt sich der Wert nach der Metastabilität schließlich auf den richtigen Wert ein?
ReubenMijares
2016-06-03 08:27:28 UTC
view on stackexchange narkive permalink

Ich bin verwirrt über die Metastabilität. Ich weiß, dass Metastabilität die Bedingung ist, bei der die Ausgabe eines Flip-Flops für eine "Zeitdauer" unvorhersehbar wird (entweder hoch oder niedrig) ... Okay, aus dieser Definition geht hervor, dass Metastabilität wird nicht für immer weitermachen, oder? Bedeutet dies, dass nach dieser Zeitspanne der Ausgang des Flops schließlich auf den richtigen Wert geht? Oder geht es in einen unvorhersehbaren Wert über, je nachdem, welcher Wert nach der metastabilen Periode generiert wurde?

Beachten Sie, ich frage hier, was NACH der metastabilen Periode passiert , NICHT während der metastabilen Periode.


@Neil_UK,

In der Abbildung unten wird der 2. Flop also nicht immer einen hohen Wert abtasten . Habe ich recht?

Wenn der erste Flop metastabil wird und sich die Metastabilität nach einiger Zeit verschlechtert hat, kann sich sein Wert zufällig entweder auf logisch 0 oder logisch 1 einstellen. Ist das richtig? ... ich frage dies weil der Autor sagt, dass er den Wert als hoch abtastet. Ich weiß nicht, wie es einen hohen Wert abgetastet hat. Ist es nur ein Zufall, dass sich der Ausgang des ersten Flops auf logisch 1 einstellt?

Wenn der erste Flop nicht innerhalb einer bclk-Periode aus dem metastabilen Zustand ausgeht, wird auch der zweite Flop metastabil. . und dies könnte auch passieren, wenn eine andere Stufe des Flops angeschlossen ist ... Bedeutet dies, dass es keine Garantie dafür gibt, dass ein Synchronizer "absolut" die richtige beabsichtigte Ausgabe liefert?

Ich lese Einige Dinge über Metastabilität und Synchronisierer. Ich bin verwirrt über die Erklärung einiger Autoren wie dieser. Ich lese diesen Artikel http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf auf Seite 9.

Synchronizer

Wenn Ihre Schaltung die Metastabilität überlebt, wird sie sich ja einstellen.
Es gibt einen Schwellenwert, bei dem ein Signal darüber eine "1" und ein Signal darunter eine "0" ist. Wenn Sie um den Schwellenwert tanzen (insbesondere während einer Taktflanke), erhalten Sie Metastabilität, sobald Sie weit genug davon entfernt sindDieser Schwellenwert und die Uhr haben den Übergang zum normalen Betrieb beendet
Herr Cummings ist dort sehr verwirrend, wie sein Papier am besten gewählt wurde, weiß ich nicht.Du hast recht.Es gibt keinen Grund, warum eine Ausgabe, die noch metastabil ist, entweder als 0 oder als 1 angesehen werden sollte. Seine Abb. 3 sollte entweder die Metastabilität zeigen, die am ersten Flop endet, wobei die Ausgabe fest auf 0 oder 1 geht, oder immer noch metastabil, wenn die zweiteLatch-Uhren und Kommentar, dass sie als 0 oder 1 empfangen werden könnten. Diagramme wie dieses sind klarer, wenn adat einen Impuls hat, der mehrere Taktzyklen dauert. Es ist verwirrend, wenn an mehreren Flanken Verstöße gegen das Setup / Hold auftreten.
Ich bin froh, dass Sie dort ankommen, und es ist sehr enttäuschend, verwirrende Diagramme in Zeitungen zu sehen, wie Sie sie öffentlich zitiert haben.Er hat auch nicht genau definiert, warum Metastabilität ein Problem ist.Wenn ein falsch zwischengespeichertes Signal von verschiedenen Teilen des Empfangssystems zu unterschiedlichen Zeiten oder an unterschiedlichen Orten als unterschiedliche Zustände aufgenommen werden kann, ist die Inkonsistenz zwischen diesen Zuständen wichtig.Ein Synchronisierer erreicht ein stabiles, eindeutiges Niveau.Ich habe seine Arbeit nicht im Detail gelesen, aber ich habe die statistische Natur des 'Fix' noch nicht entdeckt.
Wenn es einen korrekten Wert gibt, wird die Schaltung überhaupt nicht metastabil.
Drei antworten:
Neil_UK
2016-06-03 12:09:13 UTC
view on stackexchange narkive permalink

Sie haben einige Missverständnisse über die Metastabilität

1) Sie sprechen über NACH der Metastabilitätsperiode.

Der springende Punkt ist, dass die Schaltung, die zu diesem Zeitpunkt versucht, die Entscheidungsaufgabe zu erledigen, keine Möglichkeit hat, zu beobachten, obwohl Sie die Wellenform nach dem Ereignis erfassen und herausfinden können, wann die Dinge beendet sind 'Die ganze Wellenform kann nicht in die Zukunft schauen. Schaltkreise, die versuchen, die Metastabilität zu überwinden, indem sie bestimmen, wann sie beendet wurde, leiden unter Metastabilität im Entscheidungsblock "Hat sie beendet".

2) Sie sprechen davon, dass das "gewünschte" Ergebnis "1" ist.

Metastabilität tritt nur auf, wenn das richtige Ergebnis 1 sein könnte, 0 sein könnte, egal welches, aber es muss fest das eine oder andere sein.

Zum Beispiel eine asynchrone Der Interrupt erreicht einen Prozessor mit einem anderen Takt als dem, der den Interrupt erzeugt. Es spielt keine Rolle, ob der Interrupt diesen oder den nächsten Zyklus verarbeitet, solange er den einen oder anderen Zyklus ausführt.

Wenn es wichtig ist, dass der Interrupt diesen Zyklus verarbeitet, muss Ihr Interrupt das Setup für den Prozessor-Interrupt in Bezug auf seine Uhr erfüllen. Wenn dies nicht der Fall ist, liegt ein Systemdesignproblem und kein Metastabilitätsproblem vor.

Die Metastabilität löst sich exponentiell auf. Wenn die Wahrscheinlichkeit, nach 1 ns immer noch metastabil zu sein, (sagen wir) 1e-6 beträgt, ist sie nach 2 ns 1e-12 und nach 10 ns 1e-60. Sie werden feststellen, dass diese letzte Wahrscheinlichkeit immer noch nicht Null ist, aber es ist unwahrscheinlich, dass Sie sie in Ihrer Lieftime oder im Zeitalter des Universums sehen. Wenn Sie dies tun, wird es Ihnen schwer fallen, es zu wiederholen!

Wenn Sie also lange genug warten, wird die Metastabilität zu klein, um ein praktisches Problem zu sein. Sie MÜSSEN eine ausreichende Latenz zulassen, damit diese Entscheidung getroffen werden kann.

Möglicherweise möchten Sie Ihre Systemuhr jedoch nicht langsam genug ausführen. Pipelining! Genau wie bei langsamen Multiplikatoren oder Ausführungssteuergeräten. Verteilen Sie den Vorgang auf mehrere serielle Ausführungseinheiten und lassen Sie Ihre Uhr schnell laufen. Der Prozess 'Warten' ist nur ein D-Flop. Verwenden Sie eine Folge von zwei oder mehr D-Flops, bis Sie die erforderliche Zeit gewartet haben, um den Effekt der Metastabilität auf "im Zeitalter des Universums unwahrscheinlich" zu reduzieren.

Es gibt zwei Möglichkeiten, ein D-Flop metastabil zu senden. Die erste besteht darin, die Timing-Anforderungen für das Einrichten / Halten der Eingabe zu verletzen. Die zweite besteht darin, die Logikpegel zu verletzen. Das erste tritt typischerweise auf, wenn ein in einer anderen Taktdomäne erzeugtes Ereignis an einem getakteten Eingang, dem ersten Flipflop eines Synchronisierers, ankommt. Da die Taktdomänen unterschiedlich sind, kann hier nicht garantiert werden, dass die Zeitsteuerungsanforderungen erfüllt werden, und gleichzeitig mit dem Taktsignal kann eine schnelle Datenflanke auftreten. Das zweite Flop tritt normalerweise zwischen dem ersten und dem zweiten Flop in einem Synchronisator auf, wenn das erste Flop metastabil gesendet wurde und einen Zwischenlogikpegel erzeugt. Dies kann vom folgenden Flop als 0 oder 1 gelesen werden oder auch dieses metastabile senden.

Stellen Sie sich einen Synchronisierer vor, der aufgefordert wird, eine Entscheidung darüber zu treffen, ob der Datenübergang von 0 zu 1 zuerst stattgefunden hat oder die Uhr. Wenn der Takt ist, ist der Ausgang 0. Wenn der Datenübergang ist, ist der Ausgang 1. Ein D-Flop, das gerade zwischengespeichert wird, ist ein Verstärker mit positiver Rückkopplung. Als Verstärker aus echten Transistoren hat er eine Bandbreite. In einem Datenblatt für cmos-D-Flops können Sie sehen, was mit den Setup- und Haltezeiten passiert, wenn sich die Versorgungsspannung und damit auch die Bandbreite ändern. Eine größere Bandbreite kann kleinere Rüst- und Haltezeiten auflösen. Wenn sich die Datenflanke nähert und dann das Timing der Taktflanke durchläuft , wird die Zeitdifferenz unendlich, und die für die Entscheidung erforderliche Bandbreite wird unendlich. Sie können keinen Verstärker mit unendlicher Bandbreite haben, und ein Verstärker mit endlicher Bandbreite kann nicht garantieren, dass die Entscheidung in einer endlichen Zeit getroffen wird. Metastabilität. Aber je länger Sie warten, desto exponentiell wahrscheinlicher ist es, eine Entscheidung getroffen zu haben. Aber nicht garantiert.

Danke für die Antwort, Neil. Angenommen, die Taktperiode des Flops beträgt 10 ns.Nehmen wir dann an, bei steigender Taktflanke steigt auch der D-Eingang an, wodurch das Flop metastabil wird.Während der Metastabilitätsperiode schwingt der Q-Ausgang des Flops, wodurch der Ausgang entweder auf 1 oder 0 instabil wird ... Nach dem Warten auf 7 ns wird der Q-Ausgang sehr weniger metastabil, wodurch der Q-Ausgang eine sehr hohe Wahrscheinlichkeit hat, das zu gebenkorrekter Wert, der 1 ist. Ist es das, was du meinst?
@ReubenMijares NR.Wenn die Ausgabe des Flops metastabil wird, bedeutet dies, dass die Eingangs-Setup-Zeit verletzt wurde, was bedeutet, dass es keinen 'korrekten' Ausgabewert gibt.Der Ausgang schwingt nicht, sondern geht auf einen Zwischenwert zwischen logisch 0 und logisch 1, den die folgenden logischen Eingänge nicht als 0 oder 1 garantieren können. Aus diesem Grund verursacht er Probleme. Zwei verschiedene nachfolgende Schaltkreise können ihn als unterschiedlich lesenDinge.Wie ein Bleistift, der auf seiner Spitze balanciert ist, fällt er sehr schnell, sobald er sich in die eine oder andere Richtung neigt.In jedem Zeitraum wird es wahrscheinlich 1 oder 0, aber möglicherweise nicht.
Wenn der Ausgang auf einen Zwischenwert geht (weder 0 noch 1), wie garantiert dann eine Synchronisationsschaltung (2 kaskadierte Flops), dass sie den korrekten beabsichtigten Wert von der Masterschaltung ausgibt? ... Ich meine, wenn der erste Flop vonDer Synchronizer wird metastabil, dann hat der zweite Flop des Synchronizers unterschiedliche Messwerte und gibt diesen Messwert an den Ausgang des Synchronisierers weiter, wodurch der Ausgang unzuverlässig wird, um den korrekten beabsichtigten Wert der Sendeschaltung (Master-Schaltung) bereitzustellen. Ich schaue mir an, wie Synchronizer (2 Flops) das Metastabilitätsproblem löst
Ein Synchronisierer (dh eine Pipeline weiterer D-Flops) garantiert nicht, dass die Ausgabe korrekt ist, sondern verringert nur die Wahrscheinlichkeit, dass sie falsch ist.Das Metastabilitätsproblem wird nicht dadurch gelöst, dass es niemals auftritt. Es wird dadurch gelöst, dass es so unwahrscheinlich ist, dass Sie es in der Praxis niemals sehen werden.Sie haben eine höhere Wahrscheinlichkeit, von einem Meteoriten getroffen zu werden, als wenn ein metastabil-harter Synchronisierer zum erforderlichen Entscheidungszeitpunkt metastabil bleibt ** wenn ** er gut konstruiert wurde.Aber keines der beiden Ereignisse ist unmöglich.
@ReubenMijares Ich habe meiner Antwort einige Absätze hinzugefügt.Ich weiß nicht, ob diese helfen werden.
Hallo Neil.Ich schätze Ihre Bemühungen, eine Erklärung abzugeben.Vielen Dank ... Ich habe meine Antwort als weiteren Kommentar unten angegeben, da ich hier kein Bild in diesen Kommentar aufnehmen kann.Dieses Bild verwirrt mich.
jp314
2016-06-03 08:35:44 UTC
view on stackexchange narkive permalink

Wenn das Flip-Flop ein Eingangssignal abtastet - z. Wenn ein D-Flip-Flop und der 'D'-Eingang sich gleichzeitig mit der Uhr ändern, ist die korrekte Anstiegsgeschwindigkeit unbestimmt - es gibt keinen' korrekten Wert '- jeder Wert ist korrekt.

Jetzt - in der Praxis wird sich die Ausgabe auf einen Wert einstellen; Da das metastabile Flop-Flop ausgehend von einem instabilen Gleichgewichtspunkt eine Schaltung mit hoher Verstärkung ist, wird das Absetzen exponentiell erreicht - da das Signal vom Gleichgewichtspunkt abweicht, ändert es sich immer schneller. Die Zeit, um sich in einen stabilen Zustand zu versetzen, wird am besten statistisch beschrieben - sagen wir beispielsweise 90% der Zeit, in der sie sich innerhalb von 2 ns absetzt; 99% innerhalb von 3 ns; 99,999% innerhalb von 5 ns usw.

Hallo jp314.Danke für deine Information. Dann denke ich, dass es auch nach dem Hinzufügen von Synchronizer-Flops immer noch ein Problem geben wird ... Nehmen wir an, der gewünschte Q-Wert des Designers ist 1. Wenn der D-Eingang und der CLK gleichzeitig 1 werden, kann Metastabilität auftreten.Dies bedeutet, dass das Q nach der Metastabilitätsperiode entweder 0 oder 1 sein kann ... Wenn das Ergebnis 0 ist, wird dies an das 2. Flip-Flop des Synchronisierers weitergegeben, sodass die resultierende Ausgabe immer noch 0 ist, was falsch ist.Unabhängig davon, wie viele Stufen von Flip-Flops der Synchronisierer hat, ist der resultierende Ausgang immer noch 0.
Wenn der D-Eingang gleichzeitig mit der Taktflanke 0-> 1 übergeht, geht dieser Übergang verloren.Wenn D hoch bleibt, erscheint beim nächsten Taktzyklus der richtige 1-Wert am Ausgang.Synchronisationsflops sind alle?Stellen Sie sicher, dass der endgültige Ausgang kurz nach der Taktflanke immer einen Wert von 0 oder 1 hat.
le_top
2016-06-04 05:13:34 UTC
view on stackexchange narkive permalink

Wie ich mich aus einer Erfahrung an meiner Universität im Jahr 1995 erinnere, erreicht das Flip-Flop keinen bekannten Wert. Auch die Dauer der Metastabilität folgt einem statistischen Ausdruck und kann sehr lange dauern.

Die Metastabilität impliziert, dass sich die FF-Schaltung in einem linearen Betriebsmodus (und nicht in einem gesättigten Betrieb) befindet, in dem sie stabil ist (= metastabil) zwischen den Extremzuständen. Ausreichendes Rauschen kann dann dazu führen, dass es entweder nach oben oder nach unten geht.

Sie können dies mit einem Teeterboard (Paradigma) vergleichen. Es ist stabil, wenn beide Seiten nach unten zeigen, aber Sie können es in einen metastabilen Zustand versetzen, wenn Sie das Teeterboard vorsichtig horizontal ausbalancieren. Die geringste Störung wird es in beide Richtungen bringen. Es könnte lange Zeit horizontal bleiben, aber es hängt wirklich von "Geräuschen" wie Wind, Vibrationen, Bypassern usw. ab.

Bei FFs wird in der Praxis davon ausgegangen, dass dasselbe "langsamere" asynchrone Signal getaktet wird in zwei aufeinanderfolgenden FFs wird Metastabilität vermieden. Es gibt jedoch eine Formel, die die Wahrscheinlichkeit angibt, dass der FF beim n-ten Takt noch metastabil ist. Wie Sie tatsächlich damit umgehen, hängt davon ab, wie kritisch die Anwendung ist. Sie können das Signal viele Male takten, bis Sie ein akzeptables Fehlerniveau erreichen, das statistisch unvermeidlich ist, aber extrem niedrig sein kann.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...