Ich habe eine Verwirrung bezüglich der Metastabilitätsauflösung unter Verwendung von Flip-Flops. Ich weiß, dass ich einen Synchronisierer von zwei oder drei D-Flip-Flops hinzufügen sollte, um eine sichere Übertragung bei Überschreiten der Grenzen der Taktdomäne zu gewährleisten, aber meine Verwirrung besteht darin, dass die Ausgabe der Metastabilität unvorhersehbar ist , es kann zu einem hohen oder niedrigen Pegel führen, und dieser Ausgang wird dann an den Rest der Schaltung weitergegeben. Wie kann also das zweite oder dritte Flip-Flop den richtigen zu übertragenden Wert erfassen, wenn das erste Flip-Flop immer eingeschaltet ist metastabiler Zustand und könnte sich auf einem falschen Niveau einpendeln?
Das erste FF ist nicht immer metastabil. Unter der Annahme, dass Eingangsflanken in Bezug auf seinen Takt gleichmäßig verteilt sind, hat das erste FF eine gewisse Wahrscheinlichkeit, dass es metastabil wird, was mit der Taktperiode und seinen Erfordernissen der Aufbau-/Haltezeit zusammenhängt. Wenn es metastabil wird, löst es sich innerhalb einer gewissen Zeit von selbst auf – die Wahrscheinlichkeit, nach der Zeit t metastabil zu bleiben , ist eine exponentiell abfallende Funktion von t .
Das zweite FF hat eine viel geringere Wahrscheinlichkeit, metastabil zu werden, da es genau zum richtigen Zeitpunkt getaktet werden müsste, wenn sich das erste FF (wenn es metastabil wäre) zufällig selbst auflöste. Andernfalls ist seine Ausgabe entweder definitiv hoch oder definitiv niedrig. Die Signaländerung könnte durch eine erweiterte Metastabilität des ersten FF verzögert werden, aber es ist sehr unwahrscheinlich, dass das zweite FF metastabil wird und den Betrieb der restlichen Logik nachteilig beeinflusst.
Ein dritter FF reduziert die Wahrscheinlichkeit einer Metastabilität auf ein unendlich kleines Niveau.
Wenn Sie ein Metastabilitätsszenario haben, d. h. das Eingangssignal ändert sich genau an der Abtasttaktflanke, sind sowohl 0 als auch 1 korrekte Werte. Wichtig ist, dass die gesamte nachfolgende Logik denselben Wert sieht (vorausgesetzt, Ihr Opfersignal fächert sich zu mehreren ultimativen Erfassungspunkten auf). Wenn die Taktflanke etwas früher oder später gewesen wäre, würden Sie eine klare 0 oder 1 erhalten, daher sollte es vernünftig sein, dass Sie nicht genau das eine oder andere als die richtige Antwort auswählen können.
Die kaskadierten Flops lösen sich mit zunehmender Wahrscheinlichkeit innerhalb eines Taktzyklus auf einen stabilen Wert auf, daher sollte der Ausgang der Sequenz statisch sein (für einen statischen Eingang) oder innerhalb von +/- einem Zyklus des Eingangsübergangs plus wechseln 2 oder 3 Zyklen, je nachdem, ob es sich um eine Doppel- oder Dreifachsynchronisation handelt.
Ein Nebeneffekt davon ist, dass Sie, wenn mehrere Signale asynchron (oder ohne klares Setup-Hold) abgetastet werden, alle potenziellen Rennbedingungen antizipieren müssen und sich nicht darauf verlassen müssen, die Änderungen in denselben zyklusgenauen Kombinationen zu sehen, die sie waren generiert.
Benutzer105652
Hachani Ahmed
Benutzer105652
Benutzer105652
David Tweed
Hachani Ahmed
Hachani Ahmed
David Tweed