Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Teil II Entwurf digitaler Schaltungen

Ähnliche Präsentationen


Präsentation zum Thema: "Teil II Entwurf digitaler Schaltungen"—  Präsentation transkript:

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 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) 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 Register R1 Register R2 Register R3 ALU (Arithmetic and Logic Unit) x8 x7 x6 x5 x4 x3 x2 x1 y8 y7 y6 y5 y4 y3 y2 y1 Addierwerk: s = x+y s8 s7 s6 s5 s4 s3 s2 s1

4 Motivation (Ausblick): Addiererwerk
xn yn x3 y3 x2 y2 x1 y1 cn-1 c3 c2 c1 c0 = 0 cn FA FA FA FA . . . sn s3 s2 s1 =1 =1 Volladdierer (Full Adder) (mit Hilfe von Schaltgattern) Jedes Gatter ist aus Transistoren etc. aufgebaut. si & 1 ci & xi yi ci-1

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

6 formalisierte Aussagenlogik
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 Ù F W Ø W F Beachte: F Ù = F Ú F W Beachte: W Ú = W

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 Û F W Å F W Þ F W (2+2=5) Þ Russell ist Papst Bertrand Russell, Englischer Philosoph und Logiker

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 a•b schreibt man dann nur ab. – Anstelle des Operators ' verwendet man auch den Überstrich. Man schreibt dann a anstelle von a'.

