Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Teil II Entwurf digitaler Schaltungen 2.1 Logik, Schaltalgebra und Schaltfunktionen Themen Boolesche Algebra und boolesche Funktionen Rechenregeln für.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Teil II Entwurf digitaler Schaltungen 2.1 Logik, Schaltalgebra und Schaltfunktionen Themen Boolesche Algebra und boolesche Funktionen Rechenregeln für."—  Präsentation transkript:

1 1 Teil II Entwurf digitaler Schaltungen 2.1 Logik, Schaltalgebra und Schaltfunktionen Themen Boolesche Algebra und boolesche Funktionen Rechenregeln für boolesche Terme Schaltfunktionen Disjunktive Normalformen für Schaltfunktionen Verfahren zur Minimierung von Schaltfunktionen – Karnaugh-Diagramme Nachbetrachtung zur Minimierung von Schaltfunktionen

2 2 Motivation Nach welchen Prinzipen funktionieren Rechenmaschinen bzw. moderne Computer? Wie sind digitale Rechenanlagen aufgebaut? Was verbirgt sich hinter einer CPU?

3 Motivation (Ausblick): Addiererwerk CPU (Central Processing Unit) Register R1 Register R2 Register R3 ALU (Arithmetic and Logic Unit) Addierwerk: s = x+y x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 y 8 y 7 y 6 y 5 y 4 y 3 y 2 y 1 s 8 s 7 s 6 s 5 s 4 s 3 s 2 s 1 Aufgaben einer CPU Befehle der Reihe nach abarbeiten. Beispiele Befehl- und Datentransport: Hauptspeicher  Register Register  Hauptspeicher Rechnen (ALU): R2 + R3  R1 R1++  R2  R3 R2  R3  R1 …

4 Motivation (Ausblick): Addiererwerk FA cncn c1c1 c2c2 c3c3 cn1cn1 x 1 y 1 x 3 y 3 x 2 y 2 x n y n snsn s1s1 s2s2 s3s3... c 0 = 0 & 11 =1 & cici sisi x i y i c i  1 Volladdierer (Full Adder) (mit Hilfe von Schaltgattern) Jedes Gatter ist aus Transistoren etc. aufgebaut.

5 5 Aussagenlogik / Schaltlogik / Boolesche Algebra Schaltalgebra befasst sich mit der Rückführung elektronischer Schaltungen auf eine mathematische Beschreibung, die sog. boolesche Algebra. Grundlage sind die Arbeiten von George Boole, der die logische Verknüpfung von (sprachlichen) Aussagen formal zu fassen versuchte. George Boole engl. Mathematiker Eine Brücke zwischen Aussagelogik und elektronischen Schaltungen ergibt sich aus dem Umstand, dass die Wahrheitswerte wahr und falsch auf einen physikalischen Sachverhalt wie z.B. „Schalter ein" bzw. „Schalter aus" übertragbar sind. Beispiel: Aussage A = „es regnet“, (entweder wahr oder falsch) Aussage B = „die Straße ist nass“ (entweder wahr oder falsch) Verknüpfung: Wenn A wahr ist, dann ist auch B wahr.

6 6 formalisierte Aussagenlogik  WF FW  FW FFF WFW  FW FFW WWW Beachte: F ... = F Beachte: W ... = W Notation logischer Operationen:  not,  and  or  wenn...dann  genau dann... Wenn  xor, bzw. entweder... oder Basisoperationen durch Tabellen definiert  Oft Verwendung anderer Operatorsymbole! statt  auch * oder („mal“ oder Punkt) oder && statt  auch + oder || statt  auch ' („Strich“), oder („Überstrich“) oder ! es ist also :  x dasselbe wie x' oder x oder !x

7 7 abgeleitete aussagenlogische Operationen Weitere Operationen lassen sich aus den Grundoperatoren  und  herleiten. Äquivalenz x  y := (x  y)  (  x   y) Antivalenz x  y := (x   y)  (  x  y) Implikation x  y :=  x  y  FW FWW WFW  FW FWF WFW  FW FFW WWF (2+2=5)  Russell ist Papst Bertrand Russell, Englischer Philosoph und Logiker

