6.3 Beispiel: Siebensegmentanzeige Typische Anzeige für Ziffern a f g b 0 1 2 3 4 5 6 7 8 9 e d c Schaltfunktionen zur Ansteuerung der Segmente Parameter: binär codierte Zahl bzw. Ziffer Gesucht: Schaltfunktion für die Ansteuerung des Segmentes d C.40
6.3 Beispiel: Siebensegmentanzeige (2) 6.3 Beispiel: Siebensegmentanzeige (3) Aufstellung der Wahrheitstafel zur Ansteuerung des Segmentes d 0 f(,,, 0 ) 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 d 1 0 1 1 d 1 1 1 1 d C.41 Aufstellung der KDNF nur 1-Werte betrachten don t care-werte werden ignoriert f = ( 0 ) + ( 0 ) + ( 0 ) + ( 0 ) + ( 0 ) + ( 0 ) + ( 0 ) KDNF sicherlich nicht minimal ungeeignet zur Übertragung in eine kostengünstige Schaltung C.42 7 Äquivalenz von Schaltfunktionen Wegen der Eindeutigkeit der Darstellung als KDNF bzw. KKNF gilt: zwei Schaltfunktionen sind äquivalent, wenn sie sich auf die selbe KDNF oder KKNF zurückfürhen lassen bis auf Vertauschungen bzgl. des Kommutativitätsaioms Umformungen nach den Gesetzen der Boolschen Algebra Erhaltung der Schaltfunktion Nutzen z.b. Minimisieren von Schaltfunktionen 8 Minimisierung Suche nach einer minimalen Darstellung einer Schaltfunktion Größenbegriff notwendig Menge der notwendigen Gatter Anzahl der Variablen Anzahl der notwendigen ICs Anzahl der notwendigen Kontakte Größenbegriff von den Kosten bestimmt Größenbegriff hier Anzahl der booleschen Operationen C.43 C.44
8.1 Grundlage der Minimisierung Gesetze der Booleschen Algebra insbesondere A B+ A B = A 8.1 Grundlage der Minimisierung (2) Beispiel: Oderfunktion KDNF: Umwandlung: f(, ) = + + Beweis A B+ A B = A ( B+ B) A ( B+ B) = A 1 A 1 = A wg. (Kommutativität u.) Distributivität wg. komplementärem Element wg. neutralem Element f(, ) = + + f(, ) = + ( + ) f(, ) = + 1 f(, ) = + f(, ) = + + f(, ) f(, ) = = ( + ) + + Distributivität, neutrales Element Absorption C.45 C.46 8.2 Vorgehensweise Manuelles Minimisieren Umformen (z.b. der KDNF) nach den Regeln der Booleschen Algebra Algorithmisches Verfahren Verfahren nach Quine/McCluskey kann durch ein Programm angewandt werden geeignet für Schaltfunktionen mit vielen Variablen Graphische Verfahren Händlersche Kreisgraph Karnaugh-Veitch Diagramme geeignet für Schaltfunktionen mit wenigen Variablen 8.3 Karnaugh-Veitch-Diagramme Ausgangspunkt KDNF (oder KKNF) Rechteckschema je ein Feld für jeden möglichen Minterm (Materm) Anordnung der Felder, so dass benachbarte Felder bzw. Minterme zusammenfassbar Diagramm für zweistellige Schaltfunktion Funktion: f(, ) Diagramm: C.47 C.48
8.3 Karnaugh-Veitch-Diagramme (2) 8.4 Beispiel: Oderfunktion Diagrammaufbau jede Variable halbiert das Diagramm in zwei zusammenhängende Teile erster Teil für zweiter Teil für Variable i i i Variable Aufstellen der KDNF f(, ) = + + Eintragung in das Diagramm Eintragung einer 1, wenn Minterm benötigt wird Eintragung einer 0, wenn Minterm nicht benötigt wird 0 1 1 1 benachbarte Felder unterscheiden sich nur um das Vorzeichen einer Variablen in den beiden Mintermen Eintragung auch direkt aus Wahrheitstafel möglich C.49 C.50 8.4 Beispiel: Oderfunktion (2) 8.4 Beispiel: Oderfunktion (3) Markierung möglichst weniger und möglichst großer zusammenhängender Bereiche mit 1en nur zusammenhängende rechteckige Bereiche mit 2 n Elementen erlaubt alle 1 Felder müssen schließlich markiert sein 0 1 Alternative Markierung Markierung nicht so groß wie möglich, aber alle 1en markiert 0 1 1 1 1 1 markierten Bereiche ergeben Produktterme, die summiert werden: markierten Bereiche ergeben Produktterme, die summiert werden: f(, ) = + f(, ) = + Funktion korrekt, jedoch nicht minimal Produktterme ergeben sich aus den Variablen die lediglich negiert oder ohne Negation vorkommen C.51 C.52
8.5 Beispiel: Eingabemelder 8.6 Beispiel: Eingabemelder (2) Dreistellige Schaltfunktionen Karnaugh-Veitch-Diagramm Halbierungen des Diagramms Variable Variable Wichtig: die Bereiche für gehören zusammen Vorstellung: Diagramm ist an den Rändern zusammengeklebt C.53 C.54 8.7 Beispiel: Eingabemelder (3) 8.7 Beispiel: Eingabemelder (4) Halbierungen des Diagramms Variable Belegen des Diagramms aus der Wahrheitstafel Funktion aus Folie C.38 f 2 Eintragung der don t care -Werte 0 1 d 0 1 d d d don t care -Werte können mitmarkiert werden oder nicht Ziel: möglichst große Bereiche markieren markierte don t care -Werte werden später zu 1, andere zu 0 C.55 C.56
8.7 Beispiel: Eingabemelder (5) Markierungen für f 2 zwei Bereiche 8.8 Beispiel: unbestimmte Funktion Gegebene Belegung aus der Wahrheitstafel Gesucht ist die beste Markierung 0 1 d 0 1 0 d 1 1 d d d 1 1 d d markierten Bereiche ergeben Produktterme, die summiert werden: f 2 (,, ) = + markierten Bereiche ergeben Produktterme, die summiert werden: f(,, ) = + C.57 C.58 8.9 Beispiel: weitere Funktion Gegebene weitere Belegung aus der Wahrheitstafel Gesucht ist die beste Markierung 1 0 0 1 0 0 1 1 Minimale DNF gefunden f(,, ) = + 8.10 Vierstellige Funktionen Karnaugh-Veitch-Diagramm für vierstellige Schaltfunktion C.59 C.60
8.10 Vierstellige Funktionen (2) Halbierungen für vierstellige Schaltfunktion 8.10 Vierstellige Funktionen (3) Halbierungen für vierstellige Schaltfunktion 3 C.61 4 C.62 8.10 Vierstellige Funktionen (4) Markierungen insbesonder folgende Markierung möglich 8.11 Beispiel: 22-Multiplizierer Binärer Multiplizierer für 2 mal 2 Eingänge Binärdarstellung von Zahlen von 0 bis 3 bzw. 0 bis 15 X X X Vorstellung: Diagramm ist an den Seiten jeweils zusammengeklebt zwei Eingänge a 1 und a 0 zwei Eingänge b 1 und b 0 vier Ausgänge y 3, y 2, y 1 und y 0 X X X X X X X X X C.63 C.64
8.12 Beispiel: 22-Multiplizierer (2) 8.12 Beispiel: 22-Multiplizierer (3) b a 1 = a 0 = = b 0 = 2 y 3 y 2 y 1 y 0 0 0 = 0 0 = 1 0 = 0 0 0 1 0 0 = 0 0 0 1 1 1 0 = 0 0 1 0 0 1 = 1 0 1 0 1 0 0 0 1 1 = 2 0 1 1 0 0 0 1 0 1 = 3 0 1 1 1 0 0 1 1 2 0 = 0 1 0 0 0 2 = 2 1 0 0 1 0 0 1 0 2 = 4 1 0 1 0 0 1 0 0 2 = 6 1 0 1 1 0 1 1 0 3 0 = 0 1 1 0 0 3 = 3 1 1 0 1 0 0 1 1 3 = 6 1 1 1 0 0 1 1 0 3 = 9 1 1 1 1 1 0 0 1 C.65 Karnaugh-Veitch-Diagramm für y 0 : Markierte Bereiche: y 0 = 0 1 1 0 0 1 1 0 C.66 8.12 Beispiel: 22-Multiplizierer (4) 8.12 Beispiel: 22-Multiplizierer (5) Karnaugh-Veitch-Diagramm für y 1 : Karnaugh-Veitch-Diagramm für y 2 : 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 Markierte Bereiche: y 1 = + + + Markierte Bereiche: y 2 = + C.67 C.68
8.12 Beispiel: 22-Multiplizierer (6) Karnaugh-Veitch-Diagramm für y 3 : 4 0 0 1 0 8.13 Zusammenfassung Markierungsregeln rechteckige Bereiche mit 2 n Elementen markieren Achtung: Diagramm gilt als oben und unten zusammengenäht alle 1-Werte müssen markiert werden möglichst große Bereiche markieren möglichst wenig Bereiche markieren Markierte Bereiche: y 3 = C.69 C.70 9 Schaltnetze Mehrere Schaltfunktionen (Combinational Networks) sind von gleichen Eingangsvariablen abhängig f 1 (,,, n ) f 2 (,,, n ) f m (,,, n ) entspricht Schaltung mit mehreren Ausgängen n Kombinatorische Logik f 1 () f 2 () f m () 9 Schaltnetze (2) Gerichteter, azyklischer Graph Gatter, Ein- und Ausgänge sind Knoten Verbindungsleitungen sind Kanten (gerichtet von Eingang zu Ausgang) Aufbau von Schaltnetzen einstufige (nur eine Gatterebene) zweistufige (zwei Gatterebenen) mehrstufige Folgerung aus Darstellung durch kanonische Normalformen Jedes Schaltnetz ist zweistufig realisierbar, wenn alle Signale einfach und negiert vorliegen und Gatter mit ausreichender Anzahl von Eingängen vorliegen. C.71 C.72
9 Schaltnetze (3) Begründung Bezug zur KDNF (oder KKNF) alle Variablen werden einfach oder negiert benutzt zunächst Minterme: ein Und-Gatter pro Minterm (erste Stufe) Summe der Minterme: ein Oder-Gatter für alle Minterme f 2 f 1 9 Schaltnetze (4) Anzahl der notwendigen Gatter bei n Eingängen ma. 2 n Und-Gatter pro Schaltfunktion mit bis zu n Eingängen (KDNF) ein Oder-Gatter mit bis zu 2 n Eingängen Minimisierung reduziert Gatteranzahl und Eingangsanzahl pro Gatter Minimisierung parallel für mehrere Schaltfunktionen des Schaltnetzes Verwendung der selben Gatter z.b. Karnaugh-Veitch-Diagramme für mehrere Schaltfunktionen des Netzes Beispiel: Eingabemelder C.73 C.74 10 Typische Schaltnetze 10.1 1-aus-k-Multipleer Steuerleitungen weisen viele Eingabeleitungen einem Ausgang zu n Steuerleitungen s 0, s 1,, s n 1 (Eingänge) k = 2 n Eingänge 0,,, k 1 ein Ausgang y es gilt: y = i für ( s n 1,, s 1, s 0 ) 2 = i (Zahlendarstellung im Binärsystem) 10.1 1-aus-k-Multipleer (2) Realisierung für n = 2 als DNF y = s 1 s 0 0 + s 1 s 0 + s 1 s 0 + s 1 s 0 0 y 0 k-1 s 0 s 1 s n-1 y Multipleer (MUX) s 0 s 1 Einsatz Anzeige und Auswahl verschiedener Datenquellen z.b. Auslesen von Daten aus Speicherzellen C.75 C.76
10.2 1-zu-k-Demultipleer Steuerleitungen weisen eine Eingabeleitung vielen Ausgängen zu n Steuerleitungen s 0, s 1,, s n 1 (Eingänge) ein Eingang k = 2 n Ausgänge y 0, y 1,, y k 1 es gilt: y i = für ( s n 1,, s 1, s 0 ) 2 = i (Zahlendarstellung im Binärsystem) s 0 s 1 s n-1 y 0 y 1 y k-1 Demultipleer (DEMUX) C.77 10.2 1-zu-k-Demultipleer (2) Realisierung für n = 2 als DNF Einsatz y 0 = s 1 s 0, y 1 = s 1 s 0, y 2 = s 1 s 0, y 3 = s 1 s 0 s 0 s 1 Zuordnung und Auswahl verschiedener Datensenken z.b. Speichern von Daten in Speicherzellen y 0 y 1 y 2 y 3 C.78 10.3 k-zu-n-kodierer 10.3 k-zu-n-kodierer (2) Nummer eines Eingangs wird ausgegeben k = 2 n Eingänge 0,,, k 1 immer genau eine Eingangsleitung auf 1 i mit i = 1 und j i j = 0 n Ausgänge y 0, y 1,, y n 1 es gilt: ( y n 1,, y 1, y 0 ) 2 = i (Zahlendarstellung im Binärsystem) Realisierung für n = 2, k = 4 als DNF y 0 = +, y 1 = + 0 y 0 0 k-1 Encoder y 0 y 1 y n-1 Kodierer Einsatz y 1 z.b. Signalisierung eines Eingang C.79 C.80
10.4 n-zu-k-dekodierer Eingänge selektieren genau einen von vielen Ausgängen n Eingänge 0,,, n 1 k = 2 n Ausgänge y 0, y 1,, y k 1 es gilt: y i = 1 und j i y j i = 0 mit ( n 1,,, 0 ) 2 = i (Zahlendarstellung im Binärsystem) 10.4 n-zu-k-dekodierer (2) Realisierung für n = 2, k = 4 als DNF y 0 = 0, y 1 = 0, y 2 = 0, y 3 = 0 y 0 0 n-1 Decoder y 0 y 1 y k-1 Dekodierer y 1 y 2 0 y 3 Einsatz z.b. Dekodierung eines Maschinenbefehls C.81 C.82