0 - Informatik

Download Report

Transcript 0 - Informatik

Digitaltechnik
Weiterbildungslehrgang XII – Kurs 4
Tobias Selinger
14./15. November 2013
Digitaltechnik: Wurzeln
2
Mathematik
Physik
(Halbleitertechnologie)
Aussagenlogik,
Boolesche Algebra
elektronische
Schaltungen
ich denke
 ich bin
digitale
Logikschaltungen
z.B. Addierer,
Dekoder,
Speicher,
Zähler,
Prozessoren...
3
Teil 1
Logische Grundoperationen
4
Problem:
Problem 1: Aufzugssteuerung
Ein Aufzug soll sich nur dann nach oben bewegen,
wenn der Knopf gedrückt und die Tür zu ist.
Motor
Türkontakt
Knopf
Lösung?
nach H. Bühler: Grundlagen einer Verständigung mit Computern
5
Problem:
Aufzugssteuerung
Ein Aufzug soll sich nur dann nach oben bewegen,
wenn der Knopf gedrückt und die Tür zu ist.
Motor
Türkontakt
Knopf
Lösung mittels Elektrotechnik (NaWi 5. Klasse): Reihenschaltung
nach H. Bühler: Grundlagen einer Verständigung mit Computern
Binäre Kodierung mit Schaltvariablen
6
Motor
Türkontakt
x1
Knopf
y
x2
Schaltvariablen bzw. logische Variablen
können nur zwei Werte annehmen:
0 bzw. false, „nein“
oder
1 bzw. true, „ja“
Übung: Interpretieren Sie die
folgenden Systemzustände:
Definition der Schaltvariablen:
a) x1=1, x2=0
x1: „Tür geschlossen?“
b) x1=0, x2=1
x2: „Knopf gedrückt?“
y : „Motor läuft?“
c) Ergänzen Sie
in der Schalttabelle
das gewünschte
Ausgabe-Verhalten:
x1
x2
0
0
0
1
1
0
1
1
y
Binäre Kodierung mit Schaltvariablen
7
Motor
Türkontakt
x1
Knopf
y
x2
Schaltvariablen bzw. logische Variablen
können nur zwei Werte annehmen:
0 bzw. false, „nein“
oder
1 bzw. true, „ja“
Übung: Interpretieren Sie die
folgenden Systemzustände:
Definition der Schaltvariablen:
a) x1=1, x2=0
x1: „Tür geschlossen?“
b) x1=0, x2=1
x2: „Knopf gedrückt?“
y : „Motor läuft?“
c) Ergänzen Sie
in der Schalttabelle
das gewünschte
Ausgabe-Verhalten:
x1
x2
y
0
0
0
0
1
0
1
0
0
1
1
1
Logik-basierte Systembeschreibung ...
8
Beschreibung des Systemverhaltens
durch eine
aussagenlogische Formel
(Schaltfunktion):
Motor
Türkontakt
y
Knopf
x2
x1
„Motor
läuft“
y
... und
technische Realisierung
mit Logikbaustein:
x1
x2
&
UND-Gatter
gdw
=
y
nur
Signalfluss,
kein Stromfluss!
„Tür ist
und
geschlossen“
x1
„Knopf ist
gedrückt“

UND-Operator
x2
x1
x2
y
0
0
0
0
1
0
1
0
0
1
1
1
9
Zwei Darstellungen: Logik - Elektronik
Systemgrößen:
Systemverhalten:
x1: „Tür ist geschlossen“
x2: „Schalter ist gedrückt“
y: „Motor ist aktiv“
y = x1

x2
Logik
Logische Formel
(Schaltterm)
Kontaktschalter
Kontaktschalter
x1
x2
&
y Motor
Elektronischer Baustein
(Logikgatter)
Elektronik
(Hardware)
10
Problem 2: 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.
Schaltvariablen?
nach H. Bühler: Grundlagen einer Verständigung mit Computern
Lösung mit ODER-Operator
11
Beschreibung der Systemgrößen
mit Schaltvariablen:
x1: „Türöffner im 1. Stock ist gedrückt“
x2: „Türöffner im 2. Stock ist gedrückt“
y: „Türschloss ist geöffnet“
x1
x2
Beschreibung des Systemverhaltens mit
logischen Operationen bzw. Wertetabelle:
y
y = x1
Realisierung:
x1
x2
1