8 8 Boolesche Algebra Definition: Eine Boolesche Algebra ist eine Struktur (M,, +, ' ) wobei gilt: M ist eine Menge mit mindestens zwei Elementen 0 und 1 (d.h. |M| ≧ 2 ). Es gibt zwei Verknüpfungen: : M x M  M (a,b) := a b (boolesches Produkt) + :M x M  M +(a,b) := a + b (boolesche Summe) Es gibt ein Operator: ' (Strich) zur Bildung eines inversen Elements: ' : M  M, wobei a' boolesches Komplement von a ist ( a a' = 0 ). Beachte: –Der Operator wird oft nicht ausgeschrieben. Anstelle von ab schreibt man dann nur ab. –Anstelle des Operators ' verwendet man auch den Überstrich. Man schreibt dann a anstelle von a'.

9 9 Boolesche Algebra Es gelten die sog. Huntingtonsche Axiome (BA1) bis (BA4): (BA1): Die Operatoren: und + sind kommutativ, d.h., es gilt: ab = ba a+b = b+a (BA2): und + sind wechselseitig distributiv, d.h., es gilt: a (b+c) = ab + ac (Analog zum Rechnen mit Zahlen!) a+(b c) = (a+b) (a+c) (Vorsicht: Gilt nicht für Zahlen!) (BA3):Es gibt neutrale Elemente 0 und 1, d.h., es gilt: a 1 = a a + 0 = a (BA4): a' ist komplementär zu a, derart dass gilt: a a' = 0 Außerdem: Festlegung von Bindungs-Prioritäten: Operator Priorität Komplement höchste mittlere +niedrigste

10 10 Rechenregeln für boole'sche Ausdrücke 0-1-Gesetze:  a  M: a 1 = a, a 0 = 0 und a + 1 = 1, a + 0 = a Idempotenzgesetze:  a  M: a a = a und a + a = a Assoziativgesetze:  a,b,c  M: a (b c) = (a b) c und a + (b + c) = (a + b) + c Absorptionsgesetz:  a,b  M: a (a+b) = a a + a b = a Nachbarschaftsregel:  a,b  M: a (b+b' ) = a b + a b' = a De-Morgansche-Regeln:  a,b  M: (a b)' = a' + b' und (a + b)' = a' b' oder (a + b) = a b Doppeltes Boolesches Komplement:  a  M: a'' = a alternative Schreibweise: a = a Komplementarität der neutralen Elemente: 0' = 1 und 1' = 0

11 11 Beispiele für Boole'sche Algebren Aussagenlogik: Mit den Operatoren  NICHT, UND, ODER) über einer Menge von Aussagen. (Anwendung: Künstliche Intelligenz) Mengenalgebra auf Grundmenge G mit den Operatoren  (Vereinigung) und  (Durchschnitt) und ¯ ( Ā  G \ A, A   (G) ). Schaltalgebra mit den Operatoren: '   NICHT, UND, ODER), man verwendet dabei bi-stabile Schaltelemente (Transistoren, Schalter, usw.) die: –... zwei stabile Schaltzustände haben, denen man mit Schaltwerte 0 und 1 zuordnet. (Technische Realisierung der Schaltzustände z.B. als Schalter: offen/geschlossen, Durchgang nichtleitend/leitend, hohes/niedriges Potential etc.) –... Ein- und Ausgänge haben und logische Verknüpfungen zwischen an den Eingängen angelegten Schaltwerten herstellen und die Verknüpfungsergebnisse als Schaltwerte an den Ausgängen bereitstellen.

12 12 Schaltfunktionen sind boolesche Funktionen Definition: Schaltfunktion Eine n-stellige und m-wertige Schaltfunktion ist eine boolesche Funktion f: {0, 1} n  {0, 1} m f(x x n )  (y y m ) Für einwertige boolsche Funktionen f: {0, 1} n  {0, 1} definiert man die Indexmenge von f als die die Menge I f der binären Zahlen b b n für die gilt: f (b b n ) = 1. Definition: Schaltfunktion Eine n-stellige und m-wertige Schaltfunktion ist eine boolesche Funktion f: {0, 1} n  {0, 1} m f(x x n )  (y y m ) Für einwertige boolsche Funktionen f: {0, 1} n  {0, 1} definiert man die Indexmenge von f als die die Menge I f der binären Zahlen b b n für die gilt: f (b b n ) = 1. Anmerkungen Jede einwertige (1-wertige) Schaltfunktion wird durch n und ihre Indexmenge eindeutig definiert. Für eine n-stellige Schaltfunktion gibt es 2 n verschiedene Eingabevektoren. => Es gibt 2 q mit q = 2 n verschiedene n-stellige, 1-wertige Schaltfunktionen.

