RW-Systemarchitektur Kap 1
Kapitel 1
Der Boolesche Kalkül
1.1 Boolesche Funktionen
1.2 Boolesche Algebren
1.3 Boolesche Ausdrücke
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 1 1 1 1 0 0 0 0 1 1 1 10 0 1 1 0 0 1 1 0 0 1 1 0 0 1 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Boolesche Funktionen
ii11
iinn
oo11
oomm
Schaltfunktionz.B. Addierer
Bn Bm
Wegen Kodierung von Zahlen und Zeichen im Binärsystem: Gehe aus von B = {0, 1}.
mögliche Funktionstabellenmögliche Funktionstabellen
i2 i1
0 00 11 01 1
22nn Eingabe- Eingabe-kombinationenkombinationen
22mm-stelliger Ergebnisvektor -stelliger Ergebnisvektor (Funktionstabelle)(Funktionstabelle)
RW-Systemarchitektur Kap 1BB - TI Kap. 1.1 3
1.1 Boolesche Funktionen
Eine Abbildung f : BBn Bm heißt (vollständig definierte) Boolesche Funktion in n Variablen.
B n,m := {f | f :Bn Bm}
Eine Abbildung f :D Bm mit D Bn heisst (partielle) Boolesche Funktion in n Variablen. B n,m (D):= {f | f :D Bm} für D Bn
RW-Systemarchitektur Kap 1BB - TI Kap. 1.1 4
ON(f), OFF(f)
Ist m =1, so bezeichnet
ON(f ):={ {0,1}n | f ()=1} die Erfüllbarkeitsmenge von f,
OFF(f ):={ {0,1}n | f ()=0} die Nichterfüllbarkeitsmenge von f.
Für f : D Bm mit D Bn heißt
die Menge def(f) := D Definitionsbereich von f
die Menge DC(f) := Bn n D don‘t care-Menge von
f.
RW-Systemarchitektur Kap 1RW-Systemarchitektur Kap. 1.1 5
Beispiele für Boolesche Funktionen,Graphische Darstellung (IEEE-Symbole)
i2 i1
0 0 00 1 11 0 11 1 0
XOR2
ii11
ii22
ii11
ii22
i2 i1
0 0 10 1 11 0 11 1 0
NAND2
ii11
ii22
i2 i1
0 0 10 1 01 0 01 1 0
NOR2
ii11
ii22
i2 i1
0 0 00 1 01 0 01 1 1
AND2
Konjunktion
ii11
ii22
i2 i1
0 0 00 1 11 0 11 1 1
OR2
Disjunktion ii11
i1 NOT0 11 0
Negation
RW-Systemarchitektur Kap 1RW-Systemarchitektur Kap. 1.2 6
1.2 Boolesche Algebren Wir betrachten B := {0,1} mit den beiden binären
Operationen (logisches Und, Konjunktion), (logisches Oder) und der unären Operation (Negation) Welche Gesetze gelten für B mit diesen Operationen?
RW-Systemarchitektur Kap 1Kap. 1.2 7
Boolesche Algebren
Boolesche Algebra: Algebraische Struktur zum Rechnen mit Booleschen Funktionen
Es sei M eine nichtleere Menge, auf der zwei binäre Operationen und + und eine unäre Operation definiert sind.
Das Tupel (M, , +, ) heißt Boolesche AlgebraBoolesche Algebra, falls M eine nichtleere Menge ist und für alle x,y,z M die folgenden Axiome gelten: Kommutativität Kommutativität x+y=y+x xy=yx AssoziativitätAssoziativität x+(y+z)=(x+y)+z
x(yz)=(xy)z AbsorptionAbsorption x+(xy)=x x(x+y)=x DistributivitätDistributivität x+(yz)=(x+y)(x+z)
x(y+z) =(xy)+(xz)
KomplementregelKomplementregel x+(y ( y))=x x(y+ ( y))= xSatz:Satz: ( B, , , ) ist eine Boolesche Algebra.
RW-Systemarchitektur Kap 1Kap. 1.2 8
Weitere Regeln in Booleschen Algebren
Es gelten weitere Regeln, die aus den Axiomen ableitbar sind.
Vor Angabe und Beweis solcher Regeln: Beispiele für Boolesche Algebren!
RW-Systemarchitektur Kap 1Kap. 1.2 9
Die Boolesche Algebra der Booleschen Funktionen in n Variablen Bn := Bn,1 Menge der Booleschen Funktionen in n
Variablen, m=1 f g Bn definiert durch (f g)()=f () g ()
B n
RW-Systemarchitektur Kap 1Kap. 1.2 10
Die Boolesche Algebra der Booleschen Funktionen in n Variablen
Bn := Bn,1 Menge der Booleschen Funktionen in n Variablen, m =1
f g Bn definiert durch (f g) () = f () g () B n
f g Bn definiert durch (f g)() = f () g () B n
f Bn definiert durch f ()= 1 f () = 0 B n
Satz:Satz:
(Bn , , + , ) ist eine Boolesche Algebra.
Beweis: Nachrechnen, dass Axiome gelten.
RW-Systemarchitektur Kap 1Kap. 1.2 11
Die Boolesche Algebra der Teilmengen von S
S : Menge 2 S : die Potenzmenge von S M1 M2 : die Vereinigung der Mengen M1 und
M2 aus 2S
M1 M2 : der Durchschnitt der Mengen M1 und M2 aus 2S
M : das Komplement S\M von M bzgl. S
Satz:Satz: ( 2S, , , ) ist eine Boolesche Algebra.
Beweis: Nachrechnen, dass Axiome gelten
RW-Systemarchitektur Kap 1Kap. 1.2 12
Weitere Regeln in Booleschen Algebren, ableitbar aus den Axiomen, z.B.:
Existenz Neutraler Elemente:Existenz Neutraler Elemente: 00 : x + 00 = x, x 00 = 00 11 : x 11 = x, x 11 = 11
Doppeltes Komplement:Doppeltes Komplement:(x) = x
Eindeutigkeit des Komplements:Eindeutigkeit des Komplements:(x y = 00 und x + y = 11) y = x
Idempotenz:Idempotenz:x + x = x x x = x
de Morgan-Regelde Morgan-Regel (x + y) = (x) ( y) (x y) = ( x) + ( y)
Consensus-Regel:Consensus-Regel:
(x y)+((x) z) = (x y) + ((x) z) + (y z)
(x + y) ((x) + z) = (x + y) ((x) + z) (y + z)
RW-Systemarchitektur Kap 1Kap. 1.2 13
Dualitätsprinzip bei Booleschen Algebren
Prinzip der DualitätPrinzip der Dualität
Gilt eine aus den Gesetzen der Booleschen Algebra abgeleitete Gleichung p, so gilt auch die zu p duale duale GleichungGleichung, die aus p hervorgeht durch gleichzeitiges Vertauschen von + und und 11.
Beispiel:Beispiel:
(x y) + (( x) z) +(y z) = (x y) + (( x) z)
(x + y) (( x) + z) (y + z) = (x + y) (( x) + z)
RW-Systemarchitektur Kap 1 14
1.3 Boolesche Ausdrücke
Eine Beschreibungsmöglichkeit für Boolesche Funktionen
bisher: Tabellenform bei n Variablen 2n Einträge. Ziel: kompaktere Repräsentation.
Wir betrachten n Variablen x1 , x2 , ..., x n. Sei Xn = x1 , x2 , ..., x n .
Boolesche Ausdrücke werden über einem Alphabet
A = Xn :definiert.
RW-Systemarchitektur Kap 1 15
Boolesche AusdrückeDefinition:Definition:
Die Menge BE(Xn ) der vollständig geklammerten vollständig geklammerten
BooleschenBooleschen Ausdrücke über XAusdrücke über Xnn ist eine Teilmenge von
A*, die folgendermaßen induktiv definiert ist:
Die Elemente 0 und 1 sind Boolesche Ausdrücke
Die Symbole/Variablen x1, ..., xn sind Boolesche
Ausdrücke
Sind g und h Boolesche Ausdrücke, so auch
die DisjunktionDisjunktion (g + h),
die KonjunktionKonjunktion (g h)
und die NegationNegation ( g).
Nichts sonst ist ein Boolescher Ausdruck
RW-Systemarchitektur Kap 1 16
BE(Xn )
Vereinbarung für das SchreibenVereinbarung für das Schreiben
Negation bindet stärker als Konjunktion
Konjunktion bindet stärker als Disjunktion + Klammern können häufig weggelassen werden, ohne dass Mehrdeutigkeiten entstehen
Statt schreibt man häufig auch statt + auch , statt xi auch xi´ oder xi
_
RW-Systemarchitektur Kap 1 17
Interpretation Boolescher Ausdrücke Jedem Booleschen Ausdruck kann durch eine
Interpretationsfunktion : BE(Xn ) Bn eine Boolesche Funktion zugeordnet werden.
wird folgendermaßen induktiv definiert:
(0) = 0 (1) = 1 (xi )(1,...,n) = i Bn („Projektionsfunktion“)
((g+h)) = (g) + (h) („Disjunktion“) ((g h)) = (g) (h) („Konjunktion“) ((g)) = ((g)) („Negation“)
RW-Systemarchitektur Kap 1 18
Interpretation Boolescher Ausdrücke (e)() für ein Bn ergibt sich durch Ersetzen von xi durch i
für alle i in e und Rechnen in der Booleschen Algebra B.
Gilt (e)=f für einen Booleschen Ausdruck e und eine Boolesche Funktion f, so sagen wir, dass e ein Boolescher Boolescher AusdruckAusdruck für f ist bzw. dass e die Boolesche Funktion f beschreibtbeschreibt.
Zwei BEs e1 und e2 heißen äquivalentäquivalent (e1 e2 ) genau dann, wenn (e1) = (e2).
Jeder Boolesche Ausdruck repräsentiert eine Boolesche Funktion.
Lässt sich jede Boolesche Funktion als Boolescher Ausdruck darstellen?
RW-Systemarchitektur Kap 1 19
Spezielle Boolesche Ausdrücke: Polynome
Die Booleschen Ausdrücke xi und xi' heissen LiteraleLiterale, wobei xi als positives Literalpositives Literal und xi' als negatives Literalnegatives Literal bezeichnet wird.
Ein MonomMonom ist
eine Konjunktion von Literalen mit folgenden Zusatzeigenschaften:
jedes Literal kommt höchstens einmal vor, nicht sowohl das positive als auch das negative Literal einer
Variablen kommen vor, oder es ist der Boolesche Ausdruck 1.
Ein Monom heißt vollständigvollständig oder MintermMinterm, wenn jede Variable entweder als positives oder als negatives Literal vorkommt.
RW-Systemarchitektur Kap 1
Konstruktion über Funktionstafeln und ihre Formalisierung
Wie “baut” man einen Booleschen Ausdruck für die durch die Tabelle definierten Booleschen Funktionen?
Bsp: Die Funktion, welche s1 berechnet.
1. Betrachte Einträge, die eine 1 als Ergebnis haben.
2. Konstruiere einen Minterm zu x1, x2 und x3 folgendermaßen:
enthält die Spalte zu xi eine 1 xi
enthält die Spalte zu xi eine 0 xi’
3. Verknüpfe alle Minterme in einer Disjunktion
1111101011011011000101110100101010000000s0s1x3x2x1
Funktionstabelle
RW-Systemarchitektur Kap 1 21
Spezielle Boolesche Ausdrücke: Polynome
Für ein Bn heißt
der zu gehörende Mintermgehörende Minterm
Eine Disjunktion von paarweise verschiedenen Monomen heißt PolynomPolynom. Sind alle Monome des Polynoms vollständig, so heißt das Polynom vollständigvollständig.
Unter einer disjunktiven Normalformdisjunktiven Normalform einer Booleschen Funktion f versteht man ein Polynom von f.
Unter einer kanonischen (bzw. vollständigen) kanonischen (bzw. vollständigen) disjunktivendisjunktiven NormalformNormalform einer Booleschen Funktion f versteht man ein vollständiges Polynom von f.
RW-Systemarchitektur Kap 1
Boolesche Funktionen / BoolescheAusdrücke
LemmaLemma Zu jeder Booleschen Funktion f gibt es einen Booleschen
Ausdruck, der f beschreibt.Beweis:Beweis: Es gilt
Bem.: Der Boolesche Ausdruck zu einer Booleschen Funktion ist nicht eindeutig.
Für jeden Booleschen Ausdruck h gilt (h) = (h+h) = (h+h+h) =...
RW-Systemarchitektur Kap 1 23
Normalformen
heißt kanonische disjunktive Normalform (KDNF)kanonische disjunktive Normalform (KDNF) von f
Die kanonische disjunktive Normalform von f ist eindeutig, wenn man voraussetzt, dass die Minterme gemäß ihrer Variablen geordnet sind und die Anordnung von Mintermen im Polynom ebenfalls einer Ordnung folgt.
Es gibt weitere „zweistufige“ kanonische Normalformen (konjunktive Normalform, parity-Polynome).
)(
)(fON
mf
RW-Systemarchitektur Kap 1 24
Fragen
Zweistufige Normalformen aufgrund sehr großer Kosten in der Praxis nur für Boolesche Funktionen mit wenigen Eingängen einsetzbar
Wenn es viele Polynome (Boolesche Ausdrücke) für eine Funktion f gibt, wie findet man ein billig(st)es?
Wie kann man Boolesche Polynome (Boolesche Ausdrücke) praktisch realisieren?
Für den Spezialfall der Booleschen Polynome:Betrachte Programmierbare Logische Felder („programmable logic arrays“) bzw. PLAs
RW-Systemarchitektur Kap 1
(Zweistufige) Logiksynthese
1.4 PLAs und zweistufige Logiksynthese
RW-Systemarchitektur Kap 1
Programmierbare Logische Felder (PLA)Zweistufige Darstellung zur Realisierung von Booleschen Polynomen
fi = mi1+mi2+ ... +mik mit miq aus {m1,...,ms}
Fläche: ~ (m+2n)x(Anzahl_der_benötigten_Monome)
Enthält Monom mj k Lite-rale, so werden k Transis-toren in der entsprechen-den Zeile des AND-Feldes benötigt.
Besteht die Beschreibung von Funktion ft aus p Mo-nomen, so benötigt man p Transistoren in der ent-sprechenden Spalte des OR-Feldes.
Enthält Monom mj k Lite-rale, so werden k Transis-toren in der entsprechen-den Zeile des AND-Feldes benötigt.
Besteht die Beschreibung von Funktion ft aus p Mo-nomen, so benötigt man p Transistoren in der ent-sprechenden Spalte des OR-Feldes.
AND-Feld
OR-Feld
m1
mj
ms
m2
x1 x2 xn fmf1 f2
R1
R1
R1
R1
R1
R1
R1
R1
1
R
1
R
1
R
1
R
1
R
1
R