Reduzierung von Metastabilität in FPGA-Designs

Jason Howie
|  Erstellt: Februar 21, 2017  |  Aktualisiert am: November 11, 2020

Hier werfen wir einen Blick auf das Konzept der Metastabilität in Bezug auf digitale Schaltungen – und daher FPGA-Designs – und wie ihr „Erscheinen“ einfach durch das Befolgen von bewährten Designprinzipien, die ihre Auswirkung abschwächen, stark reduziert werden kann.

Metastabilität! Man könnte verzeihen, zu denken, dass dies etwas mit der Integrität eines futuristischen Behältergefäßes oder Kraftfeldes zu tun haben könnte: „Die Metastabilität des Fluss-Triangulators des Warp-Antriebs und der kryonischen Hülle erreicht kritische Niveaus, Captain!“

Für diejenigen unter Ihnen, die sich täglich mit digitaler Elektronik beschäftigen, wird der Begriff wahrscheinlich mit einer Mischung aus Verachtung und Respekt aufgenommen.

Hier werfen wir einen Blick auf das Konzept der Metastabilität in Bezug auf einen digitalen Schaltkreis – und daher FPGA-Designs – und wie ihr „Erscheinen“ einfach durch das Befolgen von bewährten Designprinzipien, die ihre Auswirkung abschwächen, stark reduziert werden kann.

Metastabilität erklärt

Metastabilität betrifft die Ausgänge von Registern (oder getakteten Flip-Flops in alter Terminologie) innerhalb digitaler Schaltungen und das Potenzial für einen Ausgangsanschluss, in einen 'metastabilen Zustand' zu geraten. FPGA-Geräte nutzen typischerweise D-Typ-Flip-Flops. Bevor wir uns damit beschäftigen, wie ein solcher Zustand eintreten kann, ist es eine gute Idee, uns mit einigen grundlegenden Schlüsselzeitpunkten im Zusammenhang mit dem Betrieb eines Registers zu befassen:

‘Setup-Zeit’ – das ist die minimale Zeit, die das Eingangssignal des Registers stabil sein muss, bevor der nächste Taktimpuls eintrifft. Erscheint in Datenblättern typischerweise als Tsu.

‘Haltezeit’ – das ist die minimale Zeit nach dem Eintreffen des Taktimpulses, während der das Eingangssignal des Registers weiterhin im gleichen stabilen Zustand sein muss. Erscheint in Datenblättern typischerweise als Th.

‘Takt-zu-Ausgang-Verzögerungszeit’ – das ist die Zeit, nachdem der Taktimpuls eingetroffen ist, zu welchem Punkt sich der Ausgang des Registers ändert. Dies wird auch als 'Einschwingzeit' oder 'Ausbreitungsverzögerung' des Registers bezeichnet. Kann in Datenblättern als Tco, oder Tphl und Tplh erscheinen.

Immer wenn ein Signal zwischen zwei asynchronen Taktbereichen – digitalen Teil-Schaltkreisen innerhalb des Gesamtentwurfs, die auf unterschiedlichen oder nicht verwandten Takten laufen – übertragen wird, besteht die Möglichkeit, auf Metastabilität zu stoßen. Dies gilt auch für die Datenübertragung von einem nicht getakteten Bereich eines Entwurfs in ein synchrones System – zum Beispiel externe (außerhalb befindliche) Signale, die in ein FPGA eingespeist werden.

Das folgende Bild veranschaulicht zwei Beispiele für asynchrone Signale, die in ein synchrones System eintreten. Im oberen Beispiel reist ein Signal zwischen verschiedenen Taktbereichen. Im unteren Beispiel wird ein Signal von einem nicht getakteten System in ein getaktetes (synchrones) System eingespeist.

Asynchronous System and Synchronous System Graphic

Das Problem entsteht, wenn ein Datensignal aus einem Taktbereich in die Registerlogik eines anderen Taktbereichs gelangt. Das eingehende Datensignal aus dem Quellbereich kann jederzeit im Vergleich zum Takt im Zielbereich wechseln – es gibt keine Synchronizität zwischen den beiden Bereichen, kein Wissen über die Übergangsgeschwindigkeiten in den beiden Logik-Teilschaltkreisen. Wenn das Datensignal zu einem Zeitpunkt wechselt, der die erforderlichen Set-up- oder Haltezeiten für das Zielregister verletzt, kann der Ausgang dieses Registers in einen 'metastabilen Zustand' geraten – einen Zustand, in dem das Ausgangssignal weder logisch Low noch logisch High ist, sondern vielmehr in dem instabilen Bereich dazwischen.

