Sie sind auf Seite 1von 27

5.

6 Normalformen (4)

■ Noch mehr aber besonders wichtige Begriffe


◆ kanonische disjunktive Normalform (KDNF, DKF)
• Disjunktion einer Menge von Mintermen mit gleichen Variablen
• Beispiel: KDNF zur Funktion f ( x 1, x 2, x3, x 4 ) :

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 + x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 + x1 ⋅ x 2 ⋅ x 3 ⋅ x 4

◆ kanonische konjunktive Normalform (KKNF, KKF)


• Konjunktion einer Menge von Maxtermen mit gleichen Variablen
• Beispiel: KKNF zur Funktion f ( x 1, x2, x 3, x 4 ) :

( x 1 + x 2 + x3 + x 4 ) ⋅ ( x1 + x 2 + x 3 + x4 ) ⋅ ( x 1 + x2 + x 3 + x 4 )

C.33
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

5.7 Hauptsatz der Schaltalgebra

■ Jede Schaltfunktion lässt sich als genau eine KDNF darstellen


◆ Für jedes f ( x ) = 1 aus der Wahrheitstafel bilde man einen Minterm für die
KDNF.
◆ Eine Variable xi wird invertiert, wenn die Variable für diesen Eintrag in der
Wahrheitstabelle 0 ist, ansonsten einfach verwendet.
◆ Beispiel:
x1 x2 x3 x4 f(x1,x2,x3,x4)

...
0 1 0 1 1 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4

◆ Darstellung durch KDNF bis auf Vertauschungen eindeutig (Kommutativität)

C.34
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
5.7 Hauptsatz der Schaltalgebra (2)

■ Jede Schaltfunktion lässt sich als genau eine KKNF darstellen


◆ Für jedes f ( x ) = 0 aus der Wahrheitstafel bilde man einen Maxterm für die
KKNF.
◆ Eine Variable xi wird invertiert, wenn die Variable für diesen Eintrag in der
Wahrheitstabelle 1 ist, ansonsten einfach verwendet.
◆ Beispiel:
x1 x2 x3 x4 f(x1,x2,x3,x4)

...
0 1 0 1 0 x 1 + x2 + x 3 + x 4

◆ Darstellung durch KKNF bis auf Vertauschungen eindeutig (Kommutativität)

C.35
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

5.7 Hauptsatz der Schaltalgebra (3)

■ Überführung der kanonischen Normalformen ineinander


◆ Wegen Dualität gilt:

KDNF ( f ( x ) ) = KKNF ( f ( x ) )

und

KKNF ( f ( x ) ) = KDNF ( f ( x ) )

C.36
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
6 Synthese von Schaltungen

■ Vorgehen
◆ Aufstellen der Wahrheitstafel
◆ Bilden der KDNF (oder KKNF)
◆ Aufbau der dazugehörigen Schaltung

6.1 Beispiel: Oderfunktion

■ Wahrheitstafel für die zweistellige Oder-Funktion


x1 x2 f(x1, x2)
0 0 0
0 1 1
1 0 1
1 1 1

C.37
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

6.1 Beispiel: Oderfunktion (2)

■ Bildung der KDNF


◆ Suchen der Stellen mit f ( x 1, x 2 ) = 1
◆ Summieren der entsprechenden Minterme:

f ( x 1, x 2 ) = x 1 ⋅ x 2 + x 1 ⋅ x 2 + x 1 ⋅ x 2

▲ Problem
◆ Schaltung wird in aller Regel nicht minimal sein

C.38
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
6.2 Einschub: Binärzahlen

■ Darstellung von ganzen Zahlen mit Hilfe von binären Zuständen


◆ Darstellung mit 0 und 1 aber mehreren Stellen
◆ z.B. zweistellige Binärzahlen
• 4 Möglichkeiten: 00, 01, 10, 11
◆ z.B. dreistellige Binärzahlen
• 8 Möglichkeiten: 000, 001, 010, 011, 100, 101, 110, 111

◆ Aufzählen der Zahlen


