Altifigence Academy

9 / 63 · Konzept

Karnaugh-Diagramme und Bedingungen für Don’t-cares

Mit Gray-Code-Nachbarschaft Ausdrücke vereinfachen und Annahmen über unbenutzte Eingänge festhalten.

Von der Wahrheitstabelle zu Implementierungskosten

Die WahrheitstabelleWahrheitstabelle Vollständige Liste aller Eingangskombinationen mit jeweiligem Ausgang. Zeitliche Änderungen werden gesondert im Zeitdiagramm geprüft. Mehr erfahren legt die Funktion fest; die Logikminimierung entscheidet über ihren Ausdruck. Bei drei Eingängen sei die Mintermnummer die Binärzahl ABC mit A als höchstwertigem Bit.

F(A,B,C)=Σm(1,3,4,5,7)F(A,B,C)=\Sigma m(1,3,4,5,7)

Minterm 4 ist zum Beispiel ABC=100. Die nicht aufgeführten Zeilen 0, 2 und 6 liefern 0. Statt stets fünf Produktterme zu implementieren, können wir Terme zusammenfassen, die sich nur in einem Bit unterscheiden.

Ein Karnaugh-Diagramm ist eine umsortierte Wahrheitstabelle

Die Spalten stehen in der Reihenfolge BC=00, 01, 11, 10. Diese Gray-Code-Reihenfolge ändert zwischen Nachbarn genau ein Bit. Auch die äußerste linke und rechte Spalte sind benachbart.

A / BC00011110
00110
11110

Gruppen müssen Rechtecke aus 1,2,4,8,…1,2,4,8,\ldots Zellen sein. Eine enthaltene Null würde die Funktion ändern. Dieselbe Eins darf mehreren Gruppen angehören.

  1. Die vier Zellen der beiden C=1-Spalten bleiben 1, während A und B wechseln. Übrig bleibt C.
  2. In der A=1-Zeile wechseln zwischen BC=00 und 01 nur die C-Werte. Übrig bleibt AB‾A\overline B.
  3. Das OR beider Gruppen deckt alle Einsen ab und vermeidet alle Nullen.
F=C+AB‾F=C+A\overline B

Vergleichen Sie Original und minimierten Ausdruck bei allen acht Eingaben. Prüfen Sie getrennt, dass der Ausdruck kürzer geworden ist und dass die Funktion erhalten bleibt.

Der folgende Ablauf überträgt die beiden Gruppen in einen Ausdruck. In der C-Gruppe wechseln A und B, in der Zweiergruppe C; genau diese Variablen entfallen.

Variablen, die in der Gruppe entfallen
  1. m1,3,5,7: C=1 auch bei Änderungen von A und B
  2. m4,5: Bei A=1, B=0 ändert sich nur C
  3. Summe der beiden Gruppen: F = C + A · NOT B

Don't-care ist Optimierungsfreiheit unter einer Eingangsannahme

Angenommen, der Systemvertrag schließt ABC=000 aus. Setzen wir diese Zelle auf X, darf sie je nach Bedarf als 0 oder 1 verwendet werden. Eine Vierergruppe mit B=0 ergibt einen einfacheren Ausdruck:

Fdc=C+B‾F_{\mathrm{dc}}=C+\overline B

Der neue Ausdruck liefert für ABC=000 eine 1 und unterscheidet sich damit von der ursprünglichen vollständigen Wahrheitstabelle. Eine Aussage über Äquivalenz muss also die Bedingung ABC≠000 einschließen. Kann 000 bei Initialisierung oder Fehlerbehebung auftreten, verletzt diese Optimierung möglicherweise die Systemanforderungen.

Ein minimaler Ausdruck ist kein minimaler Chip

Weniger Literale garantieren in einer konkreten Standardzellbibliothek keine optimale Fläche, Verzögerung oder Leistung. Lasten, Fan-out, verfügbare komplexe Gatter, Verdrahtung und Glitches beeinflussen das Ergebnis. Hier sichern wir funktionale Äquivalenz und Eingangsannahmen ab; physische Kosten beurteilen wir anhand von Synthese- und Timing-Ergebnissen.

Weiterführend: MIT OpenCourseWare — Combinational Logic

Übung · Überlappende Gruppen und Don't-care-Bedingungen prüfen

Von C und A·NOT B zu einer größeren Gruppe

F = C + A · ¬B

Wahrheitstabelle mit drei Eingängen · X ist ein nicht festgelegter Ausgang
ABCF
0000
0011
0100
0111
1001
1011
1100
1111
  1. Wählen Sie die C-Gruppe. Innerhalb der vier Zellen ändern sich A und B; nur C bleibt.
  2. Wählen Sie A·¬B. Die Gruppe deckt m4 und m5 ab; m5 überschneidet sich mit C. Überlappung ist erlaubt, eine Null in der Gruppe nicht.
  3. Klicken Sie zweimal auf m0: 0 → 1 → X. Mit X ist die Spezifikation unvollständig und enthält d(0). Die B=0-Gruppe wird größer; der Ausdruck lautet C+B‾C+\overline B.
  4. Klicken Sie erneut auf m0, um 0 wiederherzustellen. Mit der ursprünglichen Anforderung muss die größere Gruppe verschwinden.

Eine Gruppenauswahl ändert keinen Wert. Der vollständige Ausdruck deckt weiterhin alle Einsen ab; der Rahmen hebt nur den gerade betrachteten Term hervor. „Minimal“ bedeutet hier zuerst möglichst wenige Produktterme, danach möglichst wenige Literale; bei mehreren Lösungen wird eine angezeigt.

Selbst ausprobieren

m0 wurde auf X gesetzt und F=C+NOT B implementiert. Nun kann beim Reset ABC=000 auftreten und F muss dann 0 sein. Darf die Optimierung bleiben?

Erklärung lesen

Nein. Die neue Anforderung legt m0 wieder auf 0 fest. Der optimierte Ausdruck liefert dort 1 und verletzt sie. Es ist wieder ein Ausdruck wie C+A·NOT B nötig, der alle festgelegten Zeilen erfüllt.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.