Die Länge der Zeit, in der der Ausgang metastabil bleibt, kann die vom Register angegebene „Clock-to-Output Delay time“ (Einschwingzeit) überschreiten. In den meisten Fällen werden Register diese Ausgangsinstabilität schnell auflösen und zu einem der beiden definierten (und stabilen) Zustände zurückkehren. Das Problem für ein Design ist jedoch in den Minderheitsfällen, wenn die Zeit, um sich auf einen stabilen Zustand einzupendeln, nicht schnell genug ist, oder das Ausgangssignal sich auf das falsche Logiklevel auflöst.

Das folgende Bild veranschaulicht den Ausgang eines Registers in Abhängigkeit vom Übergang des Eingangsdatensignals.

Output of a register

Unter Berücksichtigung der drei Eingänge:

Eingang A: Der Eingang beachtet die Set-up- und Hold-Zeiten des Registers und der Ausgang ist nach der Clock-to-Output Delay Zeit des Geräts verfügbar.

Eingang B: Der Eingang wechselt während der Set-up-Zeit des Registers, wobei der Ausgang metastabil wird, bis er sich über die Clock-to-Output Delay Zeit hinaus auf das korrekte stabile Niveau einstellt.

Eingang C: Der Eingang wechselt während der Hold-Zeit des Registers, wobei der Ausgang metastabil wird. Nicht nur, dass sich der Ausgang über die Clock-to-Output Delay Zeit hinaus auf einen stabilen Zustand einstellt, er stellt sich auch auf das falsche Logiklevel ein!

Wenn der Ausgang des Registers in mehr als ein nachfolgendes Register im Schaltkreis parallel eingespeist wird, besteht die Möglichkeit, dass diese Zielregister die Daten auf unterschiedlichen Logikpegeln erfassen, je nachdem, ob der metastabile Ausgang des Quellregisters vor dem Takten jedes Zielregisters zur Erfassung der nächsten Daten in einen stabilen Zustand übergegangen ist. Pfadverzögerungen zwischen Quell- und Zielregistern, zuzüglich der Zeit, bis der metastabile Ausgang stabil wird, verschärfen das Problem nur noch.

Zusammenfassend ist Metastabilität ein statistischer oder wahrscheinlichkeitsbasierter Feind für einen Designer. Je nach den verwendeten Bauteilen und dem Layout der Schaltung im Design können metastabile Ausgangszustände auftreten oder auch nicht. Wenn sie auftreten, können sie schädlich sein – und zum Ausfall des Designs führen – oder das Glück ist auf Ihrer Seite und die Abklingzeiten der Bauteile, die Taktraten und die verlegten Pfade könnten ihr Erscheinen harmlos machen. Das Problem als Designer ist jedoch, können Sie es sich wirklich leisten, dieses 'Risiko' einzugehen? Was ist, wenn das Produkt, das Sie entwerfen, Teil einer medizinischen Anlage oder eines kommerziellen Düsenflugzeugs ist – ein Ausfall des Designs könnte katastrophal sein.

Obwohl Metastabilität nicht vollständig ausgerottet werden kann – kein Gerät auf der Welt kann von sich behaupten, absolut frei von potenziellen Metastabilitätseffekten zu operieren –, kann sie auf einen Punkt reduziert werden, an dem sie kaum noch ein 'Blip auf dem Radar' darstellt.

Als Maß für die Zuverlässigkeit eines Designs, in Bezug auf durch Metastabilität induzierte Ausfälle, sprechen wir von etwas, das als mittlere Zeit zwischen Ausfällen – oder MTBF (Mean Time Between Failures) – bezeichnet wird. Bleibt Metastabilität unkontrolliert – das heißt, es werden keine Vorkehrungen in einem Design getroffen, um deren Effekt zu mildern –, könnte die MTBF so gering wie Sekunden sein. Durch die Anwendung erprobter digitaler Designmethoden zur Bekämpfung von Metastabilität und durch sorgfältige Auswahl der digitalen Geräte, die in einem Design verwendet werden, kann die MTBF erheblich erhöht werden. Tausend Jahre zwischen Ausfällen. Eine Million Jahre. Sogar eine Milliarde Jahre, wenn mathematisch berechnet und extrapoliert. Bei diesen Werten für die MTBF kann ein solches Design als 'Hochzuverlässig' oder praktisch 'Ausfallsicher' (oder sollte das 'Ausfallfrei' sein) – aber Sie verstehen, was gemeint ist.