• an niedrigster (rechter) Stelle eine 1 addieren
• 1+1 ergibt 0 plus Übertrag von 1 auf nächste Stelle
• 1+1+1 ergibt 1 plus Übertrag von 1 auf nächste Stelle

C.39
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

6.2 Einschub: Binärzahlen (2)

■ Wert einer Binärzahl


◆ Beispiel: ( 011 ) 2
• Stufenzahlen aus dem Binärsystem: Zweierpotenzen, 2n
• Berechnung:
2 1 0
( 011 ) 2 = 0 ⋅ 2 + 1 ⋅ 2 + 1 ⋅ 2 = 3

C.40
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
6.3 Beispiel: Eingabemelder

■ Zwei dreistelliges Schaltfunktionen


◆ eine der Eingabevariablen kann 1 sein
◆ Ergebnis ist Nummer der Eingabevariable
(als Ergebnis zweier Schaltfunktionen)

■ Wahrheitstafel
x3 x2 x1 f2(x1, x2, x3) f1(x1, x2, x3)
0 0 0 0 0
0 0 1 0 1
0 1 0 1 0
0 1 1 d d
1 0 0 1 1
1 0 1 d d
1 1 0 d d
1 1 1 d d

C.41
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

6.3 Beispiel: Eingabemelder (2)

■ Uninteressante Funktionswerte
◆ einige Eingabewerte können nicht vorkommen / werden ausgeschlossen
◆ „don’t care“ Ergebnisse
◆ mit „d“ gekennzeichnet

■ Bildung der KDNF für beide Schaltfunktionen


◆ f 2 ( x 1, x 2 , x 3 ) = x 1 ⋅ x 2 ⋅ x 3 + x 1 ⋅ x 2 ⋅ x 3

◆ f 1 ( x 1, x 2 , x 3 ) = x 1 ⋅ x 2 ⋅ x 3 + x 1 ⋅ x 2 ⋅ x 3

◆ uninteressante Funktionsergebnisse werden nicht berücksichtigt


(d.h. bei KDNF wie Null-Ergebnisse behandelt)

C.42
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
6.4 Beispiel: Siebensegmentanzeige

■ Typische Anzeige für Ziffern


a

f b
g
0 1 2 3 4 5 6 7 8 9
e c
d

◆ Schaltfunktionen zur Ansteuerung der Segmente


◆ Parameter: binär codierte Zahl bzw. Ziffer

■ Gesucht: Schaltfunktion für die Ansteuerung des Segmentes d

C.43
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

6.4 Beispiel: Siebensegmentanzeige (2)

■ Aufstellung der Wahrheitstafel zur Ansteuerung des Segmentes d


x3 x2 x1 x0 f(x3, x2, x1, x0)
0 0 0 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.44
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
6.4 Beispiel: Siebensegmentanzeige (3)

■ Aufstellung der KDNF


◆ nur 1-Werte betrachten
◆ don’t care-Werte werden ignoriert

f = ( x 3 ⋅ x 2 ⋅ x1 ⋅ x 0 ) + ( x3 ⋅ x 2 ⋅ x 1 ⋅ x 0 ) + ( x 3 ⋅ x2 ⋅ x 1 ⋅ x 0 ) +
( x 3 ⋅ x 2 ⋅ x1 ⋅ x 0 ) + ( x3 ⋅ x 2 ⋅ x 1 ⋅ x 0 ) + ( x 3 ⋅ x2 ⋅ x 1 ⋅ x 0 ) +
( x 3 ⋅ x 2 ⋅ x1 ⋅ x 0 )

◆ KDNF sicherlich nicht minimal


• ungeeignet zur Übertragung in eine kostengünstige Schaltung

C.45
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

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ühren lassen
• bis auf Vertauschungen bzgl. des Kommutativitätsaxioms

■ Umformungen nach den Gesetzen der Boolschen Algebra


◆ Erhaltung der Schaltfunktion

✱ Nutzen
◆ z.B. Minimisieren von Schaltfunktionen

C.46
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
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.47
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.1 Grundlage der Minimisierung

