Metastabilität

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Als Metastabilität (auch Quasistabilität) bezeichnet man im Bereich der Digitaltechnik einen temporären Zustand von FlipFlops oder kombinatorischer Schaltungsteile, der durch das Ändern eines Eingangssignals verursacht wird. Er ist in gewissem Sinne der Sonderfall der allgemeinen Instabilität von Schaltungen.

Instabilität

Ändert sich bei einer Schaltung ein oder mehrere Eingänge, so reagieren die davon abhängigen Ausgänge erst mit einer gewissen Zeitverzögerung. Während dieser Zeit muss der Zustand solange als logisch undefiniert erachtet werden, bis die Schaltung eingeschwungen ist.

Bei FFs, bei denen sich neben dem Takt auch die Eingänge ändern, führt dies zunächst dazu, daß der Ausgang eines FFs einen nicht vorhersehbaren Zustand einnimmt, der entweder den alten, oder den neuen Zustand des Eingangs wiederspiegelt. Dies führt zu einer zeitlich Unsicherheit des Datenflusses.

Metastabilität

In seltenen Fällen geschieht das sampeln so ungünstig, daß das FF nicht sofort eindeutig schaltet, sondern sich längere Zeit in einem Zwischenzustand aufhält, bevor es endgültig in einen stabilen Zustand gerät. Der Vorgang ist vergleichbar einer Münze, welche zunächst auf der Kante stehenbleibt, bevor sie fällt. Diese Metastabilität ist an sich noch kein Problem, sie führt jedoch im Weiteren dazu, daß auch nach nachfolgende Schaltungsteile, die von diesem FF gespeist werden, verspätet einschwingen, wodurch angeschaltete FFs u.U. wieder eine wechselnde Taktflanke sehen. Damit tauchen instabile Schaltungssituationen in Schaltungsbereichen auf, die auf volle Synchronität setzen. Der eigentlich "gewollte" Schaltungszustand des Teilsystems wird dann meist erst wieder bei der kommenden Taktflanke erreicht, was speziell bei Bussen zu inkonsistenten Daten führt. Somit wird das Gesamtsystems inkonsistent und arbeitet falsch.

Die gegebene Maßnahme gegen Metastabilität ist das Einsynchronisieren potentiell zur Taktfanke wechselnder Signale durch direkt kaskadierte FFs, da dann ein solcher metastabiler Zustand extrem lange anhalten müsste, um noch zu einem Problem werden zu können. Bereits bei einer FF-Stufe ist ein ausdrücklich metastablier Zustand aber schon extrem unwahrscheinlich, da die heutigen Chiptechnologien sehr hohe Verstärkungen (-> steile Übertragunskennlinien) gestatten, die zu extrem geringen Zeiten der Metastabilität führen.

In Hochgeschwindigkeitsschaltungen werden diesbezüglich kritische Signale dennoch mehrfach kaskadiert, weil sich so die Wahrscheinlichkeit exponenziell reduziert und man am Ausgang der FF-Kaskade einen völlig stabilen Zustand erwarten kann.

Es bleibt dann lediglich das Problem des unbekannten Zeitpunktes der Takt- bzw. Datenübernahme.