Die folgenden Abschnitte werfen einen Blick darauf, wie Sie als Designer die MTBF verlängern können und wie die Gerätetechnologie dabei eine Rolle spielt.

Synchronisieren asynchroner Signale

Vielleicht ist die am weitesten verbreitete und allgemein akzeptierte Lösung für das Metastabilitätsproblem die Hinzufügung von Front-End-Schaltkreisen, um ein eingehendes asynchrones Signal mit dem Takt des Ziel-Synchronschaltkreises zu synchronisieren. In seiner einfachsten Form besteht diese Schaltung aus einem oder mehreren D-Typ-Flipflops, die hintereinander geschaltet und mit dem Systemtakt des Zielgeräts getaktet werden. Dies wird als „Synchronisationsregisterkette“ oder einfach als „Synchronisierer“ bezeichnet.

Die zusätzliche Verzögerung, die durch jedes Register verursacht wird, ermöglicht es dem eingehenden Signal, sich von jedem metastabilen Zustand, in den es geraten sein könnte, zu erholen. Je mehr Register in der Kette sind, desto größer ist die Verzögerung und damit auch die Zeit, die ein metastabiler Ausgang zur Auflösung hat. Die Gesamtverzögerung ist oft als „Metastabilitäts-Abklingzeit“ bekannt. Typischerweise besteht die Synchronisationsschaltung aus zwei Registern, aber für kritische Anwendungen – wie im medizinischen und militärischen Bereich – sind drei nicht ungewöhnlich.

Das folgende Bild veranschaulicht ein Beispiel für das Hinzufügen eines 2-stufigen Synchronisierers am Front-End eines synchronen Systems, um ein eingehendes asynchrones Signal zu synchronisieren.

adding a 2-stage synchronizer to the front-end of a synchronous system

Handshaking-Logik zwischen Schaltkreisen in verschiedenen Taktbereichen und/oder FIFO-Logik wird ebenfalls verwendet – zusätzlich zur Front-End-Synchronisation – um den Empfang korrekter Datenwerte sicherzustellen. Dies ist besonders wichtig, wenn es um eine gebündelte Gruppierung mehrerer asynchroner Signale geht, von denen jedes zu einem beliebigen Zeitpunkt und unabhängig voneinander wechseln könnte.

Das schwächste Glied...

In einem digitalen Design kann es mehrere verschiedene Taktbereiche geben und eine Vielzahl von Signalen, die zwischen ihnen übertragen werden. Darüber hinaus kann es eine Vielzahl von externen, asynchronen Signalen geben – die von außen stammen (insbesondere bei einem Design, das in einem FPGA implementiert ist und externe Peripheriekomponenten sowie Kommunikationsschnittstellen nutzt). In solchen Fällen ist es nicht ungewöhnlich, viele synchronisierende Registerketten zu finden, die die verschiedenen asynchronen Signalübertragungen innerhalb des Gesamtsystems handhaben.

In Bezug auf die MTBF hat jede Synchronisierungskette ihren eigenen "Wert". Da die Gesamtausfallrate für ein Design die Summe der individuellen Ausfallraten für die Synchronisierungsketten darin ist und die Ausfallrate 1/MTBF ist, kann man leicht erkennen, dass eine Synchronisierungskette mit einer verringerten MTBF im Vergleich zu den anderen einen insgesamt nachteiligen Effekt auf die Gesamt-MTBF für das Design haben würde. Tatsächlich wird die MTBF für das Design im Wesentlichen der MTBF der schlechtesten Synchronisierungskette folgen – was katastrophal sein kann, wenn fünf Ketten eine MTBF von einer Million Jahren und eine sechste Kette eine MTBF von 50 Jahren hätte!!

Um dies zu bewältigen, besteht die Lösung darin, der am schlechtesten abschneidenden Synchronisierungskette im Design ein weiteres Registerstadium hinzuzufügen, wodurch die Metastabilitäts-Setzzeit erhöht und die MTBF für diese Kette - und daher das gesamte Design – erheblich (wenn nicht exponentiell!) verbessert wird.

