1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher...

36
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

Transcript of 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher...

Page 1: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 2: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 3: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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?

Page 4: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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)

Page 5: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 6: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 7: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

7

Aufzählung Boolescher FunktionenDie 16 möglichen Schaltfunktionen fi : {0,1} x {0,1} {0, 1}

Page 8: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 9: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 10: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 11: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 12: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 13: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 14: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

14

NAND- und NOR-Gatter in CMOS Technologie

NAND-Gatter NOR-Gatter

Page 15: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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 )

Page 16: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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'

Page 17: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 18: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 19: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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:

Page 20: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 21: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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).

Page 22: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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!

Page 23: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 24: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 25: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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'

Page 26: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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 ?

Page 27: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 28: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 29: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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'

Page 30: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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' }

Page 31: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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)

Page 32: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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.

Page 33: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung 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.

Page 34: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 35: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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

Page 36: 1 Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen.

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 )