07.03.2014 Aufrufe

Teil IV: Schaltwerke; Sequentielle Schaltungen; Lineare Schaltkreise

Teil IV: Schaltwerke; Sequentielle Schaltungen; Lineare Schaltkreise

Teil IV: Schaltwerke; Sequentielle Schaltungen; Lineare Schaltkreise

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Teil</strong> <strong>IV</strong><br />

<strong>Schaltwerke</strong><br />

1


<strong>Teil</strong> <strong>IV</strong>.1<br />

Flip–Flops<br />

2


Bistabile Kippstufe<br />

• Ziel: Speichere Ausgabe einer Schaltung.<br />

• Ansatz: Leite Ausgabe wieder als Eingabe in die Schaltung.<br />

x<br />

t<br />

&<br />

Q<br />

Q = x + P<br />

t + t<br />

t<br />

t<br />

y<br />

t<br />

&<br />

P<br />

P = y + Q<br />

t + t<br />

t<br />

t<br />

• Ergebnis: Sei ∆t die Laufzeit des Signals:<br />

• Wenn das P –Gatter zuerst schaltet:<br />

Q t+∆t = x t + P t+∆t , P t+∆t = y t + Q t<br />

• Wenn das Q–Gatter zuerst schaltet:<br />

Q t+∆t = x t + P t , P t+∆t = y t + Q t+∆t<br />

3


Verhalten in mehreren Stufen<br />

• P -Gatter schaltet zuerst:<br />

x t y t P t+∆t = y t Q t Q t+∆t = x t P t+∆t P t+2∆t = y t Q t+∆t Q t+2∆t = x t P t+2∆t<br />

0 0 1 1 1 1<br />

0 1 Q t 1 0 1<br />

1 0 1 0 1 0<br />

1 1 Q t Q t Q t Q t<br />

• Q-Gatter schaltet zuerst:<br />

x t y t Q t+∆t = x t P t P t+∆t = y t Q t+∆t Q t+2∆t = x t P t+∆t P t+2∆t = y t Q t+2∆t<br />

0 0 1 1 1 1<br />

0 1 1 0 1 0<br />

1 0 P t 1 0 1<br />

1 1 P t P t P t P t<br />

• Verhalten:<br />

• Ausgabe schwingt nach 2 Takten ein.<br />

• Eingabe (0, 0) führt immer zu Ausgabe P = Q = 1<br />

• Eingaben (0, 1) und (1, 0) führen zu P = Q<br />

(0, 1) setzt Q (set), (1, 0) löscht Q (reset).<br />

• Für Eingabe (1, 1) gilt nur dann P t+∆ = Q t+∆ , wenn P t = Q t ,<br />

daher muß Eingabe (0, 0) ausgeschlossen werden.<br />

In diesem Fall gilt (1, 1) hält Q (hold).<br />

4


RS–Flip–Flop<br />

• Takt: C wird periodisch zwischen 0 und 1 geschaltet, bei 1 Aktion,<br />

bei 0 keine Aktion. Zwei Schritte (C t = 1, C t+∆t = 0) entsprechen<br />

einem Takt.<br />

• Set: S setzt den Ausgang Q auf 1.<br />

• Reset: R setzt den Ausgang Q auf 0.<br />

• Schaltung: mittels vorgeschaltetem NAND Gatter:<br />

S<br />

&<br />

&<br />

Q<br />

S<br />

Q<br />

C<br />

C<br />

&<br />

&<br />

Q<br />

R<br />

R<br />

Q<br />

5


RS–Flip–Flop (cont.)<br />

• Es gilt:<br />

x = SC<br />

y = RC<br />

• Verhalten:<br />

Q t+2∆t = x t + P t+∆t<br />

= x t + y t Q t<br />

= SC + RCQ t<br />

= SC + ( R + C ) Q t<br />

= SC + ( )<br />

RQ t + CQ t<br />

= C · (S + RQ t ) + CQ t .<br />