■ Gesetze der Booleschen Algebra


◆ insbesondere

A⋅ B+A⋅ B = A

◆ Beweis

A ⋅ B + A ⋅ B = A ⋅ ( B + B) wg. (Kommutativität u.) Distributivität

A ⋅ (B + B) = A ⋅ 1 wg. komplementärem Element

A⋅ 1 = A wg. neutralem Element

C.48
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.1 Grundlage der Minimisierung (2)

■ Beispiel: Oderfunktion
◆ KDNF: f ( x 1, x2 ) = x1 ⋅ x 2 + x 1 ⋅ x 2 + x 1 ⋅ x 2

◆ Umwandlung:
f ( x 1, x 2 ) = x 1 ⋅ x 2 + x 1 ⋅ x 2 + x 1 ⋅ x 2
f ( x1, x2 ) = x1 ⋅ x 2 + x 1 ⋅ ( x2 + x 2 )
f ( x1, x2 ) = x1 ⋅ x2 + x1 ⋅ 1
f ( x1, x2 ) = x1 ⋅ x2 + x1
f ( x1, x2 ) = x1 ⋅ x2 + x1 + x1 ⋅ x2
f ( x1, x 2 ) = ( x1 + x 1 ) ⋅ x 2 + x1
f ( x1, x 2 ) = x 2 + x1

• Distributivität, neutrales Element


• Absorption

C.49
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

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ändlerscher Kreisgraph
◆ Karnaugh-Veitch Diagramme
◆ geeignet für Schaltfunktionen mit wenigen Variablen

C.50
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.3 Karnaugh-Veitch-Diagramme

■ Ausgangspunkt KDNF (oder KKNF)


◆ Rechteckschema
◆ je ein Feld für jeden möglichen Minterm (Maxterm)
◆ Anordnung der Felder, so dass benachbarte Felder bzw. Minterme
zusammenfassbar

■ Diagramm für zweistellige Schaltfunktion


◆ Funktion: f ( x 1, x 2 )
◆ Diagramm:

x1 x1

x2 x 1 ⋅ x2 x1 ⋅ x2

x2 x 1 ⋅ x2 x1 ⋅ x2

C.51
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.3 Karnaugh-Veitch-Diagramme (2)

■ Diagrammaufbau
◆ jede Variable x i halbiert das Diagramm in zwei zusammenhängende Teile
• erster Teil für x i
• zweiter Teil für xi

◆ Variable x1 Variable x 2
x1 x1 x1 x1

x2 x 1 ⋅ x2 x1 ⋅ x2 x2 x1 ⋅ x 2 x1 ⋅ x2

x2 x 1 ⋅ x2 x1 ⋅ x2 x2 x1 ⋅ x 2 x1 ⋅ x2

◆ benachbarte Felder unterscheiden sich nur um das „Vorzeichen“ einer Variablen


in den beiden Mintermen

C.52
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.4 Beispiel: Oderfunktion

■ Aufstellen der KDNF


◆ f ( x 1, x 2 ) = x 1 ⋅ x 2 + x 1 ⋅ x 2 + x 1 ⋅ x 2

■ Eintragung in das Diagramm


◆ Eintragung einer 1, wenn Minterm benötigt wird
◆ Eintragung einer 0, wenn Minterm nicht benötigt wird

x1 x1

x2 0 1
x2 1 1

◆ Eintragung auch direkt aus Wahrheitstafel möglich

C.53
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.4 Beispiel: Oderfunktion (2)

■ Markierung möglichst weniger und möglichst großer zusammenhängender


Bereiche mit 1en
◆ nur zusammenhängende rechteckige Bereiche mit 2n Elementen erlaubt
◆ alle 1 Felder müssen schließlich markiert sein
x1 x1

x2 0 1
x2 1 1

◆ markierten Bereiche ergeben Produktterme, die summiert werden:

f ( x 1, x 2 ) = x 1 + x 2

• Produktterme ergeben sich aus den Variablen die lediglich negiert oder ohne
Negation vorkommen

C.54
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.4 Beispiel: Oderfunktion (3)

