Title: Digitaltechnik
1Digitaltechnik
2Digitaltechnik
3Teil 1
Logische Grundoperationen
4Aufzugssteuerung
Problem Ein Aufzug soll sich nur dann nach oben
bewegen, wenn der Knopf gedrückt und die Tür zu
ist.
Lösung Nur wenn der Stromkreis geschlossen ist,
kann der Motor den Aufzug bewegen.
nach H. Bühler Grundlagen einer Verständigung
mit Computern
5Binäre Kodierung mit Schaltvariablen
Binäre Kodierung Kodierung mit zwei Werten 0 /
1
y
Schaltvariable
x1
x2
- Beschreibung von Systemzuständen
- x1 0 Tür ist offenx1 1 Tür ist geschlossen
- x2 0 Schalter ist nicht gedrücktx2 1
Schalter ist gedrückt - y 0 Motor ist inaktivy 1 Motor ist aktiv
Systemzustände Tür ist offen /
geschlossen Schalter ist gedrückt / nicht
gedrückt Motor ist inaktiv / aktiv
6Beschreibung des Systemverhaltens
- Beschreibung von Systemzuständen
- x1 0 Tür ist offenx1 1 Tür ist geschlossen
- x2 0 Schalter ist nicht gedrücktx2 1
Schalter ist gedrückt - y 0 Motor ist inaktivy 1 Motor ist aktiv
y
x1
x2
Schalttabelle / Schaltfunktion
x1 0 0 1 1
x2 0 1 0 1
y 0 0 0 1
Motor ist aktiv genau dann, wenn Tür ist
geschlossen und Schalter ist gedrückt
7Logische Deutung
Logische Deutung 0 falsch 1 wahr
y
Wahrheitswerte
x1
x2
logische Verknüpfung von Aussagen
aussagenlog. Formel /Schaltterm
x1 0 0 1 1
x2 0 1 0 1
y 0 0 0 1
y Motor ist aktiv genau dann, wenn x1 Tür
ist geschlossen und x2 Schalter ist gedrückt
8Technische Lösung mit Logikgatter
- Beschreibung von Systemzuständen
- x1 0 Tür ist offenx1 1 Tür ist geschlossen
- x2 0 Schalter ist nicht gedrücktx2 1
Schalter ist gedrückt - y 0 Motor ist inaktivy 1 Motor ist aktiv
y
x1
x2
x1 0 0 1 1
x2 0 1 0 1
y 0 0 0 1
x1
UND-Operator
y
x2
Kontakt-schalter
Motor
Und-Gatter
9Logik-basierte Systembeschreibung
Beschreibung des Systemverhaltens mit einer
aussagenlogischen Formel (Schaltfunktion)
y
x1 0 0 1 1
x2 0 1 0 1
y 0 0 0 1
x1
x2
Systemgrößen
Systemverhalten
x1 Tür ist geschlossenx2 Schalter ist
gedrückty Motor ist aktiv
Motor ist aktiv genau dann, wenn Tür ist
geschlossen und Schalter ist gedrückt
10Elektronik-Logik-Schichtung
Systemgrößen
Systemverhalten
x1 Tür ist geschlossenx2 Schalter ist
gedrückty Motor ist aktiv
Logik
Elektronik
x1
Kontaktschalter
y
Motor
x2
Kontaktschalter
Logikgatter
11Problem 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
12Lösung mit ODER-Operator
Beschreibung der Systemgrößen mit Schaltvariablen
x1 Türöffner im 1. Stock ist gedrücktx2
Türöffner im 2. Stock ist gedrückt y
Türverriegelung ist deaktiviert
Beschreibung des Systemverhaltens mit logischen
Operationen
x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 1
ODER-Operator
x1
?1
y
x2
13Problem Kühlschrankbeleuchtung
Problem Öffnet man den Kühlschrank, so soll das
Licht im Kühlschrank automatisch angehen.
nach H. Bühler Grundlagen einer Verständigung
mit Computern
14Lösung mit NICHT-Operator
Beschreibung der Systemgrößen mit Schaltvariablen
x Tür ist geschlosseny Licht im Kühlschrank
ist an
Beschreibung des Systemverhaltens mit logischen
Operationen
x 0 1
y 1 0
bzw.
x
1
y
NICHT-Operator
15Logische Grundoperationen
Konjunktion / UND-Operation
Disjunktion / ODER-Operation
Negation / NICHT-Operation
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
Logik
Elektronik
x1
x1
?1
y
y
x
1
y
x2
x2
UND-Gatter
ODER-Gatter
NICHT-Gatter
16Übung
Aufgabe Testen Sie die Gatter zu den logischen
Grundoperationen mit Hilfe von Hades. Gatter
rechte Maustaste create -gt gates -gt
... Eingang rechte Maustaste create -gt io -gt
Ipin(switch) Ausgang rechte Maustaste
create -gt io -gt Opin (LED) Verbindungen mit der
Maus "ziehen".
17Teil 2
Schaltfunktionen und Schaltnetze
18Multiplexer Demultiplexer
Ein Problem der Vermittlungstechnik Zwei
Teilnehmer sollen wahlweise ihre Daten (in
binärer Form kodiert) über eine gemeinsame
Leitung senden.
MUX
DEMUX
0
1
19Funktionale Modellierung
Modellierung des Ein-/Ausgabe-Verhaltens
(Black-Box-Modellierung)
Binäre Daten
1
0
1
MUX
DEMUX
0
1
Steuersignal
Steuersignal
0
1
d0
d0
DEMUX
MUX
b
b
d1
d1
Eingaben
Ausgaben
Eingaben
Ausgaben
s
s
20Logische Systembeschreibung
Entwicklung von Schalttermen zur Beschreibung des
Ein-Ausgabe-Verhaltens bzw. der Schaltfunktionen
d0
d0
DEMUX
MUX
b
b
d1
d1
Eingaben
Ausgaben
Eingaben
Ausgaben
s
s
s 0 b d0
s 0 d0 b
s 1 b d1
s 1 d1 b
Schaltterm
21Schaltnetze
Entwicklung von Schaltungen zu den Schalttermen.
d0
d0
DEMUX
MUX
b
b
d1
d1
s
s
NOT-Gatter
d0
d0
b
?1
d1
d1
Schaltnetz
Schaltnetz
s
s
22Idee Funktionale Modellierung
d0
MUX
b
Beschreibung des Systemverhaltens mit einer
logischen Schaltfunktion
d1
s
d0
?1
Realisierung des Systems mit Hilfe eines
Logik-basierten Schaltnetzes
d1
s
23Übung
Aufgabe Erstellen und testen Sie mit Hilfe von
Hades das entwickelte Schaltnetz.
d0
d0
b
?1
d1
d1
s
s
24Übung
Aufgabe 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.
d0
d0
d1
d1
b
MUX
DEMUX
d2
d2
d3
d3
0
0
1
0
s1
s0
s1
s0
25Teil 3
Exkurs Schaltalgebra
26Steuerung 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
27Steuerung einer Autoinnenbeleuchtung
Beschreibung der Systemgrößen mit Schaltvariablen
x1 Fahrertür ist geschlossenx2 Beifahrertür
ist geschlossen y Licht im Auto ist an
Beschreibung des Systemverhaltens mit einer
Schaltfunktion
x1 0 0 1 1
x2 0 1 0 1
y 1 1 1 0
x1
F
y
x2
28Schaltterme und Schaltnetze
x1 0 0 1 1
x2 0 1 0 1
y 1 1 1 0
Schaltfunktion
Schaltterme
x1
x2
9 Gatter
x1
y
x2
?1
?1
y
2 Gatter
Schaltnetze
29Steuerung einer Autoinnenbeleuchtung
Beschreibung der Schaltfunktion mit einem
Schaltterm Version 1
Korrektheitsnachweis mit einer Wertetabelle
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
30Steuerung einer Autoinnenbeleuchtung
Beschreibung der Schaltfunktion mit einem
Schaltterm Version 2
Korrektheitsnachweis mit einer Wertetabelle
y1
y2
y3
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
31Finden von Schalttermen
x1 0 0 1 1
x2 0 1 0 1
y 1 1 1 0
x1
x2
ProblemWie findet man systematisch Schaltterme
zur Repräsentation von vorgegebenen
Schaltfunktion?
9 Gatter
?1
?1
y
32Minimierung des Schaltnetzes
x1 0 0 1 1
x2 0 1 0 1
y 1 1 1 0
ProblemWie gewinnt man möglichst einfache
Schaltnetze zur Realisierung der vorgegebenen
Schaltfunktion?
x1
1
y
x2
x1
y
x2
NAND-Gatter
33Boolesche Algebra / Schaltalgebra
Operationen (NOT) ? (AND) ? (OR)
Objekte 0 (FALSE) 1 (TRUE)
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
Entwickelt 1854 von George Boole (1815-1864)
34Schaltterme
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).
Beispiele
35Aufstellen von Schalttermen
Minterm (Elementarkonjunktion)
y1
y2
y3
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
Wert des Minterms y2 ist 1 gdw Wert(x1) 0 und
Wert(x2) 1 gdw Wert(x1) 1 und Wert(x2) 1
Wert(y) ist 1 gdw Wert eines Minterms ist 1
Term in disjunktiver Normalform (Disjunktion von
Mintermen)
36Äquivalenz von Schalttermen
x1 ? x2 1 1 1 0
x1 0 0 1 1
x2 0 1 0 1
x1 ? x2 0 0 0 1
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.
y1
y2
y3
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
37Gesetze 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
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
38Gesetze der Schaltalgebra
Assoziativgesetz für Disjunktionen
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
39Gesetze der Schaltalgebra
Assoziativgesetze
Kommutativgesetze
Distributivgesetze
Gesetze der neutralen Elemente
40Gesetze der Schaltalgebra
0-1-Gesetze
Komplementgesetze
De Morgansche Gesetze
Adsorptionsgesetze
41Vereinfachung von Schalttermen
ErgebnisDie Terme sind logisch äquivalent.
42Vereinfachung der Schreibweise
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
x1 0 0 1 1
x2 0 1 0 1
x1 ? x2 0 0 0 1
43Termumformung m. Boolescher Algebra
44Übung
Aufgabe 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
45Teil 3
Rechensysteme
46Zahldarstellungen
Problem Wie viele Blätter sind hier dargestellt?
(10010)2
18
(12)16
47Stellenwertsysteme
23 0000000011111111
22 0000111100001111
21 0011001100110011
20 0101010101010101
100 0123456789012345
101 0000000000111111
160 0123456789ABCDEF
Dualzahlen
Hexadezimalzahlen
48Addiersystem
Ziel ist es, ein Addiersystem für Dualzahlen zu
entwickeln.
Schriftliche Addition im Zehnersystem
112
910
Summand A
Summand B
Übertrag
Summe
Schriftliche Addition im Dualsystem
0 110
110
1 100
0011
11
Summand A
Summand B
Übertrag
Summe
49Funktionale Modellierung
Summand A
0 110
110
1 100
0011
11
Übertrag
Summand B
Summe
1
0
0
1
a
s
a
s
0
HA
VA
b
1
1
1
0
b
ü
c
ü
Volladdierer
Halbaddierer
50Halbaddierer
a 0 0 1 1
b 0 1 0 1
s 0 1 1 0
ü 0 0 0 1
1
0
a
s
HA
1
1
b
ü
Halbaddierer
51Volladdierer
c 01010101
a 00001111
b 00110011
s 01101001
ü 00010111
0
1
a
s
0
VA
b
1
0
c
ü
Volladdierer
52Volladdierer m. Halbaddierer-Bausteinen
a
b
c
ü
HA
?1
ü
s
ü
HA
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
534-Bit-Paralleladdierer mit Bausteinen
Beispiel (1001) (1011) 1(0100)
a3
a2
a1
a0
1
0
0
1
1
ü
VA
0
s3
VA
1
s2
VA
0
s1
HA
0
s0
1
0
1
1
b3
b2
b1
b0
54Übung
Aufgabe Erstellen und testen Sie zunächst einen
Halb- und Volladdierer. Entwickeln Sie
anschließend einen 4-Bit-Paralleladdierer mit
Hilfe geeigneter Bausteine.
55Hinweise Erzeugung von Bausteinen
Schritt 1 Schaltnetz erzeugen und abspeichern
(z. B. ha.hds)
Schritt 2 Neues Symbol erzeugen EditCreate
symbol
Schritt 3 Neuen Baustein erzeugen rechte
Maustaste Create Create
Subdesign... ha.hds
Schritt 4 Neuen Baustein benutzen rechte
Maustaste Create Create
Subdesign... ha.hds
56Übung
Aufgabe Entwickeln Sie analog zum
4-Bit-Addierer einen 4-Bit-Inkrementierer.
Idee
1 01
1 10
110
011
Zahl
Inkrement
Übertrag
Nachfolger
57Übung
Aufgabe Entwickeln Sie einen 4-Bit-Komparator,
der überprüft, ob zwei 4-Bit-Dualzahlen gleich
sind.
Idee
110
11 1
11
011
Zahl A
0
Zahl B
Hilf
Ergebnis
58Lösung - Addierer
59Lösung - Inkrementierer
1 01
Idee
1 10
110
011
Zahl
Inkrement
Übertrag
Nachfolger
60Lösung - Komparator
Idee
110
11 1
11
011
Zahl A
0
Zahl B
Hilf
Ergebnis
61Teil 4
Flip-Flops
62An der Tankstelle
Problem Steuerung der Kontrolllampe einer
Zapfsäule
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.
nach D. Jonietz Lehrprobenentwurf
63Zapfsäule als zustandsbasiertes System
einhängen
freigeben
auslösende Aktion
einhängen
Anfangszustand
bereit
gesperrt
Zustand
freigeben
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.
64Binäre Kodierung
einhängen
freigeben
Neuer Zustand
einhängen
Aktueller Zustand
bereit
gesperrt
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
freigeben
Zustände Q 0 bereitQ 1
gesperrt Steuersignale S einhängenR
freigeben
65Entwicklung einer Schaltung
S 00 11
R
Q 01 11
Q 01 01
nichts machennichts machen freigebenfreigeben
einhängeneinhängen einhängen und
freigebeneinhängen und freigeben
Q
?1
Q
S
66Entwicklung einer Schaltung
S 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
Q
?1
S
Q
R
67Entwicklung einer Schaltung
Q
?1
S
Q
R
Q
?1
S
?1
Q
R
S
?1
Q
?1
Q
R
68Überprüfung der Schaltung
S
?1
P
Bedingung P Q
?1
Q
R
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
unzulässig
S 1 R 1 P 1 Q 0 ? P 0 Q 0
69Flip-Flop
Funktion
S 00 00 11 11
R 00 11 00 11
Q 01 00 11
Q 01 01 01 01
S
?1
P Q
Zustandbewahren
Zustand zurücksetzen
Q
?1
R
Zustandsetzen
Flip-Flop-System
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt
(bistabile Kippschaltung), wird als Flip-Flop
bezeichnet.
70Flip-Flop als Speicherelement
S 0 0 1 1
R 0 1 0 1
Q Q 0 1
Funktion Bewahren Rücksetzen Setzen
S
?1
P Q
Q
?1
R
Flip-Flop-System
Speicherelement
S
Q
Schaltsymbol
R
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.
71Zustandsgraph
S 0 R 0
S 0 R 0
S 1 R 0
S 0 R 1
S 1 R 0
Q 0
Q 1
S 0 0 1 1
R 0 1 0 1
Q Q 0 1
Funktion Bewahren Rücksetzen Setzen
S 0 R 1
R
S
S R 1 vermeiden
S
Q 0
Q 1
R
72Übung
S 0 0 1 1
R 0 1 0 1
Q Q 0 1
Funktion Bewahren Rücksetzen Setzen
S
?1
P Q
Q
?1
R
Flip-Flop-System
Speicherelement
Aufgabe Bauen Sie das Flip-Flop-System auf und
testen Sie sein Verhalten.
73Übung
Funktion
S 00 00 11 11
R 00 11 00 11
Q
Q 01 01 01 01
S
Q
P
R
System
Systemverhalten
Aufgabe Testen Sie auch das dargestellte System
und beschreiben Sie sein Verhalten.
74Übung
Funktion
S 00 00 11 11
R 00 11 00 11
Q
Q 01 01 01 01
S
Q
P
R
System
Systemverhalten
Aufgabe Testen Sie, ob man mit der oben
dargestellten Schaltung ebenfalls ein
Speicherelement erhält.
75Teil 5
Von taktgesteuerten Flip-Flops zu Registern
76Synchronisation von Flip-Flops
In 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.
1-Zustand
0-Zustand
Fallende Flanke
Steigende Flanke
77Taktgesteuertes Flip-Flop
Nur wenn der Takt den Wert 1 hat, kann ein Setzen
oder Rücksetzen des Flip-Flops erfolgen.
S
Q
S
C
R
R
S 0 0 1 1
R 0 1 0 1
Q Q Q 0 1
C 0 1 1 1 1
S R 1 vermeiden
C ? R
C ? S
C ? S
Q 0
Q 1
C ? R
78Übung
Aufgabe Testen Sie das entwickelte Flip-Flop
mit Hades. Ergänzen Sie anschließend das unten
dargestellte Impulsdiagramm.
S
Q
S
C
R
R
C
S
R
Q
Impulsdiagramm
79Master-Slave-Flip-Flop
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.
Master
Slave
80Übung
Aufgabe Testen Sie die Flip-Flop-Schaltung
(siehe msff.hds) und ergänzen Sie das
Impulsdiagramm.
C
S
R
QM
QS
81Flankengesteuertes D-Flip-Flop
Ein Zustandswechsel erfolgt hier nur bei einer
steigenden Taktflanke.
82Übung
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
C
C ? D
Z0 Q 0
Z1 Q 1
C
C
C ? D
C ? D
Z3 Q 0
Z2 Q 1
C ? D
C
C
C
D
Q
83Schieberegister
Ein 4-Bit-Schieberegister ist eine Einheit mit
folgenden Eigenschaften
0
1
0
0
1
/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.
84Übung
Entwerfen und testen Sie ein 4-Bit-Schieberegister
, das mit Hilfe von D-Flip-Flops aufgebaut ist.
85Schieberegister-Baustein
Hades stellt einen vordefinierten
Schieberegisterbaustein zur Verfügung rechte
Maustaste create create by name
hades.models.register.ShiftRegister
Shift-Eingang
Takt
Eingang zum Laden
Umschalten Laden/Shift
Reset
86Übung
Testen Sie den vordefinierten Schieberegister-Baus
tein von Hades.
hades.models.register.ShiftRegister
87Addierwerk
Ein serielles 4-Bit-Addierwerk lässt sich wie
dargestellt mit Hilfe eines Volladdierers und
Schieberegisterbausteinen aufbauen.
0
0
1
1
0
0
0
0
0
1
1
VA
1
88Übung
Entwickeln Sie ein serielles 4-Bit-Addierwerk.
Benutzen Sie vordefinierte Schieberegisterbaustein
e, um die Dualzahlen zwischenzuspeichern.
89Register
Ein Register soll als Speichereinheit wie folgt
arbeiten
ENA
NR
Q
D
clk
/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.
90Übung
Testen Sie folgende Realisierung des Registers.
wenn QFF 1 und ENA 0
ENA
1
oder
NR
Q
wenn ENA 1 und NR 1 und D 1
D
clk
91Übung
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.io.IpinVector
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
92Lösung - Taktsteuerung
Nur wenn der Takt auf "1" ist, kann ein Setzen
oder Rücksetzen des Flip-Flops erfolgen.
S 0 0 1 1
R 0 1 0 1
Q Q Q 0 1
C 0 1 1 1 1
C
S
R
Q
93Lösung - MS-Flip-Flop
Ein Zustandswechsel erfolgt beim MS-Flip-Flop um
eine halbe Taktperiode verzögert.
S
QS
QM
S
S
R
R
R
C
1
C ? S
C
S
R
QM
QS
94Lösung - D-Flip-Flop
C
C
Ein Zustandswechsel kann nur bei einer steigenden
Taktflanke erfolgen.
C ? D
Z0 Q 0
Z1 Q 1
C
C
C ? D
C ? D
Z3 Q 0
Z2 Q 1
C ? D
C
C
C
D
Q
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
95Teil 6
Registermaschine
96Zielsetzung
Mit 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/i
ndex.php)
97Registermaschine
Eine Registermaschine bearbeitet beliebig
eingebbare Daten nach einem fest vorgegebenen
Programm.
Programm
Daten
gt 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP
1 5 HLT
0 51 32 03 04 0..
Erhöhe Register i um 1. Gehe zu Zeile x1.
gt x INC i
gt x DEC i
Erniedrige Register i um 1. Gehe zu Zeile x1.
Gehe zu Zeile i.
gt x JMP i
Wenn Register i ungleich 0 ist, dann gehe zu
Zeile x1, sonst zu Zeile x2.
gt x TST i
gt x HLT
Beende die Bearbeitung.
98Universelle Registermaschine
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
Programm
Codierung
CPU
INC 1 DEC 2 JMP 3 TST 4 HLT 5
Daten
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
Programm
CPU
Daten
99Rechnerarchitektur (von Neumann)
Adressbus
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
PC
IR
Arbeitsspeicher
Steuerwerk
Datenbus
Akku
Rechenwerk
100Befehlszyklus
Adressbus
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
PC
IR
Arbeitsspeicher
Steuerwerk
Befehlszyklus
Datenbus
Wiederhole Befehl holen Befehl dekodieren
und ausführen
Akku
Rechenwerk
101Schritt 1 Akku-Register
Wir 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
hades.models.rtlib.register.RegRE
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-Eingang
Q Daten-Ausgang
102Registertest
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.
hades.models.rtlib.io.IpinVector
hades.models.rtlib.io.OpinVector
103Schritt 2 Rechenwerk
Mit Hilfe des Rechenwerkes sollen einfache
Inkrementier- und Dekrementieroperationen
ausgeführt werden.
Akku
Rechenwerk
Das Rechenwerk wird hier mit vordefinierten Incr-
bzw. Decr-Bausteinen realisiert. Zur Auswahl der
Datenleitungen werden geeignete Multiplexer
benötigt.
104Test des Rechenwerks
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.
hades.models.rtlib.arith.Decr
hades.models.rtlib.arith.Incr
hades.models.rtlib.muxes.Mux21
105Schritt 3 Arbeitsspeicher
Die 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
Akku
Rechenwerk
106RAM-Baustein
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 _at_N 1001 16 8 RP1.rom ... end
components
hades.models.rtlib.memory.RAM
nCS nCS 0 (notChipSelect) RAM-Baustein aktiv
nWE nWE 0 DIN ? adressiertes Register nWE
1 adressiertes Register ? DOUT
A Adress-Eingang
DIN Daten-Eingang
DOUT Daten-Ausgang
107RAM-Test
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.
RAM ? Akku
108RAM-Test
Testen Sie das bisher entwickelte System. Der im
Akku zwischengelagerte Wert soll zurück in das
Register 7 geschrieben werden.
Akku ? RAM
109Schritt 4 Datenbus
Der Datenaustausch zwischen dem Arbeitsspeicher
und dem Akku-Register soll über einen Datenbus
erfolgen.
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
Datenbus
Akku
Rechenwerk
110Datenbus
Datenbus
Datenbus
RAM ? Datenbus ? Akku
Akku ? Datenbus ? RAM
111Torsteuerung
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.
Datenbus
112Tristate-Verhalten
S 0 0 1 1
E 0 1 0 1
A 0 0 0 1
UND-Gatter
S 0 0 1 1
E 0 1 0 1
A Z Z 0 1
Tristate-Gatter
hochohmig
S 0 passiv S 1 aktiv (durchlassen)
113Schritt 5 Befehlsregister und Adressbus
Adressbus
JMP 3
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
IR
3 3
Arbeitsspeicher
Datenbus
Akku
Rechenwerk
114Befehlsregister
Die hexadezimal kodierten Befehle werden im
Befehlsregister in ihre Bestandteile zerlegt.
Adressbus
Bussplitter
Speicher
Befehlsregister
Befehlsregister
Datenbus
Reset
115Befehlsregister und Bussplitter
hades.models.rtlib.io.BusTapBottom
hades.models.rtlib.io.BusTapBottom
hades.models.rtlib.register.RegRE
hades.models.rtlib.register.RegRE
116Bussystem
4-Bit-Adressbus
Speicher mit 16 8-Bit-Registern
Befehlsregister
Befehlsregister
8-Bit-Datenbus
117Schritt 6 Programmzähler
Adressbus
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
IR
PC
3 3
0
Arbeitsspeicher
Datenbus
Akku
Rechenwerk
118Programmzähler
Adressbus
Programmzähler
Befehlsregister
Befehlsregister
Datenbus
119Schritt 7 Programmbeendung
Adressbus
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
IR
PC
3 3
0
Arbeitsspeicher
Datenbus
Akku
Rechenwerk
120Nullentdeckung
Datenbus
hades.models.rtlib.compare.CompareEqual
121Schritt 8 Steuerwerk
Adressbus
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
IR
PC
3 3
0
Arbeitsspeicher
Steuerwerk
Datenbus
Akku
Rechenwerk
122Steuerwerk
Steuersignal
Steuerwerk
123Mikroprogramm
Befehl holen0 101 10, 3, 112 0, 2 INC
ausführen10 1211 12, 3, 712 12, 513 12, 4, 8,
1314 0, 1 ...
Mikroprogramm
124Ausführung des Mikroprogramms
Befehl holen0 101 10, 3, 112 0, 2 INC
ausführen10 1211 12, 3, 712 12, 513 12, 4, 8,
1314 0, 1 ...
Mikroprogrammzähler
Mikroprogrammzähler
125Funktionseinheiten
Programmzähler
Befehlsregister
Adressbus
Arbeitsspeicher
Datenbus
Rechenwerk
Steuerwerk
Akkumulator
126Funktionseinheiten
Adressbus
PC
IR
Arbeitsspeicher
Steuerwerk
Datenbus
Akku
Rechenwerk
127Literaturhinweise
- F. 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. - ...