13 13 Aufzählung Boolescher Funktionen Die 16 möglichen Schaltfunktionen f i : {0,1} x {0,1}  {0, 1}

14 14 Terme zur Angabe von Schaltfunktionen Motivation Benötigt wird eine kompakte Notation zur Angabe von Schaltfunktionen. Lösung Man führt eine Menge von booleschen Variablen {x x n } ein und verwendet boolesche Ausdrücke zur Angabe von n-stelligen, einwertigen Funktionen. Beispiel: Darstellung der Funktion f AND : {0, 1} 2  {0, 1} durch den Term: x 1 x 2 Man schreibt: f AND (x 1, x 2 ) := x 1 x 2 Anmerkungen: Jede 1-wertige boolesche Funktion kann durch einen Booleschen Ausdruck (Schaltterm) beschrieben werden. Jeder boolesche Ausdruck mit n verschiedenen Variablen definiert genau eine n-stellige Boolesche Funktion. Für eine Boolesche Funktion kann man beliebig viele unterschiedliche Terme angeben, die die Funktion definieren. => Verfahren zur Überprüfung, ob zwei Terme äquivalent sind.

15 15 Vollständige Operatorsysteme / Verknüpfungsbasen Logische Operatoren lassen sich auf die Grundoperatoren zurückführen. Das aus den drei Operatoren '   + bestehende System ist vollständig, weil damit alle denkbaren booleschen Funktionen beschreibbar sind. Man sagt auch: { '   + } ist eine Verknüpfungsbasis. Frage: Kann man auch eine andere Menge an Grundoperatoren wählen, und mit denen man ebenfalls alle booleschen Funktionen beschreiben kann? Antwort: Ja: Es gibt sogar mehrere vollständige Operatorsysteme: OperatormengeKomplementDisjunktionKonjunktion { '   +  } a' a + b a b { '   } a'  (a' b' )' a b { '  +  } a' a + b  (a' + b' )' {NOR  } aNOa (aNOb)NO(aNOb) (aNOa)NO(bNOb) {NAND  } aNAa (aNAa)NA(aNAa) (aNAb)NA(aNAb)... weitere. Ein Wechsel zu einer anderen Verknüpfungsbasis kann für die technische Realisierung der Schaltelemente von Vorteil sein.

16 16 Varianten zur Darstellungen Boolescher Funktionen Booleschen Funktion lassen sich auf verschiedene Form darstellen: Beispiel: f XOR : {0, 1} 2 n  {0, 1} Wertetabelle: Boolescher Ausdruck: f XOR (a,b) = a  b = a' b + a b' = (a+b)(a' +b' ) Indexmenge: I XOR = { (01) 2, (10) 2 } = { (1) 10, (3) 10 } Funktionsgraph (Binary Decision Diagram) (Wird in der Praxis zum Chip-Design verwendet.) 

17 17 Schaltgatter Elementare Gatter:Gattersymbol (DIN 40700) seit 1976früher NICHT-Gatter (NOT) (Negationsglied) abgekürzt: ODER-Gatter (OR) (Disjunktionsglied) UND-Gatter (AND) (Konjunktionsglied) Definition: Schaltgatter Eine Schaltung zur Realisierung spezieller (ausgezeichneter) schaltalgebraischer Verknüpfungen nennt man Schaltgatter. (Gebräuchlich sind auch: digitales Verarbeitungsglied, Gatter) Definition: Schaltgatter Eine Schaltung zur Realisierung spezieller (ausgezeichneter) schaltalgebraischer Verknüpfungen nennt man Schaltgatter. (Gebräuchlich sind auch: digitales Verarbeitungsglied, Gatter) 1& 11

18 18 Schaltgatter Weitere Gatter:Gattersymbol (DIN 40700) neu alt NOR-Gatter (Peirce-Funktion) NAND-Gatter (Sheffer-Funktion) XOR-Gatter (Antivalenz, Paritäts-Fkt.) XOR auch als Paritätsfunktion „2k+1“: Am Ausgang liegt 1 an, wenn bei einer ungeraden Zahl von Eingängen 1 anliegt. & 11 =1 2k+1 e 1 e e n

19 19 Schaltgatter Aufbau von Schaltungen aus den Basisschaltungen Beispiel: XOR-Gatter (auch Antivalenz- oder Paritäts-Funktion genannt) Es gilt: f XOR (e 1, e 2 ) = e 1  e 2 = (e 1e 2 ' ) + (e 1 ' e 2 ) = a => Aufbau eines XOR-Gatters aus: 2 Negationsglieder 2 UND-Gatter 1 ODER-Gatter & & 11 e1e1 e2e2 a

20 20 Schaltgatter mit mehreren Eingängen Zur Vereinfachung arbeitet man in komplexeren Anwendungen mit n-stelligen Gattern. Beispiel: ODER-Gatter mit n Eingängen a = e 1 + e 2 + e e n AND-Gatter mit n Eingängen a = e 1 e 2 e e n NOR-, NAND-Gatter mit n Eingängen entsprechend e 1 e e n e 1 e e n a a

21 21 Aufbau komplexer Schaltfunktionen aus Gattern Auf integrierten Schaltkreisen lassen sich mittlerweile mehrere Millionen Transistoren unterbringen. Größe eines Chips: wenige mm bis 2,5 cm Kantenlänge. Integrationsdichte Gatter pro (Logik-)Chip – Small Scale Integration (SSI) < 12 – Medium Scale Integration (MSI) –Large Scale Integration (LSI) –Very Large Scale Integration (VLSI) –Ultra Large Scale Integration (ULSI) –Gigantic Scale Integration (GSI) > –Horrendous Scale Integration (HSI) > – Intel Core i7 Prozessor: 731 Mio. Transistoren Dennoch ist es beim Entwurf von Schaltfunktionen erstrebenswert, eine Darstellung zu wählen, die sich mit einer möglichst geringen Anzahl von physischen Gattern realisieren lässt.

22 22 Moore´s Law Gordon Moore, Mitgründer der Firma Intel, sagte bereits 1965 voraus, dass sich die Anzahl der Transistoren, die sich auf einem Chip unterbringen lassen, ungefähr alle 2 Jahre verdoppelt. Chips auf Silizium-Waver

23 23 Entwurf und Realisierung logischer Schaltfunktionen Den Arbeitsschritten bzw. deren Ergebnissen des Entwurfs auf der logischen Ebene lassen sich entsprechende Stationen auf der physischen Ebene zuordnen. Operatoren- system Gatter- Arten Logische Funktion DNFDMF 2-stufige Schaltung Minimierte Schaltung Elektronische Schaltung Komposition Abstraktion Konkretisierung Vereinfachung Logische Ebene (funktionale Beschreibungen) Physische Ebene (Schaltkreise, Chips)

24 24 Beispiel Indexa b c f x (a,b,c) Funktion f : {0, 1} 3  {0, 1} 2 dreistellig, zweiwertig mit f(a,b,c) ↦ (x, y) wird aufgeteilt in die beiden Funktionen: f x (a,b,c) ↦ x mit und f y (a,b,c) ↦ y Wertetabelle f x (a,b,c) Wertetabelle f y (a,b,c) f(a,b,c) a b c x y Indexa b c f x (a,b,c)

25 25 Normalformen zur Beschreibung boolescher Funktionen Da Schaltfunktionen auf der physischen Ebne durch eine Kombination von Gattern realisiert werden, möchte man Schaltfunktionen durch einen günstigen (d.h. möglichst kurzen) booleschen Ausdruck definieren. Zum systematischen Finden solcher günstigen Terme stellt man eine Schaltfunktion zunächst in einer sog. Normalformen dar. Von besonderer Bedeutung sind Normalformen für sog. 2-stufige Schaltfunktionen. Idee: Funktion so beschreiben, dass in ihrer technischen Realisierung vom Eingang bis zum Ausgang maximal 2 Gatter durchlaufen werden. Für die Verknüpfungsbasis { '   + } gelingt dies durch Darstellung einer Funktion als: - Konjunktion mehrerer Disjunktionen => n-stelliger Konjunktionsterm oder umgekehrt, als - Disjunktion mehrerer Konjunktionen => n-stelliger Disjunktionsterm

26 26 Normalformen zur Beschreibung Boolescher Funktionen Definition: Konjunktions- und Disjunktionsterme Seien a a n paarweise verschiedene Boolesche Variablen und sei für 1  i  n x i = a i oder x i = a' i Dann nennt man: n K =  x i boolesches Produkt oder n-stelligen Konjunktionsterm i=1 n D =  x i boolesche Summe oder n-stelligen Disjunktionsterm i=1 Definition: Konjunktions- und Disjunktionsterme Seien a a n paarweise verschiedene Boolesche Variablen und sei für 1  i  n x i = a i oder x i = a' i Dann nennt man: n K =  x i boolesches Produkt oder n-stelligen Konjunktionsterm i=1 n D =  x i boolesche Summe oder n-stelligen Disjunktionsterm i=1 Beispiele: für 4-stellige boolesche Produkte (Operator bzw.  ): a 1  a 2  a 3  a 4, a 1  a‘ 2  a‘ 3  a 4, a‘ 1  a‘ 2  a‘ 3  a 4 für 4-stellige boolesche Summen (Operator + bzw.  ): a 1 +  a 2 +  a 3 +  a 4, a 1 +  a‘ 2 +  a‘ 3 +  a 4, a‘ 1 +  a‘ 2 +  a‘ 3 + a 4

27 27 Disjunktive-Normalform DNF Definition: DNF, kanonische DNF, Minterme Seien K K m (1  i  m) paarweise verschiedene n-stellige Konjunktionsterme. Dann definiert man die Disjunktive-Normalform als den Term: m m n DNF =  K i =   x ij i=1 i=1 j=1 Eine DNF heißt kanonisch, gdw. wenn jeder der m Konjunktionsterme K i alle n verschiednen Variablen (x i = a i oder x i = a' i ) enthält. In diesem Falle heißen die K i Vollkonjunktionen oder Minterme (=> Minterm hat Wert 1 gdw. alle x i = 1) Definition: DNF, kanonische DNF, Minterme Seien K K m (1  i  m) paarweise verschiedene n-stellige Konjunktionsterme. Dann definiert man die Disjunktive-Normalform als den Term: m m n DNF =  K i =   x ij i=1 i=1 j=1 Eine DNF heißt kanonisch, gdw. wenn jeder der m Konjunktionsterme K i alle n verschiednen Variablen (x i = a i oder x i = a' i ) enthält. In diesem Falle heißen die K i Vollkonjunktionen oder Minterme (=> Minterm hat Wert 1 gdw. alle x i = 1) Beispiel: DNF mit maximal 3-stelligen Konjunktionstermen: a‘ 1  ( a 2  a 3 )  ( a 1  a‘ 2  a‘ 3 )  ( a 1  a 3 ) kanonische DNF (kurz: kDNF) mit 3-stelligen Konjunktionstermen: ( a‘ 1  a‘ 2  a 3 )  ( a‘ 1  a 2  a 3 )  ( a 1  a‘ 2  a‘ 3 )  ( a 1  a 2  a 3 )

28 28 Verwendung der DNF zur Beschreibung boolescher Funktionen Satz: Für jede echte n-stellige boolesche Funktion f : {0, 1} n  {0, 1} kann man boolesche Terme in DNF angeben, durch die f definiert wird. Falls die eine Funktion beschreibende Terme in kanonischer Form vorliegen, so handelt es sich sogar um eine eindeutige Beschreibung. (abgesehen von einer willkürlich gewählten aber festen Reihenfolge der Variablen x i ) Beispiel: Gegeben: f: {0, 1} 3  {0, 1} mit f(a, b, c ) := (a  b‘ )  c = ab'+c Schreibweise mit logischen Operatoren: f(a, b, c ) := (a  b )  c Gesucht: f kDNF (a,b,c) d.h., die kanonische DNF für f Ansatz: Verwende die Rechenregeln für boolesche Terme zum Umformen des Terms ab'+c in die gewünschte Normalform

29 29 Algorithmus zur Bestimmung einer kDNF Sei f eine n-stellige boolesche Funktion f : {0, 1} n  {0, 1} gegeben durch einen definierenden Term t(x 1... x i ) mit x i = a i oder x i = a' i für 1  i  n Schritt 1: Eliminiere in t alle Negationen von Produkten und Summen sowie Mehrfachnegationen durch Anwendung der De Morgan'schen Regeln: (a+b)' = a'b' bzw. (ab)' = a' + b' und (a')' = a Schritt 2: Eliminiere alle Klammern durch Ausmultiplizieren t(x 1... x i ) hat jetzt die Form: K K m Schritt 3: Ergänze die Summanden K K m zu Mintermen. D.h. jedes K i muss alle n-Variablen x i enthalten. Dies gelingt durch Anwendung der Nachbarschaftsregel: a= a(b+b') Schritt 4: Eliminiere unter den Mintermen gegebenenfalls entstandene Duplikate. Schritt 5: Ordne die Minterme aufsteigend nach ihrem Binärwert. (z.B. a'bc < ab'c‘ weil 011 < 100 ) => Term t(x 1... x i ) ist jetzt in kanonischer DNF Sei f eine n-stellige boolesche Funktion f : {0, 1} n  {0, 1} gegeben durch einen definierenden Term t(x 1... x i ) mit x i = a i oder x i = a' i für 1  i  n Schritt 1: Eliminiere in t alle Negationen von Produkten und Summen sowie Mehrfachnegationen durch Anwendung der De Morgan'schen Regeln: (a+b)' = a'b' bzw. (ab)' = a' + b' und (a')' = a Schritt 2: Eliminiere alle Klammern durch Ausmultiplizieren t(x 1... x i ) hat jetzt die Form: K K m Schritt 3: Ergänze die Summanden K K m zu Mintermen. D.h. jedes K i muss alle n-Variablen x i enthalten. Dies gelingt durch Anwendung der Nachbarschaftsregel: a= a(b+b') Schritt 4: Eliminiere unter den Mintermen gegebenenfalls entstandene Duplikate. Schritt 5: Ordne die Minterme aufsteigend nach ihrem Binärwert. (z.B. a'bc < ab'c‘ weil 011 < 100 ) => Term t(x 1... x i ) ist jetzt in kanonischer DNF

30 30 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! = f kDNF (a,b,c)

31 31 Bestimmung von Mintermen aus einer Funktionstabelle Indexa b cf(a,b,c)Minterm a'b'c a'bc ab'c' 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. Diejenigen Kombinationen, für die f den Wert 1 annimmt, sind gerade die Minterme der DNF von f.

32 32 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 eine disjunktive Normalform der n-stelligen Funktion f : {0, 1} n  {0, 1}. Dann bezeichnet: Disjunktive-Minimalform (DMF) die kürzeste DNF für f Definition: Minimalformen Sei DNF eine disjunktive Normalform der n-stelligen Funktion f : {0, 1} n  {0, 1}. Dann bezeichnet: Disjunktive-Minimalform (DMF) die kürzeste DNF für f Anmerkungen: Offenbar gibt es für jede boolesche Funktion f einen kürzesten booleschen Term in DNF, der f definiert. => Prinzipiell auffindbar, durch systematisches Ausprobieren. => Ausprobieren ist jedoch unpraktikabel wegen kombinatorischer Explosion.

33 33 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 (BDD) Grafisches Verfahren, das die Funktionstabelle als Entscheidungsbaum darstellt. Minimale Terme werden mit der Nachbarschaftsregel gefunden. 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: automatische Beweise, KI-Anwendungen)

34 34 Grafische Minimierungsverfahren Grundgedanke: Übertrag einer „logischen Nachbarschaft2 gemäß der Nachbarschaftsregel (ac+ac' = a(c+c') = a ) in eine räumliche Nachbarschaft der grafischen Darstellung benachbarter Terme. Es gibt mehrere Möglichkeiten der grafischen Darstellung der Minterme einer DNF: – als Ecken eines n-dimensionlen Würfels – als Tabelle (Standard-Darstellung, bekannt als Karnaugh-Diagramm ) Ist f : {0, 1} n  {0, 1} n-stellige => Minterme sind auch n-stellig Beispiel: Darstellung als n-dimensionaler „Würfel“: n=1: a a' abn=3: n=2: a'b ab' a'b'

