Login

Logikgatter einfach erklärt: Die Bausteine digitaler Schaltungen

Mario ·

Eine Alarmanlage soll nur dann die Sirene auslösen, wenn die Anlage scharf geschaltet ist und ein Türkontakt meldet, dass die Tür geöffnet wurde. Zwei Signale gehen hinein, ein Signal kommt heraus, und dazwischen steckt eine feste Regel. Genau so arbeitet ein Logikgatter.

Im Beitrag Digitaltechnik verstehen haben wir gesehen, dass ein digitales Signal entweder 0 oder 1 ist. Logikgatter sind die Bausteine, die solche Signale zu Entscheidungen verknüpfen. Aus sehr vielen davon besteht ein Prozessor.

Was ist ein Logikgatter?

Ein Logikgatter, kurz Gatter, ist eine Schaltung mit einem oder mehreren Eingängen und einem Ausgang. Eingänge und Ausgang kennen nur zwei Zustände: 0 (Low) und 1 (High). Welcher Wert am Ausgang liegt, bestimmt eine feste Regel, die vom Gattertyp abhängt.

Ein Gatter hat kein Gedächtnis. Der Ausgang hängt nur von dem ab, was gerade an den Eingängen liegt. Ändern sich die Eingänge, ändert sich nach einer winzigen Verzögerung auch der Ausgang. Schaltungen, die nur aus Gattern bestehen, heißen deshalb Schaltnetze.

Woraus besteht ein Gatter?

Im Inneren arbeiten Transistoren. Ein Transistor wirkt wie ein elektrisch gesteuerter Schalter: Liegt am Steuereingang eine ausreichende Spannung, leitet er, sonst sperrt er. Aus mehreren Transistoren lässt sich jede der folgenden Verknüpfungen bauen. Moderne Prozessoren enthalten viele Milliarden Transistoren, die zusammen eine riesige Zahl von Gattern bilden.

Zum Verständnis reicht eine Schalter-Analogie, die du nachbauen könntest: Eine Lampe hängt an einer Batterie, dazwischen sitzen Schalter.

  • Zwei Schalter in Reihe: Die Lampe brennt nur, wenn Schalter A und Schalter B geschlossen sind. Das ist die UND-Verknüpfung.
  • Zwei Schalter parallel: Die Lampe brennt, wenn Schalter A oder Schalter B geschlossen ist, auch wenn beide es sind. Das ist die ODER-Verknüpfung.
  • Ein Öffner: Er leitet, solange er nicht betätigt wird, und unterbricht, wenn er betätigt wird. Das ist die NICHT-Verknüpfung.
Reihenschaltung entspricht UND, Parallelschaltung entspricht ODER, der Öffner entspricht NICHT.

Die wichtigsten Gatter im Überblick

Du musst sieben Gatter kennen. Die ersten drei sind die Grundverknüpfungen, die übrigen ergeben sich daraus.

Gatter Englisch Ausgang ist 1, wenn …
UND AND alle Eingänge 1 sind
ODER OR mindestens ein Eingang 1 ist
NICHT NOT der Eingang 0 ist (Umkehrung)
NAND NOT AND nicht alle Eingänge 1 sind (Umkehrung von UND)
NOR NOT OR alle Eingänge 0 sind (Umkehrung von ODER)
XOR Exclusive OR die Eingänge verschieden sind (Antivalenz)
XNOR Exclusive NOR die Eingänge gleich sind (Äquivalenz)

Die genauen Wahrheitstabellen der Grundgatter und viele Beispiele folgen im Beitrag UND, ODER, NICHT. Hier siehst du erst einmal alle Gatter mit zwei Eingängen A und B nebeneinander:

A B UND ODER NAND NOR XOR XNOR
00001101
01011010
10011010
11110001

Das NICHT-Gatter hat nur einen Eingang: Aus 0 wird 1, aus 1 wird 0.

Zwei Dinge fallen auf, wenn du die Tabelle liest. Die Spalten für NAND und NOR sind genau das Gegenteil von UND und ODER. Und XOR unterscheidet sich von ODER nur in der letzten Zeile: Wenn beide Eingänge 1 sind, ist das ODER-Ergebnis 1, das XOR-Ergebnis aber 0.

Die Schaltzeichen