x2
ODER-Operator
y
ODER-Gatter
x1
x2
y
0
0
0
0
1
1
1
0
1
1
1
1
12
Übungen
Übung 1: Gegeben ist die folgende Schaltung:
Notiere den entsprechenden Schaltterm
und ergänze die zugehörige Wertetabelle !
a
b
c
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
y
13
Übungen
Übung 2: Gegeben ist der Schaltterm y = a  (a  b  c) .
Zeichne die entsprechende Schaltung
und ergänze die zugehörige Wertetabelle!
Könnte man die Schaltung vereinfachen?
a
b
c
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
y
14
Übungen
Übung 3:
Bei der Talent-Show DSDSI entscheidet eine 3er-Jury per
Mehrheitsabstimmung, ob ein Kandidat weiterkommt oder nicht.
a) Erstelle eine entsprechende Wertetabelle
mit Eingängen a, b, c und Ausgang y !
b) Entwickle einen passenden Schaltterm für y !
c) Zeichne die entsprechende Schaltung!
a
b
c
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
y
15
Problem:
Problem: Kühlschrankbeleuchtung
Öffnet man den Kühlschrank,
so soll das Licht im Kühlschrank automatisch angehen.
Tür-Kontakt
Lampe
nach H. Bühler: Grundlagen einer Verständigung mit Computern
Lösung mit NICHT-Operator
16
Beschreibung der Systemgrößen
mit Schaltvariablen:
x: „Tür-Kontakt geschlossen“
y: „Lampe an“
Beschreibung des Systemverhaltens mit
Wertetabelle bzw. logischen Operationen:
NICHT-Operator
x
1
NICHT-Gatter
(Inverter)
y
x
y
0
1
1
0
Negationspunkt
beachten!
y  x
bzw. kürzer
yx
Übersicht: Grundoperationen
17
UND-Operation
(Konjunktion)
ODER-Operation
(Disjunktion )
NICHT-Operation
(Negation )
x1
x2
x1  x2
x1
x2
x1  x2
x
x
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
Logik
Elektronik
x1
x2
&
UND-Gatter
y
x1
1
x2
ODER-Gatter
y
x
1
NICHT-Gatter
y
18
Problem:
Eine komplexere Schaltung
Eine High-Tech-Kaffeemaschine soll das Wasser erhitzen,
wenn die Kaffee- oder Tee-Taste gedrückt wird und nicht
gerade die Wartungsprozedur läuft!
Beschreibung der Systemgrößen
mit Schaltvariablen:
k : „Kaffee-Taste gedrückt“
t : „Tee-Taste gedrückt“
w : „Wartung läuft“
h : „Heizung an“
Beschreibung des Systemverhaltens ?
19
Kaffeemaschine
Schaltvariablen:
k: „Kaffee-Taste gedrückt“
t: „Tee-Taste gedrückt“
w: „Wartung läuft“
h: „Heizung an“
Schaltfunktion ?
Tipp zum Erstellen:
Dualsystem!
Wertetabelle ?
k
0
0
0
0
1
1
1
1
t
0
0
1
1
0
0
1
1
w
0
1
0
1
0
1
0
1
h
Kaffeemaschine
20
Schaltvariablen:
k: „Kaffee-Taste gedrückt“
t: „Tee-Taste gedrückt“
w: „Wartung läuft“
h: „Heizung an“
Schaltfunktion:
Wertetabelle:
h  (k  t)  w
Schaltung:
k
t
1
w
1
&
h
k
0
0
0
0
1
1
1
1
t
0
0
1
1
0
0
1
1
w
0
1
0
1
0
1
0
1
h
0
0
1
0
1
0
1
0
Umsetzung in Hades
21
Schaltung auf Papier:
k
t
1
w
1
&
h
Umsetzung in einem
Simulationsprogramm:
(z.B. Hades, Uni Hamburg)
Farbcodes bei Hades:
grau = 0
rot = 1
blau = undefiniert
Eingabe-Pins
Gatter und Leitungen
Ausgabe-Pin
Übung mit HADES
22
Aufgabe:
Bauen Sie in Hades die folgenden Schaltungen auf
und testen Sie deren Funktion:
1. Ein ODER-Gatter (mit zwei Input-Pins und einem Output-Pin)
2. Erweitern Sie dies zur Kaffeemaschinen-Schaltung!
Tipps zum Handling:
Bauteile erzeugen: per Kontextmenü
(rechte Maustaste)
Leitungen ziehen: per Start- und Endpunkt
(mit beliebigen „Knickpunkten“)
Schaltung testen: Input-Pins anklicken
(immer zuerst aktivieren!)
23
Teil 2
Schaltfunktionen und Schaltnetze
Multiplexer – Demultiplexer
24
Ein Problem der Vermittlungstechnik:
Zwei Teilnehmer T0 und T1 wollen wahlweise ihre Daten d0 und d1
über eine gemeinsame Leitung senden.
Ein Multiplexer (MUX) ist quasi ein „Kanal-Umschalter“ zur Auswahl eines
bestimmten Eingangs.
Am Ende der Übertragungsleitung kann ein Demultiplexer die empfangenen
Daten auf einen bestimmten Kanal weiterleiten.
d0
MUX
DEMUX
s=0
s=1
d1
SteuerEingang
Funktionale Modellierung
25
Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung):
Binäre Daten
1
0
1
MUX
DEMUX
0
1
0
Steuersignal
Steuersignal
1
d0
d0
MUX
b
b
DEMUX
d1
Eingaben
d1
s
Ausgaben
Eingaben
s
Ausgaben
Logische Systembeschreibung
26
Entwicklung von Schalttermen zur Beschreibung des Ein-AusgabeVerhaltens bzw. der Schaltfunktionen:
d0
d0
MUX
b
b
DEMUX
d1
d1
Eingaben
falls
s
Ausgaben
s = 0: b = d0
s = 1: b = d1
b  (s  d0 )  (s  d1 )
Schaltterm
Eingaben
falls
s
Ausgaben
s = 0: d0 = b
s = 1: d1 = b
d0  b  s
d1  b  s
Schaltnetze
27
Entwicklung von Schaltungen zu den Schalttermen.
d0  b  s
d0
d0
MUX
b
DEMUX
b
d1
d1
b  (s  d0 )  (s  d1 )
s
s
d1  b  s
NOT-Gatter
d0
d1
s
&
1
d0
&
d1
b
&
Schaltnetz
&
s
Schaltnetz
Idee: Funktionale Modellierung
28
d0
MUX
b
d1
Beschreibung des
Systemverhaltens mit einer
logischen Schaltfunktion
s
b  (s  d0 )  (s  d1 )
d0
d1
s
&
1
&
Realisierung des Systems
mit Hilfe eines Logikbasierten Schaltnetzes
Übung
29
Aufgabe:
Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.
d0
d1
s
&
1
&
d0
&
d1
b
&
s
Übung
30
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
d1
d2
d3
MUX
0 0
s1 s0
b
DEMUX
1 0
s1 s0
d0
d1
d2
d3
Teil 3
31
Exkurs:
Disjunktive Normalform (DNF)
und Schaltalgebra
32
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
33
Steuerung einer Autoinnenbeleuchtung
Schaltvariablen:
x1: „Fahrertür ist geschlossen“
x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
Wertetabelle ?
x1 x2
0
0
1
1
0
1
0
1
Schaltfunktion ?
Schaltung ?
y
y=?
x1
x2
?
y
34
Steuerung einer Autoinnenbeleuchtung
Schaltvariablen:
x1: „Fahrertür ist geschlossen“
x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
Wertetabelle ?
x1 x2
y
0
0
1
1
1
1
1
0
0
1
0
1
Schaltfunktion ?
y=?
Schaltung ?
x1
x2
?
y
Autoinnenbeleuchtung: logischer Ansatz
35
Schaltvariablen:
x1: „Fahrertür ist geschlossen“
x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
Wertetabelle:
x1 x2
y
0
0
1
1
1
1
1
0
0
1
0
1
Schaltfunktion ?
Ansatz 1: logische Idee:
„Das Licht ist nur dann aus (d.h. nicht an),
wenn beide Türen geschlossen sind“
d.h.
y  x1  x 2
bzw.
y  x1  x 2
Ansatz 2: guter Blick auf Wertetabelle:
y sieht aus wie UND, nur je 0/1 vertauscht!
D.h. y = invertiertes UND, siehe Ansatz 1!
Autoinnenbeleuchtung: systematisch
36
Schaltvariablen:
x1: „Fahrertür ist geschlossen“
x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
Wertetabelle:
x1 x2
y
y  x1  x 2
Schaltfunktion ?
Ansatz 3: systematische Sammlung aller Fälle mit y=1,
d.h. der positiven Minterme:
0
0
1
falls
x1  x 2
0
1
1
falls
x1  x 2
1
0
1
falls
x1  x 2
1
1
0
Eingangskombinationen
y=1, falls einer dieser Fälle zutrifft,
d.h.
y  (x1  x2 )  (x1  x 2 )  (x1  x2 )
Vergleich der Schaltterme
37
Ansatz 1/2:
logisch /
intuitiv
x1 x2
y
0
0
1
1
1
1
1
0
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
y  x1  x2
2 Gatter
x1
x2
&
0
1
0
1
Ansatz 3:
Disjunktive
Normalform
(DNF)
y
x1 x2
9 Gatter
&
&
&
1
1
y
38
Steuerung einer Autoinnenbeleuchtung
Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 1/2
y  x1  x2
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe:
schrittweise Prüfung:
x1
x2
y
x1
x2
x1  x2
x1  x2
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
39
Steuerung einer Autoinnenbeleuchtung
Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe:
y1
x1
x2
y
x1
x2
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
schrittweise Prüfung:
y2
y3
x1  x2
x1  x2
x1  x2 (y1  y2)  y2
40
Steuerung einer Autoinnenbeleuchtung
Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe:
y1
schrittweise Prüfung:
y2
y3
x1
x2
y
x1
x2
x1  x2
x1  x2
x1  x2 (y1  y2)  y2
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
Finden von Schalttermen
41
x1
x2
y
0
0
1
0
1
1
1
0
1
1
1
0
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
x1 x2
Problem:
Wie findet man systematisch
Schaltterme für eine
vorgegebene Schaltfunktion?
9 Gatter
&
&
&
1
1
y
Minimierung des Schaltnetzes
42
x1
x2
y
0
0
1
0
1
1
1
0
1
1
1
0
Problem:
Wie gewinnt man
möglichst einfache
Schaltnetze zur
Realisierung der
vorgegebenen
Schaltfunktion?
y  x1  x2
x1
x2
x1
x2
&
&
1
y
y
NAND-Gatter
43
Boolesche Algebra / Schaltalgebra
Operationen:
Objekte:
¯ (NOT)
 (AND)
 (OR)
