Schaltwerke - Informationssysteme · RS{Flip{Flop †Takt:C...

31
Teil IV Schaltwerke 1

Transcript of Schaltwerke - Informationssysteme · RS{Flip{Flop †Takt:C...

Teil IV

Schaltwerke

1

Teil IV.1

Flip–Flops

2

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

Teil IV.2

Sequentielle Schaltungen

11

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: 2-Bit Register (I)

• Schaltung:

15

Beispiel: 2-Bit Register (II)

• Automat:

16

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

Teil IV.3

Lineare Schaltkreise

25

Bausteine

a) Addierer

b) Skalarmultiplizierer

c) Delay

26

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

Beispiel fur E = {0,1}

• Codierungsplynom:

h(x) = 1⊕ x⊕ x4

• Wg. E = B gilt:

hi = −hi, hn−k = 1

• Schaltung:

31