• Für C = 1: Q t+2∆t = Q n+1 = S + (R · Q n ), S · R = 0<br />

• Für C = 0: Q t+2∆t = Q n+1 = Q n 6


Wahrheitstabelle für RS–Flip–Flop<br />

R S Q n+1 Q n+1 Aktion<br />

0 0 Q n Q n lesen<br />

0 1 1 0 setzen<br />

1 0 0 1 löschen<br />

1 1 1 1 nicht erlaubt<br />

7


JK–Flip–Flop<br />

• Problem: Verhindere, dass S · R = S = R = 1<br />

• Lösung: Zwei neue Eingänge J, K und Rückkopplung von Ausgang<br />

Q.<br />

• Schaltung:<br />

R n+1 = K · Q n<br />

S n+1 = J · Q n<br />

Q n+1 = S n+1 + (R n+1 · Q n )<br />

= J · Q n + (K · Q n · Q n )<br />

= J · Q n + ((K + Q n ) · Q n )<br />

= J · Q n + K · Q n<br />

8


Wahrheitstabelle für JK–Flip–Flop<br />

J K Q n Q n+1 S R Aktion<br />

0 0 0 0 0 − lesen<br />

0 0 1 1 − 0 lesen<br />

0 1 0 0 0 − löschen<br />

0 1 1 0 0 1 löschen<br />

1 0 0 1 1 0 setzen<br />

1 0 1 1 − 0 setzen<br />

1 1 0 1 1 0 invertieren<br />

1 1 1 0 0 1 invertieren<br />

R = S = 1 ist erfolgreich verhindert.<br />

9


Spezialfall D–Flip–Flop<br />

• Delay–Flip–Flop: Wie RS–Flip–Flop mit S = D, R = D; dadurch<br />

wird die verbotene Eingabe (1, 1) ausgeschlossen.<br />

• Wahrheitstabelle:<br />

D Q n+1 Aktion<br />

0 0 Speichere die Eingabe 0<br />

1 1 Speichere die Eingabe 1<br />

10


<strong>Teil</strong> <strong>IV</strong>.2<br />

<strong>Sequentielle</strong> <strong>Schaltungen</strong><br />

11


Beispiel: Register<br />

• Parallele Eingänge: x 0 , x 1 , x 2 , x 3<br />

• Serieller Eingang: x s<br />

• Parallele Ausgänge: y 0 , y 1 , y 2 , y 3<br />

• Takt T<br />

• Schalter E: serielles Lesen (= 0), paralleles Lesen (= 1)<br />

• Schalter A: durchschalten der Ausgänge (= 1), oder konstante Belegung mit<br />

1 (= 0)<br />

12


<strong>Sequentielle</strong> Maschine<br />

Mealy–Automat M = (E, S, Z, δ, γ, s 0 )<br />

• Eingabealphabet: E ⊆ B n e<br />

• Ausgabealphabet: Z ⊆ B n a<br />

• Menge von Zuständen: S ⊆ B n z<br />

• Startzustand: s 0 ∈ S<br />

• Übergangsfunktion: δ : E × S → S<br />

• Ausgabefunktion γ : E × S → Z<br />

13


Beispiel: JK–Flip–Flop<br />

• Wahrheitstabelle:<br />

S = Q n E = J, K δ(s, e) = Q n+1 γ(s, e) = Q n<br />

0 00 0 0<br />

0 01 0 0<br />

0 10 1 0<br />

0 11 1 0<br />

1 00 1 1<br />

1 01 0 1<br />

1 10 1 1<br />

1 11 0 1<br />

• Automat:<br />

14


Beispiel: 2-Bit Register (I)<br />

• Schaltung:<br />

15


Beispiel: 2-Bit Register (II)<br />

• Automat:<br />

16


Beispiel: 1–Bit Addition<br />

Ziel: Serielle Addition von zwei (beliebig langen) Bitströmen<br />

• Eingabealphabet: E = {00, 01, 10, 11}<br />

• Ausgabealphabet: Summe Z = {0, 1}<br />