0 (FALSE)
1 (TRUE)
x1
x2
x1  x2
x1
x2
x1  x2
x
x
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
Entwickelt 1854 von George Boole (1815-1864)
Schaltterme
44
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:
t1  x1  x2
t2  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
Aufstellen von Schalttermen
45
Minterm (Elementarkonjunktion)
y1
y2
y3
x1
x2
y
x1
x2
x1  x2
x1  x2
x1  x2 (y1  y2)  y2
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
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
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
Term in disjunktiver
Normalform
(Disjunktion von
Mintermen)
Äquivalenz von Schalttermen
46
x1
x2
x1  x2
x1  x2
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
t1  x1  x2
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.
t2  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
y1
y2
y3
x1
x2
x1
x2
x1  x2
x1  x2
x1  x2 (y1  y2)  y2
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
Gesetze der Schaltalgebra
47
t2  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
x1
x2
x1
x2
x1  x2
x1  x2
x1  x2 y1  (y2  y3)
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
y1
0
y2
0
y3
0
x1
x2
x1
x2
x1  x2
x1  x2
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
x1  x2 (y1  y2)  y3
Gesetze der Schaltalgebra
48
Assoziativgesetz für Disjunktionen:
(a  b)  c  a  (b  c)
a
b
c
ab
bc
(a  b)  c
a  (b  c)
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
49
Gesetze der Schaltalgebra
Assoziativgesetze:
(a  b)  c  a  (b  c)
(a  b)  c  a  (b  c)
Kommutativgesetze:
ab  ba
ab ba
Distributivgesetze:
(zwei !!)
a  (b  c)  (a  b)  (a  c)
De Morgansche Gesetze:
a b  a b
Beweise? Per
Wertetabelle!
a  (b  c)  (a  b)  (a  c)
ab  a b
Gesetze der Schaltalgebra
50
Übung: Ergänzen Sie die jeweiligen Ergebnisse:
Gesetze der
neutralen Elemente:
0-1-Gesetze:
Komplementgesetze:
a 1 
a0 
a0 
aa 
a 1 
aa 
aa 
aa 
Absorptionsgesetze:
a  (a  b) 
a  (a  b) 
a 
Gesetze der Schaltalgebra
51
Gesetze der
neutralen Elemente:
a 1  a
a0 a
0-1-Gesetze:
a0 0
a 1  1
a a  a
a a  a
Komplementgesetze:
aa 0
a  a 1
a a
Absorptionsgesetze:
a  ( a  b)  a
a  ( a  b)  a
52
Vereinfachung von Schalttermen
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
 ((x1  x2 )  ( x1  x2 ))  ( x1  x2 )
 ( x1  ( x2  x2 ))  ( x1  x2 )
 ( x1  ( x2  x2 ))  ( x1  x2 )
 ( x1  1)  ( x1  x2 )
 x1  ( x1  x2 )
 ( x1  x1 )  ( x1  x2 )