■ Alternative Markierung
◆ Markierung nicht so groß wie möglich, aber alle 1en markiert
x1 x1

x2 0 1
x2 1 1

◆ markierten Bereiche ergeben Produktterme, die summiert werden:

f ( x 1, x 2 ) = x 1 + x 1 ⋅ x 2

◆ Funktion korrekt, jedoch nicht minimal

C.55
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.5 Beispiel: Eingabemelder

■ Dreistellige Schaltfunktionen
◆ Karnaugh-Veitch-Diagramm

x2 x2 x2

x1 x1

x3 x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

x3 x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

C.56
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.6 Beispiel: Eingabemelder (2)

■ Halbierungen des Diagramms


◆ Variable x1
x1 x1

x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

◆ Variable x2
x2 x2 x2

x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

• Wichtig: die Bereiche für x 2 gehören zusammen


• Vorstellung: Diagramm ist an den Rändern zusammengeklebt

C.57
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.7 Beispiel: Eingabemelder (3)

■ Halbierungen des Diagramms


◆ Variable x3

x3 x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

x3 x 1 ⋅ x2 ⋅ x 3 x1 ⋅ x 2 ⋅ x 3 x 1 ⋅ x 2 ⋅ x3 x1 ⋅ x2 ⋅ x3

C.58
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.7 Beispiel: Eingabemelder (4)

■ Belegen des Diagramms aus der Wahrheitstafel


◆ Funktion f 2 aus Folie C.41
◆ Eintragung der „don’t care“-Werte

x2 x2 x2

x1 x1

x3 0 1 d 0
x3 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.59
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.7 Beispiel: Eingabemelder (5)

■ Markierungen für f2
◆ zwei Bereiche

x2 x2 x2

x1 x1

x3 0 1 d 0
x3 1 d d d

◆ markierten Bereiche ergeben Produktterme, die summiert werden:

f 2 ( x 1, x 2 , x 3 ) = x 2 + x 3

C.60
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.8 Beispiel: unbestimmte Funktion

■ Gegebene Belegung aus der Wahrheitstafel


◆ Gesucht ist die beste Markierung

x2 x2 x2

x1 x1

x3 1 0 d 1
x3 1 1 d d

◆ markierten Bereiche ergeben Produktterme, die summiert werden:

f ( x 1, x 2, x 3 ) = x 2 + x 3

C.61
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.9 Beispiel: weitere Funktion

■ Gegebene weitere Belegung aus der Wahrheitstafel


◆ Gesucht ist die beste Markierung

x2 x2 x2

x1 x1

x3 1 0 0 1
x3 0 0 1 1

◆ Minimale DNF gefunden


• f ( x 1, x 2, x 3 ) = x 2 ⋅ x3 + x 1 ⋅ x 3

C.62
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.10 Vierstellige Funktionen

■ Karnaugh-Veitch-Diagramm für vierstellige Schaltfunktion

x2 x2 x2

x1 x1

x4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x3
x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x4
x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x3
x4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

C.63
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.10 Vierstellige Funktionen (2)

■ Halbierungen für vierstellige Schaltfunktion

x1 x1

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x2 x2 x2

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

C.64
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.10 Vierstellige Funktionen (3)

■ Halbierungen für vierstellige Schaltfunktion

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x3
x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x3
x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4
x4
x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

x4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4 x1 ⋅ x 2 ⋅ x 3 ⋅ x4 x 1 ⋅ x2 ⋅ x 3 ⋅ x 4 x 1 ⋅ x 2 ⋅ x3 ⋅ x 4

C.65
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.10 Vierstellige Funktionen (4)

■ Markierungen
◆ insbesonder folgende Markierung möglich

X ◆ Vorstellung: Diagramm ist an den


Seiten jeweils zusammengeklebt
X X

X X X X

X X X X

C.66
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.11 Beispiel: 2x2-Multiplizierer

■ Binärer Multiplizierer für 2 mal 2 Eingänge


