schaltwerke - informationssysteme · rs{flip{flop †takt:c...
Post on 21-Aug-2019
213 Views
Preview:
TRANSCRIPT
Bistabile Kippstufe
• Ziel: Speichere Ausgabe einer Schaltung.
• Ansatz: Leite Ausgabe wieder als Eingabe in die Schaltung.
Q = +x P
P = +y Q
&
&
x
y
tt
t
t + tD
t + tDt
t
t
Q
P
• Ergebnis: Sei ∆t die Laufzeit des Signals:
• Wenn das P–Gatter zuerst schaltet:
Qt+∆t = xt + P t+∆t, Pt+∆t = yt +Qt
• Wenn das Q–Gatter zuerst schaltet:
Qt+∆t = xt + P t, Pt+∆t = yt +Qt+∆t
3
Verhalten in mehreren Stufen• P -Gatter schaltet zuerst:
xt yt Pt+∆t = ytQt Qt+∆t = xtP t+∆t Pt+2∆t = ytQt+∆t Qt+2∆t = xtP t+2∆t
0 0 1 1 1 1
0 1 Qt 1 0 11 0 1 0 1 0
1 1 Qt Qt Qt Qt
• Q-Gatter schaltet zuerst:
xt yt Qt+∆t = xtPt Pt+∆t = ytQt+∆t Qt+2∆t = xtP t+∆t Pt+2∆t = ytQt+2∆t
0 0 1 1 1 10 1 1 0 1 0
1 0 P t 1 0 1
1 1 P t Pt P t Pt
• Verhalten:
• Ausgabe schwingt nach 2 Takten ein.
• Eingabe (0,0) fuhrt immer zu Ausgabe P = Q = 1
• Eingaben (0,1) und (1,0) fuhren zu P = Q
(0,1) setzt Q (set), (1,0) loscht Q (reset).
• Fur Eingabe (1,1) gilt nur dann Pt+∆ = Qt+∆, wenn Pt = Qt,
daher muß Eingabe (0,0) ausgeschlossen werden.
In diesem Fall gilt (1,1) halt Q (hold).
4
RS–Flip–Flop
• Takt: C wird periodisch zwischen 0 und 1 geschaltet, bei 1 Aktion,
bei 0 keine Aktion. Zwei Schritte (Ct = 1, Ct+∆t = 0) entsprechen
einem Takt.
• Set: S setzt den Ausgang Q auf 1.
• Reset: R setzt den Ausgang Q auf 0.
• Schaltung: mittels vorgeschaltetem NAND Gatter:
S
R
C
Q
S
C
R
Q
Q
Q
&
&
&
&
5
RS–Flip–Flop (cont.)• Es gilt:
x = SC
y = RC
• Verhalten:
Qt+2∆t = xt + P t+∆t
= xt + ytQt
= SC +RCQt
= SC +(
R+ C)
Qt
= SC +(
RQt + CQt
)
= C · (S +RQt) + CQt.
• Fur C = 1: Qt+2∆t = Qn+1 = S + (R ·Qn), S ·R = 0
• Fur C = 0: Qt+2∆t = Qn+1 = Qn
6
Wahrheitstabelle fur RS–Flip–Flop
R S Qn+1 Qn+1 Aktion
0 0 Qn Qn lesen0 1 1 0 setzen1 0 0 1 loschen1 1 1 1 nicht erlaubt
7
JK–Flip–Flop
• Problem: Verhindere, dass S ·R = S = R = 1
• Losung: Zwei neue Eingange J,K und Ruckkopplung von Ausgang
Q.
Rn+1 = K ·Qn
Sn+1 = J ·Qn
Qn+1 = Sn+1+ (Rn+1 ·Qn)
= J ·Qn + (K ·Qn ·Qn)
= J ·Qn + ((K +Qn) ·Qn)
= J ·Qn +K ·Qn
• Schaltung:
8
Wahrheitstabelle fur JK–Flip–Flop
J K Qn Qn+1 S R Aktion
0 0 0 0 0 − lesen0 0 1 1 − 0 lesen0 1 0 0 0 − loschen0 1 1 0 0 1 loschen1 0 0 1 1 0 setzen1 0 1 1 − 0 setzen1 1 0 1 1 0 invertieren1 1 1 0 0 1 invertieren
R = S = 1 ist erfolgreich verhindert.
9
Spezialfall D–Flip–Flop
• Delay–Flip–Flop: Wie RS–Flip–Flop mit S = D,R = D; dadurch
wird die verbotene Eingabe (1,1) ausgeschlossen.
• Wahrheitstabelle:
D Qn+1 Aktion
0 0 Speichere die Eingabe 01 1 Speichere die Eingabe 1
10
Beispiel: Register• Parallele Eingange: x0, x1, x2, x3
• Serieller Eingang: xs
• Parallele Ausgange: y0, y1, y2, y3
• Takt T
• Schalter E: serielles Lesen (= 0), paralleles Lesen (= 1)
• Schalter A: durchschalten der Ausgange (= 1), oder konstante Belegung mit1 (= 0)
12
Sequentielle Maschine
Mealy–Automat M = (E,S, Z, δ, γ, s0)
• Eingabealphabet: E ⊆ Bne
• Ausgabealphabet: Z ⊆ Bna
• Menge von Zustanden: S ⊆ Bnz
• Startzustand: s0 ∈ S
• Ubergangsfunktion: δ : E × S → S
• Ausgabefunktion γ : E × S → Z
13
Beispiel: JK–Flip–Flop• Wahrheitstabelle:
S = Qn E = J,K δ(s, e) = Qn+1 γ(s, e) = Qn
0 00 0 00 01 0 00 10 1 00 11 1 01 00 1 11 01 0 11 10 1 11 11 0 1
• Automat:
14
Beispiel: 1–Bit Addition
Ziel: Serielle Addition von zwei (beliebig langen) Bitstromen
• Eingabealphabet: E = {00,01,10,11}
• Ausgabealphabet: Summe Z = {0,1}
• Zustande: Ubertrag S = {0,1}
• Startzustand: s0 = 0 (kein Ubertrag)
• Ubergangsfunktion: siehe Ubertrag in Volladdierer
• Ausgabefunktion: siehe Summe in Volladdierer
17
Beispiel: 1–Bit Addition (cont.)
• Automat
• Wahrheitstabelle
c xy δ(c, x, y) γ(c, x, y)0 00 0 00 01 0 10 10 0 10 11 1 01 00 0 11 01 1 01 10 1 01 11 1 1
18
Realisierung mit JK–Flip–Flop
• Ubertrag: δ : E × S → S
δ(c, x, y) = cxy+ cxy+ cxy+ cxy
= cxy+ cx+ cy
= cxy+ c(x+ y)
• Fur JK–Flip–Flop gilt:Qn+1 = J ·Qn +K ·Qn
Substitution: Qn+1 = δ(c, x, y) , Qn = cJ = xy , K = x+ y
• Summe: γ(c, x, y) = c⊕ x⊕ y
• Schaltung:
19
Beispiel: Modulo 6 Zahler
• Eingabealphabet: E = {0,1}
• Ausgabealphabet: Summe Z = {000,001,010,011,100,101}
• Zustande: S = Z
• Startzustand: s0 = 000
• Ubergangsfunktion:
δ(S,1) = (S +1) mod 6
δ(S,0) = (S − 1) mod 6
• Ausgabefunktion:
γ(S,E) = S
20
Automat fur Modulo 6 Zahler
• Automat:
• Ubergangstabelle:
e q0 q1 q2 δ0 δ1 δ20 0 0 0 0 0 10 0 0 1 0 1 00 0 1 0 0 1 10 0 1 1 1 0 00 1 0 0 1 0 10 1 0 1 0 0 01 0 0 0 1 0 11 0 0 1 0 0 01 0 1 0 0 0 11 0 1 1 0 1 01 1 0 0 0 1 11 1 0 1 1 0 0
21
Realisierung mit RS–Flip–Flops
• Wahrheitstabelle fur RS–Flip-Flops:
Q Q′ R S0 0 ∗ 00 1 0 11 0 1 01 1 0 ∗
• Eingesetzt in Ubergangstabelle:
e q0 q1 q2 q′0 q′1 q′2 R0 S0 R1 S1 R2 S20 0 0 0 0 0 1 ∗ 0 ∗ 0 0 10 0 0 1 0 1 0 ∗ 0 0 1 1 00 0 1 0 0 1 1 ∗ 0 0 ∗ 0 10 0 1 1 1 0 0 0 1 1 0 1 00 1 0 0 1 0 1 0 ∗ ∗ 0 0 10 1 0 1 0 0 0 1 0 ∗ 0 1 01 0 0 0 1 0 1 0 1 ∗ 0 0 11 0 0 1 0 0 0 ∗ 0 ∗ 0 1 01 0 1 0 0 0 1 ∗ 0 1 0 0 11 0 1 1 0 1 0 ∗ 0 0 ∗ 1 01 1 0 0 0 1 1 1 0 0 1 0 11 1 0 1 1 0 0 0 ∗ ∗ 0 1 0
22
Realisierung mit RS–Flip–Flops (cont.)
• Ansteuergleichungen: mittels Karnaugh-Verfahren unter Ausnut-zung der don’t cares (*).
R0 = eq0q2+ eq0q2 = q0 · (e⊕ q2)
S0 = e q0q1q2+ eq0q1q2R1 = eq1q2+ eq1q2 = q1 · (e⊕ q2)
S1 = e q0q1q2+ eq0q2R2 = q2S2 = q2
23
Realisierung mit RS–Flip–Flops (cont.)
• Schaltung:
1
&
&
³ 1
= 1
R R R
q0 q
1 q2
FF 0 FF 1 FF 2T T T
S S S
Takt
e
&
&&
³ 1
&
24
Anwendung: Codierung
• Gegeben:
Polynome a(x) = a0+ a1x+ . . .+ ak−1xk−1
Ein festes Codierungspolynom h(x) = h0+ h1x+ . . . hn−kxn−k
• Berechne:
Codierung: a(x) ∗ h(x) = f(x) = f0+ f1x+ . . .+ fn−1xn−1
Decodierung: f(x)/h(x) = a(x)
• Schaltung fur Multiplikation:
27
Wie funktionierts?
Polynomkoeffizienten werden mit dem hochsten ak−1 beginnend der
Reihe nach eingegeben. Die Delays sind mit Nullen vorbelegt.
• Schritt 1:
O = fn−1 = ak−1 · hn−k
d0 = ak−1• Schritt 2:
O = fn−2 = ak−2 · hn−k + d1 · hn−k−1 = ak−2 · hn−k + ak−1 · hn−k−1
d0 = ak−2, d1 = ak−1• Schritt k:
O = fn−k = a0 · hn−k + a1 · hn−k−1+ . . . ak−1 · hn−2k+1
d0 = a0, . . . , dn−k−1 = ak−1• Schritt k+1: ai = 0 fur i ≥ k
O = fn−k−1 = a0 · hn−k−1+ . . . ak−2 · hn−2k+1
d0 = 0, . . . , dn−k−1 = ak−2• Schritt n− k:
O = f0 = a0 · h0
28
Beispiel fur E = {0,1}
• Codierungspolynom:
h(x) = 1⊕ x3 ⊕ x4 ⊕ x5
• Wg. E = B:
Skalarmultiplikation entfallt, Addition: modulo 2 (xor)
• Schaltung:
29
Spiegelschaltung fur Division
• Schritt 1 bis n− k − 1:
O = 0
• Schritt n− k:
O = fn−1 · h−1n−k = ak−1
• Schritt n− k+1:
O = (fn−2 − fn−1hn−k−1h−1)h−1n−k = ak−2.
30
top related