Inhalt: 3.1 Grundlegende Operationen und Gesetze 3.2 Boolesche Funktionen u. u. ihre Normalformen 3.3 Vereinfachen von booleschen Ausdrücken 3.4 Logische Schaltungen
3.1 Grundlegende Operationen und Gesetze Die Die Boolesche Algebra stellt stellt die die Grundlage für für den den Entwurf von von elektronischen Schaltungen bis bis hin hin zu zu Computern dar. dar. Sie Sie ist ist nach George Boole (1815 1864) benannt, der der als als erster eine eine Algebra der der Logik entwickelt hat. hat. Diese kennt nur nur die die beiden Zustände wahr und und falsch, die die in in einem Schaltkreis den den grundlegenden Zuständen Strom fließt und und Strom fließt nicht entsprechen. Diese beiden Zustände werden im im Folgenden durch die die Zahlen 1 und und 0 modelliert. Seite 2
Konjunktion Die Die Boolesche Algebra geht geht von von der der Menge {0, {0, 1} 1} aus. aus. Auf Auf dieser Menge sind sind folgende drei drei Operationen definiert. 1. 1. Die Die Konjunktion (Und-Verknüpfung) ist ist eine eine binäre Verknüpfung, hängt also also von von zwei zwei Argumenten ab. ab. Sie Sie ist ist genau dann 1, 1, wenn das das erste und unddas das zweite Argument 1 ist, ist, und und in in jedem anderen Fall Fall 0. 0. Der Der Ausdruck a b wird wird a a und und b b gelesen. 0 1 0 0 0 1 0 1 Seite 3
Disjunktion 2. 2. Auch die diedisjunktion (Oder-Verknüpfung) ist ist eine eine binäre Verknüpfung. Sie Sie ist ist genau dann 1, 1, wenn das das erste oder oderdas das zweite Argument 1 ist, ist, und und sonst 0. 0. Der Der Ausdruck a b wird wird a a oder oder b b gelesen. Oder ist ist dabei als als einschließendes Oder zu zu verstehen, das das heißt nicht im im Sinne von von entweder oder. 0 1 0 0 1 1 1 1 Seite 4
Negation 3. 3. Die Die Negation verlangt nur nur ein ein Argument. Sie Sie ist ist 0, 0, wenn das das Argument 1 ist, ist, und und 1, 1, wenn das das Argument 0 ist. ist. Die Die Negation heißt auch Nicht-Operator, und und man man liest liest a a als als nicht a. a. x x x 0 1 1 0 Seite 5
Reihenfolge der Auswertung Um Um komplexere boolesche Ausdrücke zu zu erhalten, können diese drei drei Operationen mehrfach hintereinander ausgeführt werden. Dabei ist ist zu zu beachten, dass die die Operationen unterschiedliche Priorität haben: kommt vor vor,, und und kommt vor vor.. Möchte man man andere Prioritäten setzen, so so muss man man die die entsprechenden Teilausdrücke in in Klammern setzen. Beispiel: Es Es gilt gilt 0 0 1 0 = ( 0) ( 0) (1 (1 0) 0) = 1 0 = 1. 1. Seite 6
Rechengesetze Für Für die die Operationen,, und und gelten eine eine Reihe Rechengesetze. Sie Sie sind sind uns uns vom vom Umgang mit mit den den rationalen und und reellen Zahlen her her vertraut, wenn wir wir an an Addition und und Multiplikation denken. 3.1.1 Satz. Für Für alle alle x, x, y, y, z {0, {0, 1} 1} gelten die die folgenden Gesetze: (a) (a) Kommutativgesetze: x y = y x und und x y = y x. x. (b) (b) Assoziativgesetze: x (y (y z) z) = (x (x y) y) z, z, x (y (y z) z) = (x (x y) y) z. z. (c) (c) Distributivgesetze: x (y (y z) z) = (x (x y) y) (x (x z) z) und und x (y (y z) z) = (x (x y) y) (x (x z). z). (d) (d) Existenz neutraler Elemente: 1 x = x und und 0 x = x. x. (e) (e) Existenz des des Komplements: x x x = 0 und und x x x = 1. 1. Seite 7
Beweis Exemplarisch beweisen wir wir das das erste Distributivgesetz. Dazu zeigen wir wir mit mit einer Wertetabelle, dass sich sich für für alle alle möglichen Werte von von x, x, y und und z auf auf der der linken Seite stets das das Gleiche ergibt wie wie auf auf der der rechten: x y z y z x (y (y z) z) x y x z (x (x y) y) (x (x z) z) 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Seite 8
Axiomatische Definition Bemerkung. Oft Oft wird wird der der Begriff Boolesche Algebra weiter gefasst, als als wir wir es es hier hier tun. tun. Man Man kann die die Gesetze aus aus Satz Satz 3.1.1 auch als als Axiome fordern und und sagen: Eine Menge mit mit den den Operationen,, und und heißt Boolesche Algebra, wenn die die folgenden Gesetze gelten........ Dann folgt folgt nach Satz Satz 3.1.1, dass die die Menge {0, {0, 1} 1} zusammen mit mit der der Und-, Oder- und und Nicht-Operation eine eine Boolesche Algebra ist. ist. Allerdings ist ist sie sie dann nicht mehr die die einzige. Zum Zum Beispiel bildet dann auch die die Menge aller aller Teilmengen einer Menge eine eine Boolesche Algebra, wenn man man als als Operationen die die Mengenoperationen Durchschnitt, Vereinigung und und Komplement nimmt. bra, Seite 9
Dualität Beobachtung: Die Die Gesetze aus aus Satz Satz 3.1.1 bestehen jeweils aus aus zwei zwei Teilen, die die auseinander hervorgehen, wenn man man und und,, sowie 1 und und 0 vertauscht. Aus Aus dieser Symmetrie folgt, dass dass wir wir auch in in jeder Folgerung aus aus diesen Gesetzen diese Vertauschungen durchführen können. Diese Eigenschaft der der Booleschen Algebra heißt Dualität. Ein Ein Satz, der der durch Vertauschen von von und und und und von von 1 und und 0 aus aus einem anderen Satz Satz hervorgeht, heißt zu zu diesem dual. 3.1.2 Korollar (Dualität). Jede Aussage, die die aus aus Satz Satz 3.1.1 folgt, bleibt gültig, wenn die die Operationen und und sowie die die Elemente 1 und und 0 überall gleichzeitig vertauscht werden. Seite 10
Weitere Gesetze Eine Eine erste Anwendung findet die die Dualität beim Beweis des des folgenden Satzes, der der weitere Gesetze der der Booleschen Algebra beschreibt. 3.1.3 Satz. Für Für alle alle x, x, y {0, {0, 1} 1} gelten die die folgenden Gesetze: (a) (a) Absorptionsgesetze: x (x (x y) y) = x und und x (x (x y) y) = x. x. (b) (b) Idempotenzgesetze: x x = x und und x x = x. x. (c) (c) Involutionsgesetz: ( x) = x. x. (d) (d) Gesetze von von de de Morgan (Augustus de de Morgan, 1806 1871): (x (x y) y) = x x y y und und (x (x y) y) = x x y. y. Seite 11
Beweis (I) (I) Eine Eine Möglichkeit, diese Gesetze zu zu beweisen, ist ist sicherlich, wieder alle alle möglichen Werte für für x und und y einzusetzen und und zu zu überprüfen, ob ob die die linke linke und und rechte Seite übereinstimmen. Diese Möglichkeit bietet sich sich für für den den Nachweis von von (c) (c) und und (d) (d) an. an. Eine Eine andere Möglichkeit ist, ist, die die bereits bewiesenen Gesetze aus aus 3.1.1 anzuwenden. Dies Dies wollen wir wir am am Beispiel von von (a) (a) und und (b) (b) verdeutlichen. Es Es gilt gilt x (x (x y) y) = (x (x 0) 0) (x (x y) y) = x (0 (0 y) y) = x 0 = x. x. Dies Dies ist ist das das erste Absorptionsgesetz. Seite 12
Beweis (II) (II) Auf Auf Grund der der Dualität können wir wir in in jedem dieser Schritte, also also auch im im Endergebnis, und und sowie 1 und und 0 vertauschen und und erhalten daraus das das zweite Absorptionsgesetz: x (x (x y) y) = x. x. Ferner gilt gilt x x = (x (x x) x) 1 = (x (x x) x) (x (x x) x) = x (x (x x) x) = x 0 = x; x; damit haben wir wir das das erste Idempotenzgesetz gezeigt. Das Das zweite Idempotenzgesetz folgt folgt wiederum aus aus der der Dualität. Ganz ähnlich kann man man die die restlichen Gesetze nachweisen. Seite 13
3.2 Boolesche Funktionen und ihre Normalformen Eine Eine boolesche Funktion ist ist eine eine Abbildung, die die jeweils n Bits Bits auf auf ein ein einziges Bit Bitabbildet. Formal können wir wir das das wie wie folgt folgt ausdrücken: Eine Eine n-stellige boolesche Funktion ist ist eine eine Abbildung f f ::{0, {0, 1} 1} n n {0, {0, 1}. 1}. Das Das bedeutet, dass jedem n-tupel (x (x 1, 1, x 2, 2,..., x n ) n ) mit mit x i i {0, {0, 1} 1} eindeutig eine eine Zahl Zahl f(x f(x 1, 1, x 2, 2,..., x n ) n ) {0, {0, 1} 1} zugeordnet wird. In In der der Schaltungstechnik können wir wir uns uns eine eine boolesche Funktion als als Schaltung vorstellen, die die aus aus mehreren Eingabebits ein ein einziges Ausgabebit (zum Beispiel die die Summe der der Eingabebits mod mod2) 2) berechnet. Aus- Seite 14
Wie viele boolesche Funktionen gibt es? 2 ( 2 n ) 3.2.1 Satz. Es Es gibt gibt verschiedene n-stellige boolesche Funktionen. Beweis. Die Die Menge {0, {0, 1} 1} n n besteht aus aus 2 n n Elementen. Um Um eine eine boolesche Funktion festzulegen, muss man man für für jedes dieser 2 n n Elemente das das Bild Bild festlegen. Für Für jedes Element gibt gibt es es dabei genau zwei zwei Ele- Möglichkeiten: 0 oder oder 1. 1. Insgesamt gibt gibt es es also also 21 4243 2 K 2 2 n Faktoren Möglichkeiten, die die boolesche Funktion festzulegen. Beispiel: Die Die vier vier 1-stelligen booleschen Funktionen sind sind die die Nullfunktion f(x) f(x) := := 0, 0, die die Identität f(x) f(x) := := x, x, die die Negation f(x) f(x) := := x x und und die die tion Einsfunktion f(x) f(x) := := 1. 1. = 2 ( 2 n ) Seite 15
Alle 2-stelligen booleschen Funktionen Wir Wir wollen im im Folgenden die die 2-stelligen booleschen Funktionen genauer untersuchen. All All diese Funktionen sind sind in in folgender Wertetabelle aufgelistet. x y f 1 f 1 f 2 f 2 f 3 f 3 f 4 f 4 f 5 f 5 f 6 f 6 f 7 f 7 f 8 f 8 f 9 f f 9 10 f f 10 11 f f 11 12 f f 12 13 f f 13 14 f f 14 15 f f 15 16 f 16 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Seite 16
Konjunktion und Disjunktion Einige dieser 2-stelligen booleschen Funktionen sind sind uns uns schon bekannt. So So erkennen wir wir etwa in in f 2 f die 2 die Konjunktion (Und-Verknüpfung) wieder, denn an an der der Wertetabelle können wir wir ablesen f 2 f(x, 2 y) y) = x y. y. Die Die Funktion f 8 f 8 ist ist die diedisjunktion (Oder-Verknüpfung): f 8 f(x, 8 y) y) = x y. y. Aber auch andere 2-stellige boolesche Funktionen sind sind von von besonderer Bedeutung. Ihre Ihre Bedeutung wird wird klarer, wenn wir wir sie sie als als boolesche Ausdrücke schreiben, also also als als Verknüpfungen von von,, und und.. Seite 17
NOR und NAND Die Die Funktion f 9 f 9 lässt lässt sich sich als als f 9 f(x, 9 y) y) = (x (x y) y) schreiben. Es Es handelt sich sich dabei also also um um eine eine negierte Oder-Verknüpfung. Daher wird wird sie sie auch als als NOR-Verknüpfung (vom englischen not not or ) or ) bezeichnet. Genauso gibt gibt es es auch eine eine NAND-Verknüpfung (von (von not notand ). In In der der Tabelle finden wir wir sie sie als als f 15 f (x, 15 (x, y) y) = (x (x y). y). Seite 18
XOR Die Die Funktion f 7 f ergibt 7 genau dann 1, 1, wenn ihre ihre beiden Argumente unterschiedlich sind, das das heißt, wenn entweder x oder oder y gleich 1 ist. ist. Daher können wir wir sie sie als als f 7 f(x, 7 y) y) = (x (x y) y) (x (x y) y) schreiben. Vom Vom englischen exclusive or or für für ausschließendes Oder leitet sich sich ihr ihr Name ab: ab: XOR-Verknüpfung. Seite 19
Äquivalenzfunktion und Implikation Durch Negation der der XOR-Verknüpfung erhalten wir wir die die Funktion f 10 f (x, 10 (x, y) y) = (x (x y) y) (x (x y) y) Sie Sie ist ist genau dann gleich 1, 1, wenn ihre ihre beiden Argumente gleich ( äquivalent ) sind. Daher heißt sie sie Äquivalenzfunktion. Die Die Funktion f 14 f ergibt 14 stets stets 1, 1, außer wenn x = 1 und und y = 0 ist. ist. Sie Sie heißt Implikation und und lässt lässt sich sich wie wie folgt folgt als als boolescher Ausdruck schreiben: f 14 f (x, 14 (x, y) y) = x x y. y. Seite 20
Von der Wertetabelle zum booleschen Ausdruck? Bei Bei einigen der der bisher betrachteten booleschen Funktionen war war es es ganz einfach, von von der der Wertetabelle auf auf einen booleschen Ausdruck zu zu kommen. Bei Bei anderen haben wir wir eine eine ganze Menge Intuition gebraucht. Frage: Wie Wie kann man man systematisch von von der der Wertetabelle einer Funktion auf auf einen booleschen Ausdruck schließen? Klar: Klar: Ein Ein solcher boolescher Ausdruck kann nicht eindeutig sein, denn boolesche Ausdrücke können mittels der der Gesetze aus aus 3.1 3.1 umgeformt werden. So So beschreiben beispielsweise die die beiden Ausdrücke x (y (y z) z) und und (x (x y) y) (x (x z) z) die die gleiche Funktion, da da sie sie auf auf Grund des des Distributivgesetzes ineinander umgeformt werden können. Seite 21
Ziel: Ablesen des Ausdrucks aus der Tabelle! Ziel: Ziel: Gesucht ist ist ein ein möglichst einfacher Ausdruck, den den man man möglichst einfach aus aus der der Wertetabelle erhalten kann. Dieses Ziel Ziel erreichen wir wir in in zwei zwei Schritten: 1. 1. Zunächst werden wir wir die die Normalformen kennen lernen. Dabei handelt es es sich sich spezielle Formen von von booleschen Ausdrücken, die die man man aus aus der der Wertetabelle ablesen kann. 2. 2. Da Da diese Normalformen oft oft eine eine komplizierte Gestalt haben, werden wir wir danach untersuchen, wie wie man man boolesche Ausdrücke vereinfachen kann. Seite 22
Das Prinzip der Normalformen Ein Ein boolescher Ausdruck besteht im im Allgemeinen aus aus mehreren (eventuell negierten) Variablen, die die durch und und verknüpft sind. Diese beiden Operationen können getrennt werden. Dazu gibt gibt es es zwei zwei Möglichkeiten: Entweder werden die die Variablen zunächst durch verknüpft (innere Verknüpfung) und und die die daraus entstehenden Terme anschließend durch verbunden (äußere Verknüpfung) oder oder umgekehrt. Je Je nachdem, welche Operation dabei als als äußere durchgeführt wird, erhält man man auf auf diese Weise eine einedisjunktive bzw. bzw. eine einekonjunktive Normalform des des booleschen Ausdrucks. Seite 23
Konjunktive Normalform Eine Eine Vollkonjunktion ist ist ein ein boolescher Ausdruck, in in dem dem alle alle Variablen genau einmal vorkommen und und durch (konjunktiv) verbunden sind. Dabei dürfen die die Variablen auch negiert auftreten. Ein Ein Ausdruck liegt liegt in in der derdisjunktiven Normalform vor, vor, wenn er er aus aus Vollkonjunktionen besteht, die die durch (disjunktiv) verknüpft sind. Beispiel: Der Der boolesche Ausdruck (x (x y y z) z) ( x ( x y z) z) (x (x y y z) z) ist ist aus aus drei drei Vollkonjunktionen aufgebaut, die die durch verknüpft sind. Er Er liegt liegt also also in in der derdisjunktiven Normalform vor. vor. Seite 24
Von der Tabelle zur disjunktiven Normalform Wir Wir wollen nun nun ein ein Verfahren beschreiben, wie wie man man von von der der Wertetabelle einer booleschen Funktion zu zu ihrem Ausdruck in in disjunktiver Normalform gelangen kann. Als Als Beispiel betrachten wir wir die die 3-stellige boolesche Funktion f, f, die die durch folgende Wertetabelle gegeben ist. ist. Zeile x y z f(x, y, z) 1 0 0 0 0 2 0 0 1 0 3 0 1 0 1 4 0 1 1 1 5 1 0 0 0 6 1 0 1 0 7 1 1 0 0 8 1 1 1 1 Seite 25
Aufstellen der einzelnen Vollkonjunktionen Um Um die diedisjunktive Normalform aufzustellen, müssen wir wir Vollkonjunktionen finden, die, die, wenn man man sie sie mit mit verknüpft, die die Funktion f f darstellen. Dazu gehen wir wir schrittweise vor. vor. dar- 1. 1. Schritt: Wir Wir suchen die die Zeilen, die die den den Funktionswert 1 liefern. Hier Hier sind sind dies dies die die Zeilen 3, 3, 4 und und 8. 8. 2. 2. Schritt: Für Für jede jede dieser Zeilen stellen wir wir die die Vollkonjunktion auf, auf, die die für für die dievariablenwerte dieser Zeilen den den Wert Wert 1 liefert. Dazu verknüpfenwir alle alle Variablen durch,, wobei genau diejenigen negiert werden, deren Wert in in der der entsprechenden Zeile gleich 0 ist. ist. Wir Wir erhalten für für fen Zeile 3: 3: x x y z, z, Zeile 4: 4: x x y z, z, Zeile 8: 8: x y z. z. Seite 26
Aufstellen der disjunktiven Normalform 3. 3. Schritt: Diese Vollkonjunktionen werden durch verknüpft. Dadurch ist ist der der resultierende Ausdruck genau dann gleich 1, 1, wenn eine eine dieser Vollkonjunktionen gleich 1 ist, ist, das das heißt für für die dievariablenwerte der der Zeilen 3, 3, 4 und und 5. 5. Der Der resultierende Ausdruck hat hat daher die die gleiche Wertetabelle wie wie die die Funktion f, f, stellt stellt also also die die gleiche Funktion dar. dar. Damit haben wir wir die diedisjunktive Normalform von von f f gefunden. Sie Sie lautet f(x, f(x, y, y, z) z) = ( x ( x y z) z) ( x ( x y z) z) (x (x y z). z). Beobachtung: Die Die disjunktive Normalform enthält genau so so viele viele Vollkonjunktionen, wie wie in in der der Wertetabelle der der Funktionswert 1 vorkommt. Daher bietet es es sich sich an, an, die die disjunktive Normalform aufzustellen, wenn der der Funktionswert 1 relativ selten vorkommt. Voll- Seite 27
Konjunktive Normalform Treten in in der der Wertetabelle viele viele Einsen auf, auf, so so ist ist es es günstiger, die die konjunktive Normalform zu zu verwenden. Eine Eine Volldisjunktion ist ist ein ein boolescher Ausdruck, in in dem dem alle alle Variablen genau einmal vorkommen und und (disjunktiv) verbunden sind. Dabei dürfen die die Variablen auch negiert auftreten. Ein Ein Ausdruck liegt liegt in in der derkonjunktiven Normalform vor, vor, wenn er er aus aus Volldisjunktionen besteht, die die durch (konjunktiv) verknüpft sind. Beispiel: Ein Ein Ausdruck in in konjunktiver Normalform ist ist ( x ( x y z) z) ( x ( x y y z) z) (x (x y y z) z) Seite 28
Von der Tabelle zur konjunktiven Normalform Das Das Verfahren, mit mit dem dem man man von von der der Wertetabelle einer booleschen Funktion zu zuihrem Ausdruck in inkonjunktiver Normalform gelangt, funktioniert ähnlich wie wie das das Verfahren für für die diedisjunktive Normalform. Genau genommen ist ist es es dual zum zum vorherigen Verfahren. Das Das heißt, die die beiden Verfahren gehen auseinander hervor, wenn man man durch und und 1 durch 0 ersetzt. Seite 29
Beispiel Als Als Beispiel wollen wir wir die diekonjunktive Normalform der der 3-stelligen Funktion aufstellen, die die durch folgende Wertetabelle gegeben ist. ist. Zeile x y z f(x, y, z) 1 0 0 0 1 2 0 0 1 0 3 0 1 0 0 4 0 1 1 1 5 1 0 0 1 6 1 0 1 1 7 1 1 0 0 8 1 1 1 1 Seite 30
Aufstellen der einzelnen Volldisjunktionen Wieder gehen wir wir schrittweise vor. vor. 1. 1. Schritt: Wir Wir suchen die die Zeilen, die die den den Funktionswert 0 liefern. Hier Hier sind sind dies dies die die Zeilen 2, 2, 3 und und 7. 7. 2. 2. Schritt: Für Für jede jede dieser Zeilen stellen wir wir die dievolldisjunktion auf, auf, die die für für die dievariablenwerte dieser Zeilen den den Wert Wert 0 liefert. Dazu verknüpfenwir alle alle Variablen durch,, wobei genau diejenigen negiert werden, deren Wert in in der der entsprechenden Zeile gleich 1 ist. ist. Auf Auf diese Weise erhalten wir wir für für fen Zeile 2: 2: x y z, z, Zeile 3: 3: x y y z, z, Zeile 7: 7: x x y y z. z. Seite 31
Aufstellen der konjunktiven Normalform 3. 3. Schritt: Diese Volldisjunktionen werden durch verknüpft. Durch die die Verknüpfung mit mit ist ist der der resultierende Ausdruck genau dann gleich 0, 0, wenn eine eine dieser Volldisjunktionen gleich 0 ist, ist, das das heißt für für die dievariablenwerte der der Zeilen 2, 2, 3 und und 7. 7. Der Der resultierende Ausdruck hat hat daher die die gleiche Wertetabelle wie wie die die Funktion f, f, stellt stellt also also die die gleiche Funktion dar. dar. Damit haben wir wir die diekonjunktive Normalform von von f f gefunden. Sie Sie lautet f(x, f(x, y, y, z) z) = (x (x y z) z) (x (x y y z) z) ( x ( x y y z). z). Bemerkung: Auch zu zu einem gegebenen Ausdruck kann man man eine eine Normalform finden, indem man man zunächst die die Wertetabelle aufstellt. Seite 32
3.3 Vereinfachen von Funktionen Prinzipiell kann man man zur zur Vereinfachung eines booleschen Ausdrucks alle alle Gesetze aus aus Abschnitt 3.1 3.1 anwenden. Wie Wie kann man man dabei systematisch vorgehen? Beim Verfahren von vonkarnaugh und undveitch handelt es es sich sich um um ein ein graphisches Verfahren, das das sich sich für für Funktionen mit mit bis bis zu zu vier vier Variablen einfach durchführen lässt. Bei Bei mehr als als vier vier Variablen werden die die benötigten Diagramme sehr sehr unübersichtlich. Alternativ kann man man auf auf das das Verfahren von vonquine und und McCluskey (ohne graphische Darstellung) zurückgreifen. Seite 33
Das Verfahren von Karnaugh und Veitch Das Das Verfahren von vonkarnaugh und undveitch geht geht von von der derdisjunktiven Normalform aus. aus. Grundidee: Den Den Ausdruck systematisch so so umzuformen, dass Terme der der Form x x x entstehen. Nach 3.1.1 (e) (e) haben diese Terme stets den den Wert Wert 1 und und können in in einer Konjunktion weggelassen werden. Dies Dies erreicht man man wie wie folgt: Der Der in indisjunktiver Normalform vorliegende Ausdruck wird wird in in einem Karnaugh-Veitch-Diagramm (kurz: KV-Diagramm) dargestellt. Dies Dies ist ist ein ein rechteckiges Schema, in in dem dem jedes Feld Feld genau einer möglichen Vollkonjunktion entspricht. Je Je nach Anzahl der der Variablen sieht dieses Diagramm unterschiedlich aus. aus. Seite 34
KV-Diagramme Die Die KV-Diagramme für für 2-, 2-, 3-3-und 4-stellige Funktionen sind sind in in folgender Abbildung dargestellt. Seite 35
Eintragen eines Ausdrucks Um Um einen kompletten Ausdruck, der der in indisjunktiver Normalform vorliegt, einzutragen, schreiben wir wir für für jede jede Vollkonjunktion, die die in in dem dem Ausdruck vorkommt, eine eine 1 in in das das entsprechende Feld Feld des des KV- KV- Diagramms. Zum Zum Beispiel wird wird die die 4-stellige boolesche Funktion f(w, f(w, x, x, y, y, z) z) = (w (w x y y z) z) (w (w x y z) z) ( w ( w x y y z) z) ( w ( w x y z) z) ( w ( w x x y y z) z) ( w ( w x x y y z) z) (w (w x x y z) z) (w (w x x y y z) z) durch nebenstehendes KV-Diagramm dargestellt. Seite 36
Benachbarte Felder Um Um mit mit einem KV-Diagramm einen Ausdruck zu zu vereinfachen, nutzen wir wir eine eine besondere Eigenschaft dieser Diagramme aus: aus: Benachbarte Felder unterscheiden sich sich genau um um eine eine Variable! Das Das bedeutet, benachbarte Felder repräsentieren fast fast den den gleichen Ausdruck; die die beiden Ausdrücke unterscheiden sich sich lediglich dadurch, dass genau eine eine Variable einmal negiert und und einmal nicht negiert auftritt. Beispiel: Die Die beiden Ausdrücke, die die zu zu den den ersten beiden Feldern der der untersten Zeile von von Folie 36 36 gehören, lauten w w x y y z und und w w x y z. z. Sie Sie unterscheiden sich sich nur nur durch die die Variable y, y, die die einmal negiert und und einmal nicht negiert vorkommt. Seite 37
Benachbarte Einsen Wenn in in zwei zwei benachbarten Feldern Einsen eingetragen sind, enthält die die dargestellte Funktion die die beiden entsprechenden Konjunktionen. Beispiel: Die Die beiden Einsen in in der der untersten Zeile von von Folie 36 36 zeigen, dass die die Funktion f f folgende Gestalt hat: hat: f(w, f(w, x, x, y, y, z) z) =...... ( w ( w x y y z) z) ( w ( w x y z) z)...... Da Da die die beiden Ausdrücke sich sich nur nur in in einer Variablen (hier (hier in in y) y) unterscheiden, können wir wir die die restlichen Variablen nach dem dem Distributivgesetz ausklammern: ( w ( w x y y z) z) ( w ( w x y z) z) = ( w ( w x z) z) ( y ( y y). y). Seite 38
Das allgemeine Schema Nach 3.1.1 (e) (e) gilt gilt y y y = 1. 1. Nach 3.1.1 (d) (d) können wir wir diese durch verknüpfte 1 weglassen, und und es es ergibt sich sich der der vereinfachte Ausdruck ( w ( w x y y z) z) ( w ( w x y z) z) = w w x z. z. In In der der Praxis müssen wir wir diese Schritte nicht einzeln durchführen sondern können nach folgendem Schema vorgehen: Wir Wir suchen nach benachbarten Einsen im im KV-Diagramm. Die Diezuge- hörigen beiden Terme können dann zusammengefasst werden, indem diejenige Variable gestrichen wird, die die einmal negiert und und einmal nicht negiert vorkommt. Seite 39
Randfelder Dabei ist ist zu zu beachten, dass dass auch gegenüberliegende Randfelder als als benachbart gelten sollen. Beispiel: In In diesem Sinne sind sind auf auf Folie 36 36 etwa die die beiden Felder links links und und rechts oben benachbart; auch sie sie unterscheiden sich sich in in genau einer Variablen, in in diesem Fall Fall in in z. z. Die Die zugehörige Vereinfachung lautet ( w ( w x x y y z) z) ( w ( w x x y y z) z) = w w x x y. y. Seite 40
Viererblöcke Es Es kann vorkommen, dass man man mehr als als zwei zwei benachbarte Einsen zusammenfassen kann. Beispiel: Das Das KV-Diagramm auf auf Folie 36 36 zeigt links links unten einen Viererblock von von Einsen. In In diesem Fall Fall können wir wir zunächst y y y = 1 und und dann w w w = 1 ausklammern und und wegstreichen: (w (w x y y z) z) (w (w x y z) z) ( w ( w x y y z) z) ( w ( w x y z) z) = (w (w x z) z) ( y ( y y )) ( w ( w x z) z) ( y ( y y )) = (w (w x z) z) ( w ( w x z) z) = (x (x z) z) ( w ( w w) w) = x z. z. Bei Bei einem Viererblock können also also zwei zwei Variablen gestrichen werden, nämlich die die beiden, die die sowohl negiert als als auch auch nicht nicht negiert auftreten. Seite 41
Ergebnis der Vereinfachung Bemerkungen: 1. 1. Bei Bei einem Achterblock können drei drei Variablen gestrichen werden. 2. 2. Ein Ein Einserfeld kann auch für für mehrere Blöcke verwendet werden. Insgesamt können wir wir also also unsere auf auf Folie 36 36 dargestellte Funktion f f wie wie folgt folgt vereinfachen: f(w, f(w, x, x, y, y, z) z) = ( w ( w x x y) y) (x (x z) z) (w (w x x z). z). Seite 42
Vorteil des KV-Verfahrens Vorteil des des Verfahrens von vonkarnaugh und undveitch: Keinerlei Umformungen müssen per per Hand durchgeführt werden. Sämtliche Vereinfachungegen kann man man durch bloßes Zusammenfassen von von Einserblöcken am am gen KV-Diagramm ablesen. Oft Oft ist ist es es möglich, verschiedene Einteilungen in in Einserblöcke zu zufinden. Dann erfordert es es ein ein wenig Geschick, die die einfachste Form des des Ausdrucks herauszufinden. Aus- Seite 43
3.4 Logische Schaltungen Eine Eine wichtige Anwendung der der Booleschen Algebra ist ist der der Entwurf von von logischen Schaltungen. Eine Eine solche logische Schaltung ist ist nichts weiter als als eine eine physikalische Realisierung einer booleschen Funktion. Letztendlich ist ist jeder Computeraus logischen Schaltungen aufgebaut. Die Die beiden Zustände 0 und und 1 der der Booleschen Algebra werden durch unterschiedliche elektrische Spannungen realisiert. Meist entspricht der der ter Zustand 0 der der Spannung 0 (oder einer minimalen Spannung U min ) min ) und und der der Zustand 1 einer maximalen Spannung U max. max. Dabei sind sind gewisse Toleranzbereiche um um diese Spannungen erlaubt. Seite 44
Gatter Die Die grundlegenden booleschen Operationen,, und und werden durch elektronische Bauteile umgesetzt, die die man man Gatter nennt. Solche Gatter kann man man prinzipiell mit mit einfachen Schaltern und und Relais verwirklichen, heute werden allerdings aus aus Platz- und und Performancegründen Halbleiterbauelemente verwendet. In In Schaltplänen werden Gatter durch ihre ihre jeweiligen Schaltsymbole dargestellt. Seite 45
Die drei Grundgatter Die Die Schaltsymbole der der drei drei Grundgatter AND, OR ORund undnot, die die die die booleschen Grundoperationen,, bzw. bzw. realisieren, sind sind in in folgender Abbildung dargestellt. x y & x y x y 1 x y 1 x x AND- Gatter OR-Gatter NOT- Gatter Seite 46
NAND- und NOR-Gatter Diese drei drei Grundgatter können geeignet hintereinandergeschaltet werden. Zur Zur Vereinfachung werden dabei vor- vor-oder oder nachgeschaltete NOT- Gatter am am Eingang bzw. bzw. am am Ausgang einfach als als Kreis symbolisiert. Auf Auf diese Weise ergeben sich sich die die beiden Gatter zur zur Realisierung der der NAND- und und der der NOR-Funktion (siehe Abschnitt 3.2) 3.2) wie wie folgt: x y & (x y) x y 1 (x y) Seite 47
NAND- und NOR-Technik Besondere Bedeutung der der NAND- und und NOR-Gatter: Mit Mit jedem von von ihnen kann man man alle alle drei drei Grundoperationen,, und und aufbauen! Praktische Anwendung: Es Es genügt eine eine einzige Sorte von von Bauteilen, nämlich NAND- oder oder NOR-Gatter, um um jede jede beliebige boolesche Funktion zu zu verwirklichen. 3.4.1 Satz Satz (NAND- und und NOR-Technik). Die Die drei drei booleschen Grundoperationen Konjunktion, Disjunktion und und Negation können als als Hintereinanderausführung von von ausschließlich NAND-Funktionen oder oder ausschließlich NOR-Funktionen geschrieben werden. aus- Seite 48
Beweis (I) (I) Der Der Übersichtlichkeit wegen schreiben wir wir NAND(x, y) y) := := (x (x y) y) und und NOR(x, y) y) := := (x (x y). y). In In NAND-Technik können wir wir die die Operationen,, und und ausdrücken: wie wie folgt folgt x y y= = (x (x y) y) 0 = ( (x y) y) 1) 1) = NAND(NAND(x, y), y), 1), 1), x y y= = (x (x 1) 1) (y (y 1) 1) = ( (x 1) 1) (y (y 1)) 1)) = NAND(NAND(x, 1), 1), NAND(y, 1)), 1)), x x = (x (x 1) 1) = NAND(x, 1). 1). Seite 49
Beweis (II) (II) In In NOR-Technik können wir wir schreiben: x y y= = (x (x 0) 0) (y (y 0) 0) = ( (x 0) 0) (y (y 0)) 0)) = NOR(NOR(x, 0), 0), NOR(y, 0)), 0)), x y y= = (x (x y) y) 1 = ( (x y) y) 0) 0) = NOR(NOR(x, y), y), 0), 0), x x = (x (x 0) 0) = NOR(x, 0). 0). Damit haben wir wir alles alles bewiesen. Im Im Beweis kamen im im Wesentlichen die die Gesetze von von de de Morgan (Satz 3.1.3) zur zur Anwendung. Seite 50
Realisierung von booleschen Funktionen Beliebige boolesche Funktionen lassen sich sich durch Hintereinanderschaltungder drei drei Grundgatter (bzw. von von NAND- oder oder von von NOR-Gattern) wie wie tung folgt folgt realisieren: 1. 1. Im Im Allgemeinen ist ist zunächst die die Wertetabelle der der zu zu realisierenden Funktion aufzustellen. 2. 2. Aus Aus der der Wertetabelle kann man man die die (evtl. komplizierte) disjunktive Normalform der der Funktion ablesen. 3. 3. Da Da man man in in der der Praxis die die Funktion mit mit so so wenig Bauteilen wie wie möglich realisieren möchte, ist ist es es sinnvoll, den den booleschen Ausdruck zu zu vereinfachen. Dies Dies geschieht am am besten mit mit einem KV-Diagramm. 4. 4. Der Der vereinfachte Ausdruck wird wird mit mit einer Gatterschaltung realisiert. Seite 51
1. 1. Beispiel: 2-aus-3-Schaltung Wir Wir wollen eine eine Schaltung mit mit drei drei Eingängen konstruieren, an an deren Ausgang genau dann der der Zustand 1 auftritt, wenn an anmindestens zwei zwei Eingängen 1 anliegt. Ein Ein mögliches Anwendungsbeispiel einer solchen Schaltung ist ist eine eine Tresortür, die die sich sich nur nur öffnet, wenn mindestens zwei zwei von von drei drei Schlössern geöffnet werden. Seite 52
Wertetabelle und disjunktive Normalform Zunächst stellen wir wir die die Wertetabelle der der gesuchten Funktion f f auf: auf: x y z f(x, f(x, y, y, z) z) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Aus Aus der der Tabelle können wir wir die diedisjunktive Normalform ablesen: f(x, f(x, y, y, z) z) = ( x ( x y z) z) (x (x y y z) z) (x (x y z) z) (x (x y z). z). Seite 53
Vereinfachen mittels KV-Diagramm Zur Zur Vereinfachung tragen wir wir diese Funktion f(x, f(x, y, y, z) z) = ( x ( x y z) z) (x (x y y z) z) (x (x y z) z) (x (x y z) z) in in ein ein nebenstehendes KV-Diagramm ein. ein. Es Es können drei drei Zweierblöcke gebildet werden, so so dass dass der der vereinfachte Ausdruck die die folgende Form hat: hat: f(x, f(x, y, y, z) z) = (y (y z) z) (x (x z) z) (x (x y) y) Seite 54
Die fertige Gatterschaltung Die Die zu zu f(x, f(x, y, y, z) z) = (y (y z) z) (x (x z) z) (x (x y) y) gehörige Gatterschaltung ist ist in in folgender Abbildung dargestellt: x & y & 1 f(x, y, z) z & Seite 55
2. 2. Beispiel: Halbaddierer Logische Schaltungen können auch mehr als als einen Ausgang haben. Ist Ist dies dies der der Fall, Fall, so so muss für für jeden Ausgang eine eine eigene boolesche Funktion aufgestellt werden. Wir Wir wollen uns uns auch dies dies an an einem Beispiel betrachten. Wir Wir wollen die die einfachste Form einer Rechenschaltung realisieren. Sie Sie soll soll zwei zwei einstellige Binärzahlen addieren. Dabei können sich sich zweistellige Binärzahlen ergeben, denn falls falls beide Bits Bits gleich 1 sind, entsteht ein ein Übertrag in in die die nächsthöhere Binärstelle: 0 + 0 = 0, 0, 0 + 1 = 1, 1, 1 + 0 = 1, 1, 1 + 1 = 10. 10. Für Für jede jede der der beiden Binärstellen benötigt die die Schaltung einen Ausgang. Seite 56
Wertetabelle und disjunktive Normalform Wir Wir bezeichnen die die beiden Ausgänge mit mit s (für (für Summe) und und ü (für (für Übertrag). Die Die Wertetabelle hat hat folgende Gestalt. x y ü s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 Für Für beide Ausgänge lesen wir wir die diedisjunktive Normalform ab: ab: ü= ü= x y, y, s = ( x ( x y) y) (x (x y). y). Seite 57
Schaltung des Halbaddierers Diese beiden Ausdrücke können mit mit KV-Diagrammen nicht weiter vereinfacht werden. Daher können wir wir direkt die die Schaltung angeben: x y & & 1 s & ü Seite 58
Volladdierer und Addierwerke Um Ummehrstellige Binärzahlen zu zu addieren, reichen Halbaddierer nicht mehr aus. aus. Denn zur zur Summe zweier Bits Bits muss dann im im Allgemeinen noch der der Übertrag aus aus der der vorherigen Stelle addiert werden. Insgesamt müssen also also an an jeder Stelle drei drei Bits Bits addiert werden. Die Die Schaltung, die die drei drei Bits Bits addiert, heißt Volladdierer. Aus Auszwei Halbaddierern und und einem OR-Gatter kann man man einen Volladdierer zusammensetzen (daher kommt die die Bezeichnung Halbaddierer ). Durch Zusammenschalten von von n 1 n 1 Volladdierern und und einem Halbaddierer kann man man zwei zwei n-stellige Binärzahlen addieren. Derartige Addierwerke bilden die die Grundlage der der heutigen Computertechnik. Seite 59