In Schaltplänen werden Gatter nicht ausgeschrieben, sondern durch Symbole dargestellt. Es gibt zwei Formen. Nach der europäischen Norm IEC 60617 sind es Rechtecke mit einer Aufschrift, in der amerikanischen Darstellung haben die Gatter charakteristische Formen. In deutschen Lehrplänen und Prüfungen begegnen dir meist die rechteckigen Symbole, in Datenblättern und Fachliteratur oft beide.

Gatter Rechteck-Symbol (IEC) Besonderheit
UND Rechteck mit „&“ Kennzeichen für die UND-Verknüpfung
ODER Rechteck mit „≥1“ Ausgang 1, wenn die Summe der Eingänge mindestens 1 ist
NICHT Rechteck mit „1“ und Kreis am Ausgang Der Kreis steht für die Negation
NAND Wie UND, mit Kreis am Ausgang Kreis kehrt das Ergebnis um
NOR Wie ODER, mit Kreis am Ausgang Kreis kehrt das Ergebnis um
XOR Rechteck mit „=1“ Ausgang 1, wenn genau ein Eingang 1 ist

Der kleine Kreis am Ausgang ist die wichtigste Merkregel: Er bedeutet immer „invertiert“. Wo du ihn siehst, wird das Ergebnis umgekehrt.

Dieselben Gatter in zwei Darstellungen: rechteckig nach IEC und in der amerikanischen Form.

NAND und NOR: Die Universalgatter

Eine Besonderheit: Mit nur einem einzigen Gattertyp lassen sich alle anderen nachbauen, wenn es NAND oder NOR ist. Deshalb heißen sie Universalgatter. Das ist für die Chipherstellung praktisch, weil man mit einem Grundbaustein auskommt.

Ein Beispiel mit NAND: Schaltest du beide Eingänge zusammen, wird daraus ein NICHT-Gatter.

NAND(A, A):

A = 0 → NAND(0, 0) = 1
A = 1 → NAND(1, 1) = 0

Der Ausgang ist immer das Gegenteil des Eingangs, genau wie beim NICHT. Hängst du hinter ein NAND noch so ein NICHT, ergibt sich die UND-Verknüpfung, denn das Umkehren der Umkehrung gibt das Original zurück.

XOR: Das Gatter für die Addition

Das XOR-Gatter hat in der Praxis eine eigene Aufgabe: Es bildet beim binären Addieren das Ergebnisbit. Im Beitrag Binärsystem verstehen hast du gesehen, dass 1 + 1 = 10 ergibt: eine 0 mit Übertrag 1. Schauen wir uns die Addition zweier einzelner Bits an:

A B Summe (S) Übertrag (C)
0000
0110
1010
1101

Vergleiche die Spalte „Summe“ mit der XOR-Spalte aus der Tabelle oben: Sie ist identisch. Und die Spalte „Übertrag“ entspricht der UND-Spalte. Eine Schaltung aus einem XOR-Gatter und einem UND-Gatter addiert also zwei Bits und liefert Summe und Übertrag. Sie heißt Halbaddierer.

S = A XOR B
C = A AND B

Setzt du mehrere solche Schaltungen hintereinander und verbindest die Überträge, erhältst du ein Addierwerk, das ganze Binärzahlen addiert. Genau so entsteht die Rechenfähigkeit eines Prozessors aus einfachen Gattern.

Der Halbaddierer: XOR liefert die Summe, UND den Übertrag.

Wo dir Gatter im IT-Alltag begegnen

In der Programmierung

Die gleichen Verknüpfungen findest du in jeder Programmiersprache. In Python sehen sie so aus:

a = True
b = False

print(a and b)   # UND
print(a or b)    # ODER
print(not a)     # NICHT
print(a != b)    # XOR (ungleich)

Die Ausgabe lautet nacheinander False, True, False und True. Mit Wahrheitswerten sind „und“, „oder“ und „nicht“ im Code dieselben Gatter, die du hier kennenlernst, nur in Software statt in Hardware. In anderen Sprachen schreibt man sie als &&, || und !.

Im Netzwerk: IP-Adresse und Netzmaske

