Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Glitch (Elektronik)

Die Ursache des Signalwettlaufs wird daher auch als Race Condition bezeichnet. Die Anfälligkeit für Glitches steigt mit der Komplexität, der …

Inhalt5 Abschnitte
  1. 1. Grundbegriff und Ursache
  2. 2. Arten von Hazards und Glitches
  3. 3. Typisches Schaltungsbeispiel
  4. 4. Bedeutung und Entwurfsgrenzen
  5. 5. Vermeidung und Begrenzung der Auswirkungen

Grundbegriff und Ursache

Ein Glitch ist eine kurzzeitige falsche Signalausgabe in einer logischen Schaltung beziehungsweise eine vorübergehende Verfälschung des Ausgangswerts einer booleschen Funktion. Er entsteht, weil Signale verschiedene Wege durch die Schaltung nehmen und die Laufzeiten einzelner Gatter und Leitungen niemals vollkommen gleich sind. Beim Wechsel von Eingangssignalen können deshalb kurzzeitig widersprüchliche Zwischenzustände am Ausgang auftreten. Dieser Wettlauf zwischen Signaländerungen heißt Race Condition.

Die Eigenschaft einer logischen Schaltfunktion, die einen Glitch ermöglichen kann, wird Hazard genannt. Dabei ist zwischen dem Hazard als Eigenschaft der Schaltfunktion und dem tatsächlich auftretenden Glitch oder Fehlerimpuls in ihrer technischen Realisierung zu unterscheiden.

Glitches können bereits in einfachen Schaltungen auftreten. Mit zunehmender Komplexität, höherer Geschwindigkeit und kleineren Strukturen steigt jedoch die Anfälligkeit. Daher sind sie besonders für moderne elektronische Schaltungen und schnelle Mikroprozessoren bedeutsam; betroffen war aber auch schon die elektromechanische Relaistechnik.

Arten von Hazards und Glitches

Funktionshazards entstehen, wenn sich die Belegung von mehr als einer Eingangsvariablen gleichzeitig ändert. Sie lassen sich durch geeignete Belegungswechsel mit Gray-Codierung, durch Taktung oder durch eine Verzögerung, etwa ein RC-Glied am Ausgang, vermeiden. Funktionale Hazards sind grundsätzlich unveränderlich oder nur durch eine Änderung der Schaltfunktion zu beseitigen.

Strukturhazards oder logische Hazards treten bei mehrstufigen Schaltungen auf, wenn im Karnaugh-Diagramm (KV-Diagramm) zwischen angrenzenden, aber nicht überlappenden Blöcken gewechselt wird. Ein KV-Diagramm stellt eine boolesche Funktion so dar, dass zusammengehörige Belegungen zu Blöcken zusammengefasst werden können. Strukturhazards lassen sich durch redundante Primkonjunktionen, also zusätzliche überlappende Blöcke, oder durch Taktung vermeiden.

Ein statischer Glitch liegt vor, wenn der Ausgang eigentlich unverändert bleiben soll, aber kurzzeitig den entgegengesetzten Wert annimmt. Bei einem dynamischen Glitch wechselt der Ausgang zunächst auf den neuen Wert, springt dann kurz auf den alten Wert zurück und nimmt anschließend wieder den neuen Wert an. Danach wird außerdem unterschieden, ob der Fehlerimpuls beim Wechsel auf 1 oder auf 0 auftritt: Man spricht entsprechend von einem 0-Glitch oder einem 1-Glitch.

Typisches Schaltungsbeispiel

Die beschriebene Schaltung hat die Eingänge x₀, x₁ und x₂. Sie soll den Wert 1 liefern, wenn mindestens eine von zwei Bedingungen erfüllt ist:

  • x₁ und x₀ sind gleichzeitig 1.
  • x₁ ist 0 und x₂ ist gleichzeitig 1.

Ist keine der beiden Bedingungen erfüllt, soll der Ausgang 0 sein. Anfangs seien x₁ = 1 und x₀ = 1. Das erste UND-Gatter liefert deshalb 1. Ein Inverter erzeugt aus x₁ den negierten Wert (x₁)′ = 0, sodass der andere Zweig 0 liefert. Das abschließende ODER-Gatter gibt trotzdem korrekt 1 aus.

Nun wechselt x₁ von 1 auf 0, während x₂ = 1 ist. Der Ausgang soll weiterhin 1 bleiben, weil jetzt die zweite Bedingung erfüllt ist. Der Inverter benötigt jedoch Zeit, um aus dem neuen Wert x₁ = 0 den Wert (x₁)′ = 1 zu erzeugen. Kurzzeitig liegen deshalb sowohl x₁ = 0 als auch (x₁)′ = 0 vor. Beide UND-Gatter liefern in diesem Moment 0, und das ODER-Gatter gibt fälschlich 0 aus. Nachdem der Inverter und das nachfolgende UND-Gatter die Änderung verarbeitet haben, liefert die Schaltung wieder 1. Dieser Vorgang dauert in der Größenordnung von Nanosekunden. Das Beispiel ist ein Strukturhazard und der auftretende Fehler ein statischer Glitch, weil der Ausgang ohne Unterbrechung 1 bleiben sollte.

Bedeutung und Entwurfsgrenzen

Laufzeitunterschiede treten sowohl zwischen Gattern desselben Typs als auch durch unterschiedlich lange Verbindungsleitungen auf. Ein Ausgangswert darf deshalb erst nach einer ausreichenden Wartezeit als gültig betrachtet werden, wenn alle möglichen Glitches abgeklungen sind. Diese notwendige Wartezeit begrenzt wesentlich die Taktfrequenz moderner Prozessoren.