9 Boolesche Algebra Es gelten die sog. Huntingtonsche Axiome (BA1) bis (BA4): (BA1): Die Operatoren: • und + sind kommutativ, d.h., es gilt: a•b = b•a a+b = b+a (BA2): • und + sind wechselseitig distributiv, d.h., es gilt: a •(b+c) = a•b + a•c (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 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 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 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 xn)  (y ym) Für einwertige boolsche Funktionen f: {0, 1}n  {0, 1} definiert man die Indexmenge von f als die die Menge If der binären Zahlen b bn für die gilt: f (b bn) = 1. Anmerkungen Jede einwertige (1-wertige) Schaltfunktion wird durch n und ihre Indexmenge eindeutig definiert. Für eine n-stellige Schaltfunktion gibt es 2n verschiedene Eingabevektoren. => Es gibt 2q mit q = 2n verschiedene n-stellige, 1-wertige Schaltfunktionen.

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

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 xn} ein und verwendet boolesche Ausdrücke zur Angabe von n-stelligen, einwertigen Funktionen. Beispiel: Darstellung der Funktion fAND : {0, 1}2  {0, 1} durch den Term: x1 • x2 Man schreibt: fAND(x1, x2) := x1 • x2 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 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: Operatormenge Komplement Disjunktion Konjunktion { ' , • , + } 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 Varianten zur Darstellungen Boolescher Funktionen
Booleschen Funktion lassen sich auf verschiedene Form darstellen: Beispiel: fXOR : {0, 1} 2n  {0, 1} Wertetabelle: Boolescher Ausdruck: fXOR (a,b) = a  b = a' • b + a • b' = (a+b)•(a' +b' ) Indexmenge: IXOR = { (01)2, (10)2 } = { (1)10, (3)10 } Funktionsgraph (Binary Decision Diagram) (Wird in der Praxis zum Chip-Design verwendet.) 1

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

18 Schaltgatter 1 & =1 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 e1 e2 .... en 2k+1 2k+1

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

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 = e1 + e2 + e en AND-Gatter mit n Eingängen a = e1 • e2 • e3 • • en NOR-, NAND-Gatter mit n Eingängen entsprechend e1 e2 .... en a e1 e2 .... en a

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: 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 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 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. Logische Ebene (funktionale Beschreibungen) Komposition Operatoren-system Logische Funktion DNF DMF Vereinfachung Abstraktion Konkretisierung Gatter-Arten Elektronische Schaltung 2-stufige Schaltung Minimierte Schaltung Komposition Physische Ebene (Schaltkreise, Chips)

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

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 Normalformen zur Beschreibung Boolescher Funktionen
Definition: Konjunktions- und Disjunktionsterme Seien a an paarweise verschiedene Boolesche Variablen und sei für 1 £ i £ n xi = ai oder xi = a'i Dann nennt man: n K =  xi boolesches Produkt oder n-stelligen Konjunktionsterm i=1 D =  xi boolesche Summe oder n-stelligen Disjunktionsterm i=1 Beispiele: für 4-stellige boolesche Produkte (Operator • bzw. Ù ): a1 • a2 • a3 • a4 , a1 • a‘2 • a‘3 • a , a‘1 • a‘2 • a‘3 • a4 für 4-stellige boolesche Summen (Operator + bzw. Ú ): a1 + a2 + a3 + a4 , a1 + a‘2 + a‘3 + a4 , a‘1 + a‘2 + a‘3 + a4

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

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 xi ) 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: fkDNF(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 Algorithmus zur Bestimmung einer kDNF
Sei f eine n-stellige boolesche Funktion f : {0, 1} n  {0, 1} gegeben durch einen definierenden Term t(x1 ... xi) mit xi = ai oder xi = 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(x1 ... xi) hat jetzt die Form: K Km Schritt 3: Ergänze die Summanden K Km zu Mintermen. D.h. jedes Ki muss alle n-Variablen xi 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(x1 ... xi) ist jetzt in kanonischer DNF

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

31 Bestimmung von Mintermen aus einer 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. 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

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 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 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 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' ab n=3: n=2: a'b ab' a'b'

35 Karnaugh-Diagramme (Tabellenform)
Prinzip: Für n Variablen eines Minterms einer n-stelligen Funktion benötigt man 2n 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. Tabelle für 2-stellige Funktionen f (a,b) 2n = 4 Felder. Verwende quadratische Form 1 a' a b' 1 b 2 3 Beispiel: f (a,b) = a'b' + a'b + ab If = { 0, , } a b f m a a' a b' 1 b 0 0 1 a'b' a' 1 1 0 1 1 a'b b 1 1 b 2 1 0 3 1 1 1 ab

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

37 Karnaugh-Diagramme (Tabellenform)
Tabelle für 4-stellige Funktionen f (a,b,c,d) 24 = 16 Felder. Verwende folgende Zuordnung 9 13 5 1 11 15 7 3 10 14 6 2 8 12 4 a b d c a b d c 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.

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

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! Anmerkung: Karnaugh-Verfahren ist nur für kleine n (bis n=6) praktikabel.

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) DNF = a'b'c + ab'c' + ab'c + ??? + ??? a b c f(a,b,c) X X Funktionswerte irrelevant (don't care)

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 DNFf = a'b'c + ab'c' + ab'c + ??? + ??? a Minimierung mit "don‘t care" Werte alle auf 0 gesetzt. => DMFf = ab' +b'c 1 c b'c b ab' a Minimierung mit „don‘t care“ Werte alle auf 1 gesetzt. DMFf = a + b'c eine Variable eingespart! X 1 c b'c ab' b

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: f1 : {0, 1} n  {0, 1} f2 : {0, 1} n  {0, 1} ...... fm : {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 fi zu minimieren.

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

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 Nachbetrachtung zur Minimierung
(3) Einschränkung auf 1-wertige Funktionen. Alle m-wertige Funktionen werden in m voneinander unabhängige 1-wertige Funktionen f1 ... fm aufgeteilt. Kritik: a) Falls die f1 ... fm „gemeinsame Teile“ haben, würde es genügen, diese nur einmal zu realisieren. Beispiel: f1 = ab + ac + d f2 = ab + ac + d + e => f2 = f1 + e b) Falls für ein fi und ein fk gilt fi ist Komplement von fk, , 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 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 A Schaltung 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 "Teil II Entwurf digitaler Schaltungen"

Ähnliche Präsentationen


Google-Anzeigen