127
Digitaltechnik Klaus Becker 2007

Digitaltechnik

  • Upload
    brac

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Digitaltechnik. Klaus Becker 2007. S. Q M. Q S. &. &. S. S. R. R. &. &. R. 1. C. Digitaltechnik. Teil 1. Logische Grundoperationen. Aufzugssteuerung. Problem: Ein Aufzug soll sich nur dann nach oben bewegen, wenn der Knopf gedrückt und die Tür zu ist. - PowerPoint PPT Presentation

Citation preview

Page 1: Digitaltechnik

Digitaltechnik

Klaus Becker2007

Page 2: Digitaltechnik

2 Digitaltechnik

S

R

SR

&

&

C

SR

&

&

1

QSQM

Page 3: Digitaltechnik

3 Teil 1

Logische Grundoperationen

Page 4: Digitaltechnik

4 AufzugssteuerungProblem: Ein Aufzug soll sich nur dann nach oben bewegen, wenn der Knopf gedrückt und die Tür zu ist.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Lösung: Nur wenn der Stromkreis geschlossen ist, kann der Motor den Aufzug bewegen.

Page 5: Digitaltechnik

5

Binäre Kodierung mit Schaltvariablen

Schaltvariable

Binäre Kodierung: Kodierung mit zwei Werten: 0 / 1

x1 x2

y

Systemzustände:Tür ist offen / geschlossenSchalter ist gedrückt / nicht gedrücktMotor ist inaktiv / aktiv

Beschreibung von Systemzuständen:x1 = 0: Tür ist offenx1 = 1: Tür ist geschlossenx2 = 0: Schalter ist nicht gedrücktx2 = 1: Schalter ist gedrückty = 0: Motor ist inaktivy = 1: Motor ist aktiv

Page 6: Digitaltechnik

6

Beschreibung des Systemverhaltens

x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1

Schalttabelle / Schaltfunktion

x1 x2

y

„Motor ist aktiv“ genau dann, wenn „Tür ist geschlossen“ und „Schalter ist gedrückt“

Beschreibung von Systemzuständen:x1 = 0: Tür ist offenx1 = 1: Tür ist geschlossenx2 = 0: Schalter ist nicht gedrücktx2 = 1: Schalter ist gedrückty = 0: Motor ist inaktivy = 1: Motor ist aktiv

Page 7: Digitaltechnik

7 Logische Deutung

logische Verknüpfung von Aussagen

x1 x2

y

Logische Deutung0: falsch 1: wahr

y: „Motor ist aktiv“ genau dann, wenn x1: „Tür ist geschlossen“ und x2: „Schalter ist gedrückt“

21 xxy x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1

aussagenlog. Formel /

Schaltterm

Wahrheitswerte

Page 8: Digitaltechnik

8

Technische Lösung – mit Logikgatter

x1 x2

y

Und-Gatter

x1 &x2

y

Kontakt-

schalter

Motor

21 xxy x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1

UND-Operator

Beschreibung von Systemzuständen:x1 = 0: Tür ist offenx1 = 1: Tür ist geschlossenx2 = 0: Schalter ist nicht gedrücktx2 = 1: Schalter ist gedrückty = 0: Motor ist inaktivy = 1: Motor ist aktiv

Page 9: Digitaltechnik

9

Logik-basierte Systembeschreibung

21 xxy

Beschreibung des Systemverhaltens mit einer aussagenlogischen Formel (Schaltfunktion):

x1 x2

y

x1: „Tür ist geschlossen“x2: „Schalter ist gedrückt“y: „Motor ist aktiv“

Systemgrößen

„Motor ist aktiv“ genau dann, wenn „Tür ist geschlossen“ und „Schalter ist gedrückt“

Systemverhalten

x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1

Page 10: Digitaltechnik

10 Elektronik-Logik-Schichtung

Logik

x1 &x2

yKontaktschalter

KontaktschalterMotor

Logikgatter

21 xxy x1: „Tür ist geschlossen“x2: „Schalter ist gedrückt“y: „Motor ist aktiv“

Systemgrößen

Systemverhalten

Elektronik

Page 11: Digitaltechnik

11

Problem: Steuerung eines Türöffners

Problem: Die Haustür soll sich öffnen, wenn der Türöffner im ersten oder im zweiten Stock gedrückt wird.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Page 12: Digitaltechnik

12 Lösung mit ODER-Operator

x1: „Türöffner im 1. Stock ist gedrückt“x2: „Türöffner im 2. Stock ist gedrückt“ y: „Türverriegelung ist deaktiviert“

x1

0

0

1

1

x2

0

1

0

1

y

0

1

1

1

21 xxy

x11

x2

y

Beschreibung der Systemgrößen mit Schaltvariablen

Beschreibung des Systemverhaltens mit logischen Operationen

ODER-Operator

Page 13: Digitaltechnik

13 Problem: KühlschrankbeleuchtungProblem: Öffnet man den Kühlschrank, so soll das Licht im Kühlschrank automatisch angehen.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Page 14: Digitaltechnik

14 Lösung mit NICHT-Operator

x: „Tür ist geschlossen“y: „Licht im Kühlschrank ist an“

x