Tipp zur Notation:
 1  ( x1  x2 )
Die Priorität  vor 
und das Weglassen von 
 ( x1  x2 )
macht Terme übersichtlicher!
 x1  x2
y  x1  x2
Ergebnis:
Die Terme sind logisch äquivalent.
53
Termumformung m. Boolescher Algebra
y  ( x1  x2 )  ( x1  x2 )  ( x1  x2 )
y  x1 x2  x1 x2  x1 x2
 x1 ( x2  x2 )  x1 x2
 x1  x1 x2
 ( x1  x1 )(x1  x2 )
 1 ( x1  x2 )
 x1  x2
 x1 x2
y  x1  x2
Tipp zur Notation:
Die Priorität  vor 
und das Weglassen von 
macht Terme übersichtlicher!
2. Distributivgesetz !
Übung: NAND, NOR, XOR
54
Neben den drei Grundoperationen gibt es auch die folgenden Operationen
als fertige Bausteine:
NAND („Not AND“),
NOR
(„Not OR“) und
XOR
(„exklusives ODER“)
Testen Sie diese Operationen mit Hades und ergänzen Sie die Wertetabellen.
Beschreiben Sie diese Operationen auch mit Schalttermen,
in denen nur die drei Grundoperationen vorkommen.
x1
x2
0
0
0
1
1
0
1
1
NAND
NOR
XOR
x1  x2
x1  x2
x1  x2
55
Teil 3
Rechensysteme
7-Segment-Anzeige
56
Aufgabe:
Dekodier-Schaltung zur Ansteuerung einer 7-Segment-Anzeige
x3
x2
x1
x0
Wertetabelle:
Ziffer
7-SegmentDekoder
Dualzahl
x3 x2 x1 x0
0
0 0 0 0
1
0 0 0 1
2
0 0 1 0
3
0 0 1 1
4
0 1 0 0
5
0 1 0 1
6
0 1 1 0
7
0 1 1 1
8
1 0 0 0
9
1 0 0 1
Segmente
a
b
c
d
e
f
g
7-Segment-Anzeige: Wertetabelle
57
Wertetabelle:
Ziffer
Dualzahl
x3 x2 x1 x0
Segmente
a
b
c
d
e
0
0 0 0 0
1
1
0 0 0 1
0
2
0 0 1 0
1
3
0 0 1 1
0
4
0 1 0 0
0
5
0 1 0 1
0
6
0 1 1 0
1
7
0 1 1 1
0
8
1 0 0 0
1
9
1 0 0 1
0
f
g
7-Segment-Anzeige: DNF für e
58
DNF für Segment e = x3 x2 x1 x0  x3 x2 x1 x0  x3 x2 x1 x0  x3 x2 x1 x0
Ziffer
Dualzahl
x3 x2 x1 x0
Segmente
a
b
c
d
e
0
0 0 0 0
1
1
0 0 0 1
0
2
0 0 1 0
1
3
0 0 1 1
0
4
0 1 0 0
0
5
0 1 0 1
0
6
0 1 1 0
1
7
0 1 1 1
0
8
1 0 0 0
1
9
1 0 0 1
0
f
g
59
7-Segment-Anzeige: Minimierung für e
DNF für Segment e = x3 x2 x1x0  x3 x2 x1x0  x3 x2 x1x0  x3 x2 x1x0
Pärchen mit möglichst
vielen „gleichen“
Variablen bilden
Ausklammern
Komplementgesetz
 (x3 x2 x1x0  x3 x2 x1x0 )  (x3 x2 x1x0  x3 x2 x1x0 )
 x2 x1x0 (x3  x3 )  x3 x1x0 (x2  x2 )
 x2 x1x0  x3 x1x0
 x0 (x2 x1  x3 x1)
