../../../icons/Logo.pngPraktische Elektronik


Logische Funktionen mithilfe von Wahrheitstabellen in eine Form bringen, die mit NAND-Gattern aufgebaut werden kann.


list.png

NAND-Schaltung aus Wahrheitstabelle

Fortsetzung

Wir haben im ersten Praktikum NAND-Schaltung aus Wahrheitstabelle ein Verfahren angewendet, mit dem wir die Wahrheitstabelle in eine Schaltung mit NAND-Gattern umgewandelt haben.

Dieses Verfahren wenden wir nun auf eine etwas komplexere Logik an.

Beispiel Alarmanlage

Wir möchten eine einfache Alarmanlage bauen. Sie soll ein Fenster und eine Tür überwachen.

  • Mit einem Schalter wird sie scharf geschaltet.
  • Der Alarm wird ausgelöst, wenn das Fenster oder die Tür geöffnet wird, aber nur, wenn die Anlage scharf geschaltet ist.
  • Wenn die Anlage nicht scharf geschaltet ist, wird der Alarm ausgelöst, wenn die Tür geöffnet wird.
  • Wenn Fenster und Tür offen sind, soll eine Warnung ausgelöst werden, auch wenn die Anlage nicht scharf geschaltet ist.
  • An der Tür befindet sich ein Kontakt, der eine 1 erzeugt, wenn die Tür geöffnet wird.
  • Das geöffnete Fenster erzeugt eine 0.
  • Der Schalter gibt eine 1 aus, wenn er scharf geschaltet ist.
Attention >

Entschuldigung

Die Beschreibung der Alarmanlage ist nicht besonders klar.

  • Aber so ist es in der Praxis:
  • Wir bekommen nicht immer klare Vorgaben.

Wir stellen die Wahrheitstabelle auf

Wir haben drei Eingänge F für Fenster, T für Tür und S für scharf. Die beiden Ausgänge sind A für Alarm und W für Warnung.

Mit dem Programm LogicBuddy können wir die Wahrheitstabelle einfach erstellen und die Logik berechnen.

Als erstes teilen wir LogicBuddy mit, wie groß unsere Wahrheitstabelle ist. Wir haben drei Eingangsvariablen und zwei Funktionen (Ausgangsvariablen).

Die erzeugte Tabelle hat 2³ = 2 * 2 * 2 = 8 Zeilen.

Wir müssen noch die Namen unserer Logik eintragen.

Das Erstellen der Wahrheitstabelle ist nicht einfach, aber mit ein wenig Konzentration schaffen wir es:

F T S A W
0 0 0 0 0
0 0 1 1 0
0 1 0 0 1
0 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 0

Tabelle 1: Wahrheitstabelle der Alarmanlage

Die Werte in der Wahrheitstabelle können einfach durch Klicken geändert werden, indem unter A und W die entsprechenden Felder in der Tabelle angeklickt werden.

Bei mehrfachem Klicken erscheint auch der Wert d. Wir ignorieren ihn zunächst und geben nur 0 und 1 ein.

LogicBuddy_Alarm.png
Bild 1: Berechnung mit LogicBuddy

Die logischen Funktionen für A und W werden von LogicBuddy automatisch berechnet und im oberen Feld ausgegeben. Normalerweise wird die Logik mit NAND und NOT verwendet. Wir können sie relativ einfach aufbauen, da wir nur NAND-Gatter verwenden müssen.

LogicBuddy kann die Funktionen auch mit AND und OR sowie NOT ausgeben. In der Kopfleiste von LogicBuddy kann dies über den Knopf "NAND" ausgewählt werden. In der Darstellung "AND OR" wird NOT durch ein ^ abgekürzt.

A =    ( ^F AND S )
    OR (  T AND S ).
W =      ^F AND T.

Wir wenden unser Verfahren an

Die logischen Funktion mit NAND und NOT ist

A = NAND ( NAND ( NOT(F), S ),
           NAND ( T, S )
          ).
W = NOT( NAND ( NOT(F), T )
        ).

Für den Ausgang A benötigen wir ein Gatter mit zwei Eingängen. Außerdem benötigen wir zwei Eingangs-Gatter mit jeweils zwei Eingängen. Für den Eingang F benötigen wir einen Inverter.

Für den Ausgang W brauchen wir nur ein NOT, also einen Inverter. Am Eingang des Inverters befindet sich ein NAND mit zwei Eingängen. Für den Eingang F brauchen wir einen Inverter.

Interessanterweise benötigen wir nur vier NAND-Gatter und zwei Inverter, obwohl wir eine Logik mit drei Eingängen haben und zwei Funktionen realisieren.

  • Ein minimierter logischer Ausdruck ergibt immer eine Schaltung mit möglichst wenigen Gattern und Eingängen.
Alarm.png
Bild 2: Schaltung der Alarmanlage

Wir können das NOT F für die Ausgänge A und W verwenden.

Struktur einer minimierten Schaltung

Die Schaltung der Alarmanlage zeigt, wie eine minimierte logische Schaltung aussieht.

Struktur_minimiert.png
Bild 3: Struktur einer minimierten Schaltung
Attention >

Drei Gatter

Maximal drei Gatter sind hintereinander angeordnet:

  • Ein NOT-Gatter für einen invertierten Eingang
  • Eingangsinverter.
  • z.B. U2A für NOT F.
  • Der Eingangsinverter ist nicht erforderlich, wenn der Eingang nicht invertiert ist, z.B. S.
  • Ein Eingangs-NAND-Gatter, das Eingänge bzw. invertierte Eingänge zusammenfasst
  • Zusammenfassung von Eingängen.
  • z.B. U1B für NAND ( NOT F, S )
  • Ein Eingangs-NAND-Gatter ist nicht erforderlich, wenn keine Eingänge zusammenfasst werden.
  • Ein Ausgangs-NAND-Gatter, das Eingangs-NAND-Gatter zusammenfasst.
  • Berechnung des Ausgangs,
  • z.B. U1A für A
  • Das Ausgangs-NAND-Gatter ist nicht erforderlich, wenn die Funktion simpel ist.
Attention >

Ausgänge

Für jeden Ausgang gibt es entweder

  • ein NAND-Gatter, das Eingangs-NAND-Gatter zusammenfasst
  • oder einen Inverter, der ein Eingangs-NAND-Gatter invertiert.
  • z.B. U2B für W
  • oder einen Inverter, der einen Eingang invertiert
  • z.B. X = NOT Y
  • oder direkt zu einem Eingang führt
  • z.B. X = Y
  • oder auf 1 liegt
  • z.B. X = 1
  • oder auf 0 liegt.
  • z.B. X = 0
Attention >

Eingänge

  • Es kann Eingänge geben, die mit NOT invertiert sind.
  • Es gibt NAND-Gatter, die Eingänge bzw. invertierte Eingänge zusammenfassen.

Zusammenfassung

  • Wir haben ein Verfahren kennengelernt, mit dem wir logische Funktionen in minimale Schaltungen mit NAND- und NOT-Gattern umwandeln können.
  • Minimal bedeutet, dass wir mit der kleinstmöglichen Anzahl von Gattern auskommen.
  • Maximal drei Gatter liegen hintereinander:
  • NOT-Gatter für Eingänge,
  • NAND-Gatter, für Eingänge und
  • NAND-Gatter für Ausgänge
  • Wir haben das Programm LogicBuddy verwendet.