# Logikgatter

Ein Logikgatter, auch nur Gatter (englisch (logic) gate) ist eine Anordnung (heutzutage praktisch immer eine elektronische Schaltung) zur Realisierung einer booleschen Funktion, die binäre Eingangssignale zu einem binären Ausgangssignal verarbeitet. Die Eingangssignale werden durch Implementierung logischer Operatoren, wie der Konjunktion (Und-Gatter), der Disjunktion (Oder-Gatter), der Kontravalenz (Exklusiv-Oder-Gatter) oder der Negation (Nicht-Gatter) zu einem einzigen logischen Ergebnis umgewandelt und auf das Ausgangssignal abgebildet. Neben den genannten Gatterfunktionen sind auch die Entsprechungen mit negiertem Ausgang zu nennen: NAND-Gatter (Nicht-Und), NOR-Gatter (Nicht-Oder), XNOR-Gatter (Nicht-Exklusiv-Oder); deutsche Bezeichnungen der letztgenannten Gatter sind unüblich.
Prinzipiell lassen sich alle logischen Verknüpfungen als Gatter realisieren. Mehrere Logikgatter kann man beispielsweise zu einem Flipflop, Latch oder Multiplexer zusammenschalten, aus mehreren Flipflops kann man Datenspeicher und Zähler erstellen, und aus mehreren dieser Schaltungen kann man zum Beispiel einen Mikroprozessor zusammenstellen. Einzelne Logikgatter werden als integrierter Schaltkreis (IC) angeboten; in komplexeren Schaltungen kommen sie mitunter innerhalb eines ICs zig-millionenfach vor. Sie lassen sich aber auch aus diskreten elektronischen Bauelementen, mittels Schalter oder Relais aufbauen oder gar mittels fluidischen Bauelementen darstellen. Ebenfalls gibt es in historischen Rechenmaschinen mechanische Aufbauten.
Zur Implementierung und Vereinfachung einer komplexen logischen Funktion wird die so genannte Schaltalgebra angewandt.
Die Anzahl von Gatteräquivalenten dient als Maß für die logische Komplexität einer Schaltung.

## Technologie

Für die technische Implementierung gibt es trotz gleicher Operation unterschiedliche Möglichkeiten. Heutzutage bestehen Schaltungen für Logikgatter, mit wenigen Ausnahmen, ausschließlich aus Transistoren. Das Signal repräsentiert die logischen Zustände durch zwei Spannungswerte, die gemeinhin mit „0“ oder „1“, „low“ oder „high“ (kurz „L“ oder „H“) bezeichnet werden; erstere erlauben auch eine Interpretation als Binärziffern. Für den Spannungswert sind Grenzen definiert, innerhalb derer die Transistoren – die in ihren Eigenschaften Produktionstoleranzen ausgesetzt sind – entweder sicher auf leitend oder sicher auf sperrend umschalten. Das Ausgangssignal (das das Resultat der Operation repräsentiert) kann wiederum an die Eingänge anderer Gatter angeschlossen werden; dadurch lassen sich komplexere, vielseitige Schaltungen erstellen.
Elektronische Gatter sind als TTL-, CMOS- oder BiCMOS-Bausteine in der Form einzelner integrierter Schaltkreise für wenige Cent erhältlich. Sie basieren grundsätzlich auf den beiden Transistor-Familien der Bipolartransistoren (TTL) und der Feldeffekttransistoren, genauer der MOSFETs (CMOS), sowie auf der Kombination aus beiden Familien (BiCMOS). Sie bilden den Kern von Mikroprozessoren, oder sind in Tausenden per Software in FPGA- oder PLD-ICs programmierbar. Von besonderer Bedeutung sind hierbei die NAND- und NOR-Gatter, da man alle binären Funktionen nach Quine/McCluskey auf die drei Grundelemente AND, OR und NOT zurückführen kann. Wiederum kann OR und NOT mit NAND-Gattern dargestellt werden, oder AND und NOT aus NOR-Gattern. Man kann somit jede logische Schaltung allein durch NAND- oder NOR-Bausteine realisieren, wenn man die Gatter-Durchlaufzeiten und die Signalflankenzeiten hinnehmen kann.

## Geschichte