Übungen:
Zeichnen Sie die Schaltung zu dieser Formel!
Implementieren Sie diese Schaltung in Hades!
60
Übungen:
7-Segment-Anzeige: Übungen
Für alle weiteren Segmente (in Gruppenarbeit):
Bilden Sie die DNF, minimieren Sie soweit möglich
und implementieren Sie die entsprechende Schaltungen!
Definieren Sie Ihre Schaltung als neuen Baustein
(siehe Seite 79) und speichern ihn im Kursordner
unter dem Namen <Segment-Name><Autor-Name>!
61
Schaltsymbole im Wandel der Zeit
AND
NAND
c
OR
NOT
NOR
XOR
62
Problem:
Zahldarstellungen
Wie viele Blätter sind hier dargestellt?
(10010)2
18
(12)16
Zahldarstellungen
63
Problem:
unär
Wie viele Blätter sind hier dargestellt?
„Päckchen“
(10010)2
binär
18
dezimal
(12)16
hexadezimal
Stellenwertsysteme
64
dezimal
Stellenwerte: 101 100
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
hexadezimal
161 160
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
binär (dual)
24
23
22
21
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Addiersystem
65
Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.
Schriftliche Addition im Zehnersystem:
+ 3
9
7
Summand A
Summand B
Schriftliche Addition im Dualsystem:
+
1
1
0
0
0
1
1
1
Summand A
Summand B
Addiersystem
66
Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.
Schriftliche Addition im Zehnersystem:
+ 3
1
2
9
7
Summand A
Summand B
Übertrag
6
Summe
Schriftliche Addition im Dualsystem:
+
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
Summand A
Summand B
Übertrag
0
Summe
67
Aufgabe:
Rechenbeispiel:
Addierschaltung
Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
100
+ 101
=a
=b
= summe
Addierschaltung
68
Aufgabe:
Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
Rechenbeispiel:
Achtung:
1+1 ergibt 0
mit Übertrag 1 !
Schaltung:
100
+1101
1001
a2 a1 a0
=a
=b
= summe
b2 b1 b0
+
s3 s2 s1 s0
Ansatz 1:
Wertetabelle?
69
Addierschaltung: per Wertetabelle
Wertetabelle:
Übungen:
a) Berechnen Sie
die Ergebnisse
der letzten beiden
notierten Zeilen!
b) Aus wie vielen
Zeilen besteht
die Tabelle?
a
b
s
a2
a1
a0
b2
b1
b0
s3
s2
s1
s0
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
1
1
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
0
...
0
1
0
1
0
1
0
1
0
1
...
...
...
...
...
1
1
1
1
1
1
Addierschaltung: per Wertetabelle
70
Wertetabelle:
Übungen:
a) Berechnen Sie
die Ergebnisse
der letzten beiden
notierten Zeilen!
b) Aus wie vielen
Zeilen besteht
die Tabelle?
6 Eingangsvariable,
6
d.h. 2 = 64
Kombinationen!
Das sind viele...
Und für 64-BitZahlen?
a
b
s
a2
a1
a0
b2
b1
b0
s3
s2
s1
s0
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
1
1
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
0
...
0
1
0
1
0
1
0
1
0
1
...
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
1
...
0
1
0
1
0
1
0
1
1
0
...
1
1
1
1
1
1
1
1
1
0
71
Addierschaltung: per ROM-Speicher
Ansatz 2:
a2
Die gewünschten Werte der Tabelle
werden zuvor in einem ROM-Baustein 0
fest gespeichert („eingebrannt“).
0
Die Eingangsbits von a und b
0
werden dann als Adresse benutzt,
0
und der Speicher liefert jeweils
0
das zugehörige Ergebnis.
0
a) Wie „groß“ wäre ein ROM
0
für zwei 3-Bit-Zahlen?
0
26 = 64 Speicherzellen á 4 Bit
0
0
b) Wie groß wäre er
...
für zwei 16-Bit-Zahlen?
232  4 Mrd Speicherzellen á 17 Bit 1
= 12 GB
Adresse
Inhalt
a1 a0 b2 b1 b0 s3 s2 s1 s0
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
1
1
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
0
...
0
1
0
1
0
1
0
1
0
1
...
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
1
...
0
1
0
1
0
1
0
1
1
0
...
1
1
1
1
1
1
1
1
0
72
Addierschaltung: per ROM-Speicher
Ansatz 2:
a2
Die gewünschten Werte der Tabelle
werden zuvor in einem ROM-Baustein 0
fest gespeichert („eingebrannt“).
0
Die Eingangsbits von a und b
0
werden dann als Adresse benutzt,
0
und der Speicher liefert jeweils
0
das zugehörige Ergebnis.
0
a) Wie „groß“ wäre ein ROM
0
für zwei 3-Bit-Zahlen?
0
26 = 64 Speicherzellen á 4 Bit
0
0
b) Wie groß wäre er
...
für zwei 16-Bit-Zahlen?
232  4 Mrd Speicherzellen á 17 Bit 1
= 12 GB
Adresse
Inhalt
a1 a0 b2 b1 b0 s3 s2 s1 s0
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
1
1
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
0
...
0
1
0
1
0
1
0
1
0
1
...
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
1
1
1
1
0
0
...
0
0
1
1
0
0
1
1
0
1
...
0
1
0
1
0
1
0
1
1
0
...
1
1
1
1
1
1
1
1
0
Und für 64-BitZahlen?
Addierschaltung: Module
73
Ansatz 3:
Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
100
+1101
1001
Rechenbeispiel:
Schaltung:
(mit Modulen)
ü2
s3
=a
=b
= summe
a2 b2
a1 b1
a0 b0
+
+
+
s2
ü1
s1
ü0
s0
Sind alle
Module
gleich?
Addierschaltung: HA und VA
74
Ansatz 3:
Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
100
+1101
1001
Rechenbeispiel:
Schaltung:
(mit Modulen)
ü2
s3
=a
=b
= summe
a2 b2
a1 b1
a0 b0
VA
VA
HA
s2
ü1
s1
ü0
s0
Das hinterste
Modul erhält
noch keinen
Übertrag,
d.h. nur „HA“
Halb-Addierer
75
Addierschaltung: HA und VA
Übung:
Ergänzen Sie die Wertetabellen und entwickeln Sie
möglichst einfache Schaltungen für
a b
a) den HA:
ü
HA
s
a b
b) den VA:
ü
VA
s
üv
a
0
0
0
0
1
1
1
1
a
0
0
1
1
b
0
1
0
1
s
ü
b
0
0
1
1
0
0
1
1
üv
0
1
0
1
0
1
0
1
s
ü
76
Addierschaltung: HA und VA
Übung:
Ergänzen Sie die Wertetabellen und entwickeln Sie
möglichst einfache Schaltungen für
a b
a) den HA:
ü
HA
s
a b
b) den VA:
ü
VA
s
üv
a
0
0
0
0
1
1
1
1
a
0
0
1
1
b
0
1
0
1
s
0
1
1
0
ü
0
0
0
1
b
0
0
1
1
0
0
1
1
üv
0
1
0
1
0
1
0
1
s
0
1
1
0
1
0
0
1
ü
0
0
0
1
0
1
1
1
77
Addierschaltung: HA und VA
Lösung für:
a b
a) den HA:
ü
HA
s
a
0
0
1
1
b
0
1
0
1
s
0
1
1
0
ü
0
0
0
1
ü ab
s  ( a  b)  (a  b )
 ab
