Technische Informatik II fr Bachelor Vorlesung 3 Kombinatorische
Technische Informatik II (für Bachelor) Vorlesung 3: Kombinatorische Schaltungen 21. 04. 2008 , v 16 Themen: 1. Beschreibung kombinatorischer Logik 2. Minimierung von Schaltfunktionen Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Schimmler, Prof. Loogen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 1
Schaltnetze Definition: Ein Schaltnetz ist eine technische Realisierung einer Boole‘schen Funktion. Schaltnetze können durch Zusammenschalten von Gattern und Leitungen aufgebaut werden. Schaltnetz mit einem Ausgang: x 1 x 2. . xn Schaltfunktion. . y y = f(X) Anz. Funktionen = 2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) 2 n Seite 2
Schaltfunktion Eingangswerte Ausgangswerte IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 3
Schaltfunktionen x IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) n f(X) m Seite f 4
Beispiel des Schaltnetzes: x 0 x 1 ≠ & x 2 & x 3 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) ≥ 1 y 0 Seite 5
Logische Funktionen von einer Variablen 1 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 6
Logische Funktionen von zwei Variablen(1) Anz. Funktionen = 2 22 =16 f IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 7
Logische Funktionen von zwei Variablen(2) Anz. Funktionen = 2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) 22 =16 Seite 8
Verbreiteten Funktionen bis zwei Variablen grafische Darstellung der verschalteten Logik IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 9
Rechengesetze der Schaltalgebra Grafische Darstellung der verschalteten Logik IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 10
Rechengesetze der Schaltalgebra IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 11
Definition: Ein Produktterm ist eine UND-Verknüpfung von Eingabevariablen, wobei jede Eingabevariable höchstens einmal in invertierter oder in nichtinvertierter Form vorkommen kann. Beispiele für Produktterme: IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 12
Definition: Eine Boole‘sche Funktion ist in Disjunktiver Normalform (DNF), wenn sie aus einer ODERVerknüpfung von Produkttermen besteht. (Sum Of Products: SOP) Beispiele für Funktionen in DNF: IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 13
Definition: Ein Minterm (Vollkonjunktion, minimaler Produktterm) ist ein Produktterm, bei dem alle Eingabevariablen entweder in invertierter oder in nicht-invertierter Form vorkommen. Ein Minterm entspricht einer Zeile in der Wertetabelle der Funktion. Beispiele für Minterme: ( x 0 x 1 x 2 sind alle Eingangsvariablen) ( x 0 ist die einzige Eingangsvariable) hingegen ist kein Minterm, wenn es auch noch eine Eingabevariable x 1 gibt. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 14
Definition: Die Kanonische Disjunktive Normalform (KDNF) einer Boole‘schen Funktion ist eine ODERVerknüpfung aller Minterme, für die Funktion den Wert 1 annimmt. Beispiele für Funktionen in KDNF: Die folgende Funktion ist nicht in KDNF; im zweiten Produktterm taucht das x 1 nicht auf, daher ist es kein Minterm. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 15
Beispiel einer Wertetabelle einer Funktion y 1: x 0 0 1 0 1 y 1 = x 1 0 0 1 1 + y 1 0 0 0 1 1 1 x 2 0 0 1 1 + Minterm + IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 16
Beispiel des Schaltbildes einer Funktion in KDNF: y 1 = x 1 x 0 1 + + + x 2 1 1 & & & ≥ 1 y 1 & IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 17
Definition: Ein Summenterm ist eine ODER-Verknüpfung von Eingabevariablen, wobei jede Eingabevariable höchstens einmal in invertierter oder in nicht-invertierter Form vorkommen kann. Beispiele für Summenterme: IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 18
Definition: Eine Boole‘sche Funktion ist in Konjunktiver Normalform (KNF), wenn sie aus einer UNDVerknüpfung von Summentermen besteht. (Product Of Sums: POS ) Beispiele für Funktionen in KNF: IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 19
Definition: Ein Maxterm (Volldisjunktion) ist ein Summenterm, bei dem alle Eingabevariablen entweder in invertierter oder in nicht-invertierter Form vorkommen. Es gibt für jede Zeile i in einer Wertetabelle der Funktion einen Maxterm, der Menge aller Zeilen außer seiner Zeile i entspricht. Beispiele für Maxterme: hingegen ist kein Maxterm, wenn es auch noch eine Eingabevariable x 1 gibt. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 20
Definition: Die Kanonische Konjunktive Normalform (KKNF) einer Boole‘schen Funktion ist eine UND-Verknüpfung aller Maxterme, für deren Zeile die Funktion den Wert 0 annimmt. Beispiele für Funktionen in KKNF: Die folgende Funktion ist nicht in KKNF; im ersten Summenterm tauchen x 1 und x 2 nicht auf, daher ist es kein Maxterm. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 21
Beispiel einer Wertetabelle einer Funktion: x 0 0 1 0 1 y 1 = x 1 0 0 1 1 x 0 x 1 x 2 0 0 1 1 y 1 0 0 0 1 1 1 + x 0 x 1 x 2 . Maxterm Einzelvariablen werden invertiert im Maxterme! + x 0 x 1 x 2 . IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) . Seite 22
Beispiel des Schaltbildes einer Funktion in KKNF: . y 1 = x 1 x 0 1 . . x 2 1 1 ≥ 1 ≥ 1 & y 1 ≥ 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 23
Beispiel einer Funktion im Auto: Zündung: Z=1 : Zündung an Hitze: H=1 : Temperatur>95 o Pegel: P=1 : ausreichend Wasser Ausgangsfunktion Warnleuchte W Z 0 0 1 1 H 0 0 1 1 P 0 1 0 1 W 0 0 1 0 1 1 Minterm IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 24
Warnleuchten-Funktion in KDNF: H Z 1 P 1 1 & & & ≥ 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) W Seite 25
Minimierung durch Hilfe der Schaltalgebra IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 26
Warnleuchten-Funktion in DMF: Z H P 1 & & ≥ 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) W Seite 27
Hintergrund der logischen Minimierung „ Unit Distance Code“ Schlüsseloperation: AB +AB A (B + B) A Beispiel: Darstellung der Funktion f (x 1, x 2) = m(1, 2, 3) 1 2 3 x 1 x 2 f 0 0 1 1 1 0 1 Brawn Figure 4. 33. Ref. Brown 01 -1 x 2 11 1 x 1 00 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) 10 Die Stelle des Bitwechsels wird gekürzt Seite 28
Hintergrund „ Unit Distance Code“ Darstellung der 3 -Variablen Funktion f (x 1, x 2, x 3) = m(0, 2, 4, 5, 6) (2) (6) --0 (5) 10(0) (4) Ref. : Brawn Figure 4. 33. f (x 1, x 2, x 3) = x 3 + x 1 x 2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 29
Hintergrund „ Unit Distance Code“ Darstellung der 4 -Variablen Funktion f (x 1, x 2, x 3 , x 4) Brawn Figure 4. 33. f (x 1, x 2, x 3 , x 4) = x 2 x 4 + x 1 x 3 + x 2 x 3 x 4 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 30
Karnaugh-Vieth KV-Diagramm: • Rechteckiges Schema • bei n Eingabevariablen 2 n innere Felder. • Ränder so beschriften, dass jede Variable genau die Hälfte des Diagramms abdeckt. • Jede Variable deckt genau den halben Bereich jeder anderen Variablen ab. • Jeder Minterm ist eindeutig durch ein inneres Feld repräsentiert. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 31
Karnaugh-Veith KV-Diagramm: KV-Diagramm Beispiele: b Unit-Distance Kodierung für benachbarte Felder! b Gray Code Zähler: 00 → 01 → 10 (Nur ein Bit wechselt!) a a b Für Funktionen mit 2 Variablen c Für Funktionen mit 3 Variablen a d Minimierungsregel c Für Funktionen mit 4 Variablen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 32
Beispiele: B A A 1 B A 1 C AB 1 1 1 1 C 4 Variablen BC 3 Variablen B 1 1 1 ABC 2 Variablen A BA 1 1 1 CB CA A D CB DB B CB AB 1 1 1 D CB C CD 4 Variablen-Alternativ IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 33
Beispiel für ein KV-Diagramm mit 3 Variablen Beispiel: Warnleuchte: Z 0 0 1 1 H 0 0 1 1 P 0 1 0 1 W 0 0 1 0 1 1 ZPH+ZPH = ZH ZPH+ZPH= ZP P Z 0 1 1 1 0 0 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) H Seite 34
Zusammenfassung: Die Einsen im KV-Diagramm werden zu Blöcken maximaler Größe zusammengefasst. Dabei müssen die Blöcke immer im Raster der Zweierpotenzen beginnen und enden. Eine Zusammenfassung von zwei Blöcken zu einem Block doppelter Größe entspricht einer Anwendung der Vereinfachungsregel: Wenn ein Block (x 0 x 1) und ein zweiter Block (x 0 x 1) beide nur aus Einsen bestehen, liegen diese beiden Blöcke im KV-Diagramm nebeneinander und können zu einem doppelt so großen Block x 0 zusammengefasst werden. Die gegenüberliegenden Ränder eines KVDiagramms sind zu identifizieren. Man kann sich das Diagramm als Torus vorstellen. Wenn mehr als 4 Eingabevariablen vorliegen, muss ein 2 -dimensionales KVDiagramm so dargestellt werden, dass einzelne Variablen Bereiche überdecken, die nicht zusammenhängend in der Ebene sind. Dabei sind aber die zueinander zeigenden Ränder dieser Bereiche als identisch anzusehen. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 35
Einträge in KV-Diagrammen können Nullen und Einsen sein. In diesem Fall kann man durch Zusammenfassen aller Einsen zu maximalen Blöcken eine DMF ablesen. (Leider ist sie nicht eindeutig). In solchen Fällen schreibt man meist nur die Einsen in das Diagramm und lässt die Nullen weg. Zusammenfassen der Nullen und benutzen der Komplemente der Variablen führt zur KMF. Wenn einzelne Elemente in der Wertetabelle don‘t cares sind, können diese in den Blöcken der Einsen bei der DMF (oder Nullen bei der KMF) mit auftauchen. Sie schaden nichts. Aber es müssen durchaus nicht alle don‘t cares (dargestellt durch den Buchstaben X oder d) mit in Blöcke aufgenommen werden. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 36
n 1 Beispiel: 2 -Bit Multiplizierer: n 1 0 0 0 0 1 1 1 1 n 0 0 0 1 1 m 1 m 0 0 1 1 0 0 0 1 1 p 3 0 0 0 0 1 p 2 0 0 0 0 0 1 1 0 0 1 0 p 1 0 0 0 1 1 0 1 0 1 1 0 p 0 0 0 1 0 1 n 0 1 1 n 1 n 0 p 0 m 1 1 1 1 n 1 m 1 n 0 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) m 0 1 1 1 m 1 p 1 m 0 p 2 m 0 Seite 37
n 1 p 0 p 1 n 0 1 1 m 0 m 1 n 0 1 1 1 m 0 m 1 n 1 p 2 n 0 1 1 1 m 0 p 3 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 38
m 1 m 0 1 2 -Bit-Multiplizierer n 0 n 1 1 p 0 & & ≥ 1 p 1 ≥ 1 p 2 & & IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) p 3 Seite 39
Don’t Care Behandlung Don’t Care IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 40
4 -Bit Codewandler: Dezimal -> Aiken x 3 0 0 0 0 1 1 1 1 x 2 0 0 0 0 1 1 1 1 x 1 0 0 1 1 x 0 0 1 0 1 y 3 0 0 0 1 1 1 X X X y 2 0 0 1 0 1 1 X X X y 1 0 0 1 1 X X X y 0 0 1 0 1 0 1 X X X IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Don’t Care Seite 41
KV Minimierung für Disjunktive Minimalform DMF: Zusammenfassung 1. Aufstellen der Wertetabelle 2. Eintragen der Terme „mit 1“ in KV-Diagramm 3. Zusammenfassen von benachbarten Einsen zu Blöcken maximaler Größe 4. Ablesen der DMF IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 42
KV Minimierung für konjunktive Minimalform KMF: Zusammenfassung: 1. Aufstellen der Wertetabelle 2. Eintragen der Werte „mit 0“ in KV-Diagramm 3. Zusammenfassen von benachbarten Nullen zu Blöcken maximaler Größe 4. Ablesen der KMF, indem die Summenterme gebildet werden, diese Blöcke von Nullen nicht abdecken. Zu diesem Zweck oder‘t man die invertierten Eingabevariablen, diese Blöcke von Nullen überdecken. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 43
KV-Diagramme mit mehr als 4 Variablen (sehr Arbeitsaufwendig) x 2 x 3 x 4 x 5 x 0 x 2 x 1 x 5 x 1 x 4 5 - Variablen x 4 6 - Variablen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 44
Das Verfahren von Quine und Mc. Cluskey (Rechnergestützte Verfahren) Mit KV-Diagrammen kommen wir nicht weiter, wenn die Anzahl der Eingabevariablen größer als 6 wird. In diesem Fall empfiehlt sich das Verfahren von Quine und Mc. Cluskey. Es beginnt mit der KDMF und besteht aus zwei Schritten: Erstens: Das Verfahren von Mc. Cluskey erzeugt durch systematische Anwendung der Vereinfachungsregeln alle Primterme einer Funktion. Zweitens: Das Verfahren von Quine wählt aus dieser Menge aller Primterme eine minimale Teilmenge aus, deren Oder-Verknüpfung die gesamte Funktion repräsentiert. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 45
Das Verfahren von Quine und Mc. Cluskey 1. Mc. Cluskey: 2. Systematische Anwendung der Regel 3. 4. Konstruktion aller Primterme Edward J. Mc. Cluskey Stanford University Computer Science 2. Quine 3. Treffen einer minimalen Auswahl von Primtermen, deren Disjunktion die Funktion realisiert. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 46
Einleitendes Beispiel 1 2 3 4 5 6 1, 2 1, 3 1, 4 2, 5 3, 6 4, 6 A B C D E F G A, E B, D B, G C, F IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 47
Das Verfahren von Mc. Cluskey Begonnen wird mit der Funktion in DNF 1. Für jedes Paar von Produkttermen wird geprüft, ob die Regel 2. anwendbar ist. Wenn ja, wird in der nächsten Zeile der Produktterm x aufgenommen. Alle Terme, die nicht zu einem solchen Produktterm beigetragen haben, werden unverändert in die nächste Zeile übernommen. 2. Wenn keine neuen Produktterme in der neuen Zeile entstehen, ist man fertig. Sonst wird bei 1. weitergemacht. Am Ende stehen in der letzten Zeile alle Primterme. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 48
Zweites Beispiel I I, II II II, III IV III, IV 3 Primterme sind generiert bc ist ein redundanter Term, wie man am KV-Diagramm leicht sehen kann. Daher benötigen wir das Verfahren von Quine. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 49
Das Verfahren von Quine Eine Primterm-Minterm-Tabelle wird aufgestellt: Die Minterme in der Zeile und die Primterme in der Spalte. 1. Alle Spalten, in denen eine 1 aus einer dominanten Zeile (Zeile mit nur einer 1) steht, werden markiert. Alle Zeilen, in denen 1 en aus markierten Spalten stehen, werden gestrichen. 2. Wenn keine ungestrichene Zeile mehr vorhanden ist, wird das Verfahren beendet. Die markierten Spalten bilden die Minterme der DMF. 3. Wenn keine dominante Zeile mehr vorhanden ist, aber noch ungestrichene Zeilen existieren, wird eine beliebige Spalte markiert und bei 1. fortgefahren. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 50
Quine Verfahren, minimaler Abdeckung 1. Primterme horizontal, Minterme vertikal einsetzen 2. 1 setzen für alle Minterme die einen Primterm enthalten Primterme Minterme 1 1 1 bc ist nicht nötig da die Primterme ab, ac alle Minterme abdecken! Also f =( ab + ac ) ist die Minimale Implementierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 51
Beispiel zum Verfahren von Quine Mc. Cluskey 10 beteiligte Minterme in Gruppen sortiert nach Anz. von Einsen (Gewicht) (oder Nullen) inklusive den „don‘t cares“ (-) Gewicht=0 Gewicht=1 Gewicht=2 Gewicht=3 Gewicht=4 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 52
Primterme generieren Jede Gruppe mit der folgenden Gruppe testen! Primterme Alle nicht markierte Terme werden als Primterme für die weitere Bearbeitung ausgewählt! IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 53
Primimplikanten-Tabelle und minimale Funktionsa Primterme Nur Minterme mit 1 (nur 6) Eine andere Lösung ist auch möglich! IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 54
- Slides: 54