• Zustände: Übertrag S = {0, 1}<br />

• Startzustand: s 0 = 0 (kein Übertrag)<br />

• Übergangsfunktion: siehe Übertrag in Volladdierer<br />

• Ausgabefunktion: siehe Summe in Volladdierer<br />

17


Beispiel: 1–Bit Addition (cont.)<br />

• Automat<br />

• Wahrheitstabelle<br />

c xy δ(c, x, y) γ(c, x, y)<br />

0 00 0 0<br />

0 01 0 1<br />

0 10 0 1<br />

0 11 1 0<br />

1 00 0 1<br />

1 01 1 0<br />

1 10 1 0<br />

1 11 1 1<br />

18


Realisierung mit JK–Flip–Flop<br />

• Übertrag: δ : E × S → S<br />

δ(c, x, y) = cxy + cxy + cxy + cxy<br />

= cxy + cx + cy<br />

= cxy + c(x + y)<br />

• Für JK–Flip–Flop gilt:<br />

Q n+1 = J · Q n + K · Q n<br />

Substitution: Q n+1 = δ(c, x, y) , Q n = c<br />

J = xy , K = x + y<br />

• Summe: γ(c, x, y) = c ⊕ x ⊕ y<br />

• Schaltung:<br />

19


Beispiel: Modulo 6 Zähler<br />

• Eingabealphabet: E = {0, 1}<br />

• Ausgabealphabet: Summe Z = {000, 001, 010, 011, 100, 101}<br />

• Zustände: S = Z<br />

• Startzustand: s 0 = 000<br />

• Übergangsfunktion:<br />

δ(S, 1) = (S + 1) mod 6<br />

δ(S, 0) = (S − 1) mod 6<br />

• Ausgabefunktion:<br />

γ(S, E) = S<br />

20


Automat für Modulo 6 Zähler<br />

• Automat:<br />

• Übergangstabelle:<br />

e q 0 q 1 q 2 δ 0 δ 1 δ 2<br />

0 0 0 0 0 0 1<br />

0 0 0 1 0 1 0<br />

0 0 1 0 0 1 1<br />

0 0 1 1 1 0 0<br />

0 1 0 0 1 0 1<br />

0 1 0 1 0 0 0<br />

1 0 0 0 1 0 1<br />

1 0 0 1 0 0 0<br />

1 0 1 0 0 0 1<br />

1 0 1 1 0 1 0<br />

1 1 0 0 0 1 1<br />

1 1 0 1 1 0 0<br />

21


Realisierung mit RS–Flip–Flops<br />

• Wahrheitstabelle für RS–Flip-Flops:<br />

Q Q ′ R S<br />

0 0 ∗ 0<br />

0 1 0 1<br />

1 0 1 0<br />

1 1 0 ∗<br />

• Eingesetzt in Übergangstabelle:<br />

e q 0 q 1 q 2 q<br />

0 ′ q<br />

1 ′ q<br />

2 ′ R 0 S 0 R 1 S 1 R 2 S 2<br />

0 0 0 0 0 0 1 ∗ 0 ∗ 0 0 1<br />

0 0 0 1 0 1 0 ∗ 0 0 1 1 0<br />

0 0 1 0 0 1 1 ∗ 0 0 ∗ 0 1<br />

0 0 1 1 1 0 0 0 1 1 0 1 0<br />

0 1 0 0 1 0 1 0 ∗ ∗ 0 0 1<br />

0 1 0 1 0 0 0 1 0 ∗ 0 1 0<br />

1 0 0 0 1 0 1 0 1 ∗ 0 0 1<br />

1 0 0 1 0 0 0 ∗ 0 ∗ 0 1 0<br />

1 0 1 0 0 0 1 ∗ 0 1 0 0 1<br />

1 0 1 1 0 1 0 ∗ 0 0 ∗ 1 0<br />

1 1 0 0 0 1 1 1 0 0 1 0 1<br />

1 1 0 1 1 0 0 0 ∗ ∗ 0 1 0<br />