78
Addierschaltung: HA und VA
a b
Lösung für:
a) den VA:
ü
VA
s
üv
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
üv
0
1
0
1
0
1
0
1
ü  abüv  abüv  abüv  abüv
s  a büv  ab üv  ab üv  abüv
s
0
1
1
0
1
0
0
1
ü
0
0
0
1
0
1
1
1
79
4-Bit-Paralleladdierer mit Bausteinen
Beispiel: (1001)2 + (1011)2 = (10100)2
a3 a2 a 1 a0
1 0 0 1
1
VA
VA
VA
HA
1 0 1 1
b3 b2 b1 b0
0
1
0
0
ü
s3
s2
s1
s0
80
Hinweise: Definition von Bausteinen
Schritte zum Definieren eines neuen Bausteins („Subdesigns“):
1. Schaltung erzeugen, Ein- und Ausgänge
sinnvoll benennen, und abspeichern
(z. B. als HA.hds)
2. Einen Namen für das Subdesign setzen: [Edit][Set design name...] HA
3. Zugehörige Symboldatei erzeugen:
[Edit][Create symbol]
(Hades erzeugt dann intern die Datei HA.sym
als Rechteck-Baustein mit entsprechenden Ports)
4. In neuer Schaltung dieses Subdesign benutzen:
[rechte Maustaste] [Create] [Create Subdesign...] HA.hds
class name
instance name
81
Übung: 4-Bit-Addierer
Aufgabe:
Erstellen und testen Sie zunächst einen Halb- und Volladdierer.
Definieren Sie zugehörige Bausteine (Subdesigns) und entwickeln Sie mit
diesen anschließend einen 4-Bit-Paralleladdierer!
Übung 4-Bit-Inkrementierer
82
Aufgabe:
Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.
Idee:
1
0
1
0
1
1
1
1
0
1
1
Zahl
Inkrement
Übertrag
0
Nachfolger
Übung 4-Bit-Komparator
83
Aufgabe:
Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-BitDualzahlen gleich sind.
Idee:
1
1
0
0
0
1
1
1
1
1
1
1
Zahl A
Zahl B
Hilf
Ergebnis
84
Lösung - Addierer
Lösung - Inkrementierer
85
Idee:
1
0
1
0
1
1
1
1
0
konstante 1
(io – VCC)
1
1
Zahl
Inkrement
Übertrag
0
Nachfolger
Lösung - Komparator
86
Idee:
1
1
0
0
0
1
1
1
1
1
1
1
Zahl A
Zahl B
Hilfsregister
Ergebnis
87
Teil 4
Flip-Flops
Bisher: Schaltnetze
88
Eingang
x
Schaltnetz
y = f(x)
Ausgang
y
+ jede beliebige Funktion
ist berechenbar
- keine Möglichkeit
einer Speicherung
Idee: Rückkopplung
89
Schaltwerk
Eingang
x
Schaltnetz
Ausgang
y
Rückkopplung: Ein Teil der Ausgangsleitungen wird
als „erweiterte Eingangsleitungen“ wieder zugeführt,
d.h.
y = f(x, y) .
Dies bringt neue Verhaltensmöglichkeiten mit sich!
(„Wer seinen Output reflektiert, kann lernen ... !“)
90
Alarmanlage
Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
91
Alarmanlage als zustandsbasiertes System
Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
auslösende Aktion
Zustandsgraph:
Alarm
Sirene
an
Sirene
aus
Anfangszustand
Rücksetzen
Zustandsvariable:
Steuersignale:
Q = 0: „Sirene aus“
Q = 1: „Sirene an“
S = 1: Alarm auslösen (Setzen)
R = 1: Rücksetzen
92
Aufgabe: ODER-Selbsthalteschaltung
Aufgabe:
Entwickeln Sie mit einem ODER-Gatter
eine „Selbsthalte“-Schaltung, die bei einem Alarmsignal
den Ausgang dauerhaft auf 1 setzt!
Eingang S
(Setzen)
1
Zustand Q
(Ausgang)
93
Aufgabe: ODER-Selbsthalteschaltung
Aufgabe:
Entwickeln Sie mit einem ODER-Gatter
eine „Selbsthalte“-Schaltung, die bei einem Alarmsignal
den Ausgang dauerhaft auf 1 setzt!
Eingang S
(Setzen)
1
Zustand Q
(Ausgang)
Aufgabe: ... mit Rücksetz-Eingang
94
Aufgabe:
Ergänzen Sie einen Rücksetz-Eingang,
um den Ausgang auf Q = 0 zurück zu setzen.
Setzen: S
Rücksetzen: R
1
&
Ausgang Q
UND als „Tor“-Schaltung:
bei R = 0: Durchlass
bei R = 1: Sperrung.
Aufgabe: ... mit Rücksetz-Eingang
95
Aufgabe:
Ergänzen Sie einen Rücksetz-Eingang,
um den Ausgang auf Q = 0 zurück zu setzen.
Qalt
Setzen: S
1
&
Ausgang Q
UND als „Tor“-Schaltung:
Rücksetzen: R
bei R = 0: Durchlass
bei R = 1: Sperrung.
Funktionstabelle:
S
R
Qalt
0
0
0
0
0
1
0
1
beliebig
1
0
beliebig
1
1
beliebig
Q
Übung!
Lösung: R-S-Flipflop
96
Aufgabe:
Ergänzen Sie einen Rücksetz-Eingang,
um den Ausgang auf Q = 0 zurück zu setzen.
1
Setzen: S
&
Ausgang Q
UND als „Tor“-Schaltung:
Rücksetzen: R
bei R = 0: Durchlass
bei R = 1: Sperrung.
Funktionstabelle:
S
R
Q alt
Q
kurz:
0
0
0
0
S
R
Q
0
0
1
1
0
0
bleibt
0
1
beliebig
0
0
1
0
Rücksetzen
1
0
beliebig
1
1
0
1
Setzen
1
1
beliebig
0
1
1
0
(Rücksetzen)
Speichern
RS-Flipflop: Zustandsdiagramm
97
Dieses RS-Flipflop ist das elementarste Speicherelement (für ein Bit)
und erhält ein eigenes Schaltsymbol:
S
Q
R
¬Q
Funktion:
S
R
Speichern:
0
0
Rücksetzen:
0
1
0
1
Setzen:
1
0
1
0
Verboten!
1
1
0
0
(inkonsistent)
Q
bleibt bleibt
Beschreibung mittels eines Zustandsgraphen:
S  ¬R
R  ¬S
Setzen
0
Rücksetzen
R
1
¬Q
¬R
Übung: Zeitverhalten
98
Übung:
S
1
0
R
1
0
Q
1
0
Zeitverhalten eines RS-Flipflops:
Ergänzen Sie den Ausgang Q !
Zeit
Lösung: Zeitverhalten
99
Übung:
S
1
0
R
1
0
Q
1
0
Zeitverhalten eines RS-Flipflops:
Ergänzen Sie den Ausgang Q !
Zeit
RS-Flipflop: Umformung
100
Umformung des RS-Flipflop ...
Forme mittels DeMorgan um:
S
1
&
Q
Q=
=
R
¬R  (S  Q)