Mit Karnaugh-Diagrammen lassen sich grundsätzlich auch größere Schaltungen ohne strukturelle Glitches entwerfen. Dafür werden jedoch zusätzliche Komponenten benötigt. Schon bei etwas komplexeren Schaltungen kann deren Zahl sehr groß werden, wodurch die Kosten steigen. Beim Entwurf ist daher ein Kompromiss zwischen den Kosten des Schaltkreises und der Dauer möglicher Glitches erforderlich.

Vermeidung und Begrenzung der Auswirkungen

In synchronen Schaltungen können nachgeschaltete D-Flipflops verhindern, dass Glitches weiterverarbeitet oder gespeichert werden. Ein D-Flipflop übernimmt den Ausgangswert einer kombinatorischen Schaltung nur an einer Taktflanke. Zwischen zwei Taktflanken dürfen im kombinatorischen Teil beliebig viele Glitches auftreten, sofern der richtige Wert rechtzeitig vor der nächsten Übernahme stabil ist. Der Nachteil besteht darin, dass die Taktperiode die kleinste auflösbare Zeitspanne bildet und kein zeitkontinuierliches Ausgangssignal wie bei einer rein kombinatorischen Schaltung vorliegt. Die Ausstattung kombinatorischer Ausgänge mit D-Flipflops ist eine wesentliche Grundlage stabiler digitaler Designs in komplexen, frei programmierbaren FPGAs.

Eine mögliche, aber unsichere Maßnahme ist die Angleichung der Verzögerungszeiten. Im Beispiel könnte in den direkten Signalweg von x₁ ein zusätzliches funktionsloses Gatter eingesetzt werden, damit die Änderung beide UND-Gatter gleichzeitig erreicht. Wegen unvermeidbarer Laufzeitschwankungen liefert dieses Verfahren jedoch nicht sicher das gewünschte Ergebnis.

Systematischer ist die Ergänzung des KV-Diagramms. Die beiden ursprünglichen Blöcke werden dabei durch einen logisch überflüssigen, mit beiden überlappenden Block verbunden. Im Beispiel entspricht dieser Zusatz der Bedingung, dass x₀ und x₂ gleichzeitig 1 sind. In der Schaltung wird dafür ein weiteres UND-Gatter benötigt. Dieses hält den Ausgang während des Übergangs auf 1 und beseitigt so den Strukturhazard. Allerdings kann die Schaltung danach statisch nicht mehr vollständig getestet werden, weil ein Fehler dieses zusätzlichen UND-Gatters nicht auffällt; außerdem kann der Hazard bei heutigen Gatterlaufzeiten messtechnisch nicht aufgenommen werden.

Die KV-Methode berücksichtigt nur die Laufzeiten der Gatter, nicht aber unterschiedliche Laufzeiten in den Verbindungsleitungen. Für eine genaue Betrachtung müssen diese Leitungen mithilfe der Leitungstheorie modelliert werden. Deshalb eignet sich die systematische Auflösung mit KV-Diagrammen nur bei vergleichsweise niedrigen Schaltfrequenzen, also im quasistationären Fall, oder bei diskreten Bauteilen mit abgestimmten Verbindungsleitungen. Bei hohen Signalraten – 100 MHz gilt als grober Richtwert – und geringer Kontrolle über die konkrete Signalführung, etwa innerhalb eines FPGAs, garantieren selbst entsprechend ergänzte kombinatorische Schaltungen kein glitch-freies Design.

Weiterlesen

Elektronik Die Elektronik verwendet vorrangig Transistoren, Dioden sowie passive Bauelemente wie Kondensatoren und Widerstände. Elektronische Schaltungen werden meist auf … Boolesche Funktion Eine Boolesche Funktion (auch logische Funktion) ist eine mathematische Funktion der Form F : B n → B 1 {\displaystyle F\colon B^{n}\to B^{1}} … Logikgatter Ein Logikgatter, auch nur Gatter (englisch (logic) gate) ist eine Anordnung (heutzutage praktisch immer eine elektronische Schaltung) zur Realisierung einer … Mikroprozessor Ein Mikroprozessor (µP oder uP) ist ein als integrierter Schaltkreis (IC) ausgeführter Computerprozessor. Typische Beispiele von Mikroprozessoren sind die … Relais Ein Relais [ʁəˈlɛː] (Pl.: Relais [ ʁəˈlɛːs]) ist ein durch elektrischen Strom betriebener, fernbetätigter Schalter mit in der Regel zwei Schaltstellungen. Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Nicht-Gatter Ein Nicht-Gatter (englisch: NOT gate), auch als Komplement-Gatter oder Invertierer bezeichnet, ist ein Gatter mit einem Eingang und einem Ausgang. Karnaugh-Veitch-Diagramm Das Karnaugh-Veitch-Diagramm (bzw. das Karnaugh-Veitch-Symmetrie-Diagramm, die Karnaugh-Tafel oder der Karnaugh-Plan), kurz KV-Diagramm, KVS-Diagramm oder … Flipflop Ein Flipflop (auch Flip-Flop), oft auch bistabile Kippstufe oder bistabiles Kippglied genannt, ist eine elektronische Schaltung, die zwei stabile Zustände … Field Programmable Gate Array Ein FPGA (Akronym für Field Programmable Gate Array) ist ein integrierter Schaltkreis (IC) der Digitaltechnik, in welchen eine logische Schaltung geladen … Disjunktive Normalform In einem weiteren Schritt erfolgt eine Vereinfachung des logischen Ausdrucks mittels Karnaugh-Veitch-Diagramm oder dem Quine-McCluskey-Verfahren. Dabei …