35 35 Karnaugh-Diagramme (Tabellenform) Prinzip: Für n Variablen eines Minterms einer n-stelligen Funktion benötigt man 2 n Tabellenfelder, um alle möglichen Belegungen zu erfassen. Die Tabellenfelder werden so mit Variablen der Minterme assoziiert, dass sich logische Nachbarschaften in räumlichen widerspiegeln. Beispiel: f (a,b) = a'b' + a'b + ab I f = { 0, 1, 3 } Tabelle für 2-stellige Funktionen f (a,b) 2 n = 4 Felder. Verwende quadratische Form a'a b'01 b fa b a'a b'1 b11 ab a'b a'b' m 11 b 1 a a' b

36 36 Karnaugh-Diagramme (Tabellenform) Tabelle für 3-stellige Funktionen f (a,b,c) 2 3 = 8 Felder. Verwende folgende Zuordnung c b a Beispiel: f (a,b,c) = a'b'c' + a'bc' + ab'c' + ab'c + abc' I f = { 0, 2, 4, 5, 6 } a c b c‘ ab‘ => Ergebnis der Minimierung: ab' + c' c b a b' c' a'

37 37 Karnaugh-Diagramme (Tabellenform) Tabelle für 4-stellige Funktionen f (a,b,c,d) 2 4 = 16 Felder. Verwende folgende Zuordnung Anmerkungen: Es müssen stets alle Einsen abgedeckt werden. Im ungünstigsten Fall muss man Schleifen um einzelne Tabellenfelder legen (d.h., der entsprechende Minterm wird unverkürzt in die DMF übernommen). Anderes Extrem: es liegt die 1-Funktion vor und man kann alles zusammenfassen. a b d c a b d c

