Ein metastabiler Zustand ähnelt einem instabilen Gleichgewicht. Ein häufiges Beispiel für ein instabiles Gleichgewicht ist ein umgekehrtes Pendel . Wenn Sie das Pendel in vertikaler Position ausbalancieren können, ist dies ein stabiler Zustand. Wenn jedoch etwas den Hebel zur Seite drückt (z. B. Luftströmungen oder Bodenschwingungen), kehrt das Pendel nicht in die vertikale Position zurück, sondern fällt nach unten. Im Gegensatz dazu wird ein normales Pendel, das nach einer Seite gedrückt wird, irgendwann wieder in die Vertikale zurückkehren.
Stabile Gleichgewichte werden in elektrischen Systemen zur Erzeugung von Speicherelementen verwendet. Instabile Gleichungen sind keine guten Speicherelemente (da sie leicht ihren Zustand verlieren), sondern existieren oft als parasitärer Zustand.
Ein übliches digitales Speicherelement ist ein Paar kreuzgekoppelter Wechselrichter:
Das Speicherelement weist zwei stabile Zustände auf, wobei der eine Knoten links an der Versorgungsspannung und der rechte Knoten an der Masse liegt und der andere im entgegengesetzten Zustand. Es gibt auch einen instabilen Zustand, in dem sich jeder Knoten auf einer Zwischenspannung befindet.
Um besser zu verstehen, wie der instabile Zustand entsteht, rufen Sie die Übertragungsfunktion für einen Wechselrichter auf. Das Diagramm der Übertragungsfunktion zeigt die Ausgangsspannung des Wechselrichters für eine bestimmte Eingangsspannung.
Der Wechselrichter ist nicht linear. Eine einfache Möglichkeit, eine ungefähre Lösung einer nichtlinearen Schaltung zu erhalten, besteht darin, die Schaltungseigenschaften aufzuzeichnen. Die Schnittpunkte der Diagramme sind die Lösungen oder mit anderen Worten die Punkte, an denen die elektrischen Eigenschaften aller Komponenten der Schaltung erfüllt sind. Normalerweise geschieht dies mit iv-Plots wie in diesem Diodenbeispiel bei Wikipedia . Bei den Wechselrichtern machen wir dies jedoch mit vv-Plots. Überlagern einer zweiten Inverterübertragungsfunktion auf dem Plot (mit vertauschten Achsen, da der zweite Inverter rückwärts ist:
Es gibt drei Schnittpunkte der Diagramme: einen bei (0, Vs), einen bei (Vs, 0) und einen bei (Vs / 2, Vs / 2). Der Zustand (Vs / 2, Vs / 2) ist metastabil. Nach einer kleinen Störung eines Knotens wird die Schaltung fast immer in einen der stabilen Zustände übergehen, anstatt zu (Vs / 2, Vs / 2) zurückzukehren.
Um einen Wert in das Speicherelement mit zwei Wechselrichtern zu schreiben, muss einer der Knoten mit einem Treiber, der stärker als die Wechselrichter ist, auf den gewünschten Wert gesetzt werden. Ein üblicher Weg dies zu tun ist mit einem Durchlasstransistor:
Wenn Sie das Gate des Durchlasstransistors mit dem Takt verbinden, haben Sie einen D-Latch (ich lasse die Ausgangsstruktur weg). Wenn der Takt hoch ist und den Durchlasstransistor aktiviert, ist der Zwischenspeicher transparent - der Eingang gelangt direkt zum Ausgang. Wenn der Takt niedrig ist, hält der Zwischenspeicher den vorherigen Wert. Die Metastabilität tritt in dem Moment auf, in dem die Latch-Samples abgetastet werden. Wenn der Eingang beim Abtasten des Signalspeichers eine stabile Hoch- oder Niederspannung aufweist, funktioniert er ordnungsgemäß. Wenn der Eingang sich jedoch um den Vs / 2-Punkt befindet, wenn der Latch abtastet, besteht die Möglichkeit, dass der Latch im metastabilen Zustand (Vs / 2, Vs / 2) endet. Sobald es sich im metastabilen Zustand befindet, kann es unbegrenzt dort bleiben (vorausgesetzt, der Latch wird nicht erneut getaktet), aber da es sich um ein instabiles Gleichgewicht handelt, geschieht etwas normalerweise relativ schnell, um es aus dem metastabilen Zustand herauszuschlagen.
Wann sollte man sich um die Metastabilität sorgen?
Wenn Ihre Speicherelemente metastabil werden, verlieren Sie zumindest einen Teil des Zeitbudgets für die nachgelagerte Logik. Die Logik kann die gewünschte Auswertung erst durchführen, wenn der metastabile Zustand behoben ist. Im schlimmsten Fall bleibt der metastabile Zustand bestehen oder breitet sich durch Logik aus, und nachgeschaltete Speicherelemente werden ebenfalls metastabil, oder mehrere verwandte Speicherelemente erfassen inkonsistente Werte.
Richtig entworfene und funktionierende synchrone Logik hat keine Probleme mit der Metastabilität. Die Taktperiode ist länger als die Auswertezeit für die Logik, alle Flip-Flop-Eingänge sind bei der nächsten Taktflanke stabil (Setup-Anforderung erfüllt) und laden alle einen gültigen Wert.
Einige der häufigsten Situationen, in denen Metastabilität ein Problem darstellt, sind:
- Logikabtastung eines externen Eingangs, z. B. eines Schalters auf der Vorderseite, oder des Ausgangs von Überwachungsschaltungen, die jederzeit übergehen können (Unterspannung, Übertemperatur).
- Logik mit mehreren Uhren, die keine synchrone Beziehung haben. Dies tritt häufig bei E / A-Schnittstellen mit bestimmten Taktanforderungen auf, tritt jedoch auch intern auf, wenn verschiedene Teile eines Chips unterschiedliche Leistungsanforderungen haben. Beispielsweise läuft nicht die gesamte Logik Ihrer 3-GHz-CPU mit 3 GHz. (Eine CPU ist jedoch kein gutes Beispiel, da viele der Takte in einer CPU synchrone Vielfache voneinander sind.)