Minimierung mittels KV‐Diagramm
A B C D f(A,B,C,D)
0 0 0 0 1
0 0 0 1 1
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 1
Fasse benachbarte 1en zu den größtmöglichen Blöcken der Größe 2^n zusammen.
1 1 1 1
1
1 1 1
A A
C C
B B
D D B
D
KV‐ Diagramm: Noch ein Beispiel
A B C D f(A,B,C,D)
0 0 0 0 1
0 0 0 1 X
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 X
0 1 1 1 1
1 0 0 0 X
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 0
Bemerkung 1: Don‘t cares können beliebig für 0 oder 1 stehen.
Bemerkung 2: Blöcke können auch über den KV‐
Diragrammrand hinaus reichen.
KV‐ Diagramm: Noch ein Beispiel
A B C D f(A,B,C,D)
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
0 1 0 0 1
0 1 0 1 0
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1
Bemerkung 3: anstatt der 1en können auch die
0en zusammengefasst werden (dann als KNF).
Minimierung nach Quine ‐ McCluskey
F(A,B,C,D) = !A !B !C !D + !A !B !C D + !A B !C !D +
!A B !C D + !A B C !D + !A B C D + A !B !C !D + A !B !C D + A !B C D + A B C D
Notiere die Funktion als
Binärelemente und fasse diese zu Gruppen zusammen
# A B C D Gruppe
Die Binärelemente werden nach
den in ihnen vorkommenden
Einsen in jeweilige Gruppen
eingeteilt.
Minimierung nach Quine ‐ McCluskey
# A B C D OK
0 0 0 0 0
1 0 0 0 1
4 0 1 0 0
8 1 0 0 0
5 0 1 0 1
6 0 1 1 0
9 1 0 0 1
7 0 1 1 1
11 1 0 1 1
15 1 1 1 1
# A B C D OK # A B C D OK
Ermitteln der Primterme
Minimierung nach Quine ‐ McCluskey
# A B C D OK
m9 + m11 1 0 ‐ 1 P1
m7 + m15 ‐ 1 1 1 P2
m11 + m15 1 ‐ 1 1 P3
m0 + m1 + m4 + m5 0 ‐ 0 ‐ P4 m0 + m1 + m8 + m9 ‐ 0 0 ‐ P5 m4 + m5 + m6 + m7 0 1 ‐ ‐ P6
Ermitteln der Primtermtabelle
m0 m1 m4 m5 m6 m7 m8 m9 m11 m15 P1
P2
P3
P4
P5
Minimierung nach Quine ‐ McCluskey
Finden einer kleinen Überdeckung durch wiederholte Spalten‐ und Zeilendominanzprüfung m0 m1 m4 m5 m6 m7 m8 m9 m11 m15
P1 X X
P2 X X
P3 X X
P4 X X X X
P5 X X X X
P6 X X X X
Minimierung nach Quine ‐ McCluskey
Finden einer kleinen Überdeckung durch wiederholte Spalten‐ und Zeilendominanzprüfung m6 m8 m11 m15
P1 X
P2 X
P3 X X
P4
P5 X
P6 X
Minimierung nach Quine ‐ McCluskey
Finden einer kleinen Überdeckung durch wiederholte Spalten‐ und Zeilendominanzprüfung m6 m8 m11 m15
P3 X X
P5 X
P6 X
Minimierung nach Quine ‐ McCluskey
Finden einer kleinen Überdeckung durch wiederholte Spalten‐ und Zeilendominanzprüfung m6 m8 m11
P3 X
P5 X
P6 X
Logische Bausteine
Addierwerke
Addition eines einzigen Bits
Eingang Ausgang
a b CarryIn CarryOut Sum
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
+ a
b
CarryIn
Sum
Ripple‐Carry‐Adder
+ a0
b0
CarryIn
CarryOut
Sum
+ a1
b1
CarryIn
CarryOut
Sum
+ a2
b2
CarryIn
CarryOut
Sum
Problem: Berechnung benötigt
O(n) Gatterlaufzeit.
Carry‐Lookahead‐Adder
Beobachtung 1: wenn zwei Binärzahlen a(0)...a(n‐1) und b(0)...b(n‐1) addiert werden, dann findet ein Übertrag an der Stelle i statt, wenn
Also können wir als „Carry‐Generierer“ g(i) definieren:
Beobachtung 2: ein Übertrag von der Stelle i‐1 wird von der Stelle i an die nächste Stelle i+1 weiter geleitet, wenn
Also können wir als „Carry‐Propagierer“ p(i) definieren:
Carry‐Lookahead‐Adder
Mittels der Generate‐ und Propagate‐Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren:
Für einen 4‐Stelligen Addierer ergibt sich damit:
Wie hilft uns das jetzt weiter?
Carry‐Lookahead‐Adder
Wie hilft uns das jetzt weiter?
Expandieren durch Substitution:
Laufzeit: O(1), aber die hohe Anzahl der benötigten Gatter limitiert die Größe eines solchen Bausteins. (Lösung: zusammenfassen mehrerer CLA zu einer
𝐶 𝐺 𝑃 ∙ 𝐶 𝐶 𝐺 𝑃 ∙ 𝐶 𝐶 𝐺 𝑃 ∙ 𝐶 𝐶 𝐺 𝑃 ∙ 𝐶
𝐺 𝑎 ∙ 𝑏
𝑃 𝑎 𝑏
Logische Bausteine
Sequentielle Schaltungen
Sequentielle Schaltungen
Kombinatorische Schaltungen Sequentielle Schaltungen
… …
n Eingänge m Ausgänge
Ausgänge hängen nur von den Eingängen ab. Wie schon
gezeigt, ist dies durch eine Wahrheitstabelle beschreibbar.
Zustand …
…
n Eingänge m Ausgänge
Ausgänge hängen von den
Eingängen und dem aktuellen
Zustand des Bausteins ab. Wie
kann man dieses Verhalten
beschreiben?
Zustandsautomat
Zustand 00
Zustand 01
Zustand 10
Eingabe 00 / Ausgabe 11 Eingabe 10 / Ausgabe 01 Eingabe 11 / Ausgabe 10
Eingabe 11 / Ausgabe 00 Eingabe 01 / Ausgabe 00
2‐Bit Eing abe 2‐Bit Ausg abe
Ein Beispiel:
Speichern von Zuständen
R S altes Q neues Q
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
Speichern eines Bits am Beispiel R‐S‐Latch (S=Set, R=Reset)
Beobachtung: das Speichern von Zustand
erfordert Rückkopplungen (d.h. Ausgang
ist wieder Eingang) in der Schaltung.
Speichern von Zuständen
Erweiterung eines R‐S‐Latch zu einem D‐Latch (D=Data, C=Clock)
C D altes Q neues Q
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
R S altes Q neues Q
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1