22


Realisierung mit RS–Flip–Flops (cont.)<br />

• Ansteuergleichungen: mittels Karnaugh-Verfahren unter Ausnutzung<br />

der don’t cares (*).<br />

R 0 = eq 0 q 2 + eq 0 q 2 = q 0 · (e ⊕ q 2 )<br />

S 0 = e q 0 q 1 q 2 + eq 0 q 1 q 2<br />

R 1 = eq 1 q 2 + eq 1 q 2 = q 1 · (e ⊕ q 2 )<br />

S 1 = e q 0 q 1 q 2 + eq 0 q 2<br />

R 2 = q 2<br />

S 2 = q 2<br />

23


Realisierung mit RS–Flip–Flops (cont.)<br />

• Schaltung:<br />

q 0 q 1 q 2<br />

S S S<br />

FF 0 FF 1 FF 2<br />

T T T<br />

R R R<br />

e<br />

Takt<br />

1<br />

&<br />

&<br />

&<br />

&<br />

<br />

<br />

<br />

&<br />

&<br />

24


<strong>Teil</strong> <strong>IV</strong>.3<br />

<strong>Lineare</strong> <strong>Schaltkreise</strong><br />

25


Bausteine<br />

a) Addierer<br />

b) Skalarmultiplizierer<br />

c) Delay<br />

26


Anwendung: Codierung<br />

• Gegeben:<br />

Polynome a(x) = a 0 + a 1 x + . . . + a k−1 x k−1<br />

Ein festes Codierungspolynom h(x) = h 0 + h 1 x + . . . h n−k x n−k<br />

• Berechne:<br />

Codierung: a(x) ∗ h(x) = f(x) = f 0 + f 1 x + . . . + f n−1 x n−1<br />

Decodierung: f(x)/h(x) = a(x)<br />

• Schaltung für Multiplikation:<br />

27


Wie funktionierts?<br />

Polynomkoeffizienten werden mit dem höchsten a k−1 beginnend der<br />

Reihe nach eingegeben. Die Delays sind mit Nullen vorbelegt.<br />

• Schritt 1:<br />

O = f n−1 = a k−1 · h n−k<br />

d 0 = a k−1<br />

• Schritt 2:<br />

O = f n−2 = a k−2 · h n−k + d 1 · h n−k−1 = a k−2 · h n−k + a k−1 · h n−k−1<br />

d 0 = a k−2 , d 1 = a k−1<br />

• Schritt k:<br />

O = f n−k = a 0 · h n−k + a 1 · h n−k−1 + . . . a k−1 · h n−2k+1<br />

d 0 = a 0 , . . . , d n−k−1 = a k−1<br />

• Schritt k + 1: a i = 0 für i ≥ k<br />

O = f n−k−1 = a 0 · h n−k−1 + . . . a k−2 · h n−2k+1<br />

d 0 = 0, . . . , d n−k−1 = a k−2<br />

• Schritt n − k:<br />

O = f 0 = a 0 · h 0<br />

28


Beispiel für E = {0, 1}<br />

• Codierungspolynom:<br />

h(x) = 1 ⊕ x 3 ⊕ x 4 ⊕ x 5<br />

• Wg. E = B:<br />

Skalarmultiplikation entfällt, Addition: modulo 2 (xor)<br />

• Schaltung:<br />

29


Spiegelschaltung für Division<br />

• Schritt 1 bis n − k − 1:<br />

O = 0<br />

• Schritt n − k:<br />

O = f n−1 · h −1<br />

n−k = a k−1<br />

• Schritt n − k + 1:<br />

O = (f n−2 − f n−1 h n−k−1 h −1 )h −1<br />

n−k = a k−2.<br />

30


Beispiel für E = {0, 1}<br />

• Codierungsplynom:<br />

h(x) = 1 ⊕ x ⊕ x 4<br />

• Wg. E = B gilt:<br />

h i = −h i , h n−k = 1<br />

• Schaltung:<br />

31

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!