38 38 Karnaugh-Diagramme (Tabellenform) Beispiel: für 4-stellige Funktionen f (a,b,c,d) gegeben durch I f = { 1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 15} => Ergebnis der Minimierung: a + cd' + b'c'd a b c a cd‘ b‘c‘d d bildet eine Schleife

39 39 Minimierungsverfahren mit Karnaugh-Diagramm Sei f eine n-stellige boolesche Funktion f : {0, 1} n  {0, 1} definiert durch ihre DNF. DNF wird mit Karnaugh-Verfahren wie folgt minimiert: Schritt 1: Karnaugh-Diagramm zeichnen (Format je nach Größe von n) und alle Einsen der Minterme einzeichnen. Schritt 2: Benachbarte Einsen mit möglichst großen Schleifen zusammenfassen. Beachte: die Anzahl der von einer Schleife abgedeckten Felder ist stets eine 2er-Potenz ! Schritt 3: Versuchen, die Schleifenzahl durch geschickte Wahl von Überdeckungen minimieren: – Suche zunächst die Einsen, die nur von einem Primimplikant abgedeckt werden. Sie bilden den Kern der DMF. – Wähle dann für die verbleibenden Felder eine Überdeckung aus durch Bilden möglichst großer Schleifen. Es müssen alle Einsen abgedeckt werden! Sei f eine n-stellige boolesche Funktion f : {0, 1} n  {0, 1} definiert durch ihre DNF. DNF wird mit Karnaugh-Verfahren wie folgt minimiert: Schritt 1: Karnaugh-Diagramm zeichnen (Format je nach Größe von n) und alle Einsen der Minterme einzeichnen. Schritt 2: Benachbarte Einsen mit möglichst großen Schleifen zusammenfassen. Beachte: die Anzahl der von einer Schleife abgedeckten Felder ist stets eine 2er-Potenz ! Schritt 3: Versuchen, die Schleifenzahl durch geschickte Wahl von Überdeckungen minimieren: – Suche zunächst die Einsen, die nur von einem Primimplikant abgedeckt werden. Sie bilden den Kern der DMF. – Wähle dann für die verbleibenden Felder eine Überdeckung aus durch Bilden möglichst großer Schleifen. Es müssen alle Einsen abgedeckt werden! Anmerkung: Karnaugh-Verfahren ist nur für kleine n (bis n=6) praktikabel.

