Schaltfunktionen

Werbung
Teil II
Schaltfunktionen
1
Teil II.1
Zahlendarstellung
2
b-adische Systeme
Sei b ∈ IN mit b > 1 und Eb = {0, 1, . . . , b − 1} (Alphabet).
Dann ist jede Fixpunktzahl z (mit n Vorkomma– und k Nachkommastellen) mit 0 ≤ z · bk ≤ bn+k − 1 (und n ∈ IN , k ∈ IN0) eindeutig als
Wort der Länge n + k über Eb darstellbar durch
z=
n−1
X
zibi = (zn−1zn−2 . . . z0.z−1z−2 . . . z−k )b, zi ∈ Eb.
i=−k
• Dezimalsystem: E10 = {0, 1, . . . , 9}
• Dual– oder Binärsystem: E2 = {0, 1}
• Oktalsystem: E8 = {0, 1, . . . , 7}
• Hexadezimalsystem: E16 = {0, 1, . . . , 9, A, B, C, D, E, F }
3
Umrechnung Dezimal → Basis b
Gegeben: d10 . . . eine Dezimalzahl (ohne Nachkommastellen)
Gesucht: (zn−1zn−2 . . . z0)b = d10
Algorithmus:
i := 0
while d != 0 do
z[i] := d mod b
d := d div b
i := i+1
endwhile
//
//
//
//
//
Stelle
solange d ungleich 0
Rest von d div b
ganzzahlige Division
erhöhe Stelle
4
Nachkommastellen: Dezimal → Basis b
Gegeben: d10 = (0.x1 . . . xk )10: k Nachkommastellen
Gesucht: (0.z1 . . . zj )b = d10
Algorithmus:
i := 1
while d != 0 do
z[i] := truncate(d * b)
d := d * b - z[i]
i := i+1
endwhile
//
//
//
//
//
Stelle
solange d ungleich 0
Vorkommastelle (0 <= z[i] <= b-1)
Nachkommastellen
erhöhe Stelle
5
Beispiel
25.310
25
12
6
3
1
div
div
div
div
div
2
2
2
2
2
= 12 Rest : 1
= 6 Rest : 0
= 3 Rest : 0
= 1 Rest : 1
= 0 Rest : 1
0.3
0.6
0.2
0.4
0.8
0.6
...
∗
∗
∗
∗
∗
∗
2
2
2
2
2
2
=
=
=
=
=
=
0.6
1.2
0.4
0.8
1.6
1.2
z1
z2
z3
z4
z5
z6
=0
=1
=0
=0
=1
= 1 = z2
25.310 = 11001.010011001 . . .2 = 11001.010012
6
Umrechnung Basis b → Dezimal
Gegeben: (zn−1zn−2 . . . z0)b
Gesucht: d10 = (zn−1zn−2 . . . z0)b
Algorithmus:
i := n-1
d := 0
while i >= 0 do
d := b*d + z[i]
i := i-1
endwhile
//
//
//
//
//
Stelle
Initialisierung
solange i grösser oder gleich 0
berechne nächste Stelle
vermindere Index
Basiert auf der Äquivalenz (Hornerschema):
Pn−1
Pn−1
i
i−1 ) =
z
b
=
z
+
b(
z
b
i
0
i
i=0
i=1
= z0 + b(z1 + b(. . . b(zn−2 + bzn−1) . . .))
7
Beispiel
=
=
=
=
=
0
1
3
6
12
25
∗
∗
∗
∗
∗
2
2
2
2
2
+
+
+
+
+
1
1
0
0
1
8
Darstellung negativer Zahlen
z = (zn−1 . . . z0.z−1 . . . z−k )2 eine n+k Dualzahl in Fixpunktdarstellung
• Einerkomplement:
K1(z) = (z n−1z n−2 . . . z 0.z −1 . . . z −k )2
mit zi = 0 ↔ z i = 1, und z i = zi.
• Zweierkomplement:
K2(z) = (K1(z) + 1 ulp)modulo2n = 2n − z
• b-Komplement für n + k Fixpunktzahlen:
Kb(z) = (z̃z−1z̃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
Einer–
dual 01011100
hexadezimal 5C
Zweier–
dual 01011100
hexadezimal 5C
-92
dual 10100011
hexadezimal A3
dual 10100100
hexadezimal A4
10
Subtraktion mit Zweier-Komplement
x − y = x + K2(y)
Für n = 8, berechne 45 − 92
45 = 25 + 23 + 22 + 20:
+ K2(92):
(00101101)2
(10100100)2
(11010001)2 = K2(z)
Aus K2(z) = (11010001)2 folgt:
z = K1(K2(z) − 1 ulp)
= K1((11010001)2 − 1)
= (00101111)2
= 25 + 23 + 22 + 21 + 20 = 47
11
Gleitkommazahlen nach IEEE 754/854
Vorzeichen–Bit
↓
Exponent: l Bit
Mantisse: m Bit
S el−1el−2 . . . . . . . . . e1e0 fm−1fm−2 . . . . . . . . . . . . f1f0
Exponentencharakteristik : E = (el−1el−2 . . . . . . e1e0)2
Mantisse : M = (fm−1fm−2 . . . . . . f1f0)
DargestellteZahl :
(−1)S · (1.M )2 · 2(E−EBias)
(−1)S · (0.M )2 · 21−EBias
(−1)S · 0
(−1)S · ∞
NaN
1 ≤ E ≤ 2 · EBias
E = 0, M 6= 0
E = 0, M = 0
E = 2 · EBias + 1, M = 0
E = 2 · EBias + 1, M =
6 0
normalisiert
denormalisiert
Null mit Vorz.
∞ mit Vorz.
Not a Number
12
Bereich und Genauigkeit
• Mantisse m . . . Genauigkeit
• Exponent l − EBias . . . Größe des Zahlenbereichs.
Genauigkeit
single: 32 Bit
double: 64 Bit
Exponent
l= 8
l = 11
Mantisse
m = 23
m = 52
EBias
127
1023
Bereich
1.5 · 10−45 . . . 3.4 · 1038
5.0 · 10−324 . . . 1.7 · 10308
Stellen
7 – 8
15 – 16
Beispiel: 1.0
single
Exponent
1.0 ∗ 20 = 1.0 ∗ 2127−127
Mantisse
z
}|
{ z
}|
{
=
ˆ 0 01111111 00000000000000000000000
= $3F 800000
double
Exponent
1.0 ∗ 20 = 1.0 ∗ 21023−1023
Mantisse
z
}|
{ z
}|
{
=
ˆ 0 01111111111 00000...............00000
|
{z
}
52 Nullen
= $3F F 0000000000000
13
Umwandlung Dezimal → Binär
• Gegeben: z
• Schritt 1: Mantisse M = z ∗ 2y sodass 1 <= M < 2
• Schritt 2: Exponent E = y + EBias
Beispiel:
6.5 = 22 · 1.625
µ
¶
1
1
0
= 22 · 1 + + 2 + 3
2µ 2
2
¶
1
1
0
= 2129−127 · 1 + + 2 + 3
2
2
2
= 2129−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 2n Inputs gibt es einen eindeutigen
Output, der alle m Bits belegt.
• Boolesche Schaltfunktion: f : B n → B
• Komponenten Darstellung:
F (x1, . . . , xn) = (f1(x1, . . . , xn), f2(x1, . . . , xn), . . . , fm(x1, . . . , xn)).
• Anzahl verschiedener Boolescher Funktion: 22
n
20
Beispiele
• Addition zweier 2 Bit Zahlen: A : B 4 → B 3
A(x1, x2, x3, x4) =
(a1(x1, x2, x3, x4), a2(x1, x2, x3, x4), a3(x1, x2, x3, x4))
mit
a1(x1, x2, x3, x4) =
x2 ⊕ x 4
a2(x1, x2, x3, x4) =
x1 ⊕ x3 ⊕ (x2 ∧ x4)
a3(x1, x2, x3, x4) =
(x1 ∧ x3)
∨ (x1 ∧ x2 ∧ x4)
∨ (x3 ∧ x2 ∧ x4)
• Sortieren von 30 16 Bit Zahlen: S : B 30∗16 → B 30∗16
21
Boolesche Funktionen für n = 2
x
0
0
1
1
x
0
0
1
1
(1)
(2)
(3)
y
0
1
0
1
(1)
(2)
(3)
y
0
1
0
1
x+y
1 - Max
↓
f8
1
0
0
0
x·x
≡0
f0
0
0
0
0
x⊕y
=
↔
f9
1
0
0
1
x·y
Min
∧
f1
0
0
0
1
x·y
>
6→
f2
0
0
1
0
y
1−y
¬y
f10
1
0
1
0
x
x
x
f3
0
0
1
1
x+y
≥
←
f11
1
0
1
1
x·y
<
6←
f4
0
1
0
0
x
1−x
¬x
f12
1
1
0
0
y
y
y
f5
0
1
0
1
⊕
6
=
6
↔
f6
0
1
1
0
x+y
≤
→
f13
1
1
0
1
x+y
Max
∨
f7
0
1
1
1
x·y
1 - Min
↑
f14
1
1
1
0
x+x
≡1
f15
1
1
1
1
22
Disjunktive Normalform
• i = (i1i2 . . . in)2 ist ein einschlägiger Index zu f : B n → B genau
dann wenn f (i1, i2, . . . , in)2 = 1
• für einen einschlägigen Index i einer Booleschen Funktion f , heißt
i i
die Funktion mi(x1, x2, . . . , xn) := x11 x22 . . . xinn der i-te Minterm
von f , wobei
i
xjj :=
(
xj falls ij = 1
xj falls ij = 0
• Darstellungssatz: Für jede Boolesche Funktion f gilt (DNF):
f =
X
mi .
i∈I
23
Beispiel
Gegeben sei die folgende Boolesche Funktion f : B 3 → B durch die
Wertetabelle
i
0
1
2
3
4
5
6
7
x1
0
0
0
0
1
1
1
1
x2
0
0
1
1
0
0
1
1
x3
0
1
0
1
0
1
0
1
f (x1, x2, x3)
0
0
0
1
0
1
0
1
Einschlägigen Indizes sind 3, 5, 7.
Die zugehörigen Minterme sind:
m3(x1, x2, x3) = x1x2x3
m5(x1, x2, x3) = x1x2x3
m7(x1, x2, x3) = x1x2x3.
f (x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3
24
Funktionale Vollständigkeit
Ein System B = {f1, . . . , fn} 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
• i-ter Maxterm: Mi(x1, . . . , xn) := mi(x1, ..., xn) = x11 + . . . + xinn
• Konjunktive Normalform: Für jede Boolesche Funktion f gilt
(KNF):
f =
Y
Mi
i∈I
/
KN F (f ) = DN F (f )
• Beispiel:
f (x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3
= M0 · M 1 · M 2 · M 4 · M 6
= (x1 + x2 + x3) · (x1 + x2 + x3) · (x1 + x2 + x3)
·(x1 + x2 + x3) · (x1 + x2 + x3).
26
Teil II.4
Schaltnetze
27
Bausteine
28
Beispiel
f (x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3
x1
x2
x3
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: (p1, p2, . . . , pn)
• Zyklus: (p1, p2, . . . , pn, p1)
• 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
X
m αi
i=1
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⊕
{z. . . ⊕ 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 x1, x2, . . . , xn mit den Koeffizienten
a0, a1, . . . , a1...n ∈ B. Die Darstellung ist wie folgt:
f = a0
⊕ a 1 x1 ⊕ a 2 x2 ⊕ . . . ⊕ a n xn
⊕ a12x1x2 ⊕ . . . ⊕ an−1,nxn−1xn
..
⊕ a1...nx1x2 · . . . · xn.
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 (x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3
= x1x2x3 ⊕ x1x2x3 ⊕ x1x2x3
= (x1 ⊕ 1)x2x3 ⊕ x1(x2 ⊕ 1)x3 ⊕ x1x2x3
= x 1 x2 x3 ⊕ x 2 x3 ⊕ x 1 x2 x3 ⊕ x 1 x3 ⊕ x 1 x2 x3
= x 2 x3 ⊕ x 1 x3 ⊕ x 1 x2 x3 .
37
Herunterladen