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 Report

Transcript 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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

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

CS

S=R=1
vermeiden

CR

CS
Q=0

Q=1

CR

Lösung – MS-Flip-Flop

28

CS

CR

Schaltsysteme

CS
QM = 0
QS = 0

QM = 1
QS = 0
CR

C

QM = 0
QS = 1

C
CS

QM = 1
QS = 1

CR

CS
KB

CS

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
CD

Z0

Z1

Q=0

Schaltsysteme

C

Ein Zustandswechsel
kann nur bei einer
steigenden Taktflanke
erfolgen.

Q=1

CD

CD

C

Z3

Z2

Q=0

Q=1
CD

C

C

C
D
Q
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 ZaZ,
- 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

EE

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.

...