Logische Schaltung und Wahrheitstabelle
Dieses Praktikum ist nicht unbedingt notwendig, um logische Schaltungen aufzubauen. Vielmehr gibt es einen kleinen Einblick in das Verfahren zur Erstellung von Schaltungen aus Wahrheitstabellen.
Grundsätzlich können wir aus einer Wahrheitstabelle die zugehörige NAND-Schaltung selbst entwickeln. Dies führt in einigen Fällen zu guten Ergebnissen. Meistens wird die Schaltung aber wesentlich komplexer als mit einem Programm wie LogicBuddy.
Als Beispiele sehen wird XOR und die Alarmanlage an.
NAND-Schaltung für XOR
Wir beginnen mit der Tabelle:
A | B | X |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Tabelle 1: XOR
Wir erweitern die Tabelle um die Spalte Zwischenergebnis
- In dieser Spalte wird für jede Zeile mit dem Ergebnis X=1 eingetragen:
- Für jede Eingangsvariable E mit 0 : (NOT E).
- Für jede Eingangsvariable E mit 1 : E.
- Die Eingangsvariablen werden mit NAND verknüpft.
A | B | X | Zwischenergebnis |
0 | 0 | 0 | |
0 | 1 | 1 | NAND ( (NOT A), B ) |
1 | 0 | 1 | NAND ( A, (NOT B) ) |
1 | 1 | 0 |
- Jedes Zwischenergebnis wird mit NAND verknüpft.
X = NAND ( NAND ( (NOT A), B ), NAND ( A, (NOT B) ) )
Diese logische Funktion benötigt nur NAND- und NOT-Gatter.
NAND-Schaltung für die Alarmanlage
Wir beschränken uns auf A.
F | T | S | A | Zwischenergebnis |
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 1 | NAND ( (NOT F), (NOT T), S ) |
0 | 1 | 0 | 0 | |
0 | 1 | 1 | 1 | NAND ( (NOT F), T, S ) |
1 | 0 | 0 | 0 | |
1 | 0 | 1 | 0 | |
1 | 1 | 0 | 0 | |
1 | 1 | 1 | 1 | NAND ( F, T, S ) |
Das ergibt:
A = NAND ( NAND ( NOT F, NOT T, S ), NAND ( NOT F, T, S ), NAND ( F, T, S ) )
Eine minimale logische Funktion
- kann nicht weiter vereinfacht werden.
Die obige Funktion A ist korrekt, ist aber nicht minimal wie:
A = NAND ( NAND ( NOT(F), S ), NAND ( T, S ) )
Die minimale Version benötigt ein NAND-Gatter und einen Inverter weniger.
- Eine minimale Funktion kann man z.B. mit Karnaugh-Veitch-Diagrammen berechnen
- oder mit LogicBuddy
Regeln
Für jede Eingangsvariable E, die 0 ist, NOT E aufschreiben.
Für jede Eingangsvariable E, die 1 ist, E aufschreiben.
Für jede dieser Zeilen werden alle Eingangsvariablen mit einem NAND verknüpft.
Dies ist der Ausdruck für die Zeile Zx = NAND ( .... ).
Software