Präsentation herunterladen
1
Schaltwerke Klaus Becker 2003
2
Zustandsbasierte Schaltsysteme
3
Teil 1 Flip-Flops
4
An der Tankstelle Ziel: Steuerung der Kontrolllampe einer Zapfsäule
nach D. Jonietz: Lehrprobenentwurf
5
An der Tankstelle 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.
6
Zapfsäule als zustandsbasiertes System
freigeben einhängen auslösende Aktion einhängen Anfangszustand bereit gesperrt Zustand freigeben Grundeigenschaft zustandsbasierter Systeme: Das Verhalten des Systems hängt nicht nur von den auslösenden Aktionen (freigeben / einhängen) ab, das Verhalten hängt auch von internen Zuständen des Systems (bereit / gesperrt) ab.
7
Binäre Kodierung nichts machen nichts machen freigeben freigeben
einhängen einhängen Neuer Zustand Aktueller Zustand bereit gesperrt nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 freigeben Zustände: Q = 0: „bereit“ Q = 1: „gesperrt“ Steuersignale: S: einhängen R: freigeben
8
Entwicklung einer Schaltung
nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R Q 0 1 Q‘ 0 1 1 1 Q 1 Q‘ S
9
Entwicklung einer Schaltung
nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 Q 1 S & Q‘ R
10
Entwicklung einer Schaltung
Q 1 S & Q‘ R Q 1 S 1 Q‘ R S 1 Q 1 Q‘ R
11
Überprüfung der Schaltung
1 P Bedingung: P = Q 1 Q R S = 1; R = 0; P = ..; Q = .. P‘ = 0; Q‘ = 1 S = 0; R = 1; P = ..; Q = .. P‘ = 1; Q‘ = 0 S = 0; R = 0; P = 1; Q = 0 P‘ = 1; Q‘ = 0 S = 0; R = 0; P = 0; Q = 1 P‘ = 0; Q‘ = 1 S = 1; R = 1; P = 0; Q = 1 P‘ = 0; Q‘ = 0 unzulässig S = 1; R = 1; P = 1; Q = 0 P‘ = 0; Q‘ = 0
12
Flip-Flop S S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 Funktion 1 P = Q
Zustand bewahren Zustand zurücksetzen 1 Q R Zustand setzen Flip-Flop-System Systemverhalten Eine Schaltung, die zwei stabile Zustände besitzt (bistabile Kippschaltung) wird als Flip-Flop bezeichnet.
13
Flip-Flop als Speicherelement
1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1 Q R Flip-Flop-System Speicherelement S Q R 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.
14
Zustandsgraph S 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen Q = 0
1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen Q = 0 Q = 1 S = 0; R = 1 S R S = R = 1 vermeiden S Q = 0 Q = 1 R
15
Übung S 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1
1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1 Q R Flip-Flop-System Speicherelement Aufgabe: Bauen Sie das Flip-Flop-System auf und testen Sie sein Verhalten.
16
Übung S S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ Funktion & Q & P R Aufgabe:
System Systemverhalten Aufgabe: Überlegen Sie zunächst, welche Werte Q´ annimmt. Bauen Sie anschließend die Schaltung auf und testen Sie sie.
17
Taktgesteuerte Flip-Flops
Teil 6 Taktgesteuerte Flip-Flops
18
Asynchrone Schaltung S S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 - -
Funktion 1 P = Q Speichern Rücksetzen 1 Q R Setzen Flip-Flop-System 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.
19
Synchronisation von Flip-Flops
In der Regel müssen bei Speichervorgängen mehrere Bits gleich-zeitig ü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 Fallende Flanke
20
Taktgesteuertes Flip-Flop
Verhaltensspezifikation: C 1 S * 1 R * 1 Q‘ Q 1 C S S = R = 1 vermeiden C R C S Q = 0 Q = 1 C R
21
Taktgesteuertes Flip-Flop
Verhalten: Realisierung: C 1 S * 1 R * 1 Q‘ Q 1 S & S Q C R & R
22
Übung Aufgabe: Bauen Sie das entwickelte Flip-Flop auf und testen Sie es. Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm. S & S Q C R & R C S R Q Impulsdiagramm
23
Master-Slave-Flip-Flop
& & QM QS S S R R & & R C 1
24
Übung Aufgabe: Testen Sie die Flip-Flop-Schaltung und beschreiben Sie das Verhalten eines Master-Slave-Flip-Flops mit Hilfe eines Zustandsgraphen. QM = 0 QS = 0 QM = 1 QS = 0 QM = 0 QS = 1 QM = 1 QS = 1
25
Flankengesteuertes D-Flip-Flop
& D & & Q C & & P = Q & hades.models.flipflops.Dff
26
Übung C D Q Aufgabe: Erstellen Sie zunächst eine D-Flip-Flop-Testschaltung. Erzeugen Sie dann die im Impulsdiagramm dargestellten Eingangssignale und ergänzen Sie das Q-Ausgangssignal.
27
Lösung - Taktsteuerung
C 1 S * 1 R * 1 Q‘ Q 1 C S S = R = 1 vermeiden C R C S Q = 0 Q = 1 C R C S R Q
28
Lösung – MS-Flip-Flop Ein Zustandswechsel erfolgt beim Master-Slave-Flip-Flop um eine halbe Taktperiode verzögert. C S C R C S QM = 0 QS = 0 QM = 1 QS = 0 C R C C C S QM = 0 QS = 1 QM = 1 QS = 1 C R C S C S
29
Lösung – D-Flip-Flop C D Q
30
Flankengesteuertes D-Flip-Flop
C C Ein Zustandswechsel kann nur bei einer steigenden Taktflanke erfolgen. C D Z0 Q = 0 Z1 Q = 1 C C D C D C Z3 Q = 0 Z2 Q = 1 C D C C C D Q 3 3 1 2 3 3 1 2 1 2 3
31
Übung: Schieberegister
Entwerfen und testen Sie ein 4-Bit-Schieberegister. 1 1 /1/ Das Register kann 4 Bit mit Hilfe von Flip-Flops speichern. /2/ Das Register hat einen Dateneingang, über den es neue Werte aufnehmen kann. /3/ Mit jeder steigenden Taktflanke werden die gespeicherten Werte um eine Einheit nach rechts verschoben. Das erste Flip-Flop übernimmt den Wert am Dateneingang, der Wert des letzten Flip-Flops geht (hier) verloren.
32
Lösung: Schieberegister
1 1
33
Übung: Schieberegister
hades.models.register.ShiftRegister Testen Sie den vordefinierten Schieberegister-Baustein von Hades. Welche Bedeutung haben die verschiedenen Eingänge?
34
Schieberegister-Baustein
Shift-Eingang Takt Eingang zum Laden Umschalten: Laden/Shift Reset
35
Übung: Addierwerk Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern. 1 1 1 1 VA 1
36
Lösung – Addierwerk
37
Teil 2 Schaltwerke
38
Universalregister Ziel ist es, ein steuerbares Register zu entwerfen, das folgende Funktionalitäten ausweist: /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.
39
Systementwurf ENA 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.
40
Systemzustände ENA NR D * ENA 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. Man bleibt im Zustand Z1, wenn ENA = 1 und NR = 1 und D = 1 oder wenn ENA = 0, ansonsten wird in Z0 gewechselt.
41
Schaltungsentwurf Z0 Z1 ENA NR D * ENA ENA NR D *
wenn QFF = 1 und ENA = 0 ENA 1 oder Q NR wenn ENA = 1 und NR = 1 und D = 1 D clk
42
Übung wenn QFF = 1 und ENA = 0 ENA 1 oder Q NR wenn ENA = 1 und NR = 1 und D = 1 D clk Entwickeln Sie eine Schaltung zur Realisierung des entworfenen Systems.
43
Lösung wenn QFF = 1 und ENA = 0 ENA 1 oder Q NR
wenn ENA = 1 und NR = 1 und D = 1 D clk
44
Exkurs: Register-Baustein
hades.models.rtlib.register.RegRE CLK: Takt-Eingang (Register reagiert b. steigender Taktflanke) NR: Reset-Eingang (NR = 0: Reset) ENA: Enable-Eingang (ENA = 1: Register bereit) D: Daten-Eingang Q: Daten-Ausgang
45
Übung Testen Sie den Register-Baustein.
hades.models.rtlib.io.IpinVector hades.models.rtlib.register.RegRE hades.models.rtlib.io.OpinVector Testen Sie den Register-Baustein.
46
Das Register als Schaltwerk
Delta- Schaltnetz Speicherelemente Eingaben Ausgabe Speicherelement: Zwischenspeicherung des Systemzustands Delta-Schaltnetz: Berechnung des neuen Zustands
47
Schaltwerke Speicherelemente: Zwischenspeicherung des Systemzustands
... ... ... Delta- Schaltnetz Lambda- Schaltnetz ... ... ... Eingaben Ausgaben Speicherelemente: Zwischenspeicherung des Systemzustands Delta-Schaltnetz: Berechnung des neuen Zustands Lambda-Schaltnetz: Berechnung der Ausgaben
48
Das Register als Automat
ENA NR D * ENA ENA ENA NR D NR Z0 Z1 Q Q = 0 Q = 1 D * Ein sequentiell arbeitendes, zustandsbasiertes System wird in der Informatik Automat genannt.
49
Bestandteile eines Automaten
ENA NR D * ENA 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 Ausgabefunktion: : (Z0, 000) 0, ..., (Z0, 111) 1
50
Automatendefinition 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, ... Ausgabefunktion: : (Z0, 000) 0, (Z0, 111) 0, ...
51
Mealy-Automat 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): : (Z0, 000) 0, (Z0, 111) 0, ...
52
Moore-Automat 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): : Z0 0, Z1 1
53
Miniprojekt: Ampelsteuerung
Teil 3 Miniprojekt: Ampelsteuerung
54
Miniprojekt „Ampelsteuerung“
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.
55
Ein-/Ausgabe-Modellierung
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; ...)
56
Zustandsbasierte Modellierung
ZRot ARot = 1 AGelb = 0 AGruen = 0 E E ZRotGelb ARot = 1 AGelb = 1 AGruen = 0 ARot E ZAus ARot = 0 AGelb = 0 AGruen = 0 E E E AGelb ZGruen E AGruen ARot = 0 AGelb = 0 AGruen = 1 E E E ZGelb E ARot = 0 AGelb = 1 AGruen = 0
57
Übersetzung in ein Schaltwerk
Schritt 1: Binäre Kodierung Eingaben: E (E = 0: Nachtbetrieb; E = 1: Tagbetrieb) Ausgaben: ARot, AGelb, AGruen (ARot = 1: Rot-Lampe an; ARot = 0: Rot-Lampe aus) Zustände: Z2Z1Z ZRot: ZRotGelb: ZGelb: ZGruen: ZAus: 000
58
Übersetzung in ein Schaltwerk
Schritt 2: Schaltwerkentwurf Zustandsvariablen nachher Zustandsvariablen vorher Z2´ Z2 ARot Z1´ Z1 Delta- Schaltnetz Lambda- Schaltnetz Z0´ Z0 AGelb E AGruen Eingaben Ausgaben
59
Übersetzung in ein Schaltwerk
Schritt 3: Entwicklung von Schalttermen für die Überführungsfunktion ( Delta-Schaltnetz) Z2 Z1 Z0 E Z2‘ Z1‘ Z0‘ 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
60
Übersetzung in ein Schaltwerk
Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion ( Lambda-Schaltnetz) Z2 Z1 Z0 Aro Age Agr Arot = Z2 Agelb = Z1 Agruen = Z0
61
Ampel-Schaltung
62
Automatensimulator hades.models.fsm.FsmWrapper
63
Automatensimulator
64
Übung Testen Sie das entwickelte Ampelsystem mit dem Automaten-simulator von Hades.
65
Teil 4 Miniprojekt: Zähler
66
Miniprojekt „Zähler“ 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 0 durchlaufen und auf einem Display angezeigt. /3/ Beim Runterzählen werden die Zahlen in der umgekehrten Reihenfolge durchlaufen: 0 9 0. /4/ Mit Hilfe eines weiteren Steuersignals kann der Zähler bei jedem Stand auf Null gesetzt werden.
67
Übung Führen Sie zunächst eine Ein-/Ausgabe-Modellierung und eine Zustandsmodellierung durch.
68
Übung Testen Sie das entwickelte Modell mit Hilfe des Automaten-simulators von Hades.
69
Übung Entwickeln Sie ein Schaltwerk für einen vereinfachten Zähler (der nur bis 3 zählt). Orientieren Sie sich an den eingeführten Schritten: 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
70
Lösungsvorschlag Z1 R !R&W !R&W R S1 !R&!W|R !R&!W Z0 Z2 R !R&!W !R&!W
S1 = 0 S0 = 1 !R&W !R&W R S1 !R&!W|R !R&!W Z0 Z2 R S1 = 0 S0 = 0 S1 = 1 S0 = 0 !R&!W !R&!W W S0 !R&W|R !R&W Z3 S1 = 1 S0 = 1
71
Lösungsvorschlag
72
Lösungsvorschlag Schritt 1: Binäre Kodierung
Eingaben: R, W (R = 1: Null setzen; R = 1: Zählen) (W = 1: Hochzählen; W = 0: Runterzählen) Ausgaben: S1, S (S1 S0 Darstellung als Dualzahl) Zustände: U1U Z0: Z1: Z2: Z3: 1 1
73
Lösungsvorschlag Schritt 2: Schaltwerkentwurf
Zustandsvariablen nachher Zustandsvariablen vorher S1 U1´ U1 Delta- Schaltnetz Lambda- Schaltnetz U0´ U0 R S0 W Eingaben Ausgaben
74
Lösungsvorschlag Schritt 3: Entwicklung von Schalttermen für die Überführungsfunktion ( Delta-Schaltnetz) U1 * U0 * R W * U1‘ U0‘ U1‘ = U1 U0 R W + U1 U0 R W + U1 U0 R W + U1 U0 R W U0‘ = U1 U0 R W + U1 U0 R W + U1 U0 R W + U1 U0 R W
75
Lösungsvorschlag Schritt 4: Entwicklung von Schalttermen für die Ausgabefunktion ( Lambda-Schaltnetz) U1 U0 R * * * * W * * * * S1 S0 S1 = U1 S0 = U0
76
Lösungsvorschlag
77
Literaturhinweise Gasper, Leiß, Spengler, Stimm: Technische und theoretische Informatik. Bayerischer Schulbuch-Verlag 1992. Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler Verlag 1988. Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson Studium 2003. ...
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.