◆ Binärdarstellung von Zahlen von 0 bis 3 bzw. 0 bis 15
◆ zwei Eingänge a1 und a0
◆ zwei Eingänge b1 und b0
◆ vier Ausgänge y3, y2, y1 und y0

C.67
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.11 Beispiel: 2x2-Multiplizierer (2)

a1 = x1 a0 = x2 b1 = x3 b0 = x4 y3 y2 y1 y0
0x0=0 0 0 0 0 0 0 0 0
0x1=0 0 0 0 1 0 0 0 0
0x2=0 0 0 1 0 0 0 0 0
0x3=0 0 0 1 1 0 0 0 0
1x0=0 0 1 0 0 0 0 0 0
1x1=1 0 1 0 1 0 0 0 1
1x2=2 0 1 1 0 0 0 1 0
1x3=3 0 1 1 1 0 0 1 1
2x0=0 1 0 0 0 0 0 0 0
2x1=2 1 0 0 1 0 0 1 0
2x2=4 1 0 1 0 0 1 0 0
2x3=6 1 0 1 1 0 1 1 0
3x0=0 1 1 0 0 0 0 0 0
3x1=3 1 1 0 1 0 0 1 1
3x2=6 1 1 1 0 0 1 1 0
3x3=9 1 1 1 1 1 0 0 1

C.68
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.11 Beispiel: 2x2-Multiplizierer (3)

■ Karnaugh-Veitch-Diagramm für y0:

x2 x2 x2

x1 x1

x4 0 0 0 0
x3
0 1 1 0
x4
0 1 1 0
x3
x4 0 0 0 0

■ Markierte Bereiche:

y0 = x2 ⋅ x4

C.69
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.11 Beispiel: 2x2-Multiplizierer (4)

■ Karnaugh-Veitch-Diagramm für y1:

x2 x2 x2

x1 x1

x4 0 0 0 0
x3
0 0 1 1
x4
0 1 0 1
x3
x4 0 1 1 0

■ Markierte Bereiche:

y 1 = x 2 ⋅ x 3 ⋅ x 4 + x 1 ⋅ x 2 ⋅ x 3 + x 1 ⋅ x 3 ⋅ x 4 + x1 ⋅ x 2 ⋅ x 4

C.70
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.11 Beispiel: 2x2-Multiplizierer (5)

■ Karnaugh-Veitch-Diagramm für y2:

x2 x2 x2

x1 x1

x4 0 0 0 0
x3
0 0 0 0
x4
0 0 0 1
x3
x4 0 0 1 1

■ Markierte Bereiche:

y2 = x1 ⋅ x2 ⋅ x3 + x1 ⋅ x3 ⋅ x4

C.71
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

8.11 Beispiel: 2x2-Multiplizierer (6)

■ Karnaugh-Veitch-Diagramm für y3:

x2 x2 x2

x1 x1

x4 0 0 0 0
x3
0 0 0 0
x4
0 0 1 0
x3
x4 0 0 0 0

■ Markierte Bereiche:

y 3 = x 1 ⋅ x 2 ⋅ x 3 ⋅ x4

C.72
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
8.12 Zusammenfassung

■ Markierungsregeln
◆ rechteckige Bereiche mit 2n 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

C.73
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

9 Schaltnetze

■ Mehrere Schaltfunktionen (Combinational Networks)


◆ sind von gleichen Eingangsvariablen abhängig
f 1(x1, x 2, …, xn)
f 2(x1, x 2, …, xn)

f m(x 1, x2, …, x n)

◆ entspricht Schaltung mit mehreren Ausgängen


x1 f1(x)
x2 f2(x)
...

...

xn fm(x)

✱ Kombinatorische Logik

C.74
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
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.75
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

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
x3 x2 x1 f2 f1

Beispiel: Eingabemelder

C.76
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
9 Schaltnetze (4)

■ Anzahl der notwendigen Gatter bei n Eingängen


◆ max. 2n Und-Gatter pro Schaltfunktion mit bis zu n Eingängen (KDNF)
◆ ein Oder-Gatter mit bis zu 2n 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

C.77
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

