Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | kai-wexler |
View: | 126 times |
Download: | 4 times |
Digitaltechnik
Weiterbildungslehrgang XII – Kurs 4
Tobias Selinger
14./15. November 2013
2 Digitaltechnik: Wurzeln
MathematikPhysik
(Halbleitertechnologie)
elektronische Schaltungen
Aussagenlogik, Boolesche Algebra
digitale Logikschaltungen
z.B. Addierer, Dekoder, Speicher,Zähler,
Prozessoren...
ich denke ich bin
3 Teil 1
Logische Grundoperationen
4 Problem 1: Aufzugssteuerung
Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.
Problem: 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?
Motor
Tür-kontakt
Knopf
5 Aufzugssteuerung
Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.
Problem: 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
Motor
Lösung mittels Elektrotechnik (NaWi 5. Klasse): Reihenschaltung
Tür-kontakt
Knopf
Motor
6
Binäre Kodierung mit Schaltvariablen
Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:
0 bzw. false, „nein“oder
1 bzw. true, „ja“
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:
a) x1=1, x2=0
b) x1=0, x2=1
c) Ergänzen Siein der Schalttabelledas gewünschteAusgabe-Verhalten:
Motor
Tür-kontakt
x1
Knopf
x2
y
x1
0
0
1
1
x2
0
1
0
1
y
Definition der Schaltvariablen:
x1: „Tür geschlossen?“
x2: „Knopf gedrückt?“
y : „Motor läuft?“
7
Binäre Kodierung mit Schaltvariablen
Übung: Interpretieren Sie die folgenden
Systemzustände:
a) x1=1, x2=0
b) x1=0, x2=1
c) Ergänzen Siein der Schalttabelledas gewünschteAusgabe-Verhalten:
Motor
Tür-kontakt
x1
Knopf
x2
y
x1
0
0
1
1
x2
0
1
0
1
y
0
0
0
1
Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:
0 bzw. false, „nein“oder
1 bzw. true, „ja“
Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:
0 bzw. false, „nein“oder
1 bzw. true, „ja“
Definition der Schaltvariablen:
x1: „Tür geschlossen?“
x2: „Knopf gedrückt?“
y : „Motor läuft?“
8
Logik-basierte Systembeschreibung ...
Beschreibung des Systemverhaltens durch eineaussagenlogische Formel (Schaltfunktion):
Beschreibung des Systemverhaltens durch eineaussagenlogische Formel (Schaltfunktion):
„Motor gdw „Tür ist und „Knopf ist läuft“ geschlossen“ gedrückt“
Motor
Tür-kontakt
x1
Knopf
x2
y
UND-Operator
y = x1 x2
x1
0
0
1
1
x2
0
1
0
1
y
0
0
0
1UND-
Gatter
x1 &x2
y
... und technische Realisierungmit Logikbaustein:
nur Signalfluss,kein Stromfluss!
9
Zwei Darstellungen: Logik - Elektronik
Logik
x1
&x2
yKontaktschalter
KontaktschalterMotor
Elektronischer Baustein (Logikgatter)
x1: „Tür ist geschlossen“x2: „Schalter ist gedrückt“y: „Motor ist aktiv“
Systemgrößen: Systemverhalten:
Elektronik(Hardware)
Logische Formel (Schaltterm)
y = x1 x2
10
Problem 2: Steuerung eines Türöffners
Problem: Die Haustür soll sich öffnen, wenn der Türöffnerim ersten oder im zweiten Stock gedrückt wird.
Problem: Die Haustür soll sich öffnen, wenn der Türöffnerim ersten oder im zweiten Stock gedrückt wird.
nach H. Bühler: Grundlagen einer Verständigung mit Computern
Schaltvariablen?
11 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ürschloss ist geöffnet“
x1
0
0
1
1
x2
0
1
0
1
y
Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:
Beschreibung des Systemverhaltens mit logischen Operationen bzw. Wertetabelle:
Beschreibung des Systemverhaltens mit logischen Operationen bzw. Wertetabelle:
x1
x2 y
x1
1
x2
y
ODER-Operator
y = x1 x2
ODER-Gatter
Realisierung: 0
1
1
1
Übungen
Übung 1: Gegeben ist die folgende Schaltung:
Notiere den entsprechenden Schaltterm und ergänze die zugehörige Wertetabelle !
12
a b c y
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Ü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?
13
a b c y
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Übungen
Übung 3:
Bei der Talent-Show DSDSI entscheidet eine 3er-Jury per Mehrheitsabstimmung, ob ein Kandidat weiterkommt oder nicht.
a) Erstelle eine entsprechende Wertetabellemit Eingängen a, b, c und Ausgang y !
b) Entwickle einen passenden Schaltterm für y !
c) Zeichne die entsprechende Schaltung!
14
a b c y
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
15 Problem: KühlschrankbeleuchtungProblem: Öffnet man den Kühlschrank,
so soll das Licht im Kühlschrank automatisch angehen.
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
Tür-Kontakt Lampe
16
xy NICHT-Operator
Lösung mit NICHT-Operator
x: „Tür-Kontakt geschlossen“y: „Lampe an“
x
0
1
y
1
0 xy x 1 y
Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:
Beschreibung des Systemverhaltens mit Wertetabelle bzw. logischen Operationen:
Beschreibung des Systemverhaltens mit Wertetabelle bzw. logischen Operationen:
bzw. kürzer
NICHT-Gatter (Inverter)
Negationspunkt beachten!
17 Übersicht: 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
x1 1x2
yx1 &x2
y x 1 y
UND-Gatter
UND-Operation(Konjunktion)
UND-Operation(Konjunktion)
ODER-Operation(Disjunktion )
ODER-Operation(Disjunktion )
NICHT-Operation(Negation )
NICHT-Operation(Negation )
ODER-Gatter NICHT-Gatter
Logik
Elektronik
18 Eine komplexere SchaltungProblem: Eine High-Tech-Kaffeemaschine soll das Wasser erhitzen,
wenn die Kaffee- oder Tee-Taste gedrückt wird und nicht gerade die Wartungsprozedur läuft!
Problem: Eine High-Tech-Kaffeemaschine soll das Wasser erhitzen,
wenn die Kaffee- oder Tee-Taste gedrückt wird und nicht gerade die Wartungsprozedur läuft!
k : „Kaffee-Taste gedrückt“t : „Tee-Taste gedrückt“w : „Wartung läuft“h : „Heizung an“
Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:
Beschreibung des Systemverhaltens ?Beschreibung des Systemverhaltens ?
19 Kaffeemaschine
k: „Kaffee-Taste gedrückt“t: „Tee-Taste gedrückt“w: „Wartung läuft“h: „Heizung an“
Schaltvariablen:Schaltvariablen:
Schaltfunktion ?Schaltfunktion ? Wertetabelle ?Wertetabelle ?
k t w h0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
Tipp zum Erstellen:
Dualsystem!
20 Kaffeemaschine
k: „Kaffee-Taste gedrückt“t: „Tee-Taste gedrückt“w: „Wartung läuft“h: „Heizung an“
Schaltvariablen:Schaltvariablen:
Schaltfunktion:Schaltfunktion:
wt)(kh
Wertetabelle:Wertetabelle:
k t w h0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0
1 &
kt
w
h
1
Schaltung:Schaltung:
21 Umsetzung in Hades
Schaltung auf Papier:
Umsetzung in einemSimulationsprogramm:(z.B. Hades, Uni Hamburg)
1
&
kt
w
h
1
Eingabe-Pins Ausgabe-PinGatter und Leitungen
Farbcodes bei Hades:
grau = 0rot = 1blau = undefiniert
22 Übung mit HADES
Aufgabe: Bauen Sie in Hades die folgenden Schaltungen aufund 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
24 Multiplexer – Demultiplexer
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.
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.
MUX DEMUX
s = 0
Steuer-Eingang
s = 1
d0d0
d1d1
25 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):Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung):
0
11
1
0
Eingaben Ausgaben Eingaben Ausgaben
26 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: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
fallsfalls fallsfalls
27 Schaltnetze
)()( 10 dsdsb
sbd 0
sbd 1
1
d0
d1
s
&
&
&
&
d0
d1
b
s
Entwicklung von Schaltungen zu den Schalttermen. Entwicklung von Schaltungen zu den Schalttermen.
s
DEMUXd0
d1
b
s
MUXd0
d1
b
Schaltnetz Schaltnetz
NOT-Gatter
28 Idee: Funktionale Modellierung
s
MUXd0
d1
b
)()( 10 dsdsb
1
d0
d1
s
&
&
Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes
Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes
Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion
Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion
29 ÜbungAufgabe:
Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.
Aufgabe:
Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.
1
d0
d1
&
&
&
&
d0
d1
b
s s
30 Ü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.
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.
MUX DEMUX
0 0 1 0
d0
d2
d1
d3
d0
d2
d1
d3
s1 s0 s1 s0
b
31 Teil 3
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.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
x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
?x1
x2
y
x1 x2 y
0 00 11 01 1
Schaltvariablen:Schaltvariablen:
Schaltfunktion ?Schaltfunktion ?Wertetabelle ?Wertetabelle ? Schaltung ?Schaltung ?
y = ?
34
Steuerung einer Autoinnenbeleuchtung
x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
?x1
x2
y
x1 x2 y
0 0 10 1 11 0 11 1 0
Schaltvariablen:Schaltvariablen:
Schaltfunktion ?Schaltfunktion ?Wertetabelle ?Wertetabelle ? Schaltung ?Schaltung ?
y = ?
35
Autoinnenbeleuchtung: logischer Ansatz
x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
x1 x2 y
0 0 10 1 11 0 11 1 0
Schaltvariablen:Schaltvariablen:
Schaltfunktion ?Schaltfunktion ?Wertetabelle:
Wertetabelle:
Ansatz 1: logische Idee: „Das Licht ist nur dann aus (d.h. nicht
an), wenn beide Türen geschlossen sind“
d.h.
bzw.
Ansatz 2: guter Blick auf Wertetabelle: y sieht aus wie UND, nur je 0/1
vertauscht!
D.h. y = invertiertes UND, siehe Ansatz 1!
21xxy
21xxy
36
Autoinnenbeleuchtung: systematisch
x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“
y: „Licht im Auto ist an“
x1 x2 y
0 0 1
0 1 1
1 0 1
1 1 0
Schaltvariablen:Schaltvariablen:
Schaltfunktion ?Schaltfunktion ?Wertetabelle:
Wertetabelle:
Ansatz 3: systematische Sammlung aller Fälle mit y=1,
d.h. der positiven Minterme:
21xxy
21xxfalls
)x(x)xx()xx(y212121
21xxfalls
21xxfalls
y=1, falls einer dieser Fälle zutrifft,
d.h.
Eingangskombinationen
37 Vergleich der Schaltterme
x1 x2
y
)()()( 212121 xxxxxxy
&
&
&
11
21 xxy
2 Gatter 9 Gatter
Ansatz 3:Disjunktive Normalform
(DNF)
x1 x2 y
0 0 10 1 11 0 11 1 0
Ansatz 1/2: logisch /intuitiv
x1&
x2
y
38
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 – Ansatz 1/2Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 1/2
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
39
Steuerung einer Autoinnenbeleuchtung
)()()( 212121 xxxxxxy
x1
0
0
1
1
x2
0
1
0
1
y
1
1
1
0
x1 x2x1
0
0
1
1
x2
0
1
0
1
x1 x2
x1 x2 (y1 y2) y2
y1 y2 y3
Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
40
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 – Ansatz 3Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
Korrektheitsnachweis mit einer Wertetabelle:
Vorgabe: schrittweise Prüfung:
41 Finden von Schalttermen
x1 x2
y
&
&
&
11
9 GatterProblem:
Wie findet man systematisch Schaltterme für eine vorgegebene Schaltfunktion?
Problem:
Wie findet man systematisch Schaltterme für eine vorgegebene Schaltfunktion?
x1
0
0
1
1
x2
0
1
0
1
y
1
1
1
0
)()()( 212121 xxxxxxy
42 Minimierung des Schaltnetzes
Problem:Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion?
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
43 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)
44 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.
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).
Schaltterm:
Ein Schaltterm ist aufgebaut aus- den Konstanten 0 (FALSE) und 1 (TRUE)- Schaltvariablen- den Operationen (AND), (OR), ¯ (NOT).
45 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)
46 Ä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.
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.
47 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
48 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:Assoziativgesetz für Disjunktionen:
49 Gesetze der Schaltalgebra
Assoziativgesetze:
)()( cbacba
abba Kommutativgesetze:
abba
)()()( cabacba Distributivgesetze: (zwei !!)
)()()( cabacba
)()( cbacba
baba De Morgansche Gesetze:
baba
Beweise? Per
Wertetabelle!
50 Gesetze der Schaltalgebra
0-1-Gesetze:
Komplementgesetze:a
0a
1a
aa
aa
aa
aa
Absorptionsgesetze: )( baa
)( baa
Gesetze der neutralen Elemente:
1a
0a
Übung: Ergänzen Sie die jeweiligen Ergebnisse:
51 Gesetze der Schaltalgebra
0-1-Gesetze:
Komplementgesetze:
aa
00a11a
0 aa
1 aa
Absorptionsgesetze: abaa )(
abaa )(
Gesetze der neutralen Elemente:
aa 1aa 0
aaa aaa
52 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.
Ergebnis:Die Terme sind logisch äquivalent.
Tipp zur Notation:Die Priorität vor und das Weglassen von macht Terme übersichtlicher!
53
Termumformung m. Boolescher Algebra
212121 xxxxxxy
21xx
21221 )( xxxxx
211 xxx
))(( 2111 xxxx
)(1 21 xx
21 xx
)()()( 212121 xxxxxxy
21 xxy
2. Distributivgesetz !
Tipp zur Notation:Die Priorität vor und das Weglassen von macht Terme übersichtlicher!
54 Übung: NAND, NOR, XOR
Neben den drei Grundoperationen gibt es auch die folgenden Operationen
als fertige Bausteine: NAND („Not AND“), NOR („Not OR“) undXOR („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.
Neben den drei Grundoperationen gibt es auch die folgenden Operationen
als fertige Bausteine: NAND („Not AND“), NOR („Not OR“) undXOR („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
0
0
1
1
x2
0
1
0
1
NAND NOR XOR
21 xx 2xx1 21 xx
55 Teil 3
Rechensysteme
56 7-Segment-Anzeige
Aufgabe: Dekodier-Schaltung zur Ansteuerung einer 7-Segment-AnzeigeAufgabe: Dekodier-Schaltung zur Ansteuerung einer 7-Segment-Anzeige
x3
x2
x1
x0
7-Segment-Dekoder
ZifferDualzahl Segmente
x3 x2 x1 x0 a b c d e f g
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
Wertetabelle:
7-Segment-Anzeige: Wertetabelle
Ziffer
Dualzahl Segmente
x3 x2 x1
x0 a b c d e f g
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
Wertetabelle:
57
7-Segment-Anzeige: DNF für e
Ziffer
Dualzahl Segmente
x3 x2 x1
x0 a b c d e f g
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
DNF für Segment e = 0123012301230123 xxxxxxxxxxxxxxxx
58
7-Segment-Anzeige: Minimierung für e
DNF für Segment e = 0123012301230123 xxxxxxxxxxxxxxxx
)xxxxxxxx()xxxxxxxx( 0123012301230123
)xx(xxx)xx(xxx 2201333012
013012 xxxxxx
)xxxx(x 13120
59
Pärchen mit möglichst vielen
„gleichen“ Variablen bilden
Ausklammern
Komplementgesetz
Übungen: Zeichnen Sie die Schaltung zu dieser Formel!
Implementieren Sie diese Schaltung in Hades!
7-Segment-Anzeige: Übungen60
Übungen: Für alle weiteren Segmente (in Gruppenarbeit):
Bilden Sie die DNF, minimieren Sie soweit möglichund implementieren Sie die entsprechende
Schaltungen!
Definieren Sie Ihre Schaltung als neuen Baustein(siehe Seite 79) und speichern ihn im Kursordnerunter dem Namen <Segment-Name><Autor-
Name>!
Schaltsymbole im Wandel der Zeit61
c
AND
OR
NOT
NAND
NOR
XOR
62 Zahldarstellungen
Problem: Wie viele Blätter sind hier dargestellt?Problem: Wie viele Blätter sind hier dargestellt?
(10010)2 18 (12)16
63 Zahldarstellungen
Problem: Wie viele Blätter sind hier dargestellt?Problem: Wie viele Blätter sind hier dargestellt?
(10010)2 18 (12)16
unär „Päckchen“ binär dezimalhexadezimalunär „Päckchen“ binär dezimalhexadezimal
dezimal hexadezimal binär (dual) dezimal hexadezimal binär (dual)
64 Stellenwertsysteme
23
00000000111111110
22
00001111000011110
21
00110011001100110
20
01010101010101010
100
01234567890123456
101
00000000001111111
160
0123456789ABCDEF0
24
00000000000000001
161
00000000000000001
Stellenwerte:Stellenwerte:
65 Addiersystem
3
97
0 1
11
1 1
00+
Summand A
Summand B
Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.
Schriftliche Addition im Zehnersystem:Schriftliche Addition im Zehnersystem:
Summand A
Summand B
Schriftliche Addition im Dualsystem:Schriftliche Addition im Dualsystem:
++
66 Addiersystem
312
97
6
0 110
11
0
1 100
0011
+11
Summand A
Summand B
Übertrag
Summe
Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.
Schriftliche Addition im Zehnersystem:Schriftliche Addition im Zehnersystem:
Summand A
Summand B
Übertrag
Summe
Schriftliche Addition im Dualsystem:Schriftliche Addition im Dualsystem:
++
67 Addierschaltung
Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
Rechenbeispiel:
Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
Rechenbeispiel:1 0 0
+ 1 0 1= a
= b
= summe
= a
= b
= summe
68 Addierschaltung
Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
Rechenbeispiel:
Schaltung:
Ansatz 1: Wertetabelle?
Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)
Rechenbeispiel:
Schaltung:
Ansatz 1: Wertetabelle?
1 0 0+ 1 1 0
11 0 0 1
= a
= b
= summe
= a
= b
= summe
a2 a0a1 b2 b0b1
s2 s0s1s3
+
Achtung: 1+1 ergibt 0 mit Übertrag
1 !
69 Addierschaltung: per Wertetabelle
Wertetabelle:
Übungen:
a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!
b) Aus wie vielen Zeilen besteht die Tabelle?
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 00 0 0 0 0 10 0 0 0 1 00 0 0 0 1 10 0 0 1 0 00 0 0 1 0 10 0 0 1 1 00 0 0 1 1 10 0 1 0 0 00 0 1 0 0 1... ... ... ... ... ... ... ... ... ...
1 1 1 1 1 1
70 Addierschaltung: per Wertetabelle
Wertetabelle:
Übungen:
a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!
b) Aus wie vielen Zeilen besteht die Tabelle?
6 Eingangsvariable,
d.h. 26 = 64Kombinationen!Das sind viele...
Wertetabelle:
Übungen:
a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!
b) Aus wie vielen Zeilen besteht die Tabelle?
6 Eingangsvariable,
d.h. 26 = 64Kombinationen!Das sind viele...
a b s
a2 a1 a0 b2 b1 b0 s3 s2 s1 s0
0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...
1 1 1 1 1 1 1 1 1 0Und für 64-Bit- Zahlen?
71 Addierschaltung: per ROM-Speicher
Ansatz 2:
Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).
Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.
a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?
b) Wie groß wäre er für zwei 16-Bit-Zahlen?
Ansatz 2:
Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).
Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.
a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?
b) Wie groß wäre er für zwei 16-Bit-Zahlen?
Adresse Inhalt
a2 a1 a0 b2 b1 b0 s3 s2 s1 s0
0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...
1 1 1 1 1 1 1 1 1 0
26 = 64 Speicherzellen á 4 Bit
232 4 Mrd Speicherzellen á 17 Bit
= 12 GB
72 Addierschaltung: per ROM-Speicher
Ansatz 2:
Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).
Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.
a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?
b) Wie groß wäre er für zwei 16-Bit-Zahlen?
Ansatz 2:
Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).
Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.
a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?
b) Wie groß wäre er für zwei 16-Bit-Zahlen?
Adresse Inhalt
a2 a1 a0 b2 b1 b0 s3 s2 s1 s0
0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...
1 1 1 1 1 1 1 1 1 0Und für 64-Bit- Zahlen?
26 = 64 Speicherzellen á 4 Bit
232 4 Mrd Speicherzellen á 17 Bit
= 12 GB
73 Addierschaltung: Module
Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
Rechenbeispiel:
Schaltung:(mit Modulen)
Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
Rechenbeispiel:
Schaltung:(mit Modulen)
1 0 0+ 1 1 0
11 0 0 1
= a
= b
= summe
= a
= b
= summe
Sind alle Module gleich?b2a2
s2
+
b1a1
s1
+
b0a0
s0
+ü1 ü0ü2
s3
74 Addierschaltung: HA und VA
Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
Rechenbeispiel:
Schaltung:(mit Modulen)
Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)
Rechenbeispiel:
Schaltung:(mit Modulen)
1 0 0+ 1 1 0
11 0 0 1
= a
= b
= summe
= a
= b
= summe
b2a2
s2
VA
b1a1
s1
VA
b0a0
s0
HAü1 ü0ü2
s3
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) den HA:
Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie
möglichst einfache Schaltungen für
a) den HA:
ba
s
HAü
b) den VA:b) den VA:ba
s
VAü üv
a b üv s ü
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
a b s ü0 00 11 01 1
76 Addierschaltung: HA und VA
Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie
möglichst einfache Schaltungen für
a) den HA:
Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie
möglichst einfache Schaltungen für
a) den HA:
ba
s
HAü
b) den VA:b) den VA:ba
s
VAü üv
a b üv s ü
0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
a b s ü0 0 0 00 1 1 01 0 1 01 1 0 1
77 Addierschaltung: HA und VA
Lösung für:
a) den HA:
Lösung für:
a) den HA:
ba
s
HAü
a b s ü0 0 0 00 1 1 01 0 1 01 1 0 1
baü
ba
babas
)()(
78 Addierschaltung: HA und VA
Lösung für:
a) den VA:
Lösung für:
a) den VA:
ba
s
VAü üv
a b üv s ü
0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
vvvv abüüabübabüaü
vvvv abüübaübaübas
79
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)2 + (1011)2 = (10100)2
1
1 0 1 1
0
0
1
0
1
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!
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!
82 Übung 4-Bit-InkrementiererAufgabe:
Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.
Aufgabe:
Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.
Idee:Idee:
1 10
11
0
1 01
0
11
Zahl
Inkrement
Übertrag
Nachfolger
83 Übung 4-Bit-Komparator
Aufgabe:
Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind.
Aufgabe:
Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind.
Idee:Idee:
11 1
11
110
011
Zahl A
Zahl B
Hilf
Ergebnis
0
84 Lösung - Addierer
85 Lösung - Inkrementierer
1 10
11
0
1 01
0
11
Zahl
Inkrement
Übertrag
Nachfolger
Idee:Idee:
konstante 1 (io – VCC)
86 Lösung - Komparator
Idee:Idee:11 1
11
110
011
Zahl A
Zahl B
Hilfsregister
Ergebnis
0
87 Teil 4
Flip-Flops
Bisher: Schaltnetze
Schaltnetz
y = f(x)
Eingangx
Ausgangy
+ jede beliebige Funktion ist berechenbar
- keine Möglichkeit einer Speicherung
88
Schaltwerk
Idee: Rückkopplung
SchaltnetzEingangx
Ausgangy
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 ... !“)
89
90 AlarmanlageProblem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
91
Alarmanlage als zustandsbasiertes System
Alarm
Sirene aus
RücksetzenAnfangszustand
auslösende Aktion
Sirene an
Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,
die erst durch ein manuelles „Rücksetzen“ wieder verstummt!
Zustandsvariable:
Q = 0: „Sirene aus“Q = 1: „Sirene an“
Steuersignale:
S = 1: Alarm auslösen (Setzen)R = 1: Rücksetzen
Zustandsgraph:
Aufgabe: ODER-Selbsthalteschaltung
Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei
einem Alarmsignalden Ausgang dauerhaft auf 1 setzt!
1Eingang S (Setzen)
Zustand Q(Ausgang)
92
Aufgabe: ODER-Selbsthalteschaltung
Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei
einem Alarmsignalden Ausgang dauerhaft auf 1 setzt!
1Eingang S (Setzen)
Zustand Q(Ausgang)
93
Aufgabe: ... mit Rücksetz-Eingang
Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.
1 Ausgang Q&Setzen: S
Rücksetzen: R UND als „Tor“-Schaltung:
bei R = 0: Durchlassbei R = 1: Sperrung.
94
Aufgabe: ... mit Rücksetz-Eingang
Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.
1Setzen: S Ausgang Q&
Rücksetzen: R
Funktionstabelle:
S R QaltQ
0 0 0
0 0 1
0 1 beliebig
1 0 beliebig
1 1 beliebig
UND als „Tor“-Schaltung:
bei R = 0: Durchlassbei R = 1: Sperrung.
Qalt
Übung!
95
Lösung: R-S-Flipflop
Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.
1 Ausgang Q&
Funktionstabelle:
S R Q alt Q
0 0 0 0
0 0 1 1
0 1 beliebig
0
1 0 beliebig
1
1 1 beliebig
0
kurz:
S R Q
0 0 bleibt
Speichern
0 1 0 Rücksetzen
1 0 1 Setzen
1 1 0 (Rücksetzen)
UND als „Tor“-Schaltung:
bei R = 0: Durchlassbei R = 1: Sperrung.
Setzen: S
Rücksetzen: R
96
Dieses RS-Flipflop ist das elementarste Speicherelement (für ein Bit)und erhält ein eigenes Schaltsymbol:
Beschreibung mittels eines Zustandsgraphen:
RS-Flipflop: Zustandsdiagramm
S Q
R ¬Q
0
S ¬R
Setzen
Rücksetzen
R
1 ¬RR ¬S
Funktion: S R Q ¬Q
Speichern: 0 0 bleibt
bleibt
Rücksetzen: 0 1 0 1
Setzen: 1 0 1 0
Verboten!(inkonsistent)
1 1 0 0
97
Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q !
Übung: Zeitverhalten
Zeit
S
R
Q
10
10
10
98
Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q !
Lösung: Zeitverhalten
Zeit
S
R
Q
10
10
10
99
1S Q&
R
RS-Flipflop: Umformung
Umformung des RS-Flipflop ...
Forme mittels DeMorgan um:
Q = ¬R (S Q)
=
100
1S Q&
R
RS-Flipflop: Umformung
Umformung des RS-Flipflop:
Forme mittels DeMorgan um:
Q = ¬R (S Q)
= ¬(¬¬R ¬(S Q))
= ¬ ( R ¬(S Q))
Übung: Aufbau des RS-Flipflop mit 2 NOR-Gattern ?
101
1S Q&
R
RS-Flipflop: Typischer Aufbau
Umformung des RS-Flipflop:
Forme mittels DeMorgan um:
Q = ¬R (S Q)
= ¬ (R ¬(S Q))
1S Q1
R
Aufbau mit 2 NOR-Gattern... ...und typischem Layout:
1
1
S
RQ
¬Q
102
103 Teil 5
Von taktgesteuerten Flip-Flops zu Registern
104 Synchronisation von Flip-Flops
In der Regel müssen bei Speichervorgängenmehrere 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“).
Fallende Flanke
Steigende Flanke
1-Zustand
0-Zustand
105 Taktpegel-gesteuertes RS-Flip-Flop
S
*
0
0
1
1
R
*
0
1
0
1
Q‘
Q
Q
0
1
0
C
0
1
1
1
1
S
Q
R
S
R
&
&
C
Idee: 2 Tore steuern, ob S und R „durchgelassen“ werden.
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
wie bisher
gesperrt
2 Tore
Q
106
Übung: Taktpegel-gesteuertes RS-FF
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.
Aufgabe:
Testen Sie das entwickelte Flip-Flop mit Hades.
Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm.
Impulsdiagramm
Q
107 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.
108 Wunsch: ein Dateneingang D
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 sollte S=0 und R=1 sein.
Durch welche Ergänzung kann dies erreicht werden?
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 sollte S=0 und R=1 sein.
Durch welche Ergänzung kann dies erreicht werden?
1
DS
Q
R
S
R
&
&
CQ
QDC
Q
Taktpegelgesteuertes D-Flipflop
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 Eingangswertnur zu einem definierten Zeitpunkt zu übernehmen!
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 Eingangswertnur zu einem definierten Zeitpunkt zu übernehmen!
QDC
Q
110 Master-Slave-D-Flipflop
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!
QD
Q
vorderflanken-gesteuertes D-Flipflop
D
C 1
Master Slave
Q
Q
QMDC
QSDC
111 Übung: D-Flipflop
C
D
Q
Aufgaben:
a) Ergänzen Sie den Verlauf für Q.
b) Erstellen Sie eine D-Flip-Flop-Testschaltung und überprüfen SieIhr gezeichnetes Ausgangssignal.
Aufgaben:
a) Ergänzen Sie den Verlauf für Q.
b) Erstellen Sie eine D-Flip-Flop-Testschaltung und überprüfen SieIhr gezeichnetes Ausgangssignal.
C
C
C
C D
C
C D
C
CC DC D
Z0
Q = 0
Z3
Q = 0
Z2
Q = 1
Z1
Q = 1
112 Lösung: D-Flip-Flop
C D
CC
C D
CC
CC C DC D
Z0
Q = 0
Z3
Q = 0
Z2
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.
113 Flipflops in Hades
Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:
Übung:
Testen Sie deren Funktionanhand der Schaltung Flipflop-Demo.hds !
Achtung:
NR bedeutet „Not Reset“, ist also ein Reset-Eingangmit 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.
Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:
Übung:
Testen Sie deren Funktionanhand der Schaltung Flipflop-Demo.hds !
Achtung:
NR bedeutet „Not Reset“, ist also ein Reset-Eingangmit 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 Funktionanhand der SchaltungFlipflop-Demo.hds !
(Tipp: NR bedeutet „Not Reset“ im Sinne eines Inverters!)
Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:
Übung:
Testen Sie deren Funktionanhand der SchaltungFlipflop-Demo.hds !
(Tipp: NR bedeutet „Not Reset“ im Sinne eines Inverters!)
pegelgesteuertes D-Flipflop
vorderflanken-gesteuertes D-Flipflop
vorderflanken-gesteuertes
D-Flipflopmit Set- und Reset-Eingang (je negiert)
115 Typische Macken von HadesProbleme ... und Lösungen: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 setzenbzw. 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 Speicherelementmit folgenden Eigenschaften:Ein 4-Bit-Schieberegister ist ein Speicherelementmit folgenden Eigenschaften:
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“.
0 1 0Din 1
Übung: Überlegen Sie, welche Flipflops hierfür günstig sind,
und entwerfen Sie die entsprechende Schaltung!
Übung: Überlegen Sie, welche Flipflops hierfür günstig sind,
und entwerfen Sie die entsprechende Schaltung!
Dout
117 Lösung: 4-Bit-Schieberegister
118 Übung: Schieberegister-Baustein
4 parallele Eingänge (zum „Laden“)
serieller Daten-Eingang
Umschalter „Shift Enable“:1:Shift / 0:Load
Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung:[rechte Maustaste] [create] [create by name] [hades.models.register.ShiftRegister]
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! Übung: Öffnen Sie die Schieberegister-Demo und testen Sie diesen Baustein!
4 parallele Ausgänge
119 Serielle DatenübertragungAufgabe: Mit nur einer einzigen Leitung sollen Daten von einem Sender zu einem Empfänger übertragen werden.
Dies lässt sich seriell mit Schieberegistern realisieren:
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:
0 1 1 0
paralleles Laden
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 Übertragen
120 Serielles Addierwerk
0
00 0 1 1 VA
Ein serielles 4-Bit-Addierwerk lässt sich wie dargestellt mit Hilfe eines Volladdierers und Schieberegisterbausteinen aufbauen.Ein serielles 4-Bit-Addierwerk lässt sich wie dargestellt mit Hilfe eines Volladdierers und Schieberegisterbausteinen aufbauen.
0 1 1 0 0
1
121 Übung: Serielles AddierwerkEntwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern.
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.
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 Funktionanhand der Schaltung4-Bit-Register-Demo.hds !
Sie finden bei Hades in der RTL (Register Transfer Library) das folgende 4-Bit-Register (ohne Schiebefunktion):
Übung:
Testen Sie seine Funktionanhand der Schaltung4-Bit-Register-Demo.hds !
123 Aufgabe: 4-Bit-Zähler
Mit einem Register und einem Inkrementierer lässt sich ein Zähler bauen:
Übung:
Definieren Sie einen 4-Bit-Inkrementierer(in Modulbauweise, wie beim 4-Bit-Addierer)und konstruieren Sie eineentsprechende Zähler-Schaltung !
Mit einem Register und einem Inkrementierer lässt sich ein Zähler bauen:
Übung:
Definieren Sie einen 4-Bit-Inkrementierer(in Modulbauweise, wie beim 4-Bit-Addierer)und konstruieren Sie eineentsprechende Zähler-Schaltung !
4-Bit-INC
CR 4-Bit-Reg.
Takt
Q3
Q2
Q1
Q0
124 Aufgabe: Dezimal-Zähler
Durch gezieltes Rücksetzen beim Auftreten der Zahl 10kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden.
Übung:
Ergänzen Sie den 4-Bit-Zählerentsprechend!
Durch gezieltes Rücksetzen beim Auftreten der Zahl 10kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden.
Übung:
Ergänzen Sie den 4-Bit-Zählerentsprechend!
4-Bit-INC
10-Erkennung
C
R 4-Bit-Reg.Takt
125
Lösung: Dezimal-Zähler mit Anzeige
126 Aufgabe: Elektronischer Würfel
3-Bit-INC
6-Erkennung
CR 3-Bit-Reg.
Takt-generator
Dekoderfür Augen-
zahlen
127 Würfel-Codierung
Augen
Zustands-code
Dualzahl LEDs
x2 x1 x0 A B C D1 0 0 0 0 0 0 0 1
2 1 0 0 1 1 0 0 0
3 2 0 1 0 1 0 0 1
4 3 0 1 1 1 1 0 0
5 4 1 0 0 1 1 0 1
6 5 1 0 1 1 1 1 0
A B
C D C
B A
A = B = C =D =
Ü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:
128 Würfel-Codierung
Augen
Zustands-code
Dualzahl LEDs
x2 x1 x0 A B C D1 0 0 0 0 0 0 0 1
2 1 0 0 1 1 0 0 0
3 2 0 1 0 1 0 0 1
4 3 0 1 1 1 1 0 0
5 4 1 0 0 1 1 0 1
6 5 1 0 1 1 1 1 0
A B
C D C
B A
A = x2 + x1 + x0
B = x2 + x1 x0
C = x2 x0
D = x0
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: