1
Vertiefungsstoff zum Thema Logik und Schaltalgebra
Aussagenlogik
induktive Definition boolescher Terme
systematische Aufzählung boolescher Funktionen
technische Realisierung von Schaltfunktionen
konjunktive Normalformen
weitere Verfahren zur Minimierung von Schaltfunktionen
– Quine-McCluskey
– BDD
Werkzeuge zum Aufbau und zur Simulation von Schaltfunktionen
2
Beispiele für Boolesche Algebren
Aussagenlogik: mit den Operatoren „UND“ , „ODER“ und „NICHT“ über einer Menge von Aussagen. (Maschinelles Schlussfolgern)
Mengenalgebra mit den Operatoren „“ Vereinigung und „“ und „/“ Mengenkomplement auf der Potenzmenge einer Grundmenge G.
Schaltalgebra mit den Operatoren man verwendet dabei bi-stabile Schaltelemente:– Bi-stabile Schaltelemente haben zwei stabile Schaltzustände,
denen man die Schaltwerte 0 bzw. 1 zuordnet. – Technische Realisierung der Schaltzustände z.B. als Schalter
offen/geschlossen oder mit Transistor: Durchgang nichtleitend/leitend, hohes/niedriges Potential etc.
3
Aussagenlogik / Schaltlogik / Boolesche Algebra
Aussagenlogik: Aussagen sind Elemente einer Menge, die entweder wahr oder
falsch sind. (Beispiel: Zeugenaussagen bei einem Verhör.)
Aussagen lassen sich mit bestimmten Operatoren verknüpfen. Der Wahrheitsgehalt einer Verknüpfung ist dann ebenfalls wieder wahr oder falsch.
Beispiel („Logelei“): Nach einem Einbruch wurden drei Verdächtige A, B und C festgenommen. Im
Verhör ergaben sich folgende Sachverhalte:1. Als Täter kommen nur A, B und C in Frage. 2 C „arbeitet“ niemals alleine.3. A arbeitet niemals mit C.4. Wenn A schuldig ist und B nicht, dann ist auch C schuldig.
Preisfrage: Ist B schuldig?
4
Induktive Definition boolescher Ausdrücke
1. Induktionsanfang:
– Alle Elemente a1 aus M sind boolesche Ausdrücke.
– Das neutrale Element 0 ist ein boolescher Ausdruck.
– Das Eins- Element 1 ist ein boolescher Ausdruck.
Falls A und B boolesche Ausdrücke sind, so auch:A • B, B • A, (logische Notation: A B, B A, BA, ABA + B, B + A A B, B A'A, 'B A, B )(A), (B)
2. Induktionsschritt:
Gegeben: eine Basismenge M = {a1, ..., an} n 2
Beispiel: Basismenge M = {0, 1}.
⇒ (0+1) • '(1+'0) ist boolescher Ausdruck, bzw. (0 1) (1 0)
5
Aufzählung Boolescher Funktionen / SchaltfunktionenFrage: Welche 1-wertige und 2-stellige boolesche Funktionen gibt es?
Ansatz: Systematisches Aufzählen aller möglichen Funktionen der Funktionen f :
{0, 1} 2 {0, 1} 1-wertige u. 2-stellige boolescher Funktionen:
1. Nullfunktion: f0 (a,b) -> 0
2. Konjunktion: f1 (a,b) -> a b.....
16. Einsfunktion f15 (a,b) -> 1
Anmerkung: Man kann bei der Aufzählung die Funktionen fi (0 i 15)
übersichtlich so indizieren, dass aus ihrem Index i ablesbar ist, für welche Kombination der Eingabewerte (a, b) sie den Wert 1 annimmt.
0 0 11
0 0 00
f1 a b
1 1 13
0 1 02
6
Aufzählung Boolescher Funktionen / Schaltfunktionen
fi 0 1 2 3 Ausdruck BezeichnungKürzel
f0 0 0 0 0 0 Null-Funktion
f1 0 0 0 1 a b Konjunktion UND
f2 0 0 1 0 a bf3 0 0 1 1 a Projektion
f4 0 1 0 0 a b f5 0 1 0 1 b Projektion f6 0 1 1 0 a b Antivalenz XOR...........
x 0 11
x 0 00
fi a b
x 1 13
x 1 02
a ba b a b a b
In dieser Spalte stehen die Elemente der Indexmenge von Funktion fi.
Beispiel: If3 ={2, 3} d.h. f3 =1 für die Eingangsbelegungen:
a b oder a b
7
Aufzählung Boolescher FunktionenDie 16 möglichen Schaltfunktionen fi : {0,1} x {0,1} {0, 1}
8
Varianten zur Darstellungen Boolescher FunktionenBooleschen Funktion lassen sich auf verschiedene Form darstellen:
Beispiel: fXOR : {0, 1} 2n {0, 1}
Wertetabelle:
Indexmenge: IXOR = {01, 10} = {110, 310 }
Boolescher Ausdruck: fXOR (a,b) = a b = a‘ b + a b‘ = (a+b) (a‘+b‘)
Funktionsgraph (Binary Decision Diagram) (wird heute im Chip-Design verwendet)
0 1
0 0 1
1 1 0
9
Realisierung Boolescher Funktionen mit Schaltertechnik
Gegeben: Menge von binären SchaltvariablenGesucht: Geeignet Schalterbausteine, mit denen man Boole'sche
Funktionen fi : {0,1}n x {0,1} {0, 1} realisieren kann
Lösungsansatz: a) konstruiere Schalterbausteine für die Grundoperationen b) konstruiere Schalterbausteine zur Realisierung eines Null und eines
Eins-Elements.
Zu a): Konjunktion: Schaltfunktion f(a,b) a b
Disjunktion: Schaltfunktion f(a,b) a b
Komplement: Schaltfunktion f(a) a
10
Realisierung Boolescher Funktionen mit Schaltertechnik
Zu b): Schaltkonstante 0: Schaltfunktion f(a) 0 wird realisiert als
ständig offener Schalter:
Schaltkonstante 0: Schaltfunktion f(a) 1 wird realisiert als
ständig geschlossener Schalter:
Anmerkung: Die so realisierte Schaltalgebra ist eine Boolesche Algebra. Es lassen sich beliebig komplexe Schaltfunktionen durch Kombination
der Schalterbausteine aufbauen.
11
Realisierung von Gattern mit Halbleitern (für Interessierte)
Schaltgatter werden physisch im Wesentlichen aus Halbleiter-Bauelementen (Transistoren) aufgebaut. Eine wichtige Rolle spielen die sog. MOSFET (Metal-Oxide-Semiconductor-Field-Effect-Transistor) Transistoren. Man unterscheidet zwischen:– n-MOS Transistoren und daraus aufgebaute Schaltungen– p-MOS Transistoren und daraus aufgebaute Schaltungen– CMOS: Kombination von n-MOS und p-MOS TransistorenAufbau eines n-MOS Transistors:
Positive Spannung zwischen Gate und Source induziert n-leitende "Inversionsschicht" unter der Oxidschicht des Gates n-Kanal (dies ist der "Field Effect"), d.h., es fließt Strom zum Ausgleich des Potentialunterschieds zwischen Drain und Source.⇒ n-MOS Transistor fungiert als Schalter
12
Realisierung von Gattern mit Halbleitern
NMOS-Technologie:Realisierung elementarer logischer Gatter mit MOS-Transistoren.Ausschließliche Verwendung von n-MOS Transistoren hat erheblich an Bedeutung verloren.
CMOS-Technologie:Gemeinsame Verwendung von n-MOS und p-MOS Transistoren in komplementärer Form ist heutige Standardtechnologie-Gatter-Schaltzeiten bereits unter 0,5 nano sec. (Schaltzeit = Zeit, bis das Gatter aus Eingabe a den Wert f(a) bestimmt.)
Aufbau eines p-MOS analog, jedoch mit komplementärer Schaltfunktion.
Schaltbild: n-MOS p-MOS
13
Aufbau eines NICHT-Gatters in CMOS Technologie
a=0 (d.h. Spannung kleiner als Schwellwert) - n-MOS Transistor sperrt- p-MOS Transistor ist leitend- b erhält den Wert 1.
a=1: - p-MOS Transistor sperrt- n-MOS Transistor ist leitend- b erhält den Wert 0.
14
NAND- und NOR-Gatter in CMOS Technologie
NAND-Gatter NOR-Gatter
15
Konjunktive-Normalform KNF Definition: KNF, kanonische KNF, Maxterme
Seien D1 .... Dm (1 i m) paarweise verschiedene n-stellige Disjunktionsterme.
Dann definiert man die Konjunktive-Normalform als den Term: m m n
KNF = Di = xij i=1 i=1 j=1
Eine KNF heißt kanonisch, gdw. wenn jeder der m Disjunktionsterme Di alle n verschiednen Variablen (xi = ai oder xi = a'i ) enthält.In diesem Falle heißen die Di Volldisjunktionen oder Maxterme(=> Maxterm hat Wert 0 gdw. alle xi = 0)
Beispiel: KNF mit maximal 3-stelligen Disjunktionstermen:
a‘1 •(a2 a3 ) • (a1 a‘2 a‘3 ) •(a1 a3) kanonische KNF mit 3-stelligen Disjunktionstermen:
(a1 a2 a3 ) • (a1 a‘2 a3 ) • (a‘1 a‘2 a3 )
16
Verwendung von Normalformen zur Beschreibung boolescher Funktionen
zu 1: Konstruktion der kanonischen DNF für f
f(a,b,c) = ab'+c= ab'(c+c') +c ergänze ab' zum Minterm = ab'c + ab'c' + c= ab'c + ab'c' + (a+a') (b+b') c ergänze c zum Minterm= ab'c + ab'c' + (a+a') (bc+b'c)= ab'c + ab'c' + abc + ab'c + a'bc + a'b'c „ausmultiplizieren“= ab'c + ab'c' + abc + ab'c + a'bc + a'b'c entferne Duplikate= ab'c + ab'c' + abc + a'bc + a'b'c sortiere Minterme
= a'b'c + a'bc + ab'c' +ab'c + abc fertig!
zu 2: Konstruktion der kanonischen KNF für f wie formt man ab'+c so um, dass eine KNF der Form (x, y, z)
entsteht mit x=a oder x =a', y=b oder y=b' und z=c oder z=c'
17
Konstruktion der kanonischen KNF
Überlegung: man kann die KNF von f wie folgt berechnen:1. bilde unter Anwendung von DeMorgan das Komplement f ' von f2. berechne die DNF für f'3. wende auf DNF für f' wieder De Morgan an. => KNF von f
Beispiel:Sei f(a,b,c) = ab'+c => f '(a,b,c) = (ab')'c' = (a'+b)c' = a'c' + bc'berechne DNF für f 'f '(a,b,c) = a'c' + bc'
= a'c'b + a'c'b'+ abc' + a'bc' ergänze zu Mintermen= a'c'b + a'c'b'+ abc' + a'bc' entferne Duplikate und ordne um= a'b'c' + a'bc' + abc' das ist die DNF von f '
berechne Komplement der DNF von f ', also (a'b'c' + a'bc' + abc')' (a'b'c' + a'bc' + abc')' = (a'b'c')' (a'bc' )'(abc')'
= (a+b+c)(a+b'+c)(a'+b'+c) = KNF von f
18
Bestimmung von Min- und Maxtermen aus Funktionstabelle
Index a b c f(a,b,c) Minterm0 0 0 0 01 0 0 1 1 a'b'c 2 0 1 0 0 3 0 1 1 1 a'bc 4 1 0 0 1 ab'c' 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 abc => DNF = a'b'c + a'bc + ab'c' + abc
Satz: Zur eindeutigen Beschreibung einer Funktion f : {0, 1} n -> {0, 1} reicht
es aus, alle konjunktiv verknüpften Kombinationen von Eingangsvariablen zu betrachten, für die die Funktion den Wert 1 annimmt zu betrachten.
Diejenigen Kombinationen, für die f den Wert 1 annimmt sind gerade die Minterme der DNF von f.
19
Zusammenhang: Funktionstabelle, Min- und Maxtermen
Index a b c f(a,b,c) Minterme f Minterme f 'Maxterme f
0 0 0 0 0 a'b'c' a+b+c 1 0 0 1 1 a'b'c 2 0 1 0 0 a'bc' a+b'+c3 0 1 1 1 a'bc 4 1 0 0 1 ab'c' 5 1 0 1 0 ab'c a'+b+c'6 1 1 0 0 abc' a'+b'+c7 1 1 1 1 abc => DNF von f = a'b'c + a'bc + ab'c' + abc=> KNF von f = (a'+b'+c)(a'+b+c')(a+b'+c)(a+b+c)
Zur eindeutigen Beschreibung einer Funktion f : {0, 1} n -> {0, 1} kann man: die Minterme (d.h. Konjunktionen) aus der Funktionstabelle entnehmen. wahlweise die Minterme der komplementären Funktion f ' bestimmen
und diese invertieren. Man erhält dadurch die Maxterme der KNF von f. Begründung: Es gilt: KNF von f = (DNF von f ' )'Beispiel: f(a,b,a) gegeben durch:
20
Minimierungsverfahren für NormalformenMotivation: kanonische Normalformen sind ein Instrument, um die Äquivalenz von booleschen
Termen zu überprüfen. Bei der Entwicklung von Schaltfunktionen hat man jedoch das Problem, dass man
möglichst kurze beschreibende Terme für die zu realisierende Schaltfunktion haben möchte. Man ist daher am kürzesten booleschen Term interessiert, der f beschreibt.
Definition: MinimalformenSei DNF und KNF eine Disjunktive- bzw. eine Konjunktive Normalform der n-stelligen Funktion f : {0, 1} n -> {0, 1}. Dann bezeichnet:
Disjunktive-Minimalform (DMF) die kürzeste DNF für f undKonjunktive-Minimalform (KMF) die kürzeste KNF für f
Anmerkungen: Offenbar gibt es für jede boolesche Funktion f einen kürzesten booleschen
Term in DNF bzw. KNF, der f definiert. => Prinzipiell auffindbar, durch systematisches Ausprobieren.=> Ausprobieren ist jedoch unpraktikabel wegen kombinatorischer Explosion.
21
Minimierungsverfahren für NormalformenZur Minimierung boolescher Terme in DNF wurden unterschiedliche Verfahren
entwickelt:
Diagramm-Verfahren von Karnaugh Grafisches Verfahren, das die Summanden so in einer Tabelle anordnet, dass man einfach erkennen kann, welche Terme zusammengefasst werden können.
Listenverfahren von Quine-McCluskey Von DNF ausgehend, werden die Summanden systematische Vergleichen und soweit möglich mit der Nachbarschaftsregel (ab + ab' = a) verkürzt. Dazu werden die Summanden in Listen verwaltet.
Verwendung der baumartigen Binary Decision Diagramme (BDC's) Grafisches Verfahren, das die Funktionstabelle als Entscheidungsbaum darstellt. Minimale Terme werden gefunden, indem man mit der Nachbarschaftsregel. Wird mittlerweile in vielen CAD Systemen verwendet.
Resolutionsmethode von Robinson Erweiterung des Verfahren von Quine-McCluskey. Man benötigt jedoch keine DNF als Ausgangspunkt. (Einsatz: automatischen Beweisen, KI-Anwendungen).
22
Listenverfahren von Quine-McCluskeyGrundgedanke: es gibt Fälle, in denen es vorteilhaft ist, eine gegebne DNF unter
Anwendung der Idempotenz (a=a+a ) erst "aufzublähen", um dann mit Anwendung der Nachbarschaftsregel (ac+ac' = a(c+c') = a ) eine Verkürzung zu erzielen.
Beispiel: Gegeben sei Funktion f in DNF:f(a,b,c) = a'b'c + ab'c' + ab'c= a'b'c + ab'c' + ab'c Nachbarschaftsregel anwendbar
= (a'+a)b'c + ab'c' (a'+a)= 1 und 1•b'•c = b'c = b'c + ab'c' Frage: geht's noch kürzer?
Versuch 2:f(a,b,c) = a'b'c + ab'c' + ab'c = a'b'c + ab'c'+ ab'c + ab'c Aufblähen mit ab'c = ab'c + ab'c
= (a'+a)b'c + ab'(c'+c) Nachbarschaftsregel 2 mal anwenden= b'c + ab' = b'(a+c) eine Multiplikation eingespart!
23
Listenverfahren von Quine-McCluskeyVorbereitung
Zur übersichtlichen und systematischen Verwaltung der Summanden wählt man für diese eine geschickte Indizierung:Gegeben sei eine n-stellige Funktion f in DNF: K1 + ... + Km
Zuerst ordnet man jedem Summanden Ki seine n-stellige Binärzahl bi zu. Der besseren Übersicht halber bestimmt man für die bi noch die entsprechenden Dezimalindices di
Beispiel: Gegeben sei Funktion f in DNF:f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' Summanden Ki der DNF If = { 000 010 100 101 110 } Binär-Indices der Summanden 0 2 4 5 6 Dezimalindices
Beobachtung: Die Nachbarschaftsregel lässt sich offenbar auf genau die Summanden anwenden, die sich in ihrer Quersumme um genau eine 1 unterscheiden. => man gruppiert die Summanden nach der Anzahl der Einsen ihrer Binärindizes und kann sich dann bei der Suche nach möglichen Kandidaten für die Anwendung der Nachbarschaftsregel auf die Summanden je zwei benachbarter Gruppen beschränken.
24
Listenverfahren von Quine-McCluskeyErstellen der 1. Liste (am Beispiel)
Sei f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' Summanden Ki der DNF
000 010 100 101 110 Binärindices der Summanden 0 2 4 5 6 Dezimalindices
Liste 1
1. Indexgruppe 0 000 (keine 1)
2. Indexgruppe 2 010 (eine 1) 4 100
3. Indexgruppe 5 101 (zwei Einsen) 6 110
Anwendung der Nachbarschaftsregel:eliminierte Variablen hinterlassen Lücken "_"0,2 0_00,4 _00
2,6 _104,5 10_4,6 1_0
die reduzierten Terme werden in die nächste (= 2.te Liste) übernommen
alle Terme der ersten Liste sind durch die neuen Terme der zweiten Liste abgedeckt (brauchen nicht mehr beachtet werden.
25
Listenverfahren von Quine-McCluskey Übernahme in 2. Liste und erneute Anwendung der Nachbarschaftsregel
auf benachbarte Gruppen liefert eine 3. Liste mit dem Eintrag _ _0 Rückübersetzung von _ _0 liefert den Term c'
Liste 1 Liste2 Liste31. Indexgruppe 0 000 0,2 0_0 0,2,4,6 _ _0 (keine 1) 0,4 _00 0,4,2,6 _ _0
2. Indexgruppe 2 010 2,6 _10 (eine 1) 4 100 4,5 10_
4,6 1_0
3. Indexgruppe 5 101 (zwei Einsen) 6 110
Die Summanden der Minimalform sind genau die Terme, die in der Tabelle nicht weiter zusammengefasst werden konnten.
Anschaulich: von ihnen gehen keine Verbindungslinien zu einer nächsten Liste aus (siehe eingekreiste Terme)=> DMF für f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' lautet somit: ab' + c'
26
Anmerkungen zum Quine-McCluskey VerfahrenVorteile: Systematisches Verfahren, das sich gut automatisieren lässt. Da die übrig bleibenden Summanden in jeder Liste kürzer werden, ist
sichergestellt, dass das Verfahren nach endlich vielen Schritten terminiert.
Nachteile: zusätzlicher Aufwand zur Erstellung der DNF für die erste Liste. Verfahren findet stets alle Primimplikanten (d.h., solche Summanden, die
nicht weiter zusammengefasst werden können). Für die Minimalform einer Funktion benötigt man jedoch nicht immer alle Primimplikanten.
=> Quine-McCluskey Verfahren liefert nicht notwendigerweise den kürzesten Term (DMF). => Weiterer Schritt zur Identifikation der Primimplikaten erforderlich!
Beispiel:f(a,b,c) = a'b'c' + ab'c' + ab'c + abc Durchführung des Listenverfahrens für f liefert: ac + ab' + b'c'Aufstellen einer Wertetabelle lässt erkennen, dass gilt: f(a,b,c) = ac + b'c'
Frage: Wie kann man überflüssige Primimplikanten aussortieren ?
27
Auffinden überflüssiger PrimimplikatenAnsatz 1:
1. Stelle Wertetabelle für f auf 2. Überprüfe, welche Primimplikaten die 1-Werte der Funktion abdecken.=> Entferne Primimplikanten, die nur 1-Werte abdecken, die bereits von anderen Primimplikanten abgedeckt werden.
Beispiel:f(a,b,c) = a'b'c' + ab'c' + ab'c + abc DNF If = { 000 100 101 111 } Indexmenge von f
Ergebnis des Listenverfahrens: ac + ab' + b'c'
a b c f(a,b,c) ac ab' b'c'0 0 0 0 1 1 1 0 0 1 02 0 1 0 03 0 1 1 04 1 0 0 1 1 1 5 1 0 1 1 1 1 6 1 1 0 0 7 1 1 1 1 1
In der Wertetabelle von f kann man ablesen, welche Primimplikanten zu welchen Einsen beitragen.Die Einsen der Zeilen 4 und 5 werden doppelt abgedeckt!=> ab' ist überflüssig
28
Aufstellen einer PrimimplikantentabelleVorgehensweise:
1. Kopfzeile der Tabelle: Elemente der Indexmenge von f (d.h., die Indices, für die Funktion f den Wert 1 hat)2. 1. Spalte: alle mit dem QMC-Listenverfahren gefundenen Primimplikanten 3. Zellen: Eintrag 1, an Stelle i, j, falls Primimplikant der Zeile i Dezimalindex der Spalte j abdeckt. Kein Eintrag sonst.
Beispiel:f(a,b,c) = a'b'c' + ab'c' + ab'c + abc DNF If = { 000 100 101 111 } Indexmenge binär 0 4 5 7 Indices als DezimalzahlenErgebnis des QMC-Listenverfahrens: ac + ab' + b'c'
=> Primimplikanten-Tabelle:
ac
0 4 5 7
1
b'c'
ab'
1
1 1
1 1
29
Auswahl eines Minimalsatzes an Primimplikanten
ac
0 4 5 7
1
b'c'
ab'1
1 11 1
Vorgehensweise: 1. Bestimme zunächst den Kern, d.h., jene Primimplikanten, die Einsen abdecken, die von keinem anderen Primimplikanten abgedeckt werden.2. Entferne alle Spalten und Zeilen, die von Kernelementen abgedeckt werden. => es entsteht eine kleinere (oder sogar leere) Tabelle.3. Suche in der ggf. verbleibenden Tabelle nach Überdeckungen.
Beispiel:Primimplikanten-Tabelle für f
1. Bestimme Kern: = { ac, b'c' }2. Entferne vom Kern abgedeckte Zeilen und Spalten
=> es entsteht eine leere Tabelle. Also fertig. Ergebnis ist ac+b'c'
30
1 2 3 6 8 9 12 13 14 15ab ac' bcd' a'b'd a'b'ca'cd' b'c'd
Auswahl eines Minimalsatzes an Primimplikanten
1 1 1 1
Beispiel:Sei f : {0, 1}4 -> {0, 1} gegeben durch If = { 1, 2, 3, 6, 8, 9, 12, 13, 14, 15 }Ergebnis QMC: ab + ac' + bcd' + a'b'd + a'b'c+ a'cd' + b'c'd
Primimplikanten-Tabelle für f
2. in dieser Resttabelle muss weiter nach Überdeckungen gesucht werden.
3. => mögliche Wahl: a'b'd + a'cd' => Gesamtergebnis somit: ab+ ac' + a'b'd + a'cd'
1 1 1 11 1
1 111 1
1
1 1
1. Bestimme Kern: = { ab, a'c' }
31
Minimierungsverfahren für NormalformenZur Minimierung boolescher Terme in DNF wurden unterschiedliche Verfahren
entwickelt:
Diagramm-Verfahren von Karnaugh Grafisches Verfahren, das die Summanden so in einer Tabelle anordnet, dass man einfach erkennen kann, welche Terme zusammengefasst werden können.
Listenverfahren von Quine-McCluskey Von DNF ausgehend, werden die Summanden systematische Vergleichen und soweit möglich mit der Nachbarschaftsregel (ab + ab' = a) verkürzt. Dazu werden die Summanden in Listen verwaltet.
Verwendung der baumartigen Binary Decision Diagramme (BDC's) Grafisches Verfahren, das die Funktionstabelle als Entscheidungsbaum darstellt. Minimale Terme werden gefunden, indem man mit der Nachbarschaftsregel. Wird mittlerweile in vielen CAD Systemen verwendet.
Resolutionsmethode von Robinson Erweiterung des Verfahren von Quine-McCluskey. Man benötigt jedoch keine DNF als Ausgangspunkt. (Einsatz: automatischen Beweisen, KI-Anwendungen)
32
Weitere Verfahren zur MinimierungMotivation: Bei komplexeren Aufgaben stößt man auf folgende typische Probleme:
– Schalttabelle zu groß (bei n Variablen 2n Zeilen!)– kanonische DNF oder kanonische KNF meist auch sehr groß, selbst in vereinfachter Form.– Untersuchung der Eigenschaften Boolescher Funktionen bei Darstellung durch kDNF oder kKNF schwierig (z.B. Kosten der Auswertung steigen nicht linear zur Anzahl der Variablen.)
=> Entwicklung weiterer Darstellungsmöglichkeiten:– reduzierte Funktionsgraphen und– binäre Entscheidungsdiagramme (Binary Decision Diagram / BDD)
BDD's haben in den letzten Jahren (seit 1986) im Bereich des CAD (Computer Aided Design) starke Bedeutung erlangt für:- den rechnergestützten Schaltungsentwurf, bzw. - für die Untersuchung von Eigenschaften Boolescher Funktionen.
33
Funktionsdarstellung mit BDDBeispiel: 3-stellige Boole'sche Funktion f(a,b,c)
a b c f(...)Darstellung von f als BDD
c c c c
a'bc + ab'c + abc' +abc
DNFf =
Idee: Man minimiert f, indem man den BDD geeignet umbaut.
34
Minimierung mit dem BDD VerfahrenBeispiel: f(a,b,c) = XOR(a,b,c) = a b c
Darstellung von f als BDD
Anmerkung:
BDD der XOR-Funktion mit n Variablen hat (ohne Blätter) genau 2n+1 Knoten, die DNF oder KNF der gleichen Funktion hat jedoch die Größe 2n.
=> BDD verursacht erheblich weniger Aufwand bei der Minimierung.
DMFf = a'b'c + a'bc' + ab'c' + abc
35
Zusammenfassung Minimierung Boolescher Funktionen
Allgemeines Schema beim Entwurf einer Schaltfunktion:
Zur Minimierung stehen unterschiedliche Verfahren zur Auswahl. Für kleine Aufgaben, die von Hand durchgeführt werden, sind die grafische Methoden (Karnaugh-Diagramm, oder BDD) gut geeignet.
Schritt 1:
Schritt 2:
Schritt 3:
Schritt 4:
Schritt 5:
Textuelle Aufgabenstellung
Funktionsgleichung / Wertetabelle aufstellen(bei m-wertigen Funktionen m Einzel-Tabellen)
Minterme bestimmen
DNF aus Mintermen bestimmen
DMF bestimmen
2-stufiges Schaltnetz ableiten und zeichnen
36
Entwurf und Simulation von Digitalschaltungen Digitale Schaltungen lassen sich bequem mit grafischen Werkzeugen
entwerfen und austesten, bevor man sie physisch aufbaut. Beispiel: Elektronik Design Labor (www.electronicsworkbench.de )
Top Related