Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vertiefungsstoff zum Thema Logik und Schaltalgebra

Ähnliche Präsentationen


Präsentation zum Thema: "Vertiefungsstoff zum Thema Logik und Schaltalgebra"—  Präsentation transkript:

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
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. Wenn A schuldig ist und B nicht, dann ist auch C schuldig. Preisfrage: Ist B schuldig?

4 Induktive Definition boolescher Ausdrücke
Gegeben: eine Basismenge M = {a1, ..., an} n  2 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. 2. Induktionsschritt: Falls A und B boolesche Ausdrücke sind, so auch: A • B, B • A, (logische Notation: A Ù B, B Ù A, BA, AB A + B, B + A A Ú B, B Ú A 'A, 'B ØA, ØB ) (A), (B) Beispiel: Basismenge M = {0, 1}. ⇒ (0+1) • '(1+'0) ist boolescher Ausdruck, bzw. (0 Ú 1) Ù Ø(1 Ú Ø0)

5 Aufzählung Boolescher Funktionen / Schaltfunktionen
Frage: 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 a b f1 0 0 1 0 1 2 1 0 3 1 1 1 eine zweistellige Funktion f hat 2*2 mögliche Kombinationen von Eingabewerte ist f einstellig, so hat man für jeden der 4 Eingabekombinationen e1, e2, e3, e4 jeweils die Möglichkeit, diese auf den Wert 0 oder 1 abzubilden. Somit erhält man: 2*2*2*2 = 16 verschiedene Zuordnungsmöglichkeiten (= Funktionen) 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.

6 Aufzählung Boolescher Funktionen / Schaltfunktionen
x 0 1 1 0 0 fi a b 1 1 3 1 0 2 Øa Ù Øb Øa Ù 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 fi Ausdruck Bezeichnung Kürzel f Null-Funktion f a Ù b Konjunktion UND f a Ù Øb f a Projektion f Øa Ù b f b Projektion f a  b Antivalenz XOR Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1

7 Aufzählung Boolescher Funktionen
Die 16 möglichen Schaltfunktionen fi : {0,1} x {0,1}  {0, 1}

8 Varianten zur Darstellungen Boolescher Funktionen
Booleschen 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) 1

9 Realisierung Boolescher Funktionen mit Schaltertechnik
Gegeben: Menge von binären Schaltvariablen Gesucht: 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 f0 (a)  0 wird realisiert als ständig offener Schalter: Schaltkonstante 0: Schaltfunktion f1 (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 Transistoren Aufbau 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
Aufbau eines p-MOS analog, jedoch mit komplementärer Schaltfunktion. Schaltbild: n-MOS p-MOS 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.)

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 D 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 f 2. 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
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. Index a b c f(a,b,c) Minterm a'b'c a'bc ab'c' abc => DNF = a'b'c + a'bc + ab'c' + abc

19 Zusammenhang: Funktionstabelle, Min- und Maxtermen
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: Index a b c f(a,b,c) Minterme f Minterme f ' Maxterme f a'b'c' a+b+c a'b'c a'bc' a+b'+c a'bc ab'c' ab'c a'+b+c' abc' a'+b'+c 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)

20 Minimierungsverfahren für Normalformen
Motivation: 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: Minimalformen Sei 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 und Konjunktive-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 Normalformen
Zur 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-McCluskey
Grundgedanke: 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: = 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-McCluskey
Vorbereitung 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: K 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 = { } Binär-Indices der Summanden 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-McCluskey
Erstellen der 1. Liste (am Beispiel) Sei f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' Summanden Ki der DNF Binärindices der Summanden Dezimalindices Anwendung der Nachbarschaftsregel: eliminierte Variablen hinterlassen Lücken "_" 0,2 0_0 0,4 _00 2,6 _10 4,5 10_ 4,6 1_0 die reduzierten Terme werden in die nächste (= 2.te Liste) übernommen Liste 1 1. Indexgruppe (keine 1) 2. Indexgruppe (eine 1) 3. Indexgruppe (zwei Einsen) 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 Liste3 1. Indexgruppe , _0 0,2,4,6 _ _0 (keine 1) ,4 _00 0,4,2,6 _ _0 2. Indexgruppe ,6 _10 (eine 1) , _ 4,6 1_0 3. Indexgruppe (zwei Einsen) 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 Verfahren
Vorteile: 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 Primimplikaten
Ansatz 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 = { } Indexmenge von f Ergebnis des Listenverfahrens: ac + ab' + b'c' a b c f(a,b,c) ac ab' b'c' 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 Primimplikantentabelle
Vorgehensweise: 1. Kopfzeile der Tabelle: Elemente der Indexmenge von f (d.h., die Indices, für die Funktion f den Wert 1 hat) 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 = { } Indexmenge binär Indices als Dezimalzahlen Ergebnis des QMC-Listenverfahrens: ac + ab' + b'c' => Primimplikanten-Tabelle: Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 ac 1 b'c' ab'

29 Auswahl eines Minimalsatzes an Primimplikanten
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 ac 1 b'c' ab' Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 Bestimme Kern: = { ac, b'c' } Entferne vom Kern abgedeckte Zeilen und Spalten => es entsteht eine leere Tabelle. Also fertig. Ergebnis ist ac+b'c'

30 Auswahl eines Minimalsatzes an Primimplikanten
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 ab ac' bcd' a'b'd a'b'c a'cd' b'c'd Bestimme Kern: = { ab, a'c' } 1 1 1 1 1 1 1 1 1 1 Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 in dieser Resttabelle muss weiter nach Überdeckungen gesucht werden. => mögliche Wahl: a'b'd + a'cd' => Gesamtergebnis somit: ab+ ac' + a'b'd + a'cd'

31 Minimierungsverfahren für Normalformen
Zur 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 Minimierung
Motivation: 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 BDD
Beispiel: 3-stellige Boole'sche Funktion f(a,b,c) Darstellung von f als BDD a b c f(...) c c c c DNFf = a'bc + ab'c + abc' +abc Idee: Man minimiert f, indem man den BDD geeignet umbaut.

34 Minimierung mit dem BDD Verfahren
Beispiel: f(a,b,c) = XOR(a,b,c) = a  b  c Darstellung von f als BDD DMFf = a'b'c + a'bc' + ab'c' + abc 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.

35 Zusammenfassung Minimierung Boolescher Funktionen
Allgemeines Schema beim Entwurf einer Schaltfunktion: Textuelle Aufgabenstellung Schritt 1: Schritt 2: Schritt 3: Schritt 4: Schritt 5: Funktionsgleichung / Wertetabelle aufstellen (bei m-wertigen Funktionen m Einzel-Tabellen) Minterme bestimmen DNF aus Mintermen bestimmen DMF bestimmen 2-stufiges Schaltnetz ableiten und zeichnen 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.

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 )


Herunterladen ppt "Vertiefungsstoff zum Thema Logik und Schaltalgebra"

Ähnliche Präsentationen


Google-Anzeigen