Teil II Schaltfunktionen 1
Teil II.1 Zahlendarstellung 2
b-adische Systeme Sei b IN mit b > 1 und E b = {0, 1,..., b 1} (Alphabet). Dann ist jede Fixpunktzahl z (mit n Vorkomma und k Nachkommastellen) mit 0 z b k b n+k 1 (und n IN, k IN 0 ) eindeutig als Wort der Länge n + k über E b darstellbar durch z = n 1 i= k z i b i = (z n 1 z n 2... z 0.z 1 z 2... z k ) b, z i E b. Dezimalsystem: E 10 = {0, 1,..., 9} Dual oder Binärsystem: E 2 = {0, 1} Oktalsystem: E 8 = {0, 1,..., 7} Hexadezimalsystem: E 16 = {0, 1,..., 9, A, B, C, D, E, F } 3
Umrechnung Dezimal Basis b Gegeben: d 10... eine Dezimalzahl (ohne Nachkommastellen) Gesucht: (z n 1 z n 2... z 0 ) b = d 10 Algorithmus: i := 0 // Stelle while d!= 0 do // solange d ungleich 0 z[i] := d mod b // Rest von d div b d := d div b // ganzzahlige Division i := i+1 // erhöhe Stelle endwhile 4
Nachkommastellen: Dezimal Basis b Gegeben: d 10 = (0.x 1... x k ) 10 : k Nachkommastellen Gesucht: (0.z 1... z j ) b = d 10 Algorithmus: i := 1 // Stelle while d!= 0 do // solange d ungleich 0 z[i] := truncate(d * b) // Vorkommastelle (0 <= z[i] <= b-1) d := d * b - z[i] // Nachkommastellen i := i+1 // erhöhe Stelle endwhile 5
Beispiel 25.3 10 25 div 2 = 12 Rest : 1 12 div 2 = 6 Rest : 0 6 div 2 = 3 Rest : 0 3 div 2 = 1 Rest : 1 1 div 2 = 0 Rest : 1 0.3 2 = 0.6 z 1 = 0 0.6 2 = 1.2 z 2 = 1 0.2 2 = 0.4 z 3 = 0 0.4 2 = 0.8 z 4 = 0 0.8 2 = 1.6 z 5 = 1 0.6 2 = 1.2 z 6 = 1 = z 2... 25.3 10 = 11001.010011001... 2 = 11001.01001 2 6
Umrechnung Basis b Dezimal Gegeben: (z n 1 z n 2... z 0 ) b Gesucht: d 10 = (z n 1 z n 2... z 0 ) b Algorithmus: i := n-1 // Stelle d := 0 // Initialisierung while i >= 0 do // solange i grösser oder gleich 0 d := b*d + z[i] // berechne nächste Stelle i := i-1 // vermindere Index endwhile Basiert auf der Äquivalenz (Hornerschema): n 1 i=0 z ib i = z 0 + b( n 1 i=1 z ib i 1 ) = = z 0 + b(z 1 + b(... b(z n 2 + bz n 1 )...)) 7
Beispiel 0 2 + 1 = 1 2 + 1 = 3 2 + 0 = 6 2 + 0 = 12 2 + 1 = 25 8
Darstellung negativer Zahlen z = (z n 1... z 0.z 1... z k ) 2 eine n+k Dualzahl in Fixpunktdarstellung Einerkomplement: K 1 (z) = (z n 1 z n 2... z 0.z 1... z k ) 2 mit z i = 0 z i = 1, und z i = z i. Zweierkomplement: K 2 (z) = (K 1 (z) + 1 ulp)modulo2 n = 2 n z b-komplement für n + k Fixpunktzahlen: K b (z) = ( z z 1 z n 2... z 0. z 1... z k ) b + 1 ulp 9
Beispiel Bei einer Wortlänge von n = 8 Bits lauten die Darstellungen von +92 und -92 im Einer bzw. Zweierkomplement: Komplement +92-92 Einer dual 01011100 dual 10100011 hexadezimal 5C hexadezimal A3 Zweier dual 01011100 dual 10100100 hexadezimal 5C hexadezimal A4 10
Subtraktion mit Zweier-Komplement x y = x + K 2 (y) Für n = 8, berechne 45 92 45 = 2 5 + 2 3 + 2 2 + 2 0 : (00101101) 2 + K 2 (92): (10100100) 2 (11010001) 2 = K 2 (z) Aus K 2 (z) = (11010001) 2 folgt: z = K 1 (K 2 (z) 1 ulp) = K 1 ((11010001) 2 1) = (00101111) 2 = 2 5 + 2 3 + 2 2 + 2 1 + 2 0 = 47 11
Gleitkommazahlen nach IEEE 754/854 Vorzeichen Bit Exponent: l Bit Mantisse: m Bit S e l 1 e l 2......... e 1 e 0 f m 1 f m 2............ f 1 f 0 Exponentencharakteristik : E = (e l 1 e l 2...... e 1 e 0 ) 2 Mantisse : M = (f m 1 f m 2...... f 1 f 0 ) DargestellteZahl : ( 1) S (1.M) 2 2 (E E Bias) 1 E 2 E Bias normalisiert ( 1) S (0.M) 2 2 1 E Bias E = 0, M 0 denormalisiert ( 1) S 0 E = 0, M = 0 Null mit Vorz. ( 1) S E = 2 E Bias + 1, M = 0 mit Vorz. NaN E = 2 E Bias + 1, M 0 Not a Number 12
Bereich und Genauigkeit Mantisse m... Genauigkeit Exponent l E Bias... Größe des Zahlenbereichs. Genauigkeit Exponent Mantisse E Bias Bereich Stellen single: 32 Bit l = 8 m = 23 127 1.5 10 45... 3.4 10 38 7 8 double: 64 Bit l = 11 m = 52 1023 5.0 10 324... 1.7 10 308 15 16 Beispiel: 1.0 single double Exponent { }} { 1.0 2 0 = 1.0 2 127 127 ˆ= 0 01111111 = $3F 800000 1.0 2 0 = 1.0 2 1023 1023 ˆ= 0 Exponent { }} { 01111111111 = $3F F 0000000000000 Mantisse { }} { 00000000000000000000000 Mantisse { }} { 00000...00000 } {{ } 52 Nullen 13
Umwandlung Dezimal Binär Gegeben: z Schritt 1: Mantisse M = z 2 y sodass 1 <= M < 2 Schritt 2: Exponent E = y + E Bias Beispiel: 6.5 = 2 2 1.625 = 2 2 (1 + 12 + 02 2 + 12 ) 3 = 2 129 127 (1 + 12 + 02 2 + 12 ) 3 = 2 129 127 (1.101) 2 ˆ= 0 10000001 10100000000000000000000 = $40D00000. 14
Teil II.2 Boolesche Algebra 15
Boolesche Algebra Für B = {0, 1}, x, y B seien folgende Verknüpfungen definiert: x y := Max(x, y), x y := Min(x, y), x := 1 x, (B,,, ) ist eine Boolesche Algebra 16
Gesetze der Booleschen Algebra a) Kommutativgesetze: x y = y x, x y = y x b) Assoziativgesetze: (x y) z = x (y z), (x y) z = x (y z) c) Verschmelzungsgesetz: (x y) x = x, (x y) x = x d) Distributivgesetze: x (y z) = (x y) (x z), x (y z) = (x y) (x z) e) Komplementgesetz: x (y y) = x, x (y y) = x f) x 0 = x, x 0 = 0, x 1 = x, x 1 = 1 g) de Morgansche Regeln: x y = x y, x y = x y h) x = x x = x x = x 17
Potenzmenge Für B = P(A) die Menge aller Teilmengen von A ist (B,,, ) ebenfalls eine Boolesche Algebra 18
Teil II.3 Schaltfunktionen 19
Schaltfunktionen Schaltfunktion: F : B n B m Totale Schaltfunktion: für alle 2 n Inputs gibt es einen eindeutigen Output, der alle m Bits belegt. Boolesche Schaltfunktion: f : B n B Komponenten Darstellung: F (x 1,..., x n ) = (f 1 (x 1,..., x n ), f 2 (x 1,..., x n ),..., f m (x 1,..., x n )). Anzahl verschiedener Boolescher Funktion: 2 2n 20
Beispiele Addition zweier 2 Bit Zahlen: A : B 4 B 3 A(x 1, x 2, x 3, x 4 ) = (a 1 (x 1, x 2, x 3, x 4 ), a 2 (x 1, x 2, x 3, x 4 ), a 3 (x 1, x 2, x 3, x 4 )) mit a 1 (x 1, x 2, x 3, x 4 ) = x 2 x 4 a 2 (x 1, x 2, x 3, x 4 ) = x 1 x 3 (x 2 x 4 ) a 3 (x 1, x 2, x 3, x 4 ) = (x 1 x 3 ) (x 1 x 2 x 4 ) (x 3 x 2 x 4 ) Sortieren von 30 16 Bit Zahlen: S : B 30 16 B 30 16 21
Boolesche Funktionen für n = 2 (1) x x x y x y x x y y x + y (2) 0 Min > x < y Max (3) x y x y f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 (1) x + y x y y x + y x x + y x y x + x (2) 1 - Max = 1 y 1 x 1 - Min 1 (3) y x x y f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 22
Disjunktive Normalform i = (i 1 i 2... i n ) 2 ist ein einschlägiger Index zu f : B n B genau dann wenn f(i 1, i 2,..., i n ) 2 = 1 für einen einschlägigen Index i einer Booleschen Funktion f, heißt die Funktion m i (x 1, x 2,..., x n ) := x i 1 1 x i 2 2... x i n der i-te Minterm von f, wobei x i j j := { xj falls i j = 1 x j falls i j = 0 Darstellungssatz: Für jede Boolesche Funktion f gilt (DNF): f = i I m i. 23
Beispiel Gegeben sei die folgende Boolesche Funktion f : B 3 B durch die Wertetabelle i x 1 x 2 x 3 f(x 1, x 2, x 3 ) 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 Einschlägigen Indizes sind 3, 5, 7. Die zugehörigen Minterme sind: m 3 (x 1, x 2, x 3 ) = x 1 x 2 x 3 m 5 (x 1, x 2, x 3 ) = x 1 x 2 x 3 m 7 (x 1, x 2, x 3 ) = x 1 x 2 x 3. f(x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3 24
Funktionale Vollständigkeit Ein System B = {f 1,..., f n } Boolescher Funktionen heißt (funktional) vollständig, wenn jede Boolesche Funktion allein durch Einsetzungen bzw. Kompositionen von Funktionen aus B dargestellt werden kann. a) {+,, } ist funktional vollständig. b) {+, } ist funktional vollständig. c) {, } ist funktional vollständig. d) {NAND} ist funktional vollständig. e) {NOR} ist funktional vollständig. 25
Konjunktive Normalform i-ter Maxterm: M i (x 1,..., x n ) := m i (x 1,..., x n ) = x i 1 1 +... + x i n Konjunktive Normalform: Für jede Boolesche Funktion f (KNF): gilt f = i/ I M i KNF (f) = DNF (f) Beispiel: f(x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3 = M 0 M 1 M 2 M 4 M 6 = (x 1 + x 2 + x 3 ) (x 1 + x 2 + x 3 ) (x 1 + x 2 + x 3 ) (x 1 + x 2 + x 3 ) (x 1 + x 2 + x 3 ). 26
Teil II.4 Schaltnetze 27
Bausteine 28
Beispiel f(x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3 x 1 x 2 x 3 1 1 & & & & & & 1 1 f( x1, x2, x3) 29
Kriterien für Schaltungen Geschwindigkeit: Minimiere Stufen Größe: Minimiere Anzahl der Gatter Fan-In, Fan-Out: Minimiere Anzahl der Inputs und Outputs 30
Graphen Punktmenge P IN. Kantenmenge K P P. nicht-reflexiv Graph G = (P, K) ungerichtet: K symmetrisch. gerichtet: K nicht symmetrisch Pfad: (p 1, p 2,..., p n ) Zyklus: (p 1, p 2,..., p n, p 1 ) DAG: Gerichteter, azyklischer Graph (Directed Acyclic Graph) 31
Beispiel 32
Teil II.5 Ringsummennormalform 33
Ringsummennormalform RNF: Sei f : B n B und I = {α 1,..., α k } die Menge der einschlägigen Indizes zu f. Dann gilt: f = m α1 m α2... m αk = k i=1 m αi 34
Äquivalenzen Für alle x, y, z B gilt: a) x 1 = x, x 0 = x b) x x = 0, x x = 1 c) x y = y x (Kommutativität) d) x (y z) = (x y) z (Assoziativität) e) x (y z) = x y x z (Distributivität bzgl. ) f) 0 0... 0 = 0 g) 1 1... 1 } {{ } n mal = { 1 falls n ungerade 0 falls n gerade 35
Komplementfreie RNF Reed Muller Form: Jede Boolesche Funktion f : B n B ist eindeutig darstellbar als Polynom (Multinom) in den Variablen x 1, x 2,..., x n mit den Koeffizienten a 0, a 1,..., a 1...n B. Die Darstellung ist wie folgt: f = a 0 a 1 x 1 a 2 x 2... a n x n a 12 x 1 x 2... a n 1,n x n 1 x n. a 1...n x 1 x 2... x n. 36
Herleitung der komplementfreien RNF 1. Bestimme DNF über einschlägige Indizes 2. Ersetze + durch 3. Ersetze x durch x 1 4. Multipliziere aus unter Verwendung der Äquivalenzen für. Beispiel: f(x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3 = x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 = (x 1 1)x 2 x 3 x 1 (x 2 1)x 3 x 1 x 2 x 3 = x 1 x 2 x 3 x 2 x 3 x 1 x 2 x 3 x 1 x 3 x 1 x 2 x 3 = x 2 x 3 x 1 x 3 x 1 x 2 x 3. 37