Gerätetechnologie - Schneller vs Kleiner

Zur Wiederholung, Metastabilität (obwohl dieser Zustand alles andere als stabil ist!) tritt auf, wenn ein eingehendes asynchrones Signal in Verletzung der Set-Up- und/oder Haltezeit eines Registers wechselt. Die Gesamtlänge der Zeit, Set-Up + Haltezeit, definiert im Wesentlichen das "Fenster" für das Auftreten von Metastabilität – das "Metastabilitätsfenster", wenn man so will.

Es liegt auf der Hand, dass je schneller die Set-Up- und Hold-Zeiten eines Registers sind, desto kleiner das Metastabilitätsfenster ist. Tatsächlich weisen schnellere Logikfamilien diese schnelleren Zeiten auf und verringern daher die Wahrscheinlichkeit eines metastabilen Ereignisses. Sollte ein metastabiles Ereignis auftreten (denken Sie daran, dass Metastabilität nicht vollständig ausgerottet werden kann), sind die Register schnell genug, um sich rasch zu erholen. Zum Beispiel würde ein Register der 74F-Familie zu einer besseren MTBF führen als ein Gerät aus der 74LS-Familie – zwei Enden des Gerätegeschwindigkeitsspektrums.

Mit FPGAs führt die Verringerung der Prozessgeometrien (von 180nm über 90nm und weiter zu 65nm, 40nm und darüber hinaus) zu schnelleren Transistorschaltgeschwindigkeiten – was typischerweise die MTBF aufgrund von Metastabilität verbessert. Die Vorteile einer reduzierten Größe sind jedoch nicht ohne potenzielle Nachteile. Schrumpfende Geometrien führen natürlich zu reduzierten Versorgungsspannungen. Während eines metastabilen Zustands ist der Ausgang eines Registers typischerweise die Hälfte der Versorgungsspannung. Wenn die Versorgungsspannung immer kleiner wird, verringert sich der Spannungsunterschied zwischen voll und halbwegs, was zu einer Reduktion der Verstärkung des Schaltkreises und längeren Erholungszeiten für Register aus einem metastabilen Zustand führt.

FPGA-Hersteller führen typischerweise strenge Metastabilitätsanalysen durch, um Robustheit gegen Metastabilität in physischen Geräten zu gewährleisten, die diese stetig abnehmenden Prozessgeometrien nutzen.

Nützliche Links

Nutzen Sie die folgenden Links, um auf externe Dokumente zuzugreifen, die einen näheren und detaillierteren Blick auf das Phänomen der Metastabilität werfen und wie dessen Effekt in digitalen elektronischen Designs im Wesentlichen vernachlässigbar gemacht wird. Viele dieser Dokumente betrachten die Gleichungen, die verwendet werden, um die MTBF (Mean Time Between Failures) für ein Flip-Flop zu berechnen, und anschließend die MTBF für ein gesamtes Design und bieten selbst Verweise auf weitere Informationen zu diesem Thema.

Digital Logic Metastability (www.interfacebus.com)

FPGA-FAQ 0017: Erzähl mir von Metastabilität (Philip Freidin)

Metastabilität in der Elektronik (Wikipedia)

Was ist Metastabilität? (www.asic-world.com)

Metastabilität im Design (The VLSI Homepage)

White Paper: Verständnis von Metastabilität in FPGAs (Altera)

Application Note: Metastabile Erholung in Virtex-II Pro FPGAs (Peter Alfke, Xilinx)

Application Note: Metastabilität und die ECLinPS Familie (Applications Engineering, ON Semiconductor)

Metastabile Reaktion in 5-V-Logikschaltungen (Texas Instruments)

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Jason Howie ist der Leiter des Bereichs Technical Writing bei Altium. Er bringt einen großen Erfahrungsschatz im Bereich Technical Writing mit und man kann ihn oft bis in die frühen Morgenstunden auf der Tastatur rasseln hören. Bevor er im Mai 2000 zu Altium kam, verbrachte Jason Howie etwas mehr als 4 Jahre im Joint European Torus in Oxfordshire, UK, als Teil der Abteilung Machine Instrumentation & Protection Systems.

Ähnliche Resourcen

Verwandte technische Dokumentation

Zur Startseite
Thank you, you are now subscribed to updates.