RS-Flipflop: Umformung
101
Umformung des RS-Flipflop:
Forme mittels DeMorgan um:
S
1
&
Q
Q=
¬R  (S  Q)
= ¬(¬¬R  ¬(S  Q))
R
Übung: Aufbau des RS-Flipflop
mit 2 NOR-Gattern ?
= ¬ ( R  ¬(S  Q))
RS-Flipflop: Typischer Aufbau
102
Umformung des RS-Flipflop:
Forme mittels DeMorgan um:
S
1
&
Q
Q = ¬R  (S  Q)
= ¬ (R  ¬(S  Q))
R
Aufbau mit 2 NOR-Gattern...
...und typischem Layout:
S
S
R
1
1
1
¬Q
1
Q
Q
R
103
Teil 5
Von taktgesteuerten Flip-Flops zu Registern
Synchronisation von Flip-Flops
104
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 („C wie Clock“).
1-Zustand
0-Zustand
Steigende
Flanke
Fallende
Flanke
105
Taktpegel-gesteuertes RS-Flip-Flop
2 Tore
Idee: 2 Tore steuern, ob S und R
„durchgelassen“ werden.
S
Nur wenn der Takt den Wert 1 hat,
kann ein Setzen oder Rücksetzen
des Flip-Flops erfolgen.
C
gesperrt
wie
bisher
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
0
R
&
&
CS
S
Q
R
Q
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Übung: Taktpegel-gesteuertes RS-FF
106
Aufgabe:
Testen Sie das entwickelte Flip-Flop
mit Hades.
S
Ergänzen Sie anschließend das unten
dargestellte Impulsdiagramm.
C
R
&
&
S
Q
R
Q
C
S
R
Q
Impulsdiagramm
Lösung: Taktsteuerung
107
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
Nur wenn der Takt auf "1" ist, kann ein Setzen
oder Rücksetzen des Flip-Flops erfolgen.
CS
CR
CS
Q=0
S=R=1
vermeiden
CR
C
S
R
Q
Q=1
Wunsch: ein Dateneingang D
108
Idee:
Zur Speicherung eines Bits wäre es praktisch, statt der beiden
Eingänge S und R nur noch einen Dateneingang D zu haben.
Im Falle von D=1 sollte dann S=1 und R=0 sein,
im Falle von D=0 sollteS=0 und R=1 sein.
Durch welche Ergänzung kann dies erreicht werden?
Taktpegelgesteuertes
D-Flipflop
S
D
&
C
&
1
R
S
Q
R
Q
D
C
Q
Q
109
Wunsch: Flanken- statt Pegelsteuerung
Problem:
Während der Taktphase C=1
(d.h. während einem Zeitintervall )
ist jede Änderung am Eingang D
sofort am Ausgang wirksam.
Besser wäre es, den Eingangswert
nur zu einem definierten Zeitpunkt
zu übernehmen!
D
C
Q
Q
Master-Slave-D-Flipflop
110
Idee: Master-Slave („Schleusen-Prinzip“)
Zwei pegelgesteuerte D-Flipflops werden hintereinander im „Gegentakt“
betrieben, d.h.
während der Phase C=0: Master übernimmt, Slave bleibt
während der Phase C=1: Master speichert, Slave übernimmt dessen Wert
 zum Zeitpunkt des Wechsels von C auf 1 (steigende Taktflanke)