Mathematisch exakt wurde das Binärsystem zuerst von Gottfried Wilhelm Leibniz beschrieben (Veröffentlichung im Jahre 1705), wobei Leibniz auch erläuterte, wie unter Verwendung dieses Systems die Prinzipien der Arithmetik und Logik kombiniert werden können.
Die ersten Logikgatter wurden noch mechanisch realisiert. 1837 entwarf der englische Erfinder Charles Babbage mit der Analytical Engine eine Rechenmaschine, die heute als wichtiger Schritt in der Geschichte des Computers gilt. Seine „logischen Gatter“ arbeiteten auf Grundlage mechanischer Reaktionen, während später bereits elektromagnetische Relais verwendet wurden.
1891 meldete der US-Amerikaner Almon Strowger eine „Einheit, die einen Logikgatter-Schalterstromkreis enthält“ zum Patent an, die sich jedoch bis in die 1920er Jahre nicht etablieren konnte. 1898 begann der Erfinder Nikola Tesla mit der Archivierung und Verfeinerung solcher Einheiten und setzte den Einsatz von Elektronenröhren anstatt Relais durch. Lee De Forest änderte das Schaltungskonzept der Flemingschen Elektronenröhre im Jahr 1907 schließlich derart, dass es als Und-Gatter verwendet werden konnte.
Der österreichische Philosoph Ludwig Wittgenstein führte 1921 im Theorem 5.101 seiner Abhandlung Tractatus Logico-Philosophicus die erste Wahrheitstabelle ein, jedoch ohne sie so zu nennen. Walther Bothe, der Erfinder der Koinzidenzschaltung, erhielt den Nobelpreis (1954) zum Teil für das erste moderne elektronische Und-Gatter aus dem Jahre 1924. Konrad Zuse entwarf und baute elektromechanische Logikgatter für seinen Computer Z1 (von 1935 bis 1938).
Der US-amerikanische Mathematiker Claude Elwood Shannon fundierte 1937 die Überlegungen Wittgensteins mit der Einführung der Booleschen Algebra in der Auswertung und Gestaltung von Stromkreisschaltungen.
Helmut Schreyer, der 1941 über Schaltungstechnik promoviert hatte, baute 1942 versuchsweise eine elektronische Rechenanlage mit 100 Röhren und 1944 einen elektronischen Übersetzer von Dezimal- in Binärzahlen.
Das erste integrierte Logikgatter geht auf Jack Kilby im Jahr 1958 zurück und umfasste etwa zehn Bauteile. Zehn Jahre später fertigte Texas Instruments Schaltkreise in Transistor-Transistor-Logik (TTL-Schaltkreise, Serie 74xx) in Großserie. Schnell wurden sie zur Basis der Industrieautomation.
Gegenwärtige Forschungsprojekte beschäftigen sich mit molekularen Logikgattern.

## Wahrheitstabelle

Die möglichen Ausgangszustände eines Logikgatters können in Abhängigkeit von den Eingangszuständen in einer Wahrheitstabelle dargestellt werden. Sie listet alle möglichen Kombinationen der Eingangssignale auf und liefert die dazugehörigen Ausgangssignale. Aus dieser kann man logische Formeln relativ einfach herauslesen. Die einzelnen Zeilen mit denselben Ausgangswerten werden bei der disjunktiven Normalform (1 als Ergebnis) mit logisch oder und die einzelnen Eingänge mit logisch und verknüpft. Bei der konjunktiven Normalform (0 als Ergebnis) ist es umgekehrt. Um eine kompakte Formel zu erhalten, kann man ein KV-Diagramm (siehe unten) verwenden.

## KV-Diagramm

Das Karnaugh-Veitch-Diagramm ist eine einfache Möglichkeit, aus der disjunktiven oder konjunktiven Normalform eine möglichst kompakte, logische Formel zu bilden. Durch sinnvolles Zusammenfassen von Nullen oder Einsen und „günstiges“ Interpretieren der redundanten Felder („leere“ Felder, die keinen Einfluss auf die Funktion haben) entsteht diese Kompaktform.

## Typen von Logikgattern und Symbolik

