Rechnerstrukturen

Werbung
Rechnerstrukturen
Michael Engel und Peter Marwedel
TU Dortmund, Fakultät für Informatik
SS 2013
Hinweis: Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen
Boole. Fkt.
18. April 2013
1
Boole. Fkt.
Boolesche Funktionen und Schaltnetze
Repräsentationen boolescher Funktionen (Wiederholung)
Normalformen boolescher Funktionen (Wiederholung)
Repräsentation boolescher Funktionen mit OBDDs
Synthese von OBDDs für boolesche Funktionen
Schaltnetze
Repräsentationen boolescher Funktionen
Definition 4
Seien n, m ∈ N. Eine Funktion f : B n → B m heißt boolesche
Funktion.
Notation
B n = Menge aller n-stelligen Tupel über B
Beispiel B 2 = {(0, 0), (0, 1), (1, 0), (1, 1)}
Anzahl boolescher Funktionen
boolesche Funktion f : B n → B m als Wertetabelle darstellbar
mit |B n | = 2n Zeilen
und |B m | = 2m Möglichkeiten je Zeile
⇒ 2m
2n
Beispiel
Boole. Fkt.
n
= 2m·2 boolesche Funktionen f : B n → B m
2
21·2 = 24 = 16 boolesche Funktionen f : B 2 → B
Alle booleschen Funktionen f : B 2 → B
0
0
0
0
0
0
0
0
0
0
x
y
f1
f2
f3
f4
f5
f6
f7
f8
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
Nullfkt.
AND
0
∧
Proj.
x
Proj.
XOR
OR
y
⊕
∨
x
y
f9
f10
f11
f12
f13
f14
f15
f16
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
NOR
Äquiv.
Negation
Negation
Impl.
NAND
Einsfkt.
⇔
¬y
¬x
⇒
Verwenden im Weiteren ∧ (Konjunktion), ∨ (Disjunktion), ¯ (Negation)
Boole. Fkt.
1
Darstellung boolescher Funktionen
gerade gesehen
x
0
0
1
1
y
0
1
0
1
Wertetabelle
(Orientierung meistens wie hier)
f7
0
1
1
0
bei fester Reihenfolge
f7 : (0, 1, 1, 0)
Boole. Fkt.
Wertevektor
Index und Minterm
Index
0
1
2
3
x
0
0
1
1
y
0
1
0
1
f7
0
1
1
0
nicht einschlägig
einschlägig
einschlägig
nicht einschlägig
Definition
Die boolesche Funktion, für die nur der Index i einschlägig ist,
heißt Minterm zum Index i .
Ein Minterm ist nur mit Negationen und Konjunktionen darstellbar:
(
0
xj
xj =
1
xj
ˆ [negierte] Variable)
und dann Konjunktion all dieser Literale (=
Boole. Fkt.
Normalformen
◮
◮
Definition 8
Die Darstellung von f als Disjunktion all ihrer Minterme zu
einschlägigen Indizes heißt disjunktive Normalform (DNF).
Die Darstellung von f als XOR-Verknüpfung all ihrer Minterme zu
einschlägigen Indizes heißt Ringsummen-Normalform (RNF).
Anmerkung
Normalformen sind eindeutig.
Index x y
0
0 0
Beispiel
0 1
1
2
1 0
1 1
3
DNF von f7 x y ∨ x y
Boole. Fkt.
f7
0
1
1
0
Minterm
xy
xy
xy
xy
RNF von f7
xy ⊕xy
Funktionale Vollständigkeit
Beobachtung
jede boolesche Funktion f : B n → B nur mittels
Konjunktion, Disjunktion und Negation darstellbar
(z. B. durch ihre DNF)
Definition 5
Eine Menge F von booleschen Funktionen heißt funktional
vollständig, wenn sich jede boolesche Funktion durch Einsetzen
und Komposition von Funktionen aus F darstellen lässt.
Satz 6
{∧, ∨, ¬} ist funktional vollständig.
Boole. Fkt.
Darstellungen boolescher Funktionen
◮
◮
◮
◮
◮
◮
◮
◮
◮
◮
Wozu stellt man boolesche Funktionen dar?
Realisierung
Verifikation
Fehleranalyse
Synthese
...
Wo stellt man boolesche Funktionen dar?
auf dem Papier
im Computer
Probleme
Wertetabelle, Wertevektor immer groß
Normalformen oft groß
Normalformen unterstützen gewünschte Operationen kaum
Wunsch
Boole. Fkt.
andere Repräsentation
Eine Datenstruktur für boolesche Funktionen
Ziel
f : B n → B darstellen
Wünsche
◮
zu einer Belegung x1 , x2 , . . . , xn schnell den Funktionswert
f (x1 , x2 , . . . , xn ) ausrechnen können
◮
Funktionen schnell auf Gleichheit testen können
◮
Funktionen schnell manipulieren (z. B. eine Variable konstant
setzen) können
◮
schnell eine Null-Eingabe/eine Eins-Eingabe finden können
◮
Funktionen möglichst klein repräsentieren
◮
...
Ordered Binary Decision Diagrams
Boole. Fkt.
OBDDs
erster Schritt
dann
◮
◮
◮
◮
◮
◮
Festlegen einer Variablenordnung π
(z. B. π = (x3 , x1 , x2 , x4 ))
x4
1
oder
Baue πOBDD aus Knoten
1 x3
x2
und Kanten
nach folgenden Regeln:
Knoten mit Variablen, 0 oder 1 markiert
Kanten mit 0 oder 1 markiert
Variablen-Knoten mit je einer ausgehenden 0- und 1-Kante
Konstanten-Knoten ohne ausgehende Kante
genau ein Knoten ohne eingehende Kante
Kanten zwischen Variablenknoten beachten π
Boole. Fkt.
πOBDD – Ein Beispiel
Variablenordnung π = (x1 , x2 , x3 )
Beispiel Auswertung f (1, 0, 1)
x1 = 1, x2 = 0, x3 = 1
f (1, 0, 1) = 1
x1
0
1
x2
x2
0
1
x3
Boole. Fkt.
0
x3
1
x3
x3
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
πOBDD-Größe
gleichartige Senken verschmelzen
x1
0
1
x2
x2
0
1
x3 1
x3
0
Boole. Fkt.
0
0
1
1
x3
0
x3
0 1
1
0
1
πOBDD-Größe
gleichartige Knoten verschmelzen
x1
0
1
x2
x2
0
1
x3 1
x3
0
Boole. Fkt.
0
0
1
1
x3
0
0 1
1
πOBDD-Größe
Knoten ohne Einfluss eliminieren
x1
0
1
x2
x2
0
1
x3 1
1
x3
0
Boole. Fkt.
0
0
1
0
1
πOBDD-Größe
Knoten ohne Einfluss eliminieren
x1
0
1
x2
0
1
x3 1
x3
0
Boole. Fkt.
0
1
0
1
πOBDD-Größe
Knoten ohne Einfluss eliminieren
x1
0
1
x2
0
Größe minimal
1
x3 1
0
Boole. Fkt.
0
1
Alternative Darstellung eines πOBDDs
x1
x2
x3
Boole. Fkt.
0
1
OBDD-Reduzierung
Satz 9
Die erschöpfende Anwendung der
◮
Verschmelzungsregel Knoten mit gleicher Markierung und gleichen
”
Nachfolgern können verschmolzen werden“ und
◮
Eliminationsregel Ein Knoten mit gleichem Null- und
”
Einsnachfolger kann entfernt werden“
in beliebiger Reihenfolge führt zum reduzierten πOBDD.
reduziert = minimale Größe und eindeutig
Boole. Fkt.
Erzeugung von OBDDs
Wie kommt man zu einem πOBDD? für f : B n → B?
Kommt darauf an, wie f gegeben ist. . .
Welche Formate kennen wir?
◮
Funktionstabelle
◮
Wertevektor
◮
boolescher Ausdruck
◮
Normalformen
◮
informale Beschreibung
◮
OBDD
◮
...
Boole. Fkt.
Erzeugung von OBDDs
Man will nicht irgendein πOBDD,
man will das reduzierte πOBDD.
Welchen Weg kennen wir, das zu bekommen?
1. Erstelle vollständigen binären Baum über den Variablen, schreibe
passende Funktionswerte an die Senken.
2. Reduziere.
Ist das ein vernünftiges Vorgehen?
Nur, wenn vollständiger Binärbaum nicht wesentlich größer als
Eingabe und reduziertes πOBDD!
Boole. Fkt.
πOBDD aus vollständigem Binärbaum
Variablenordnung π = (x1 , x2 , x3 )
x1
0
1
x2
x2
0
1
x3
Boole. Fkt.
0
x3
1
x3
x3
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
Größe von Repräsentationen boolescher
Funktionen
Wie groß ist ein πOBDD für f , das vollständiger Binärbaum ist?
i -te Ebene 2i −1 Knoten
n−1
n
P i
P
2 = 2n − 1 + Senken
2i −1 = Senken +
Senken +
Beobachtung
also
i =1
i =0
Für welche Eingabeformate ist das also akzeptabel?
sicher nur für Wertetabelle und Wertevektor
also Vorgehen fast immer nicht akzeptabel
Erkenntnis
Boole. Fkt.
Wir brauchen eine Alternative.
Schrittweise OBDD-Konstruktion
Idee
baue πOBDD schrittweise aus
einfachsten“ πOBDDs zusammen
”
0
klar πOBDD für Nullfunktion
1
klar πOBDD für Einsfunktion
0
klar πOBDD für xi
0
xi
1
1
klar πOBDD für ¬f aus πOBDD für f
durch Invertierung der Senkenmarkierungen
Boole. Fkt.
OBDD-Synthese
πOBDD G1 für f1 : B n → B
πOBDD G2 für f2 : B n → B
πOBDD G
für f1 ⊗ f2
für beliebige boolesche Funktion ⊗ : B 2 → B
Wichtig
Idee
Boole. Fkt.
gleiche Variablenordnung π
Durchlaufe beide πOBDDs parallel.
Ein einfaches Beispiel
x4 1
x4 1
0
0
x1 2
0
0 3
x4 ∨ x4 x1
1
x1 2
1
1
0
1 4 0 3
x4 x1
1
0
1
boolesche Verknüpfung ⊕
x4 (1,1)
x1 (2,2)
1
Variablenordnung x4 , x2 , x1 , x3
Boole. Fkt.
0
1 4
0 (3,3)
1 (4,3)
(x4 ∨ x4 x1 ) ⊕ (x4 x1 ) = x4
πOBDD-Synthese
πOBDD G1 für f1 : B n → B
πOBDD G2 für f2 : B n → B
πOBDD G
für f1 ⊗ f2
für beliebige boolesche Funktion ⊗ : B 2 → B
G1 hat Knoten v1 , v2 , . . . , vs1 .
G2 hat Knoten w1 , w2 , . . . , ws2 .
Wir starten in Wurzeln v1 und w1 .
Mit dem aktuellen Knotenpaar machen wir einen Synthese-Schritt.
Ergebnis des Synthese-Schritts: 1 Knoten des Ergebnis-πOBDD.
Boole. Fkt.
Ein Synthese-Schritt
aktuelle Knoten
vi , wj
vi hat Markierung mi ∈ {x1 , x2 , . . . , xn , 0, 1}
wj hat Markierung mj ∈ {x1 , x2 , . . . , xn , 0, 1}
Falls mi ∈
/ {0, 1}
vi ,0 ist Nullnachfolger von vi
vi ,1 ist Einsnachfolger von vi
Falls mj ∈
/ {0, 1}
wj,0 ist Nullnachfolger von wj
wj,1 ist Einsnachfolger von wj
Wir unterscheiden mehrere Fälle
nach den Markierungen mi und mj .
Boole. Fkt.
1. Fall: gleiche Variable
mi = mj = xk
Erzeuge Knoten (vi , wj ) mit Markierung xk .
Nullnachfolger
der von Synthese-Schritt(vi ,0 , wj,0 )
erzeugte Knoten
Einsnachfolger
der von Synthese-Schritt(vi ,1, wj,1 )
erzeugte Knoten
Boole. Fkt.
2. Fall: verschiedene Variable
mi = xk , mj = xk ′ , xk vor xk ′
Erzeuge Knoten (vi , wj ) mit Markierung xk .
Nullnachfolger
der von Synthese-Schritt(vi ,0 , wj )
erzeugte Knoten
Einsnachfolger
der von Synthese-Schritt(vi ,1, wj )
erzeugte Knoten
Boole. Fkt.
3. Fall: verschiedene Variable
mi = xk , mj = xk ′ , xk hinter xk ′
Erzeuge Knoten (vi , wj ) mit Markierung xk ′ .
Nullnachfolger
der von Synthese-Schritt(vi , wj,0 )
erzeugte Knoten
Einsnachfolger
der von Synthese-Schritt(vi , wj,1 )
erzeugte Knoten
Boole. Fkt.
4. Fall: eine Variable, eine Senke
mi = xk , mj ∈ {0, 1}
Idee
Konstante liegen in der Variablenordnung ganz hinten
Erzeuge Knoten (vi , wj ) mit Markierung xk .
Nullnachfolger
der von Synthese-Schritt(vi ,0 , wj )
erzeugte Knoten
Einsnachfolger
der von Synthese-Schritt(vi ,1, wj )
erzeugte Knoten
Boole. Fkt.
5. Fall: eine Variable, eine Senke
mi ∈ {0, 1}, mj = xk
Erzeuge Knoten (vi , wj ) mit Markierung xk .
Nullnachfolger
der von Synthese-Schritt(vi , wj,0 )
erzeugte Knoten
Einsnachfolger
der von Synthese-Schritt(vi , wj,1 )
erzeugte Knoten
Boole. Fkt.
6. Fall: zwei Senken
mi ∈ {0, 1}, mj ∈ {0, 1}
Erzeuge mit mi ⊗ mj markierte Senke.
Zusammenfassung zum Merken
1. Erzeuge Knoten mit weiter vorne liegender“ Markierung.
”
2. Wenn beide Knoten mit gleicher Variabler markiert, aus beiden
Knoten fortschreiten.
3. Bei ungleicher Variablenmarkierung, nur aus weiter vorne
”
liegenden“ Knoten fortschreiten, im anderen Knoten warten.
4. Abbruch, wenn in beiden Knoten Senken erreicht.
Boole. Fkt.
Noch ein Beispiel
0
x1 (1,1)
1
x2 (2,1)
0
x1 1
0 2
1
0
1 3 0 2
x1
Variablenordnung x1 , x2
boolesche Verknüpfung ⊕
Boole. Fkt.
x2 1
0
0
1
1
1 3
x2
1
x2 (3,1)
0 (2,2)
1 (3,2) 0
(2,3)
x1 ⊕ x2
(3,3)
Größenzuwachs bei Synthese
Wie groß wird das neue πOBDD?
Beobachtung
also
für je zwei Knoten höchstens ein neuer Knoten
aus πOBDDs mit s1 und s2 Knoten
neues πOBDD mit ≤ s1 · s2 Knoten
Beobachtungen
◮
Ergebnis-πOBDD in der Regel nicht reduziert
◮
Größe s1 · s2 manchmal erforderlich (ohne Senken)
Boole. Fkt.
Operationen auf OBDDs
Erinnerung
OBDDs unterstützen viele wichtige Operationen
√
1. Reduzierung
√
√
2. Synthese
3. Auswertung
4. Konstantsetzung xi = c
√
OBDD durchlaufen
Vorgänger jedes xi -Knotens auf c-Nachfolger des xi -Knotens umsetzen
5. Gleichheitstest
√
Voraussetzung gleiche Variablenordnung π
beide reduzierte πOBDDs ab der Quelle parallel durchlaufen
bei ungleicher Markierung ungleich
rekursiv für Null- und Einsnachfolger
Boole. Fkt.
Operationen auf OBDDs (Fortsetzung)
Erinnerung
OBDDs unterstützen viele wichtige Operationen
6. Null-/Einseingabe finden
√
mit OBDD-Durchlauf Vorgänger-Zeiger berechnen
von passender Senke Aufstieg bis zur Quelle, dabei Belegung merken
7. Null-/Einseingaben zählen
√
Beobachtung über Quelle laufen alle 2n Eingaben
Beobachtung jede Knoten halbiert Anzahl Eingaben und leitet Hälften
jeweils über 0- und 1-Nachfolger
OBDD von der Quelle durchlaufen
an jedem Knoten Anzahl Eingaben notieren
bei mehrfach erreichten Knoten Anzahlen addieren
Summe an der passenden Senke ablesen (für reduziertes πOBDD)
Boole. Fkt.
Schaltnetze
bis jetzt
Diskussion (theoretischer) Grundlagen
Wo bleibt die Hardware?
kommt jetzt
Wunsch
klar
aber immer noch abstrakt
Realisierung boolescher Funktionen in Hardware
brauchen Realisierung einer funktional-vollständigen
Menge boolescher Funktionen
Erinnerung
Realisierung von NAND reicht aus
+V
xy
Beobachtung
x
y
Boole. Fkt.
realisiert NAND(x, y )
Gatter
Realisierung mit Transistoren . . . falsche Ebene!
Grundlage hier
einfache logische Bausteine (Gatter)
Bausteine für Negation, Konjunktion, Disjunktion, . . .
Spielregeln
◮
Eingänge mit Variablen oder Konstanten belegt
◮
nur Verbindungen von Ausgängen zu Eingängen
◮
keine Kreise
Ergebnis heißt Schaltnetz
Boole. Fkt.
Symbole für Gatter (1)
Funktion
DIN 40700
y =x
x
y
y = x1 ∧ x2 ∧ x3
x1
x2
x3
y
y = x1 ∧ x2 ∧ x3
x1
x2
x3
y
Boole. Fkt.
DIN EN 60617
IEEE
x
1
y
x
y
x1
x2
x3
&
y
x1
x2
x3
y
x1
x2
x3
&
y
x1
x2
x3
y
Symbole für Gatter (2)
Funktion
DIN 40700
y = x1 ∨ x2 ∨ x3
x1
x2
x3
y
y = x1 ∨ x2 ∨ x3
x1
x2
x3
y
y = x1 ⊕ x2
x1
y
x2
y = x1 x2 ∨ x1 x2
Boole. Fkt.
IEEE
x1
x2
x3
>1
y
x1
x2
x3
y
x1
x2
x3
>1
y
x1
x2
x3
y
=1
y
x1
x1
y
y
x2
x2
x1
x2
DIN EN 60617
x1
x1
y
y
x2
x2
Schaltnetz-Bewertung
Und jetzt beliebige Schaltnetze entwerfen?
mindestens relevant
Größe und Geschwindigkeit
◮
Schaltnetzgröße (= Anzahl der Gatter) wegen Kosten,
Stromverbrauch, Verlustleistung, Zuverlässigkeit, . . .
◮
Schaltnetztiefe (= Länge längster Weg Eingang
wegen Schaltgeschwindigkeit
◮
Fan-In (= max. Anzahl eingehender Kanten) wegen
Realisierungsaufwand
◮
Fan-Out (= max. Anzahl ausgehender Kanten) wegen
Realisierungsaufwand
◮
. . . (z. B. Anzahl Gattertypen, Testbarkeit, Verifizierbarkeit)
Boole. Fkt.
Ausgang)
Was wir schon wissen
Jede boolesche Funktion kann mit einem {∧, ∨, ¬}- bzw. einem
{⊕, ∧, ¬}-Schaltnetz der Tiefe 3 realisiert werden.
Beweis
DNF, KNF oder RNF direkt umsetzen
Probleme
◮
Fan-In des tiefsten Gatters kann extrem groß sein
◮
Größe des Schaltnetzes oft inakzeptabel
Boole. Fkt.
Beispiel: DNF
fbsp : B 3 → B, Wertevektor (1, 0, 0, 0, 1, 1, 1, 1)
f (x1 , x2 , x3 ) = x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3
x1
1
&
&
x2
1
&
&
&
x3
Boole. Fkt.
1
>1
f bsp
Beispiel: RNF
fbsp : B 3 → B, Wertevektor (1, 0, 0, 0, 1, 1, 1, 1)
f (x1 , x2 , x3 ) = x1 x2 x3 ⊕ x1 x2 x3 ⊕ x1 x2 x3 ⊕ x1 x2 x3 ⊕ x1 x2 x3
x1
1
&
&
x2
1
&
&
&
x3
Boole. Fkt.
1
=1
f bsp
Beispiel: KNF
fbsp : B 3 → B, Wertevektor (1, 0, 0, 0, 1, 1, 1, 1)
f (x1 , x2 , x3 ) = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 )
x1
>1
x2
1
>1
x3
1
>1
Boole. Fkt.
&
f bsp
Multiplexer
eine weitere Beispielfunktion . . .
aber eine in der Praxis sehr wichtige diesmal!
MUXd y1 , y2 , . . . , yd , x0 , x1 , . . . , x2d −1 = x(y1 y2 ··· yd )2
Beispiel
y1 y2
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1
Boole. Fkt.
y3
0
1
0
1
0
1
0
1
MUX3 (y1 , y2 , y3 , x0 , x1 , . . . , x7 )
x0
x1
x2
x3
x4
x5
x6
x7
Multiplexer
Warum ist MUX in der Praxis wichtig?
direkte Speicheradressierung
OBDD-Realisierung
Welche Variablenordnung π?
wohl sinnvoll
Adressvariablen zuerst
denn
Wir müssen uns sonst alle Datenvariablen merken!
Boole. Fkt.
OBDD-Realisierung MUX3
Variablenordnung π = (y1 , y2 , y3 , x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 )
y1
0
1
y2
0
y2
1
0
y3
0
x0
y3
1
x1
0
y3
1
x2
0
x3
0
1
y3
1
x4
jeweils xi realisieren
Boole. Fkt.
1
x5
xi
0
0
1
1
0
x6
1
x7
Einfluss von π auf OBDD-Größe
Beispiel
MUXd
gesehen
Variablenordnung π = (y1 , y2 , . . . , yd , x0 , x1 , . . . , x2d −1 )
Größe des reduzierten πOBDDs?
oben
unten
vollständiger Binärbaum über y1 , y2 , . . . , yd
20 + 21 + · · · + 2d−1 = 2d − 1 Knoten
je ein xi -Knoten und zwei Senken
2d + 2 Knoten
zusammen
Boole. Fkt.
2d − 1 + 2d + 2 = 2d+1 + 1 Knoten
Einfluss von π auf OBDD-Größe
Beispiel
MUXd
gesehen
Variablenordnung π = (y1 , y2 , . . . , yd , x0 , x1 , . . . , x2d −1 )
Größe des reduzierten πOBDD 2d+1 + 1
Betrachte Variablenordnung
π = (x0 , x1 , . . . , x2d −1 , y1 , y2 , . . . , yd )
Größe des reduzierten πOBDDs?
Behauptung
Beweis
Boole. Fkt.
d
∀x 6= x ′ ∈ {0, 1}2 : nach Lesen von x bzw. x ′
verschiedene Knoten erreicht
durch Widerspruch
Widerspruchsbeweis zur OBDD-Größe
d
∀x 6= x ′ ∈ {0, 1}2 : nach Lesen von x bzw. x ′
verschiedene Knoten erreicht
Behauptung
Annahme
Betrachte
Betrachte
d
für x 6= x ′ ∈ {0, 1}2 gleiche Knoten v erreicht
i = min{j | xj 6= xj′ }
y1 , y2 , . . . , yd mit (y1 y2 · · · yd )2 = i
Beobachtung
MUXd (y1 , y2 , . . . , yd , x) = xi
6=xi′ = MUXd (y1 , y2 , . . . , yd , x ′ )
aber
OBDD berechnet gleichen Wert, da gleicher Knoten erreicht
also
minimales OBDD für π = (x0 , x1 , . . . , x2d −1 , y1 , y2 , . . . , yd )
d
hat Größe mindestens 22 − 1 (Binärbaum d. Tiefe 2d )
min. OBDD-Größe π = (d, x) min. OBDD-Größe π = (x, d)
9
≥ 15
33
≥ 65 535
513
≥ 1,1579 · 1077
d
2
4
8
Boole. Fkt.
Schaltnetz für MUX3
x0
&
x1
&
x2
&
x3
&
x4
&
>1
x5
&
x6
&
x7
Boole. Fkt.
&
1
1
1
y1
y2
y3
MUX3
Herunterladen