40 40 Minimierung partieller Funktionen Problem Es gibt einige Anwendungen, bei denen die Belegungen der Eingangsvariablen einer Funktion f : {0, 1} n  {0, 1} nicht für alle Kombinationen von Eingabevariablen definiert ist, weil bestimmte Eingabekombination: – nie vorkommen, oder – es irrelevant ist, ob sie auf 0 oder 1 abgebildet werden. =>Konsequenzen für die Modellierung der Funktion f und der Minimierung ihrer DNF (z.B. mit dem Karnaugh-Verfahren). Beispiel: f (a,b,c) a b cf(a,b,c) X X DNF = a'b'c + ab'c' + ab'c + ??? + ??? Funktionswerte irrelevant (don't care)

41 41 Minimierung partieller Funktionen Ansatz: Die in einer Funktionstabelle als irrelevant (don't care) markierten Ausgabewerte können im Karnaugh-Diagramm wahlweise mit einer 1 belegt oder leer (= 0) gelassen werden. Belegung wählt man so, dass man die größten Schleifen erhält. Beispiel: f (a,b,c) mit DNF f = a'b'c + ab'c' + ab'c + ??? + ??? 1 11 c b b'c ab' Minimierung mit "don‘t care" Werte alle auf 0 gesetzt. => DMF f = ab' +b'c a X1 1X1 b b'c ab' a Minimierung mit „don‘t care“ Werte alle auf 1 gesetzt.  DMF f = a + b'c eine Variable eingespart! c

42 42 Vorgehen bei mehrwertigen Schaltfunktionen Bisher Einschränkung auf 1-wertige Schaltfunktionen DNF und kDNF nur für 1-wertige Schaltfunktionen Minimierungsverfahren nur für 1-wertige Schaltfunktionen Frage: Wie minimiert man m-wertige Funktionen f : {0, 1} n  {0, 1} m Antwort: Man betrachtet f : {0, 1} n  {0, 1} m als Kombination von m voneinander unabhängige 1-wertige Schaltfunktionen: f 1 : {0, 1} n  {0, 1} f 2 : {0, 1} n  {0, 1} f m : {0, 1} n  {0, 1} => Minimierung (eines beschreibenden Terms) von f: {0, 1} n  {0, 1} m wird gleichgesetzt mit der Aufgabe, die m 1-wertigen Funktionen f i zu minimieren.

43 43 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

44 44 Nachbetrachtung zur Minimierung Die vorgestellte Vorgehensweise zur Minimierung von Schaltkreisen für boolesche Funktionen beruht auf einer Reihe grundlegender Annahmen und Einschränkungen: (1) Kosten eines Schaltkreise werden gleichgesetzt mit der Länge von Termen. Kostenminimierung = Verkürzung von Termen. Kritik: Andere Kostenfaktoren der Schaltkreisentwicklung bleiben unberücksichtigt. – Bei hoch-integrierten CHIPS stellt z.B. die Anzahl der Verbindungen und Überbrückungen einen weiteren wesentlichen Kostenfaktor dar. – Nicht die Eingänge sind „teuer“ sondern die Invertoren (bzw. umgekehrt, je nach technischer Realisierung) –.... (2) Abstraktion von Schaltkreisen auf booleschen Terme Kritik: Die Abbildung f: Term → Schaltkreis ist nicht surjektiv. => Es kommen nur bestimmte Schaltungen als Lösungsmenge in Frage. Berücksichtigt nicht alle möglichen Realisierungen.

45 45 Nachbetrachtung zur Minimierung ( 3) Einschränkung auf 1-wertige Funktionen. Alle m-wertige Funktionen werden in m voneinander unabhängige 1-wertige Funktionen f 1... f m aufgeteilt. Kritik: a)Falls die f 1... f m „gemeinsame Teile“ haben, würde es genügen, diese nur einmal zu realisieren. Beispiel: f 1 = ab + ac + d f 2 = ab + ac + d + e => f 2 = f 1 + e b)Falls für ein f i und ein f k gilt f i ist Komplement von f k,, so würde es genügen, nur eine der beiden Funktionen aufzubauen. Zur Realisierung der anderen würde dann ein einziger zusätzlicher Inverter ausreichen!

46 46 Nachbetrachtung zur Minimierung ( 4 ) Abstraktion von technisch-physikalischen Eigenschaften von Schaltungen. Beispiel: Beim Wechsel eines Eingabesignals kann es aufgrund unterschiedlicher Signallaufzeiten kurzfristig zu unerwünschten Wechseln im Ausgangssignal kommen („statischer Schaltungs-Hazzard“). Schaltung ASchaltung B Betrachte den Eingabewechsel von 111 auf 110. es gilt: f(1,1,1) = 1 = f(1,1,0). In Schaltung A muss das x3-Signal die beiden Gatter B und C durchlaufen. Somit steht der Ausgang am Gatter C etwas später zur Verfügung, als am Gatter A. Folglich springt der Ausgang von D kurzfristig von 1 auf 0. Schaltung B vermeidet diesen Hazzard durch das zusätzliche Gatter E.


Herunterladen ppt "1 Teil II Entwurf digitaler Schaltungen 2.1 Logik, Schaltalgebra und Schaltfunktionen Themen Boolesche Algebra und boolesche Funktionen Rechenregeln für."

Ähnliche Präsentationen


Google-Anzeigen