Beim Subnetting spielt die UND-Verknüpfung eine zentrale Rolle. Ein Gerät berechnet seine Netzadresse, indem es seine IP-Adresse bitweise mit der Netzmaske UND-verknüpft. Wo die Maske eine 1 hat, bleibt das Bit der Adresse erhalten, wo sie eine 0 hat, wird das Bit zu 0. Mit der Adresse 192.168.10.77 und der Maske 255.255.255.0 passiert das:

192 AND 255 = 192
168 AND 255 = 168
 10 AND 255 =  10
 77 AND   0 =   0

Netzadresse: 192.168.10.0

Warum das so funktioniert, behandeln wir ausführlich in der Netzwerk-Reihe. Du siehst aber schon jetzt, dass ein einfaches UND-Gatter dahintersteckt.

Im Haus: Die Wechselschaltung

Das Flurlicht, das du von zwei Schaltern an beiden Enden des Flurs bedienen kannst, ist ein XOR. Egal, welchen Schalter du umlegst, der Zustand der Lampe wechselt. Legst du fest, welche Stellung der Schalter als 0 und welche als 1 gilt, brennt die Lampe zum Beispiel dann, wenn die Stellungen unterschiedlich sind. Das entspricht genau der XOR-Tabelle. Je nach Verdrahtung und Benennung kann es auch die Umkehrung davon sein, also ein XNOR.

Typische Fehler

  • ODER im Alltagsverständnis. „Willst du Kaffee oder Tee?“ meint meist eines von beidem. Das logische ODER ist auch bei beiden wahr. Das „Entweder-oder“ entspricht dem XOR.
  • Kreis am Ausgang übersehen. Ein UND mit Kreis ist ein NAND, kein UND.
  • Eingänge offen lassen. Ein nicht beschalteter Eingang hat keinen sicheren Pegel. Er kann je nach Störungen mal als 0, mal als 1 gelesen werden. Legst du ihn fest auf 0 oder 1, etwa über einen Widerstand nach Masse oder Versorgungsspannung, ist der Zustand sicher.
  • Ausgang und Eingang verwechseln. Ein Gatter hat eine klare Richtung. Signale laufen von links nach rechts, vom Eingang zum Ausgang.
  • Laufzeiten vergessen. Ein reales Gatter reagiert nicht augenblicklich. Es braucht eine sehr kurze Zeit, die Gatterlaufzeit. In schnellen Schaltungen kann das eine Rolle spielen.

Zum Üben

  1. Welchen Wert hat der Ausgang eines UND-Gatters bei A = 1 und B = 0?
  2. Welchen Wert hat ein NOR-Gatter bei A = 0 und B = 0?
  3. Was liefert ein XOR-Gatter bei A = 1 und B = 1?
  4. Was liefert ein NAND-Gatter bei A = 1 und B = 1?
  5. Wie baust du aus einem NAND-Gatter ein NICHT-Gatter?
  6. Welches Gatter beschreibt eine Wechselschaltung mit zwei Schaltern?
  7. Was liefert ein Halbaddierer bei A = 1 und B = 1 für Summe und Übertrag?

Lösungen: (1) 0, denn bei UND müssen alle Eingänge 1 sein. (2) 1, denn bei NOR muss kein Eingang 1 sein. (3) 0, weil die Eingänge gleich sind. (4) 0, denn UND wäre 1, und NAND kehrt um. (5) Beide Eingänge zusammenschalten. (6) XOR. (7) Summe 0, Übertrag 1, also das Ergebnis 10 in Binär.

Das solltest du dir merken

  • Ein Logikgatter verknüpft binäre Eingänge nach einer festen Regel zu einem Ausgang und hat kein Gedächtnis.
  • UND ist 1, wenn alle Eingänge 1 sind. ODER ist 1, wenn mindestens einer 1 ist. NICHT kehrt um.
  • NAND und NOR sind die Umkehrungen von UND und ODER. Der Kreis am Ausgang zeigt die Umkehrung.
  • XOR ist 1, wenn die Eingänge verschieden sind. Es bildet das Summenbit beim Addieren.
  • NAND und NOR sind Universalgatter: Mit ihnen lassen sich alle anderen Gatter bauen.
  • Der Halbaddierer besteht aus XOR und UND.

Als Nächstes schauen wir uns die drei Grundverknüpfungen genauer an, mit Beispielen und Schaltungen: UND, ODER, NICHT. Später folgen die Wertetabellen, mit denen du auch komplexere Schaltungen prüfst.

Weiterlesen