wird der Eingang übernommen und gespeichert!
vorderflankengesteuertes
Master
Slave
D-Flipflop
D
C
D
1
C
QM
D
C
QS
Q
Q
D
Q
Q
Übung: D-Flipflop
111
C
Aufgaben:
C
CD
Z0
Q=0
C
a) Ergänzen Sie den Verlauf für Q.
Z1
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
b) Erstellen Sie eine D-Flip-FlopTestschaltung und überprüfen Sie
Ihr gezeichnetes Ausgangssignal.
Lösung: D-Flip-Flop
112
C
C
CD
Z0
Z1
Q=0
C
Ein Zustandswechsel kann nur
bei einer steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
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
113
Flipflops in Hades
Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:
Übung:
Testen Sie deren Funktion
anhand der Schaltung Flipflop-Demo.hds !
Achtung:
NR bedeutet „Not Reset“, ist also ein Reset-Eingang
mit vorgeschaltetem Inverter (siehe Bild)!
„Offene Eingänge“ führen zu seltsamen Fehlern, d.h.
alle Eingänge müssen mit definierten Werten belegt werden!
Nicht benutzte Ausgänge dürfen offen bleiben.
114
Flipflops in Hades
Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:
Übung:
Testen Sie deren Funktion
anhand der Schaltung
Flipflop-Demo.hds !
(Tipp: NR bedeutet „Not Reset“
im Sinne eines Inverters!)
pegelgesteuertes DFlipflop
vorderflankengesteuertes
D-Flipflop
vorderflankengesteuertes
D-Flipflop
mit Set- und ResetEingang (je negiert)
115
Typische Macken von Hades
Probleme ...
und Lösungen:
Ein Anschluss-Pin ist nicht erreichbar:
Stellen Sie die Einrastpunkte feiner, im Menü
View – Magnetic Grid ...
Sie möchten einen Verbindungspunkt setzen
bzw. von einer Leitung weiter abzweigen:
wire – add segment
Ein Bauteil gibt seine Signale nicht weiter,
obwohl die Leitungen „optisch“ verbunden sind:
Schließen Sie das Bauteil neu an:
wire – autoconnect SimObject
Sie sehen keine Anschluss-Bezeichnungen:
Aktivieren Sie im Menü:
Layers – Port Labels
Vordefinierte Bausteine „verschwinden“ (!!!) :
Speichern Sie alle Schaltungen im gleichen
(Netzwerk-)Ordner! Dann beziehen sich alle
Verweise auf den gleichen Pfad.
Namenskonvention:
<Schaltungs-Name> ( <Autor-Name> )
Die Schaltung „hängt“ in einem undefinierten
Zustand:
Starten Sie den Simulationslauf neu:
Reset, dann Run forever
Irgendwo steckt noch ein Fehler...:
Options – Check design & highlight errors
116
Übung: Schieberegister
Ein 4-Bit-Schieberegister ist ein Speicherelement
mit folgenden Eigenschaften:
Din
0
1
1
0
Dout
1) Das Register kann 4 Bit mit Hilfe von Flip-Flops speichern.
2) Mit jeder steigenden Taktflanke werden die gespeicherten Werte
um ein Bit nach rechts verschoben.
3) Das erste Flip-Flop übernimmt jeweils den Wert am Dateneingang,
der Wert des letzten Flip-Flops wird „herausgeschoben“.
Übung:
Überlegen Sie, welche Flipflops hierfür günstig sind,
und entwerfen Sie die entsprechende Schaltung!
117
Lösung: 4-Bit-Schieberegister
118
Übung: Schieberegister-Baustein
Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung:
[rechte Maustaste] [create] [create by name] [hades.models.register.ShiftRegister]
Übung: Öffnen Sie die Schieberegister-Demo und testen Sie diesen Baustein!
serieller
Daten-Eingang
Umschalter
„Shift Enable“:
1:Shift / 0:Load
4 parallele Eingänge
(zum „Laden“)
4 parallele Ausgänge
Serielle Datenübertragung
119
Aufgabe:
Mit nur einer einzigen Leitung sollen Daten von einem
Sender zu einem Empfänger übertragen werden.
Dies lässt sich seriell mit Schieberegistern realisieren:
paralleles Laden
0
1
1
0
serielles Übertragen
paralleles Holen
Entwerfen Sie eine entsprechende Schaltung in Hades!
Hinweise:
Sie benötigen zur Synchronisation eine zusätzliche gemeinsame Taktleitung!
Die Schieberegister finden Sie unter
[create] [create by name] [hades.models.register.ShiftRegister]
Serielles Addierwerk
120
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
1
1
0
VA
1
121
Übung: Serielles Addierwerk
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte
Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern.
Tipp: per Kontextmenü – Edit können Sie verschiedene Parameter der
Bausteine einstellen, bei den Schieberegistern z.B. die Anzahl der Bits.
122
4-Bit-Register
Sie finden bei Hades in der RTL (Register Transfer Library)
das folgende 4-Bit-Register (ohne Schiebefunktion):
Übung:
Testen Sie seine Funktion
anhand der Schaltung
4-Bit-Register-Demo.hds !
123
Aufgabe: 4-Bit-Zähler
Mit einem Register und einem Inkrementierer lässt sich ein Zähler bauen:
Takt
C
R
4-Bit-Reg.
Übung:
Definieren Sie einen 4-Bit-Inkrementierer
(in Modulbauweise, wie beim 4-Bit-Addierer)
und konstruieren Sie eine
entsprechende Zähler-Schaltung !
4-Bit-INC
Q3
Q2
Q1
Q0
124
Aufgabe: Dezimal-Zähler
Durch gezieltes Rücksetzen beim Auftreten der Zahl 10
kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden.
Takt
C
R
4-Bit-Reg.
Übung:
Ergänzen Sie den 4-Bit-Zähler
entsprechend!
4-Bit-INC
10-Erkennung
125
Lösung: Dezimal-Zähler mit Anzeige
126
Taktgenerator
Aufgabe: Elektronischer Würfel
C
R
3-Bit-Reg.
Dekoder
für Augenzahlen
3-Bit-INC
6-Erkennung
Würfel-Codierung
127
Übung: Ergänzen Sie die Wertetabelle
und bestimmen Sie die Funktionen für die Würfelaugen!
Tipp: Die sieben Augen können in 4 Gruppen unterteilt werden:
Zustands- Dualzahl
Augen
code
x2 x1 x0
1
0 0 0
0
2
1
0 0 1
3
2
0 1 0
4
3
0 1 1
5
4
1 0 0
6
5
1 0 1
A=
B=
C=
D=
LEDs
A
B
C
D
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
A
C
B
B
D
C
A
Würfel-Codierung
128
Augen
1
2
3
4
5
6
A=
B=
C=
D=
Zustands- Dualzahl
code
x2 x1 x0
0 0 0
0
1
0 0 1
2
0 1 0
3
0 1 1
4
1 0 0
5
1 0 1
x2 + x1 + x0
x2 + x1 x0
x2 x0
x0
LEDs
A
B
C
D
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
A
C
B
B
D
C
A
129
Würfel mit Hades
130
Literaturhinweise
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.
Für weitere Fragen: