Mit Hilfe eines Karnaugh-Veitch-Diagramms oder kurz KV-Diagramms lassen sich logische Aussagen einer Wahrheitstabelle mit optimal wenigen Verknüpfungen (UND, ODER, NICHT) realisieren, um sie mit wenig Aufwand in elektronischen Schaltungen realisieren zu können.
Logik-Schaltungen werden gebraucht, wenn etwas in Abhängigkeit von mehreren Bedingungen geschaltet werden soll.
Beispiel: Die Start-Stop-Automatik eines Fahrzeugs mit Verbrennungsmotor soll diesen immer dann ausschalten, wenn er nicht gebraucht wird, das Fahrzeug also zum Beipiel an einer roten Ampel warten muss.
Der gewünschte Zustand X des Motors ist die Ausgangsgröße einer digitalen Schaltung: Wenn X=1 soll der Motor eingeschaltet sein, bei X=0 ist er ausgeschaltet.
Die Bedingungen, von denen X abhängt, sind die Eingangsgrößen der Schaltung, beispielsweise:
A = 1, wenn Zündschlüssel in Postion "ein", sonst A = 0
B = 0, wenn die Geschwindigkeit kleiner als 3 km/h, sonst B = 1
C = 1, wenn die Kupplung getreten ist, sonst C = 0
D = 1, wenn die Batterie geladen werden muss (dann soll der Motor zum Laden weiterlaufen, damit sichergestellt ist, dass er auch wieder gestartet werden kann), sonst D = 0
E = 1, wenn die Außentemperatur kleiner als 4°C ist (dann soll der Motor weiterlaufen, um den Innenraum zu heizen)
F = 0, wenn der Motor auf Betriebstemperatur ist, sonst F = 1
Um eine solche Schaltung zu entwerfen, erstellt man zunächst eine Wahrheitstabelle, in der für jede mögliche Kombination der Eingangsgrößen eingetragen wird, welchen Wert die Ausgangsgröße annehmen soll. Neben den beiden Werten 0 und 1 gibt es dabei noch die Möglichkeit, dass eine Kombination irrelevant ist, d. h. es ist egal ob X den Wert 0 oder 1 annimmt. Solche "egal" oder "don't care" Fälle werden ebenfalls eingetragen, weil sie unter Umständen eine Vereinfachung der Schaltung ermöglichen. Hier werden sie mit einem "X" markiert.
Man kann nun die sogenannte Disjunktive Normalform (DNF) aus der Wahrheitstabelle ablesen, indem man für jede ihrer Zeilen, in denen X=1 eingetragen ist, die 1-Zustände aller Eingangsgrößen mit UND verknüpft: Ist eine Eingangsgröße gleich Eins wird diese verknüpft, ist sie gleich Null, wird ihre Negation verknüpft. Beispiel für eine Zeile, in der X=1, A=1, B=0 und C=1 sind: A UND B UND C
Alle diese Disjunktionen werden dann ODER verknüpft.
Man könnte nun diese DNF in eine Schaltung umsetzen, allerdings ist die Zahl der Vernüpfungen (UND, ODER, NICHT) und damit der benötigten Schaltelemente größer als sie sein müsste, denn es können Verknüpfungen der Art A UND B OR A UND B vorkommen, bei denen die Eingangsgröße B keine Rolle spielt.
Solche Fälle findet man, indem man die Wahrheitstabelle in einem KV-Diagramm anordnet.
Die Vorgehensweise ist hier in einem Skript der Fachschule für Mechatroniktechnik Kempten (Allgäu) ausführlich beschrieben.
(Beachte, dass in diesem Dokument die Zeilennummern nicht den dezimalen Werten entsprechen!)
Das JavaScript-Programm auf dieser Seite verwendet das Quine-McCluskey-Verfahren, um die DNF zu optimieren.
Das Verfahren ist nicht schwierig zu verstehen, aber etwas umständlich und unübersichtlich. Deswegen habe ich die Implementierung des Algorithmus mit Hilfe von ChatGPT vorgenommen. Wirklich beeindruckend, was damit möglich ist!
Um auf dieser Seite eine Wahrheitstabelle zu erstellen, wählen Sie unten zuerst die Anzahl der Eingangsgrößen aus!
Das Programm erzeugt dann zum einen eine Wahrheitstabelle, in der die Ausgangsgröße X in allen Zeilen zunächst mit zufälligen Werten vorbelegt ist.
Mit Hilfe der Auswahlfelder in der Spalte X können Sie jetzt die gewünschten Ausgangswerte einstellen:
In den Zeilen, in denen Sie X ändern wollen, wählen Sie entweder Null oder Eins oder X, wenn der Wert von X keine Rolle spielt ("don't care").
Wenn Sie die Anzahl Eingangsgrößen danach nochmal ändern, bleiben die eingegebenen Werte erhalten. Sie gehen nur beim Neuladen der Seite verloren.
Neben der Wahrheitstabelle wird ein KV-Diagramm erzeugt, in das ihre Einträge für X übernommen werden.
Wenn Sie mit der Maus über die Wahrheitstabelle oder das KV-Diagramm fahren, wird Ihnen durch rote Hinterlegung angezeigt, welche KV-Diagrammzelle zur jeweiligen Zeile der Wahrheitstabelle gehört bzw. umgekehrt.
Durch Klicken auf eine Zelle des KV-Diagramms setzen Sie den Eingabe-Fokus auf das zugehöige Auswahlfeld der Wahrheitstabelle und Sie können den gewünschten Wert mit der Tastatur eingeben. Auf diese Weise können Sie die Belegung auch anhand des KV-Diagramms vornehmen, wenn Sie bestimmte Muster testen wollen.
Nachdem Sie die Wahrheitstabelle vollständig ausgefüllt haben, klicken Sie unten auf die Schaltfläche Minimale Logikfunktion berechnen!
Das Programm gibt nun zunächst die DNF aus und berechnet dann die optimale Funktion zur Realisierung der Ausgangswerte von X.
V bedeutet dabei eine ODER-Verknüpfung, A B bedeutet "A UND B" und A bedeutet "NICHT A", also die Negation von A.
Wenn Sie mit der Maus über die einzelnen Terme der DNF fahren, werden Ihnen die zugehörige Zeile in der Wahrheitstabelle und die zugehörige Zelle im KV-Diagramm angezeigt.
Fahren Sie mit der Maus über einen Term der minimierten Funktion, zeigen Ihnen Markierungen in der Wahrheitstabelle, im KV-Diagramm und in der DNF, welche Konstellationen mit diesem einen Term abgedeckt werden. (Ggf. müssen Sie die Ansicht Ihres Browsers euf einen kleineren Zoom-Faktor einstellen, um alles gleichzeitig sehen zu können.)
Nachdem Sie die minimierte Logikfunktion berechnet haben, können Sie weiterhin sowohl die Anzahl Eingangsgrößen als auch die X-Werte in der Wahrheitstabelle ändern; die berechneten DNF und minimierte Logik-Funktion werden bei jeder Änderung aktualisiert.
Bitte wählen Sie die Anzahl der Eingangsgrößen:
Wenn Sie in der Spalte X alle gewünschten Ausgangswerte eingestellt haben, klicken Sie auf nachstehende Schaltfläche:
Die Disjunktive Normalform (DNF) einer booleschen Funktion ist eine Form, bei der die Funktion als eine Disjunktion (ODER-Verknüpfung) von Konjunktionen (UND-Verknüpfungen) von Literalen (Variablen oder deren Negationen) dargestellt wird. (ChatGPT, 10.08.2024)
Für die obige Wahrheitstabelle lautet die DNF (Don't-care-Einträge in Klammern):
Fahren Sie mit der Maus über einen Term, um zu sehen, welche Zeile der Wahrheitstabelle und welche Zelle des KV-Diagramms er repräsentiert!
Fahren Sie mit der Maus über einen Term, um zu sehen, welche Zeilen der Wahrheitstabelle und welche Zellen des KV-Diagramms er repräsentiert!
Um eine neue Berechnung zu starten, ändern Sie einfach die Werte in der Wahrheitstabelle.
Leider arbeitet das Programm noch nicht optimal: In einigen Fällen werden im Zusammenhang mit Don't-Care-Einträgen mehr Terme angezeigt als nötig. (ChatGPT liefert eben auch keine optimalen Antworten!) Ich arbeite an einer Lösung.