10 Typische Schaltnetze
10.1 1-aus-k-Multiplexer

■ Steuerleitungen weisen viele Eingabeleitungen einem Ausgang zu


◆ n Steuerleitungen s0, s 1, …, s n – 1 (Eingänge)
◆ k = 2 n Eingänge x 0, x 1, …, x k – 1
◆ ein Ausgang y
◆ es gilt: y = x i für ( s n – 1, …, s 1, s0 )2 = i
(Zahlendarstellung im Binärsystem)
x0
x1
y
...

xk-1 Multiplexer (MUX)


...
s0 s1 sn-1

C.78
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
10.1 1-aus-k-Multiplexer (2)

■ Realisierung
◆ für n = 2 als DNF

y = s 1 ⋅ s0 ⋅ x0 + s 1 ⋅ s 0 ⋅ x 1 + s1 ⋅ s0 ⋅ x 2 + s 1 ⋅ s0 ⋅ x 3
x0
y
x1

x2

x3
s0
s1

■ Einsatz
◆ Anzeige und Auswahl verschiedener Datenquellen
z.B. Auslesen von Daten aus Speicherzellen

C.79
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

10.2 1-zu-k-Demultiplexer

■ Steuerleitungen weisen eine Eingabeleitung vielen Ausgängen zu


◆ n Steuerleitungen s0, s 1, …, s n – 1 (Eingänge)
◆ ein Eingang x
◆ k = 2 n Ausgänge y 0, y 1, …, y k – 1
◆ es gilt: y i = x für ( s n – 1, …, s 1, s0 )2 = i
(Zahlendarstellung im Binärsystem)
y0
y1
x
...

yk-1 Demultiplexer (DEMUX)


...
s0 s1 sn-1

C.80
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
10.2 1-zu-k-Demultiplexer (2)

■ Realisierung
◆ für n = 2 als DNF

y 0 = s 1 ⋅ s0 ⋅ x , y 1 = s 1 ⋅ s 0 ⋅ x , y 2 = s1 ⋅ s 0 ⋅ x , y 3 = s1 ⋅ s0 ⋅ x
x
y0

y1

y2

s0 y3
s1

■ Einsatz
◆ Zuordnung und Auswahl verschiedener Datensenken
z.B. Speichern von Daten in Speicherzellen

C.81
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

10.3 k-zu-n-Kodierer

■ Nummer eines Eingangs wird ausgegeben


◆ k = 2 n Eingänge x 0, x 1, …, x k – 1
◆ immer genau eine Eingangsleitung auf 1
∃ i mit x i = 1 und ∀j ≠ i x 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)

x0 y0
x1 y1
Encoder
...

...

xk-1 yn-1 Kodierer

C.82
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
10.3 k-zu-n-Kodierer (2)

■ Realisierung
◆ für n = 2, k = 4 als DNF

y 0 = x 1 + x3 , y 1 = x 2 + x 3

x3 x2 x1 x0

y1

y0

■ Einsatz
◆ z.B. Signalisierung eines Eingang

C.83
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

10.4 n-zu-k-Dekodierer

■ Eingänge selektieren genau einen von vielen Ausgängen


◆ n Eingänge x0, x 1, …, xn – 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 ( x n – 1, …, x 1, x0 ) 2 = i
(Zahlendarstellung im Binärsystem)

x0 y0
x1 y1
Decoder
...

...

xn-1 yk-1 Dekodierer

C.84
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/
10.4 n-zu-k-Dekodierer (2)

■ Realisierung
◆ für n = 2, k = 4 als DNF

y 0 = x 0 ⋅ x1 , y 1 = x 0 ⋅ x 1 , y 2 = x 0 ⋅ x 1 , y 3 = x0 ⋅ x 1

y0

y1

y2

x0 y3
x1

■ Einsatz
◆ z.B. Dekodierung eines Maschinenbefehls

C.85
© 2002-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2007s-TI1-C-Boole.fm, 2007-04-24 17.38] http://www-vs.informatik.uni-ulm.de/teach/ss07/ti1/

Das könnte Ihnen auch gefallen