Schaltwerke Klaus Becker Schaltsysteme KB Zustandsbasierte Schaltsysteme Schaltsysteme KB Teil 1 Flip-Flops An der Tankstelle Schaltsysteme Ziel: Steuerung der Kontrolllampe einer Zapfsäule nach D.
Download ReportTranscript Schaltwerke Klaus Becker Schaltsysteme KB Zustandsbasierte Schaltsysteme Schaltsysteme KB Teil 1 Flip-Flops An der Tankstelle Schaltsysteme Ziel: Steuerung der Kontrolllampe einer Zapfsäule nach D.
Slide 1
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 2
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 3
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 4
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 5
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 6
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 7
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 8
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 9
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 10
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 11
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 12
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 13
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 14
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 15
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 16
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 17
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 18
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 19
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 20
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 21
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 22
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 23
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 24
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 25
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 26
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 27
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 28
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 29
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 30
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 31
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 32
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 33
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 34
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 35
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 36
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 37
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 38
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 39
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 40
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 41
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 42
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 43
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 44
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 45
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 46
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 47
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 48
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 49
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 50
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 51
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 52
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 53
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 54
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 55
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 56
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 57
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 58
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 59
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 60
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 61
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 62
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 63
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 64
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 65
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 66
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 67
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 68
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 69
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 70
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 71
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 72
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 73
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 74
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 75
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 76
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 77
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 2
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 3
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 4
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 5
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 6
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 7
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 8
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 9
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 10
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 11
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 12
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 13
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 14
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 15
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 16
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 17
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 18
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 19
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 20
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 21
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 22
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 23
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 24
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 25
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 26
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 27
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 28
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 29
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 30
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 31
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 32
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 33
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 34
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 35
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 36
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 37
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 38
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 39
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 40
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 41
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 42
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 43
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 44
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 45
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 46
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 47
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 48
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 49
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 50
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 51
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 52
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 53
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 54
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 55
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 56
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 57
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 58
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 59
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 60
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 61
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 62
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 63
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 64
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 65
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 66
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 67
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 68
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 69
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 70
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 71
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 72
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 73
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 74
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 75
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 76
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...
Slide 77
Schaltwerke
Klaus Becker
2003
Schaltsysteme
2
KB
Zustandsbasierte Schaltsysteme
Schaltsysteme
3
KB
Teil 1
Flip-Flops
An der Tankstelle
Schaltsysteme
4
Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
KB
An der Tankstelle
Schaltsysteme
5
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.
KB
6
Zapfsäule als zustandsbasiertes System
freigeben
einhängen
auslösende Aktion
einhängen
Schaltsysteme
Anfangszustand
bereit
gesperrt
freigeben
Zustand
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.
KB
Binäre Kodierung
7
freigeben
einhängen
Schaltsysteme
einhängen
bereit
gesperrt
freigeben
Zustände:
Q = 0: „bereit“
Q = 1: „gesperrt“
Steuersignale:
KB
S: einhängen
R: freigeben
Neuer Zustand
Aktueller Zustand
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
1
1
1
1
0
1
8
Entwicklung einer Schaltung
Q
Q‘
0
0
0
1
0
1
1
1
0
1
1
1
S
Schaltsysteme
nichts machen
nichts machen
freigeben
freigeben
einhängen
einhängen
einhängen und freigeben
einhängen und freigeben
Q' S Q
KB
R
Q
S
1
Q‘
Schaltsysteme
9
Entwicklung einer Schaltung
S
R
Q
Q‘
nichts machen
nichts machen
0
0
0
0
0
1
0
1
freigeben
freigeben
0
0
1
1
0
1
0
0
einhängen
einhängen
1
1
0
0
0
1
1
1
einhängen und freigeben
einhängen und freigeben
Q
Q' (S Q) R
S
R
KB
1
&
Q‘
10
Entwicklung einer Schaltung
Q
Q' (S Q) R
1
S
Schaltsysteme
R
&
Q‘
1
Q‘
Q
Q' S Q R
S
1
R
S
Q 1
Q' S Q R
KB
R
1
Q‘
Überprüfung der Schaltung
11
S
1
P
Schaltsysteme
Bedingung: P = Q
R
1
Q
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
KB
S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
unzulässig
Flip-Flop
12
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Zustand
bewahren
0
0
1
1
0
1
0
0
Zustand
zurücksetzen
1
1
0
0
0
1
1
1
Zustand
setzen
1
1
1
1
0
1
Systemverhalten
Eine Schaltung, die zwei stabile Zustände besitzt (bistabile
Kippschaltung) wird als Flip-Flop bezeichnet.
KB
Flip-Flop als Speicherelement
13
Schaltsysteme
S
R
1
1
P=Q
Q
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Flip-Flop-System
Speicherelement
S
R
KB
S
Q
Schaltsymbol
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.
Zustandsgraph
14
S = 0; R = 0
S = 0; R = 1
S = 0; R = 0
S = 1; R = 0
Schaltsysteme
S = 1; R = 0
S
R
Q‘
Funktion
0
0
Q
Bewahren
Q=0
Q=1
S = 0; R = 1
0
1
1
0
1
1
0
1
Rücksetzen
S
Setzen
S=R=1
vermeiden
S
Q=0
KB
R
Q=1
R
Übung
15
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q‘
Funktion
0
0
Q
Bewahren
0
1
0
Rücksetzen
1
0
1
Setzen
1
1
Speicherelement
Aufgabe:
Bauen Sie das Flip-Flop-System auf und testen Sie sein
Verhalten.
KB
Übung
16
Schaltsysteme
S
R
&
Q
&
P
System
S
R
Q
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
Q‘
Funktion
Systemverhalten
Aufgabe:
KB
Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie
anschließend die Schaltung auf und testen Sie sie.
Schaltsysteme
17
KB
Teil 6
Taktgesteuerte Flip-Flops
Asynchrone Schaltung
18
Schaltsysteme
S
R
1
1
Flip-Flop-System
P=Q
Q
S
R
Q
Q‘
Funktion
0
0
0
0
0
1
0
1
Speichern
0
0
1
1
0
1
0
0
Rücksetzen
1
1
0
0
0
1
1
1
Setzen
1
1
1
1
0
1
-
Systemverhalten
Das entwickelte Flip-Flop-System ist eine asynchrone Schaltung. Ein
Zustandswechsel erfolgt erst, wenn die Signale an den betreffenden
Stellen in der Schaltung eintreffen.
KB
19
Synchronisation von Flip-Flops
Schaltsysteme
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
Steigende
Flanke
KB
Fallende
Flanke
Taktgesteuertes Flip-Flop
20
Schaltsysteme
Verhaltensspezifikation:
KB
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Taktgesteuertes Flip-Flop
21
Schaltsysteme
Verhalten:
KB
Realisierung:
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
S
&
C
R
&
S
R
Q
Übung
22
Aufgabe:
Schaltsysteme
Bauen Sie das entwickelte
Flip-Flop auf und testen Sie es.
Ergänzen Sie anschließend das
unten dargestellte
Impulsdiagramm.
S
&
C
R
&
S
R
C
S
R
Q
KB
Impulsdiagramm
Q
Master-Slave-Flip-Flop
23
Schaltsysteme
Master
S
R
C
KB
&
&
S
Slave
&
QM
R
&
1
S
R
QS
Übung
24
Schaltsysteme
Aufgabe:
KB
Testen Sie die FlipFlop-Schaltung und
beschreiben Sie das
Verhalten eines
Master-Slave-FlipFlops mit Hilfe eines
Zustandsgraphen.
QM = 0
QS = 0
QM = 1
QS = 0
QM = 0
QS = 1
QM = 1
QS = 1
Flankengesteuertes D-Flip-Flop
25
Schaltsysteme
D
&
&
&
Q
&
&
P=Q
C
&
hades.models.flipflops.Dff
KB
Übung
Schaltsysteme
26
C
D
Q
Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung.
Erzeugen Sie dann die im Impulsdiagramm dargestellten
Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
KB
Lösung - Taktsteuerung
Schaltsysteme
27
C
S
R
KB
Q
C
S
R
Q‘
0
*
*
Q
1
0
0
Q
1
0
1
0
1
1
0
1
1
1
1
CS
S=R=1
vermeiden
CR
CS
Q=0
Q=1
CR
Lösung – MS-Flip-Flop
28
CS
CR
Schaltsysteme
CS
QM = 0
QS = 0
QM = 1
QS = 0
CR
C
QM = 0
QS = 1
C
CS
QM = 1
QS = 1
CR
CS
KB
CS
Ein Zustandswechsel
erfolgt beim Master-SlaveFlip-Flop um eine halbe
Taktperiode verzögert.
Lösung – D-Flip-Flop
Schaltsysteme
29
C
D
Q
KB
Flankengesteuertes D-Flip-Flop
30
C
C
CD
Z0
Z1
Q=0
Schaltsysteme
C
Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.
Q=1
CD
CD
C
Z3
Z2
Q=0
Q=1
CD
C
C
C
D
Q
KB
0
3
0
3
0
1
2
3
0
3
0
1
2
1
2
3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister.
Schaltsysteme
0
0
1
1
0
/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 FlipFlop übernimmt den Wert am Dateneingang, der Wert des letzten
Flip-Flops geht (hier) verloren.
KB
32
Lösung: Schieberegister
Schaltsysteme
0
KB
0
1
1
0
Schaltsysteme
33
Übung: Schieberegister
hades.models.register.ShiftRegister
Testen Sie den vordefinierten Schieberegister-Baustein von
Hades. Welche Bedeutung haben die verschiedenen Eingänge?
KB
34
Schieberegister-Baustein
Shift-Eingang
Schaltsysteme
Takt
Eingang zum Laden
Umschalten:
Laden/Shift
Reset
KB
Übung: Addierwerk
35
Schaltsysteme
Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie
vordefinierte Schieberegisterbausteine, um die Dualzahlen
zwischenzuspeichern.
KB
0
0
1
1
0
0
0
0
1
1
0
VA
1
Schaltsysteme
36
KB
Lösung – Addierwerk
Schaltsysteme
37
KB
Teil 2
Schaltwerke
38
Universalregister
Ziel ist es, ein steuerbares Register zu entwerfen, das folgende
Funktionalitäten ausweist:
Schaltsysteme
/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.
KB
Systementwurf
39
ENA
Schaltsysteme
NR
Q
D
clk
Zum Speichern wird ein flankengesteuertes D-Flip-Flop benutzt.
Das System hat einen Dateneingang D und einen Datenausgang Q.
Das System hat zusätzliche Steuereingänge ENA und NR.
KB
Systemzustände
40
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
*
Das System kann zwei Zustände einnehmen:
Z0: QFF = 0 bzw. Z1: QFF = 1
Man kommt vom Zustand Z0 in den Zustand Z1, wenn ENA = 1
und NR = 1 und D = 1, ansonsten bleibt man im Zustand Z0.
KB
Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1
oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
Schaltungsentwurf
41
ENA NR D
*
ENA
ENA NR D
Schaltsysteme
Z0
*
ENA
NR
D
KB
Z1
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Übung
42
ENA
Schaltsysteme
NR
KB
wenn QFF = 1 und ENA = 0
oder
1
wenn ENA = 1 und NR = 1 und D = 1
D
clk
Entwickeln Sie eine Schaltung zur Realisierung des entworfenen
Systems.
Q
Lösung
43
ENA
Schaltsysteme
NR
KB
D
clk
wenn QFF = 1 und ENA = 0
oder
wenn ENA = 1 und NR = 1 und D = 1
1
Q
Exkurs: Register-Baustein
Schaltsysteme
44
KB
hades.models.rtlib.register.RegRE
CLK:
NR:
Takt-Eingang (Register reagiert b. steigender Taktflanke)
Reset-Eingang (NR = 0: Reset)
ENA:
D:
Q:
Enable-Eingang (ENA = 1: Register bereit)
Daten-Eingang
Daten-Ausgang
45
Übung
hades.models.rtlib.io.IpinVector
Schaltsysteme
hades.models.rtlib.register.RegRE
hades.models.rtlib.io.OpinVector
Testen Sie den Register-Baustein.
KB
46
Das Register als Schaltwerk
Speicherelemente
Schaltsysteme
DeltaSchaltnetz
Eingaben
Ausgabe
Speicherelement: Zwischenspeicherung des Systemzustands
KB
Delta-Schaltnetz: Berechnung des neuen Zustands
Schaltwerke
47
Speicherelemente
Schaltsysteme
...
...
...
DeltaSchaltnetz
...
LambdaSchaltnetz
...
Eingaben
Ausgaben
Speicherelemente: Zwischenspeicherung des Systemzustands
Delta-Schaltnetz: Berechnung des neuen Zustands
Lambda-Schaltnetz: Berechnung der Ausgaben
KB
...
Das Register als Automat
48
ENA NR D
*
ENA
ENA
Schaltsysteme
NR
D
ENA NR D
Z0
Z1
Q=0
Q=1
*
Ein sequentiell arbeitendes, zustandsbasiertes System wird in der
Informatik Automat genannt.
KB
Q
49
Bestandteile eines Automaten
ENA NR D
*
ENA
Schaltsysteme
ENA NR D
Z0
Z1
Q=0
Q=1
*
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, ..., (Z0, 111) Z1
KB
Ausgabefunktion:
: (Z0, 000) 0, ..., (Z0, 111) 1
Automatendefinition
Schaltsysteme
50
Ein endlicher Automat ist ein Tupel A = (Z, Za, E, A, , )
bestehend aus
- einer endlichen Menge Z von Zuständen,
- einem Anfangszustand ZaZ,
- einer endlichen Menge E von Eingabewerten,
- einer endlichen Menge A von Ausgabewerten,
- einer Überführungsfunktion : Z x E Z und
- einer Ausgabefunktion : Z x E A.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
KB
Ausgabefunktion:
: (Z0, 000) 0, (Z0, 111) 0, ...
Mealy-Automat
51
Schaltsysteme
Ein Mealy-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z x E A, die von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Mealy):
KB
: (Z0, 000) 0, (Z0, 111) 0, ...
Moore-Automat
52
Schaltsysteme
Ein Moore-Automat ist ein endlicher Automat mit einer
Ausgabefunktion : Z A, die nicht von den Eingaben abhängt.
Zustandsmenge:
Z = {Z0, Z1}
Anfangszustand:
Za = Z0
Eingabemenge:
E = {000, 001, ..., 111}
Ausgabemenge:
A = {0, 1}
Überführungsfunktion: : (Z0, 000) Z0, (Z0, 111) Z1, ...
Ausgabefktn (Moore):
KB
: Z0 0, Z1 1
Schaltsysteme
53
KB
Teil 3
Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
Schaltsysteme
Ziel ist es, eine steuerbare Ampel zu entwerfen, die folgende
Bedingungen erfüllt
/1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und
Nachtbetrieb eingestellt werden.
/2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle
Phasen sollen der Einfachheit halber gleich lang sein. Ein
Phasenwechsel soll mit einem Taktsignal ausgelöst werden.
/3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.
KB
Ein-/Ausgabe-Modellierung
55
Schaltsysteme
ARot
E
AGelb
AGruen
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus; ...)
KB
Zustandsbasierte Modellierung
56
ZRot
ARot = 1
AGelb = 0
AGruen = 0
Schaltsysteme
E
ZAus
E
ARot = 0
AGelb = 0
AGruen = 0
ZRotGelb
E
ARot = 1
AGelb = 1
AGruen = 0
E
E
E
EE
E
ZGelb
ARot = 0
AGelb = 1
AGruen = 0
KB
E
E
ZGruen
ARot = 0
AGelb = 0
AGruen = 1
ARot
AGelb
AGruen
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: E
(E = 0: Nachtbetrieb; E = 1: Tagbetrieb)
KB
Ausgaben: ARot, AGelb, AGruen
(ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus)
Zustände:
ZRot:
ZRotGelb:
ZGelb:
ZGruen:
ZAus:
Z2Z1Z0
100
110
010
001
000
Übersetzung in ein Schaltwerk
58
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
DeltaSchaltnetz
E
Z2´
Z2
Z1´
Z1
Z0´
Z0
ARot
LambdaSchaltnetz
AGelb
AGruen
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Übersetzung in ein Schaltwerk
59
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
Z2
Z1
Z0
E
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
Z2‘ Z1‘ Z0‘
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
Z2‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E
Z1‘ =
Z2 Z1 Z0 E +
Z2 Z1 Z0 E +
Z2 Z1 Z0
Z0‘ =
Z2 Z1 Z0 E
Übersetzung in ein Schaltwerk
60
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
Z2
Z1
Z0
Aro
Age
Agr
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
Arot = Z2
Agelb = Z1
Agruen = Z0
Schaltsysteme
61
KB
Ampel-Schaltung
Automatensimulator
Schaltsysteme
62
hades.models.fsm.FsmWrapper
KB
Schaltsysteme
63
KB
Automatensimulator
64
Übung
Schaltsysteme
Testen Sie das entwickelte Ampelsystem mit dem Automatensimulator von Hades.
KB
Schaltsysteme
65
KB
Teil 4
Miniprojekt: Zähler
66
Miniprojekt „Zähler“
Schaltsysteme
Ziel ist es, eine Schaltung zur Realisierung eines Zählers zu
entwickeln, der folgende Eigenschaften hat:
/1/ Der Zähler kann mit Hilfe eines Steuersignals auf Hoch- und
Runterzählen eingestellt werden.
/2/ Beim Hochzählen werden die Zahlen 0 1 2 ... 9 0
durchlaufen und auf einem Display angezeigt.
/3/ Beim Runterzählen werden die Zahlen in der umgekehrten
Reihenfolge durchlaufen: 0 9 8 ... 1 0.
/4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei
jedem Stand auf Null gesetzt werden.
KB
67
Übung
Schaltsysteme
Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine
Zustandsmodellierung durch.
KB
68
Übung
Schaltsysteme
Testen Sie das entwickelte Modell mit Hilfe des Automatensimulators von Hades.
KB
Übung
69
Schaltsysteme
Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der
nur bis 3 zählt). Orientieren Sie sich an den eingeführten
Schritten:
KB
Schritt 1: Binäre Kodierung
Schritt 2: Schaltwerkentwurf
Schritt 3: Entwicklung von Schalttermen für die Überführungsfktn
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
Lösungsvorschlag
70
Z1
Schaltsysteme
R
S1 = 0
S0 = 1
!R&W
R
Z0
!R&W
!R&!W|R !R&!W
R
S1 = 0
S0 = 0
!R&!W
W
!R&W|R
Z3
S1 = 1
S0 = 1
KB
S1
Z2
S1 = 1
S0 = 0
!R&!W
!R&W
S0
Schaltsysteme
71
KB
Lösungsvorschlag
Lösungsvorschlag
72
Schritt 1: Binäre Kodierung
Schaltsysteme
Eingaben: R, W
(R = 1: Null setzen; R = 1: Zählen)
(W = 1: Hochzählen; W = 0: Runterzählen)
KB
Ausgaben: S1, S0
(S1 S0 Darstellung als Dualzahl)
Zustände:
Z0:
Z1:
Z2:
Z3:
U 1U0
00
01
10
11
Lösungsvorschlag
73
Schritt 2: Schaltwerkentwurf
Schaltsysteme
Zustandsvariablen
nachher
S1
DeltaSchaltnetz
R
U1´
U1
U0´
U0
LambdaSchaltnetz
S0
W
Eingaben
KB
Zustandsvariablen
vorher
Ausgaben
Lösungsvorschlag
74
Schaltsysteme
Schritt 3: Entwicklung von Schalttermen für die
Überführungsfunktion ( Delta-Schaltnetz)
KB
U1
U0
R
W U 1‘ U 0‘
*
0
0
1
1
0
0
1
1
*
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
*
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
U 1‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
U 0‘ =
U1 U0 R W +
U1 U0 R W +
U1 U0 R W +
U1 U0 R W
Lösungsvorschlag
75
Schaltsysteme
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion
( Lambda-Schaltnetz)
KB
U1
U0
R
W
S1
S0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
0
0
1
1
0
1
0
1
S1 = U1
S0 = U0
Schaltsysteme
76
KB
Lösungsvorschlag
Literaturhinweise
77
Gasper, Leiß, Spengler, Stimm: Technische und theoretische
Informatik. Bayerischer Schulbuch-Verlag 1992.
Schaltsysteme
Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler
Verlag 1988.
KB
Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson
Studium 2003.
...