Logikgatter werden mit Schaltsymbolen bezeichnet, die nach unterschiedlichen, mehr oder weniger parallel existierenden Standards definiert sind.
| Name | Sprechweise (nach DIN 66000) | Funktion | Symbol in Schaltplan | Symbol in Schaltplan | Symbol in Schaltplan | Wahrheits­tabelle | Wahrheits­tabelle | Wahrheits­tabelle |
| Name | Sprechweise (nach DIN 66000) | Funktion | IEC 60617-12 : 1997 & ANSI/IEEE Std 91/91a-1991 | ANSI/IEEE Std 91/91a-1991 | DIN 40700 (vor 1996) | Wahrheits­tabelle | Wahrheits­tabelle | Wahrheits­tabelle |
| Name | Sprechweise (nach DIN 66000) | Funktion | IEC 60617-12 : 1997 & ANSI/IEEE Std 91/91a-1991 | ANSI/IEEE Std 91/91a-1991 | DIN 40700 (vor 1996) | A | B | Y |
| Und-Gatter (AND) | a und b | $Y=A\wedge B$ $Y=A\cdot B$ $Y=A\,B$ $Y=A\,\&\,B$ | | | | 0 | 0 | 0 |
| Und-Gatter (AND) | a und b | $Y=A\wedge B$ $Y=A\cdot B$ $Y=A\,B$ $Y=A\,\&\,B$ | | | | 0 | 1 | 0 |
| Und-Gatter (AND) | a und b | $Y=A\wedge B$ $Y=A\cdot B$ $Y=A\,B$ $Y=A\,\&\,B$ | | | | 1 | 0 | 0 |
| Und-Gatter (AND) | a und b | $Y=A\wedge B$ $Y=A\cdot B$ $Y=A\,B$ $Y=A\,\&\,B$ | | | | 1 | 1 | 1 |
| Oder-Gatter (OR) | a oder b | $Y=A\vee B$ $Y=A+B\,$ | | | | 0 | 0 | 0 |
| Oder-Gatter (OR) | a oder b | $Y=A\vee B$ $Y=A+B\,$ | | | | 0 | 1 | 1 |
| Oder-Gatter (OR) | a oder b | $Y=A\vee B$ $Y=A+B\,$ | | | | 1 | 0 | 1 |
| Oder-Gatter (OR) | a oder b | $Y=A\vee B$ $Y=A+B\,$ | | | | 1 | 1 | 1 |
| Nicht-Gatter (NOT) | nicht a | $Y={\overline {A}}$ $Y=\neg A$ $Y={\tilde {A}}$ | | | | 0 | – | 1 |
| Nicht-Gatter (NOT) | nicht a | $Y={\overline {A}}$ $Y=\neg A$ $Y={\tilde {A}}$ | | | | 1 | – | 0 |
| NAND-Gatter (NICHT UND) (NOT AND) | a nand b | $Y={\overline {A\wedge B}}$ $Y=A\;\;\!\!{\overline {\wedge }}\;\;\!\!B$ $Y={\overline {A\,B}}$ $Y=A\;\;\!\!|\;\;\!\!B$ | | | | 0 | 0 | 1 |
| NAND-Gatter (NICHT UND) (NOT AND) | a nand b | $Y={\overline {A\wedge B}}$ $Y=A\;\;\!\!{\overline {\wedge }}\;\;\!\!B$ $Y={\overline {A\,B}}$ $Y=A\;\;\!\!|\;\;\!\!B$ | | | | 0 | 1 | 1 |
| NAND-Gatter (NICHT UND) (NOT AND) | a nand b | $Y={\overline {A\wedge B}}$ $Y=A\;\;\!\!{\overline {\wedge }}\;\;\!\!B$ $Y={\overline {A\,B}}$ $Y=A\;\;\!\!|\;\;\!\!B$ | | | | 1 | 0 | 1 |
| NAND-Gatter (NICHT UND) (NOT AND) | a nand b | $Y={\overline {A\wedge B}}$ $Y=A\;\;\!\!{\overline {\wedge }}\;\;\!\!B$ $Y={\overline {A\,B}}$ $Y=A\;\;\!\!|\;\;\!\!B$ | | | | 1 | 1 | 0 |
| NOR-Gatter (NICHT ODER) (NOT OR) | a nor b | $Y={\overline {A\vee B}}$ $Y=A\;\;\!\!{\overline {\vee }}\;\;\!\!B$ $Y={\overline {A+B}}$ $Y=A-B$ | | | | 0 | 0 | 1 |
| NOR-Gatter (NICHT ODER) (NOT OR) | a nor b | $Y={\overline {A\vee B}}$ $Y=A\;\;\!\!{\overline {\vee }}\;\;\!\!B$ $Y={\overline {A+B}}$ $Y=A-B$ | | | | 0 | 1 | 0 |
| NOR-Gatter (NICHT ODER) (NOT OR) | a nor b | $Y={\overline {A\vee B}}$ $Y=A\;\;\!\!{\overline {\vee }}\;\;\!\!B$ $Y={\overline {A+B}}$ $Y=A-B$ | | | | 1 | 0 | 0 |
| NOR-Gatter (NICHT ODER) (NOT OR) | a nor b | $Y={\overline {A\vee B}}$ $Y=A\;\;\!\!{\overline {\vee }}\;\;\!\!B$ $Y={\overline {A+B}}$ $Y=A-B$ | | | | 1 | 1 | 0 |
| XOR-Gatter (Exklusiv-ODER, Antivalenz) (EXCLUSIVE OR) | a xor b | $Y=A\;\;\!\!{\underline {\lor }}\;\;\!\!B$ $Y=A\oplus B$ | | | oder | 0 | 0 | 0 |
| XOR-Gatter (Exklusiv-ODER, Antivalenz) (EXCLUSIVE OR) | a xor b | $Y=A\;\;\!\!{\underline {\lor }}\;\;\!\!B$ $Y=A\oplus B$ | | | oder | 0 | 1 | 1 |
| XOR-Gatter (Exklusiv-ODER, Antivalenz) (EXCLUSIVE OR) | a xor b | $Y=A\;\;\!\!{\underline {\lor }}\;\;\!\!B$ $Y=A\oplus B$ | | | oder | 1 | 0 | 1 |
| XOR-Gatter (Exklusiv-ODER, Antivalenz) (EXCLUSIVE OR) | a xor b | $Y=A\;\;\!\!{\underline {\lor }}\;\;\!\!B$ $Y=A\oplus B$ | | | oder | 1 | 1 | 0 |
| XNOR-Gatter (Exklusiv-Nicht-ODER, Äquivalenz) (EXCLUSIVE NOT OR) | a Doppelpfeil b | $Y={\overline {A\;\;\!\!{\underline {\lor }}\;\;\!\!B}}$ $Y=A\;\;\!\!{\overline {\underline {\lor }}}\;\;\!\!B$ $Y={\overline {A\oplus B}}$ $Y=A\odot B$ | | | oder | 0 | 0 | 1 |
| XNOR-Gatter (Exklusiv-Nicht-ODER, Äquivalenz) (EXCLUSIVE NOT OR) | a Doppelpfeil b | $Y={\overline {A\;\;\!\!{\underline {\lor }}\;\;\!\!B}}$ $Y=A\;\;\!\!{\overline {\underline {\lor }}}\;\;\!\!B$ $Y={\overline {A\oplus B}}$ $Y=A\odot B$ | | | oder | 0 | 1 | 0 |
| XNOR-Gatter (Exklusiv-Nicht-ODER, Äquivalenz) (EXCLUSIVE NOT OR) | a Doppelpfeil b | $Y={\overline {A\;\;\!\!{\underline {\lor }}\;\;\!\!B}}$ $Y=A\;\;\!\!{\overline {\underline {\lor }}}\;\;\!\!B$ $Y={\overline {A\oplus B}}$ $Y=A\odot B$ | | | oder | 1 | 0 | 0 |
| XNOR-Gatter (Exklusiv-Nicht-ODER, Äquivalenz) (EXCLUSIVE NOT OR) | a Doppelpfeil b | $Y={\overline {A\;\;\!\!{\underline {\lor }}\;\;\!\!B}}$ $Y=A\;\;\!\!{\overline {\underline {\lor }}}\;\;\!\!B$ $Y={\overline {A\oplus B}}$ $Y=A\odot B$ | | | oder | 1 | 1 | 1 |
Früher waren auf dem europäischen Kontinent die deutschen Symbole (rechte Spalte) verbreitet; im englischen Sprachraum waren und sind die amerikanischen Symbole (mittlere Spalte) üblich. Die IEC-Symbole sind international auf beschränkte Akzeptanz gestoßen und werden in der amerikanischen Literatur (fast) durchgängig ignoriert.