0

1

y

1

0

xy

x 1 y

Beschreibung der Systemgrößen mit Schaltvariablen

Beschreibung des Systemverhaltens mit logischen Operationen

xy bzw.

NICHT-Operator

Page 15: Digitaltechnik

15 Logische Grundoperationen

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

1

1

1

x

0

1

x

1

0

x11

x2

yx1 &x2

y x 1 y

UND-Gatter

Konjunktion / UND-Operation

Disjunktion / ODER-Operation

Negation / NICHT-Operation

ODER-Gatter NICHT-Gatter

Logik

Elektronik

Page 16: Digitaltechnik

16 ÜbungAufgabe: Testen Sie die Gatter zu den logischen Grundoperationen mit Hilfe von Hades. Gatter: [rechte Maustaste: create -> gates -> ...]Eingang: [rechte Maustaste: create -> io -> Ipin(switch)] Ausgang: [rechte Maustaste: create -> io -> Opin (LED)] Verbindungen mit der Maus "ziehen".

Page 17: Digitaltechnik

17 Teil 2

Schaltfunktionen und Schaltnetze

Page 18: Digitaltechnik

18 Multiplexer – DemultiplexerEin Problem der Vermittlungstechnik:Zwei Teilnehmer sollen wahlweise ihre Daten (in binärer Form kodiert) über eine gemeinsame Leitung senden.

MUX DEMUX

0 1

Page 19: Digitaltechnik

19 Funktionale Modellierung

MUX DEMUX

0 1

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Steuersignal

Binäre Daten

Steuersignal

Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung):

0

11

1

0

Eingaben

Ausgaben

Eingaben

Ausgaben

Page 20: Digitaltechnik

20 Logische Systembeschreibung

s = 0: b = d0

s = 1: b = d1

