Teil II Entwurf digitaler Schaltungen

Slides:



Advertisements
Ähnliche Präsentationen
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Advertisements

Kapitel 1 Der Boolesche Kalkül
Kapitel 3 Arithmetische Schaltkreise
Technische Informatik I Vorlesung 3: Bool'sche Algebra Mirco Hilbert Universität Bielefeld Technische Fakultät.
5. Aussagenlogik und Schaltalgebra
Syntax der Aussagenlogik
Kapitel 5 Stetigkeit.
Kapitel 1 Die natürlichen und die ganze Zahlen. Kapitel 1: Die natürlichen und die ganzen Zahlen © Beutelspacher/Zschiegner April 2005 Seite 2 Inhalt.
Analoge vs. Digitale Informationen
Addierwerke.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Verknüpfen von Grundschaltungen zu komplexen Schaltungen
Basisinformationstechnologie HK-Medien
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
3.1 Gates und boolesche Algebra
3.2 Grundlegende digitale logische Schaltungen
© Béat Hirsbrunner, University of Fribourg, Switzerland
Agenda für heute, 19. Januar 2007 Informationssysteme: ETH-BibliothekInformationssysteme: ETH-Bibliothek Logische Verknüpfungen als Grundlage für die Informationsgewinnung.
Daten verwalten (2) Agenda für heute, 29. April 2009
Daten verwalten (2) Agenda für heute, 30. April 2008
Schaltnetze und Schaltwerke Marcel Waldvogel
Agenda für heute, 20. November 2009
Agenda für heute, 21. November 2008
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Von der Schaltfunktion zur Schaltung
Aussagenlogik G. Laner 03/04
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Grundlagen01Logik 02Mengen 03Relationen Arithmetik04Die natürlichen Zahlen 05Erweiterungen der Zahlenmenge Elementare Geometrie06Ebene Geometrie 07Trigonometrie.
Grundlagen der mathematischen Logik
Technische Informatik I Vorlesung 4: Vereinfachung von Schaltfunktionen Mirco Hilbert Universität Bielefeld Technische Fakultät.
Kapitel 3: Boolesche Algebra Inhalt: 3
 Sortigkeit oder Arität
(Wirtschafts-)mathematik I Mathe im Wandel der Zeit Volksschule 1960: Ein Bauer verkauft einen Sack Kartoffeln für 50 DM. Die Erzeugerkosten betragen 40.
Vertiefungsstoff zum Thema Logik und Schaltalgebra
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
X. Übungsblatt – Aufgabe X Mit Hilfe von NAND-Gattern, kann jede beliebige Boolesche Funktion realisiert werden. (Gleiches gilt für die Verwendung von.
WISSENSREPRÄSENTATION IN ACTIVEMATH Theoretische Grundlagen – Teil 1.
Logische Grundschaltungen
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Grundlagen der Informationsverarbeitung
7.2 Theoretische Kennwerte
Datentypen: integer, char, string, boolean
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Musterlösung zur Klausur "Diskrete Mathematik" vom
Das Addierwerk eines Rechners
Das Problem des Handlungsreisenden
Abiturprüfung Mathematik 2017 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analysis A 1 Lösungen der Aufgaben A 1.1 und A 1.2
Technische Informatik II
Technische Informatik II Vorlesung 3: Kombinatorische Schaltungen
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Pflichtteil Lösungen
Abiturprüfung Mathematik 2012 Baden-Württemberg Allgemeinbildende Gymnasien Pflichtteil Lösungen
Technische Informatik I
Technische Informatik I
Grundlagen der Rechnerarchitektur [CS ]
Wachstumsprozesse Natürliches Wachstum Größenbeschränktes Wachstum
Kapitel IV. Matrizen Inhalt:
Werkvergleich mit Außentext
Diplomarbeit Thema Foto erwünscht Bearbeiter: Vorname Nachname
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Wahlteil 2009 – Geometrie II 1
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
Wahlteil 2016 – Aufgabe B 1 Aufgabe B 1.1 In einem Koordinatensystem beschreiben die Punkte
Wissenschaftliches Projekt
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analytische Geometrie / Stochastik Aufgabe B 2.1 und B Lösungen.
Zusammengesetzte Ereignisse
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analysis A 2 Lösungen der Aufgaben A 2.1 und A 2.2
Rechenausdrücke (Terme) – Fachbegriffe - Rechenregeln
RGB-LED Projekt INGOLSTADT.
 Präsentation transkript:

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

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

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

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

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

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

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, 1872-1970 Englischer Philosoph und Logiker

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

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

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

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.

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(x1 .... xn)  (y1 .... 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 b1 .... bn für die gilt: f (b1 .... 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.

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

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

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.

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

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 1976 früher NICHT-Gatter (NOT) (Negationsglied) abgekürzt: ODER-Gatter (OR) (Disjunktionsglied) UND-Gatter (AND) (Konjunktionsglied) 1 1 &

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

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

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

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) 12 - 100 – Large Scale Integration (LSI) 100 - 1000 – Very Large Scale Integration (VLSI) 1000 - 100 000 – Ultra Large Scale Integration (ULSI) 100 000 - 1 000 000 – Gigantic Scale Integration (GSI) > 1 000 000 – Horrendous Scale Integration (HSI) > 10 000 000 – 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.

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

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)

Beispiel f(a,b,c) a b c x y Funktion f : {0, 1} 3  {0, 1} 2 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) 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 1 Index a b c fx(a,b,c) 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 5 1 0 1 1 6 1 1 0 1 7 1 1 1 0

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

Normalformen zur Beschreibung Boolescher Funktionen Definition: Konjunktions- und Disjunktionsterme Seien a1 .... 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 • a4 , 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

Disjunktive-Normalform DNF Definition: DNF, kanonische DNF, Minterme Seien K1 .... 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 )

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

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: K1 + ... + Km Schritt 3: Ergänze die Summanden K1 + ... + 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

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)

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 0 0 0 0 0 1 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

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.

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)

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'

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, 1, 3 } 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

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, 2, 4, 5, 6 } a c‘ => Ergebnis der Minimierung: ab' + c' 1 1 1 1 1 c ab‘ b

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.

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

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.

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) 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 0 4 1 0 0 1 5 1 0 1 1 6 1 1 0 X 7 1 1 1 X Funktionswerte irrelevant (don't care)

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

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.

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.

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.

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!

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.