s = 0: d0 = b s = 1: d1 = b

)()( 10 dsdsb sbd 0

sbd 1

Entwicklung von Schalttermen zur Beschreibung des Ein-Ausgabe-Verhaltens bzw. der Schaltfunktionen:

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Eingaben

Ausgaben

Eingaben

Ausgaben

Schaltterm

Page 21: Digitaltechnik

21 Schaltnetze

)()( 10 dsdsb

sbd 0

sbd 1

1

d0

d1

s

&

&

&

&

d0

d1

b

s

Entwicklung von Schaltungen zu den Schalttermen.

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Schaltnetz

Schaltnetz

NOT-Gatter

Page 22: Digitaltechnik

22 Idee: Funktionale Modellierung

s

MUXd0

d1

b

)()( 10 dsdsb

1

d0

d1

s

&

&

Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes

Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion

Page 23: Digitaltechnik

23 ÜbungAufgabe: Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.

1

d0

d1

&

&

&

&

d0

d1

b

s s

Page 24: Digitaltechnik

24 ÜbungAufgabe: Entwickeln und testen Sie ein Multiplexer-Demultiplexer-System mit 4 Datenleitungen. Benutzen Sie zur Auswahl der Datenleitung 2 Steuerleitungen. Adressieren Sie die Datenleitungen wie unten angezeigt.

MUX DEMUX

0 0 1 0

d0

d2

d1

d3

d0

d2

d1

d3

s1 s0 s1 s0

b

Page 25: Digitaltechnik

25 Teil 3

Exkurs: Schaltalgebra

Page 26: Digitaltechnik

26

Steuerung einer Autoinnenbeleuchtung

Problem: Öffnet man eine der beiden Türen, so soll das Licht im Auto angehen.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Page 27: Digitaltechnik

27

Steuerung einer Autoinnenbeleuchtung

x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“

y: „Licht im Auto ist an“

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

Fx1

x2

y

Beschreibung der Systemgrößen mit Schaltvariablen:

Beschreibung des Systemverhaltens mit einer Schaltfunktion:

Page 28: Digitaltechnik

28 Schaltterme und Schaltnetze

x1 x2

y

)()()( 212121 xxxxxxy

&

&

&

11

21 xxy

x1 &x2

y

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

2 Gatter

9 Gatter

Schaltfunktion

Schaltterme

Schaltnetze

Page 29: Digitaltechnik

29

Steuerung einer Autoinnenbeleuchtung

21 xxy

x1 x2

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

Beschreibung der Schaltfunktion mit einem Schaltterm – Version 1

Korrektheitsnachweis mit einer Wertetabelle:

Page 30: Digitaltechnik

30

Steuerung einer Autoinnenbeleuchtung

)()()( 212121 xxxxxxy

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3

Beschreibung der Schaltfunktion mit einem Schaltterm – Version 2

Korrektheitsnachweis mit einer Wertetabelle:

Page 31: Digitaltechnik

31 Finden von Schalttermen

x1 x2

y

&

&

&

11

9 GatterProblem:Wie findet man systematisch Schaltterme zur Repräsentation von vorgegebenen Schaltfunktion?

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

)()()( 212121 xxxxxxy

Page 32: Digitaltechnik

32 Minimierung des Schaltnetzes

Problem:Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion?

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

21 xxy

x1 &x2

1 y

x1 &x2

yNAND-Gatter

Page 33: Digitaltechnik

33 Boolesche Algebra / Schaltalgebra

Objekte:0 (FALSE) 1 (TRUE)

Operationen: ¯ (NOT) (AND) (OR)

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

1

1

1

x

0

1

x

1

0

Entwickelt 1854 von George Boole (1815-1864)

Page 34: Digitaltechnik

34 Schaltterme

211 xxt )()()( 2121212 xxxxxxt

Beispiele:

Schaltvariable:Eine Schaltvariable ist eine Variable, für die nur die Werte 0 und 1 eingesetzt werden können.

Schaltterm:Ein Schaltterm ist aufgebaut aus- den Konstanten 0 (FALSE) und 1 (TRUE)- Schaltvariablen- den Operationen (AND), (OR), ¯ (NOT).

Page 35: Digitaltechnik

35 Aufstellen von Schalttermen

Wert des Minterms y2 ist 1 gdw Wert(x1) = 0 und Wert(x2) = 1 gdw Wert(x1) = 1 und

Wert(x2) = 1

)()()( 212121 xxxxxxy

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3 Minterm

(Elementarkonjunktion)

Wert(y) ist 1 gdw Wert eines Minterms ist 1

Term in disjunktiver Normalform

(Disjunktion von Mintermen)

Page 36: Digitaltechnik

36 Äquivalenz von Schalttermen

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3

x1 x2

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

211 xxt )()()( 2121212 xxxxxxt

Zwei Schaltterme t1 und t2 sind (logisch) äquivalent gdw gilt:Der Wert von t1 und t2 ist für alle möglichen Einsetzungen der in t1 und t2 vorkommenden Variablen durch 0 bzw. 1 gleich.

Page 37: Digitaltechnik

37 Gesetze der Schaltalgebra

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

(y1 y2) y3

1

1

1

0

y1 y2 y3

)()()( 2121212 xxxxxxt

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

y1 (y2 y3)

1

1

1

0

Page 38: Digitaltechnik

38 Gesetze der Schaltalgebra

a

0

0

0

0

1

1

1

1

b

0

0

1

1

0

0

1

1

a b

0

0

1

1

1

1

1

1

c

0

1

0

1

0

1

0

1

(a b) c

0

1

1

1

1

1

1

1

b c

0

1

1

1

0

1

1

1

a (b c)

0

1

1

1

1

1

1

1

)()( cbacba Assoziativgesetz für Disjunktionen:

Page 39: Digitaltechnik

39 Gesetze der Schaltalgebra

Assoziativgesetze:

)()( cbacba

abba Kommutativgesetze:abba

)()()( cabacba Distributivgesetze:

)()()( cabacba

Gesetze der neutralen Elemente:

aa 1aa 0

)()( cbacba

Page 40: Digitaltechnik

40 Gesetze der Schaltalgebra

0-1-Gesetze:

Komplementgesetze: aa

baba De Morgansche Gesetze:

00a 11a

0 aa 1 aa

baba

aaa aaa

Adsorptionsgesetze: abaa )(abaa )(

Page 41: Digitaltechnik

41 Vereinfachung von Schalttermen

)()()( 212121 xxxxxxy

21 xx

)())()(( 212121 xxxxxx )())(( 21221 xxxxx )())(( 21221 xxxxx

)()1( 211 xxx )( 211 xxx

)()( 2111 xxxx )(1 21 xx

)( 21 xx

)()()( 212121 xxxxxxy

21 xxy Ergebnis:Die Terme sind logisch äquivalent.

Page 42: Digitaltechnik

42 Vereinfachung der Schreibweise

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 + x2

0

1

1

1

x

0

1

x

1

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

1

1

1

x

0

1

x

1

0

Page 43: Digitaltechnik

43

Termumformung m. Boolescher Algebra

212121 xxxxxxy

21xx

212121 )( xxxxxx

21221 )( xxxxx

21221 )( xxxxx

211 1 xxx

211 xxx ))(( 2111 xxxx

)(1 21 xx

21 xx

)()()( 212121 xxxxxxy

21 xxy

Page 44: Digitaltechnik

44 ÜbungAufgabe: Neben der NAND-Operation gibt es als weitere wichtige Operationen die NOR-Operation und die XOR-Operation. Testen Sie diese Operationen mit Hades und ergänzen Sie ihre Wertetabellen. Beschreiben Sie diese Operationen auch mit Schalttermen, in denen nur die drei Grundoperationen vorkommen.

x1

0

0

1

1

x2

0

1

0

1

x1 NAND x2

1

1

1

0

x1 NOR x2 x1 XOR x2

Page 45: Digitaltechnik

45 Teil 3

Rechensysteme

Page 46: Digitaltechnik

46 ZahldarstellungenProblem: Wie viele Blätter sind hier dargestellt?

(10010)2 18 (12)16

Page 47: Digitaltechnik

47 Stellenwertsysteme23

0000000011111111

22

0000111100001111

21

0011001100110011

20

0101010101010101

100

0123456789012345

101

0000000000111111

160

0123456789ABCDEF

Dualzahlen

Hexadezimalzahlen

Page 48: Digitaltechnik

48 Addiersystem

112

91

0

0 110

11

0

1 100

0011

11

Summand ASummand B

ÜbertragSumme

Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.

Schriftliche Addition im Zehnersystem:

Summand ASummand B

ÜbertragSumme

Schriftliche Addition im Dualsystem:

Page 49: Digitaltechnik

49 Funktionale Modellierung

0 11

0

11

0

1 10

0

001

11

1

Summand ASummand B

Übertrag

Summe

HAa

b

s1

1 ü

0

1VA

a

c

s0

1 ü

1

0b 0

Volladdierer

Halbaddierer

Page 50: Digitaltechnik

50 Halbaddierer

a

0

0

1

1

b

0

1

0

1

s

0

1

1

0

ü

0

0

0

1

baü

)()( babas

bXORas

HAa

b

s1

1 ü

0

1

Halbaddierer

Page 51: Digitaltechnik

51

c

01010101

Volladdierer

a

00001111

b

00110011

s

01101001

ü

00010111

)()()()( cbacbacbacbaü

VAa

c

s0

1 ü

1

0b 0

)()()()( cbacbacbacbas

Volladdierer

Page 52: Digitaltechnik

52

Volladdierer m. Halbaddierer-Bausteinen

a b

HA

HA

1

c

s

ü

s

ü ü

s

c

01010101

a

00001111

b

00110011

s

01101001

ü

00010111

a

0

0

1

1

b

0

1

0

1

s

0

1

1

0

ü

0

0

0

1

Volladdierer

Halbaddierer

Page 53: Digitaltechnik

53

4-Bit-Paralleladdierer mit Bausteinen

a3 a2

HA

VA

a1 a0

b3 b2 b1 b0

VA

VA

1 0 0

s0

s1

s2

s3

ü

Beispiel: (1001) + (1011) = 1(0100)

1

1 0 1 1

0

0

1

0

1

Page 54: Digitaltechnik

54 ÜbungAufgabe: Erstellen und testen Sie zunächst einen Halb- und Volladdierer. Entwickeln Sie anschließend einen 4-Bit-Paralleladdierer mit Hilfe geeigneter Bausteine.

Page 55: Digitaltechnik

55

Hinweise: Erzeugung von Bausteinen

Schritt 1: Schaltnetz erzeugen und abspeichern (z. B.: ha.hds)

Schritt 2: Neues Symbol erzeugen: [Edit][Create symbol]Schritt 3: Neuen Baustein erzeugen: [rechte Maustaste] [Create] [Create Subdesign...]

ha.hdsSchritt 4: Neuen Baustein benutzen: [rechte Maustaste] [Create] [Create Subdesign...]

ha.hds

Page 56: Digitaltechnik

56 ÜbungAufgabe: Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.

Idee:

1 10

11

0

1 01

0

11

ZahlInkrementÜbertrag

Nachfolger

Page 57: Digitaltechnik

57 ÜbungAufgabe: Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind.

Idee:

11 1

11

110

011

Zahl AZahl B

HilfErgebnis

0

Page 58: Digitaltechnik

58 Lösung - Addierer

Page 59: Digitaltechnik

59 Lösung - Inkrementierer1 10

11

0

1 01

0

11

ZahlInkrementÜbertrag

Nachfolger

Idee:

Page 60: Digitaltechnik

60 Lösung - KomparatorIdee:

11 1

11

110

011

Zahl AZahl B

HilfErgebnis

0

Page 61: Digitaltechnik

61 Teil 4

Flip-Flops

Page 62: Digitaltechnik

62 An der TankstelleProblem: Steuerung der Kontrolllampe einer Zapfsäule

nach D. Jonietz: Lehrprobenentwurf

Die Kontrolllampe zeigt an, ob die Zapfsäule bereit ist. Nur wenn sie bereit ist, führt ein Tankversuch zur Aktivierung der Pumpanlage. Durch Einhängen der Zapfpistole wird die Pumpanlage gesperrt. Sie ist erst wieder bereit, wenn sie freigegeben wird.

Page 63: Digitaltechnik

63

Zapfsäule als zustandsbasiertes System

einhängen

bereit gesperrt

einhängenfreigeben

freigeben Zustand

Anfangszustand

auslösende Aktion

Grundeigenschaft zustandsbasierter Systeme:Das Verhalten des Systems hängt nicht nur von den auslösenden Aktionen (freigeben / einhängen) ab, das Verhalten hängt auch von internen Zuständen des Systems (bereit / gesperrt) ab.

Page 64: Digitaltechnik

64 Binäre Kodierung

S

00

00

11

11

R

00

11

00

11

Q‘

01

00

11

Q

01

01

01

01

nichts machennichts machen

freigebenfreigeben

einhängeneinhängen

einhängen und freigebeneinhängen und freigeben

Neuer ZustandAktueller

Zustand

Zustände:

Q = 0: „bereit“Q = 1: „gesperrt“

Steuersignale:

S: einhängenR: freigeben

einhängen

bereit gesperrt

einhängenfreigeben

freigeben

Page 65: Digitaltechnik

65 Entwicklung einer SchaltungS

00

11

R Q‘

01

11

Q

01

01

nichts machennichts machen

freigebenfreigeben

einhängeneinhängen

einhängen und freigebeneinhängen und freigeben

QSQ 'Q

1S

Q‘

Page 66: Digitaltechnik

66 Entwicklung einer SchaltungS

00

00

11

R

00

11

00

Q‘

01

00

11

Q

01

01

01

nichts machennichts machen

freigebenfreigeben

einhängeneinhängen

einhängen und freigebeneinhängen und freigeben

RQSQ )('Q

1S

Q‘&R

Page 67: Digitaltechnik

67 Entwicklung einer Schaltung

RQSQ )('Q

1S

Q‘&R

RQSQ '

Q1

SQ‘1

R

RQSQ '

Q 1S

Q‘1R

Page 68: Digitaltechnik

68 Überprüfung der Schaltung

1S

Q1R

P

S = 1; R = 0; P = ..; Q = .. P‘ = 0; Q‘ = 1

S = 0; R = 1; P = ..; Q = .. P‘ = 1; Q‘ = 0

S = 0; R = 0; P = 1; Q = 0 P‘ = 1; Q‘ = 0

S = 0; R = 0; P = 0; Q = 1 P‘ = 0; Q‘ = 1

S = 1; R = 1; P = 0; Q = 1 P‘ = 0; Q‘ = 0

S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0

Bedingung: P = Q

unzulässig

Page 69: Digitaltechnik

69 Flip-Flop

Funktion S

00

00

11

11

R

00

11

00

11

Q‘

01

00

11

Q

01

01

01

01

Zustandbewahren

Zustand zurücksetzen

Zustandsetzen

1S

Q1R

P = Q

Flip-Flop-System

Systemverhalten

Eine Schaltung, die zwei stabile Zustände besitzt (bistabile Kippschaltung), wird als Flip-Flop bezeichnet.

Page 70: Digitaltechnik

70 Flip-Flop als SpeicherelementS

0

0

1

1

R

0

1

0

1

Q‘

Q

0

1

Funktion

Bewahren

Rücksetzen

Setzen

S

R

Q

Das entwickelte Flip-Flop-System verhält sich wie ein Speicherelement. Mit Hilfe der Funktionen „Setzen“ und „Rücksetzen“ wird ein Wert in den Speicher geschrieben, mit der Funktion „Bewahren“ wird er im Speicher aufbewahrt.

Schaltsymbol

1S

Q1R

P = Q

Flip-Flop-System Speicherelement

Page 71: Digitaltechnik

71 Zustandsgraph

S

Q = 0 Q = 1

RS

R

S

0

0

1

1

R

0

1

0

1

Q‘

Q

0

1

Funktion

Bewahren

Rücksetzen

SetzenS = R = 1 vermeide

n

S = 1; R = 0

Q = 0 Q = 1

S = 1; R = 0

S = 0; R = 1

S = 0; R = 1

S = 0; R = 0

S = 0; R = 0

Page 72: Digitaltechnik

72 Übung

Aufgabe: Bauen Sie das Flip-Flop-System auf und testen Sie sein Verhalten.

S

0

0

1

1

R

0

1

0

1

Q‘

Q

0

1

Funktion

Bewahren

Rücksetzen

Setzen

1S

Q1R

P = Q

Flip-Flop-System Speicherelement

Page 73: Digitaltechnik

73 Übung

Funktion S

00

00

11

11

R

00

11

00

11

Q‘Q

01

01

01

01

&S

Q

&R

P

System

SystemverhaltenAufgabe: Testen Sie auch das dargestellte System und beschreiben Sie sein Verhalten.

Page 74: Digitaltechnik

74 Übung

Funktion S

00

00

11

11

R

00

11

00

11

Q‘Q

01

01

01

01

&S

Q

&R

P

System

SystemverhaltenAufgabe: Testen Sie, ob man mit der oben dargestellten Schaltung ebenfalls ein Speicherelement erhält.

Page 75: Digitaltechnik

75 Teil 5

Von taktgesteuerten Flip-Flops zu Registern

Page 76: Digitaltechnik

76 Synchronisation von Flip-FlopsIn der Regel müssen bei Speichervorgängen mehrere Bits gleichzeitig übernommen werden.

Hierzu ist es notwendig, die Flip-Flops zu synchronisieren, d. h., eine am Eingang vorliegende Information darf erst auf ein bestimmtes Signal hin übernommen werden.

Man verwendet hierzu i. a. ein periodisches Taktsignal.

Fallende Flanke

Steigende Flanke

1-Zustand 0-Zustand

Page 77: Digitaltechnik

77 Taktgesteuertes Flip-Flop

S

*

0

0

1

1

R

*

0

1

0

1

Q‘

Q

Q

0

1

C

0

1

1

1

1

S

Q

R

S

R

&

&

C

Nur wenn der Takt den Wert 1 hat, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen.

C S

Q = 0 Q = 1

C RC S

C R

S = R = 1 vermeide

n

Page 78: Digitaltechnik

78 Übung

C

S

Q

R

S

Q

R

S

R

&

&

C

Aufgabe: Testen Sie das entwickelte Flip-Flop mit Hades.Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm.

Impulsdiagramm

Page 79: Digitaltechnik

79 Master-Slave-Flip-Flop

S

R

SR

&

&

C

SR

&

&

1

QSQM

Master

Die Belegungen der Eingänge wirken sich hier erst um eine halbe Taktperiode verzögert am Ausgang aus. Master- und Slave-Flip-Flop sind abwechselnd zum (Rück-)Setzen bereit bzw. gesperrt.

C SC S

QM = 0QS = 0

C R

C R

C S

C R

QM = 1QS = 0

QM = 1QS = 1

QM = 0QS = 1

C SC S

CC

Slave

Page 80: Digitaltechnik

80 ÜbungAufgabe: Testen Sie die Flip-Flop-Schaltung (siehe msff.hds) und ergänzen Sie das Impulsdiagramm.

C

S

QM

R

QS

Page 81: Digitaltechnik

81 Flankengesteuertes D-Flip-Flop

&D Q

& P = Q

&

&

&

&

C

Ein Zustandswechsel erfolgt hier nur bei einer steigenden Taktflanke.

Page 82: Digitaltechnik

82 Übung

C

D

Q

Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung. Erzeugen Sie dann die im Impulsdiagramm dargestellten Eingangssignale und ergänzen Sie das Q-Ausgangssignal.

C DCC

C D

CC

CC C DC D

Z0

Q = 0

Z3

Q = 0Z2

Q = 1

Z1

Q = 1

Page 83: Digitaltechnik

83 SchieberegisterEin 4-Bit-Schieberegister ist eine Einheit mit folgenden Eigenschaften:

/1/ Das Register kann 4 Bit mit Hilfe von Flip-Flops speichern./2/ Das Register hat einen Dateneingang, über den es neue Werte aufnehmen kann./3/ Mit jeder steigenden Taktflanke werden die gespeicherten Werte um eine Einheit nach rechts verschoben. Das erste Flip-Flop übernimmt den Wert am Dateneingang, der Wert des letzten Flip-Flops geht (hier) verloren.

0 1 00 1

Page 84: Digitaltechnik

84 ÜbungEntwerfen und testen Sie ein 4-Bit-Schieberegister, das mit Hilfe von D-Flip-Flops aufgebaut ist.

Page 85: Digitaltechnik

85 Schieberegister-Baustein

Eingang zum LadenTakt

Shift-Eingang

Umschalten: Laden/Shift

Reset

Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung: [rechte Maustaste] [create] [create by name] [hades.models.register.ShiftRegister]

Page 86: Digitaltechnik

86 Übung

hades.models.register.ShiftRegister

Testen Sie den vordefinierten Schieberegister-Baustein von Hades.

Page 87: Digitaltechnik

87 Addierwerk

0

00 0 1 1 VA

Ein serielles 4-Bit-Addierwerk lässt sich wie dargestellt mit Hilfe eines Volladdierers und Schieberegisterbausteinen aufbauen.

0 1 1 0 0

1

Page 88: Digitaltechnik

88 ÜbungEntwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern.

Page 89: Digitaltechnik

89 RegisterEin Register soll als Speichereinheit wie folgt arbeiten:

/1/ Das Register kann 1 Bit speichern./2/ Das Register hat einen Dateneingang D und einen Datenausgang Q./3/ Mit Hilfe eines Steuereingang ENA (enable) kann das Register aktiviert bzw. deaktiviert werden./4/ Mit Hilfe eines Steuereingangs NR (negated reset) kann das Register initialisiert werden: Das Register wird mit 0 belegt, wenn NR = 0 ist./5/ Das Register reagiert nur bei steigender Taktflanke.

ENANRD

clk

Q

Page 90: Digitaltechnik

90 ÜbungTesten Sie folgende Realisierung des Registers.

wenn QFF = 1 und ENA = 0

wenn ENA = 1 und NR = 1 und D = 1

1oderENANRD

Q

clk

Page 91: Digitaltechnik

91 Übung

hades.models.rtlib.io.OpinVector

hades.models.rtlib.io.IpinVector

Testen Sie auch den von Hades vordefinierten Register-Baustein: [create] [Create By Name] [hades.models.rtlib.register.RegRE]Stellen Sie den Baustein auf die Größe "8 Bit" ein: [rechte Maustaste] [Edit] [...]. Benutzen Sie eine hexadezimale Darstellung des Registerinhalts.

hades.models.rtlib.register.RegRE

Page 92: Digitaltechnik

92 Lösung - Taktsteuerung

S

*

0

0

1

1

R

*

0

1

0

1

Q‘

Q

Q

0

1

C

0

1

1

1

1

C S

Q = 0 Q = 1

C RC S

C R

S = R = 1 vermeiden

C

S

Q

R

Nur wenn der Takt auf "1" ist, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen.

Page 93: Digitaltechnik

93 Lösung - MS-Flip-Flop

C

S

QM

R

QS

S

R

SR

&

&

C

SR

&

&

1

QSQM

C S

C SC S

QM = 0QS = 0

C R

C R

C S

C R

QM = 1QS = 0

QM = 1QS = 1

QM = 0QS = 1

C S

CC

Ein Zustandswechsel erfolgt beim MS-Flip-Flop um eine halbe Taktperiode verzögert.

Page 94: Digitaltechnik

94 Lösung - D-Flip-Flop

C DCC

C D

CC

CC C DC D

Z0

Q = 0

Z3

Q = 0Z2

Q = 1

Z1

Q = 1

C

D

Q0 3 0 3 0 1 2 3 0 3 0 1 2 1 2 3

Ein Zustandswechsel kann nur bei einer steigenden Taktflanke erfolgen.

Page 95: Digitaltechnik

95 Teil 6

Registermaschine

Page 96: Digitaltechnik

96 ZielsetzungMit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger Rechner entwickelt werden. Wir orientieren uns hier am Konzept des Bonsai-Rechners. (vgl. http://www.hsg-kl.de/faecher/inf/material/bonsai/index.php)

Page 97: Digitaltechnik

97 Registermaschine

> 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT

0: 51: 32: 03: 04: 0..

Programm

Daten

Eine Registermaschine bearbeitet beliebig eingebbare Daten nach einem fest vorgegebenen Programm.

> x INC i Erhöhe Register i um 1. Gehe zu Zeile x+1.

> x DEC i Erniedrige Register i um 1. Gehe zu Zeile x+1.

> x JMP i Gehe zu Zeile i.

> x TST iWenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2.

> x HLT Beende die Bearbeitung.

Page 98: Digitaltechnik

98 Universelle Registermaschine

CPU

0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT 0: 0 0005

1: 0 0003 .. 0 0000

Daten

Programm

Daten

Programm

0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005

8: 0 0003 .. 0 0000

Codierung:

INC: 1DEC: 2JMP: 3TST: 4HLT: 5

CPU

Page 99: Digitaltechnik

99 Rechnerarchitektur (von Neumann)

Rechenwerk

Datenbus

Adressbus

Akku

PC IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005

8: 0 0003 .. 0 0000

Arbeitsspeicher Steuerwerk

Page 100: Digitaltechnik

100 Befehlszyklus

Rechenwerk

Datenbus

Adressbus

Akku

PC IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005

8: 0 0003 .. 0 0000

Arbeitsspeicher Steuerwerk

Wiederhole Befehl holen Befehl dekodieren und ausführen

Befehlszyklus

Page 101: Digitaltechnik

101 Schritt 1: Akku-RegisterWir beginnen mit dem Akku-Register. Der hier benutzte Akku soll 8-Bit-Dateneinheiten aufnehmen können. Benutzen Sie den von Hades vordefinierten Register-Baustein: [create] [Create By Name] [...]Stellen Sie den Baustein auf die Größe "8 Bit" ein: [rechte Maustaste] [Edit] [...]. Benutzen Sie eine hexadezimale Darstellung des Registerinhalts.

Akku

CLK: Takt-Eingang (Register reagiert b. steigender Taktflanke)NR: Reset-Eingang (NR = 0: Reset) ENA: Enable-Eingang (ENA = 1: Register bereit zum Lesen) D: Daten-EingangQ: Daten-Ausgang

hades.models.rtlib.register.RegRE

Page 102: Digitaltechnik

102 Registertest

hades.models.rtlib.io.OpinVector

hades.models.rtlib.io.IpinVector

Testen Sie den Registerbaustein. Benutzen Sie geeignete Eingabe- und Ausgabe-Einheiten (die auf die Größe "8 Bit" angepasst werden müssen). Schreiben Sie einen Wert in das Register und lesen Sie ihn wieder aus.

Page 103: Digitaltechnik

103 Schritt 2: RechenwerkMit Hilfe des Rechenwerkes sollen einfache Inkrementier- und Dekrementieroperationen ausgeführt werden.

Rechenwerk

Akku

Das Rechenwerk wird hier mit vordefinierten Incr- bzw. Decr-Bausteinen realisiert. Zur Auswahl der Datenleitungen werden geeignete Multiplexer benötigt.

Page 104: Digitaltechnik

104 Test des Rechenwerks

hades.models.rtlib.arith.Decr

hades.models.rtlib.arith.Incr

hades.models.rtlib.muxes.Mux21

Bauen Sie die Schaltung auf und testen Sie diese, indem Sie eine zweistellige Hexadezimalzahl (8-Bit-Einheit) in den Akku schreiben und diese Zahl dann inkrementieren / dekrementieren.

Page 105: Digitaltechnik

105 Schritt 3: ArbeitsspeicherDie im Akku-Register zu verarbeitenden Daten sollen aus einem Arbeitsspeicher geholt und nach der Bearbeitung im Akku wieder in den Arbeitsspeicher geschrieben werden.

0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher

Rechenwerk

Akku

Page 106: Digitaltechnik

106 RAM-Baustein

nCS: nCS = 0: (notChipSelect) RAM-Baustein aktiv nWE: nWE = 0: DIN adressiertes Register

nWE = 1: adressiertes Register DOUT

A: Adress-EingangDIN: Daten-EingangDOUT: Daten-Ausgang

hades.models.rtlib.memory.RAM

Erzeugen Sie einen RAM-Baustein und legen Sie die Speichergröße wie angezeigt fest.

Hades zeigt die Speicherinhalte zunächst nicht korrekt als zweistellige Hexadezimalzahlen an. Benutzen Sie folgenden "Trick": Speichern Sie die Schaltung ab. Öffnen Sie diese Datei mit einem Texteditor. Ergänzen Sie die Zeile zur Beschreibung des RAM-Bausteins um eine Datei-Angabe. In dieser Datei sollen die gewünschten Speicherinhalte stehen. [components]...hades.models.rtlib.memory.RAM i1 -18300 33900 @N 1001 16 8 RP1.rom...[end components]

Page 107: Digitaltechnik

107 RAM-Test

RAM Akku

Testen Sie das bisher entwickelte System. Der Inhalt von Register 7 soll aus dem Speicher gelesen und im Akku zwischengelagert werden. Anschließend soll dieser Wert inkrementiert werden.

Page 108: Digitaltechnik

108 RAM-Test

Akku RAM

Testen Sie das bisher entwickelte System. Der im Akku zwischengelagerte Wert soll zurück in das Register 7 geschrieben werden.

Page 109: Digitaltechnik

109 Schritt 4: DatenbusDer Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen.

Rechenwerk

Datenbus

Akku

0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher

Page 110: Digitaltechnik

110 Datenbus

Datenbus Datenbus

RAM Datenbus Akku Akku Datenbus RAM

Page 111: Digitaltechnik

111 Torsteuerung

Datenbus

hades.models.rtlib.muxes.TriBuf

Bei der Realisierung des Busses muss darauf geachtet werden, dass nicht mehrere Quellen ihre Daten gleichzeitig auf den Bus schreiben. Der Datenfluss soll mit Hilfe von Toren, die durch Tristate-Gatter realisiert werden, geregelt werden.

Page 112: Digitaltechnik

112 Tristate-VerhaltenS

0

0

1

1

E

0

1

0

1

A

0

0

0

1

S

0

0

1

1

E

0

1

0

1

A

Z

Z

0

1

hochohmig

S = 0: passiv S = 1: aktiv (durchlassen)

UND-Gatter

Tristate-Gatter

Page 113: Digitaltechnik

113

Schritt 5: Befehlsregister und Adressbus

Rechenwerk

Datenbus

Adressbus

Akku

IR 0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher

3 3JMP 3

Page 114: Digitaltechnik

114 Befehlsregister

Datenbus

Adressbus

BefehlsregisterBefehlsregister

Speicher

Reset

Bussplitter

Die hexadezimal kodierten Befehle werden im Befehlsregister in ihre Bestandteile zerlegt.

Page 115: Digitaltechnik

115 Befehlsregister und Bussplitter

hades.models.rtlib.register.RegREhades.models.rtlib.register.RegRE

hades.models.rtlib.io.BusTapBottomhades.models.rtlib.io.BusTapBottom

Page 116: Digitaltechnik

116 Bussystem

8-Bit-Datenbus

4-Bit-Adressbus

BefehlsregisterBefehlsregister

Speicher mit 16 8-Bit-Registern

Page 117: Digitaltechnik

117 Schritt 6: Programmzähler

Rechenwerk

Datenbus

Adressbus

Akku

IR 0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher

3 3PC 0

Page 118: Digitaltechnik

118 Programmzähler

Adressbus

Datenbus

BefehlsregisterBefehlsregister

Programmzähler

Page 119: Digitaltechnik

119 Schritt 7: Programmbeendung

Rechenwerk

Datenbus

Adressbus

Akku

IR 0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher

3 3PC 0

Page 120: Digitaltechnik

120 Nullentdeckung

Datenbus

hades.models.rtlib.compare.CompareEqual

Page 121: Digitaltechnik

121 Schritt 8: Steuerwerk

Rechenwerk

Datenbus

Adressbus

Akku

IR 0: 3 3 1: 1 7 2: 2 8 3: 4 8 4: 3 1 5: 5 0 6: 0 0 7: 0 5 8: 0 3 .. 0 0

Arbeitsspeicher Steuerwerk

3 3PC 0

Page 122: Digitaltechnik

122 Steuerwerk

Steuerwerk

Steuersignal

Page 123: Digitaltechnik

123 Mikroprogramm

Mikroprogramm

Befehl holen0 101 10, 3, 112 0, 2

INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1

...

Page 124: Digitaltechnik

124 Ausführung des Mikroprogramms

MikroprogrammzählerMikroprogrammzähler

Befehl holen0 101 10, 3, 112 0, 2

INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1

...

Page 125: Digitaltechnik

125 Funktionseinheiten

Programmzähler Befehlsregister

Rechenwerk

Arbeitsspeicher

Akkumulator

Steuerwerk

Datenbus

Adressbus

Page 126: Digitaltechnik

126 Funktionseinheiten

Rechenwerk

Arbeitsspeicher Steuerwerk

Datenbus

Adressbus

Akku

PC IR

Page 127: Digitaltechnik

127 LiteraturhinweiseF. Gasper, I. Leiß, M. Spengler, H. Stimm: Technische und theoretische Informatik. Bsv 1992.Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler Verlag 1988.H. Bühler: Grundlagen einer Verständigung mit Computern. Skript.Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson Studium 2003....