Digitaltechnik Weiterbildungslehrgang XII – Kurs 4 Tobias Selinger 14./15. November 2013

Preview:

Citation preview

Digitaltechnik

Weiterbildungslehrgang XII – Kurs 4

Tobias Selinger

14./15. November 2013

2 Digitaltechnik: Wurzeln

MathematikPhysik

(Halbleitertechnologie)

elektronische Schaltungen

Aussagenlogik, Boolesche Algebra

digitale Logikschaltungen

z.B. Addierer, Dekoder, Speicher,Zähler,

Prozessoren...

ich denke ich bin

3 Teil 1

Logische Grundoperationen

4 Problem 1: Aufzugssteuerung

Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.

Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Lösung?

Motor

Tür-kontakt

Knopf

5 Aufzugssteuerung

Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.

Problem: Ein Aufzug soll sich nur dann nach oben bewegen,wenn der Knopf gedrückt und die Tür zu ist.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Motor

Lösung mittels Elektrotechnik (NaWi 5. Klasse): Reihenschaltung

Tür-kontakt

Knopf

Motor

6

Binäre Kodierung mit Schaltvariablen

Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:

0 bzw. false, „nein“oder

1 bzw. true, „ja“

Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:

0 bzw. false, „nein“oder

1 bzw. true, „ja“

Übung: Interpretieren Sie die folgenden

Systemzustände:

a) x1=1, x2=0

b) x1=0, x2=1

c) Ergänzen Siein der Schalttabelledas gewünschteAusgabe-Verhalten:

Motor

Tür-kontakt

x1

Knopf

x2

y

x1

0

0

1

1

x2

0

1

0

1

y

Definition der Schaltvariablen:

x1: „Tür geschlossen?“

x2: „Knopf gedrückt?“

y : „Motor läuft?“

7

Binäre Kodierung mit Schaltvariablen

Übung: Interpretieren Sie die folgenden

Systemzustände:

a) x1=1, x2=0

b) x1=0, x2=1

c) Ergänzen Siein der Schalttabelledas gewünschteAusgabe-Verhalten:

Motor

Tür-kontakt

x1

Knopf

x2

y

x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1

Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:

0 bzw. false, „nein“oder

1 bzw. true, „ja“

Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen:

0 bzw. false, „nein“oder

1 bzw. true, „ja“

Definition der Schaltvariablen:

x1: „Tür geschlossen?“

x2: „Knopf gedrückt?“

y : „Motor läuft?“

8

Logik-basierte Systembeschreibung ...

Beschreibung des Systemverhaltens durch eineaussagenlogische Formel (Schaltfunktion):

Beschreibung des Systemverhaltens durch eineaussagenlogische Formel (Schaltfunktion):

„Motor gdw „Tür ist und „Knopf ist läuft“ geschlossen“ gedrückt“

Motor

Tür-kontakt

x1

Knopf

x2

y

UND-Operator

y = x1 x2

x1

0

0

1

1

x2

0

1

0

1

y

0

0

0

1UND-

Gatter

x1 &x2

y

... und technische Realisierungmit Logikbaustein:

nur Signalfluss,kein Stromfluss!

9

Zwei Darstellungen: Logik - Elektronik

Logik

x1

&x2

yKontaktschalter

KontaktschalterMotor

Elektronischer Baustein (Logikgatter)

x1: „Tür ist geschlossen“x2: „Schalter ist gedrückt“y: „Motor ist aktiv“

Systemgrößen: Systemverhalten:

Elektronik(Hardware)

Logische Formel (Schaltterm)

y = x1 x2

10

Problem 2: Steuerung eines Türöffners

Problem: Die Haustür soll sich öffnen, wenn der Türöffnerim ersten oder im zweiten Stock gedrückt wird.

Problem: Die Haustür soll sich öffnen, wenn der Türöffnerim ersten oder im zweiten Stock gedrückt wird.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Schaltvariablen?

11 Lösung mit ODER-Operator

x1: „Türöffner im 1. Stock ist gedrückt“x2: „Türöffner im 2. Stock ist gedrückt“ y: „Türschloss ist geöffnet“

x1

0

0

1

1

x2

0

1

0

1

y

Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:

Beschreibung des Systemverhaltens mit logischen Operationen bzw. Wertetabelle:

Beschreibung des Systemverhaltens mit logischen Operationen bzw. Wertetabelle:

x1

x2 y

x1

1

x2

y

ODER-Operator

y = x1 x2

ODER-Gatter

Realisierung: 0

1

1

1

Übungen

Übung 1: Gegeben ist die folgende Schaltung:

Notiere den entsprechenden Schaltterm und ergänze die zugehörige Wertetabelle !

12

a b c y

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Übungen

Übung 2: Gegeben ist der Schaltterm y = a (a b c) .

Zeichne die entsprechende Schaltung und ergänze die zugehörige Wertetabelle!

Könnte man die Schaltung vereinfachen?

13

a b c y

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Übungen

Übung 3:

Bei der Talent-Show DSDSI entscheidet eine 3er-Jury per Mehrheitsabstimmung, ob ein Kandidat weiterkommt oder nicht.

a) Erstelle eine entsprechende Wertetabellemit Eingängen a, b, c und Ausgang y !

b) Entwickle einen passenden Schaltterm für y !

c) Zeichne die entsprechende Schaltung!

14

a b c y

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

15 Problem: KühlschrankbeleuchtungProblem: Öffnet man den Kühlschrank,

so soll das Licht im Kühlschrank automatisch angehen.

Problem: Öffnet man den Kühlschrank,so soll das Licht im Kühlschrank automatisch

angehen.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

Tür-Kontakt Lampe

16

xy NICHT-Operator

Lösung mit NICHT-Operator

x: „Tür-Kontakt geschlossen“y: „Lampe an“

x

0

1

y

1

0 xy x 1 y

Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:

Beschreibung des Systemverhaltens mit Wertetabelle bzw. logischen Operationen:

Beschreibung des Systemverhaltens mit Wertetabelle bzw. logischen Operationen:

bzw. kürzer

NICHT-Gatter (Inverter)

Negationspunkt beachten!

17 Übersicht: Grundoperationen

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

1

1

1

x

0

1

x

1

0

x1 1x2

yx1 &x2

y x 1 y

UND-Gatter

UND-Operation(Konjunktion)

UND-Operation(Konjunktion)

ODER-Operation(Disjunktion )

ODER-Operation(Disjunktion )

NICHT-Operation(Negation )

NICHT-Operation(Negation )

ODER-Gatter NICHT-Gatter

Logik

Elektronik

18 Eine komplexere SchaltungProblem: Eine High-Tech-Kaffeemaschine soll das Wasser erhitzen,

wenn die Kaffee- oder Tee-Taste gedrückt wird und nicht gerade die Wartungsprozedur läuft!

Problem: Eine High-Tech-Kaffeemaschine soll das Wasser erhitzen,

wenn die Kaffee- oder Tee-Taste gedrückt wird und nicht gerade die Wartungsprozedur läuft!

k : „Kaffee-Taste gedrückt“t : „Tee-Taste gedrückt“w : „Wartung läuft“h : „Heizung an“

Beschreibung der Systemgrößenmit Schaltvariablen:Beschreibung der Systemgrößenmit Schaltvariablen:

Beschreibung des Systemverhaltens ?Beschreibung des Systemverhaltens ?

19 Kaffeemaschine

k: „Kaffee-Taste gedrückt“t: „Tee-Taste gedrückt“w: „Wartung läuft“h: „Heizung an“

Schaltvariablen:Schaltvariablen:

Schaltfunktion ?Schaltfunktion ? Wertetabelle ?Wertetabelle ?

k t w h0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

Tipp zum Erstellen:

Dualsystem!

20 Kaffeemaschine

k: „Kaffee-Taste gedrückt“t: „Tee-Taste gedrückt“w: „Wartung läuft“h: „Heizung an“

Schaltvariablen:Schaltvariablen:

Schaltfunktion:Schaltfunktion:

wt)(kh

Wertetabelle:Wertetabelle:

k t w h0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

1 &

kt

w

h

1

Schaltung:Schaltung:

21 Umsetzung in Hades

Schaltung auf Papier:

Umsetzung in einemSimulationsprogramm:(z.B. Hades, Uni Hamburg)

1

&

kt

w

h

1

Eingabe-Pins Ausgabe-PinGatter und Leitungen

Farbcodes bei Hades:

grau = 0rot = 1blau = undefiniert

22 Übung mit HADES

Aufgabe: Bauen Sie in Hades die folgenden Schaltungen aufund testen Sie deren Funktion:

1. Ein ODER-Gatter (mit zwei Input-Pins und einem Output-Pin)

2. Erweitern Sie dies zur Kaffeemaschinen-Schaltung!

Tipps zum Handling:

Bauteile erzeugen: per Kontextmenü (rechte Maustaste)

Leitungen ziehen: per Start- und Endpunkt (mit beliebigen „Knickpunkten“)

Schaltung testen: Input-Pins anklicken (immer zuerst aktivieren!)

23 Teil 2

Schaltfunktionen und Schaltnetze

24 Multiplexer – Demultiplexer

Ein Problem der Vermittlungstechnik:

Zwei Teilnehmer T0 und T1 wollen wahlweise ihre Daten d0 und d1 über eine gemeinsame Leitung senden.

Ein Multiplexer (MUX) ist quasi ein „Kanal-Umschalter“ zur Auswahl eines bestimmten Eingangs.

Am Ende der Übertragungsleitung kann ein Demultiplexer die empfangenen Daten auf einen bestimmten Kanal weiterleiten.

Ein Problem der Vermittlungstechnik:

Zwei Teilnehmer T0 und T1 wollen wahlweise ihre Daten d0 und d1 über eine gemeinsame Leitung senden.

Ein Multiplexer (MUX) ist quasi ein „Kanal-Umschalter“ zur Auswahl eines bestimmten Eingangs.

Am Ende der Übertragungsleitung kann ein Demultiplexer die empfangenen Daten auf einen bestimmten Kanal weiterleiten.

MUX DEMUX

s = 0

Steuer-Eingang

s = 1

d0d0

d1d1

25 Funktionale Modellierung

MUX DEMUX

0 1

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Steuersignal

Binäre Daten

Steuersignal

Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung):Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung):

0

11

1

0

Eingaben Ausgaben Eingaben Ausgaben

26 Logische Systembeschreibung

s = 0: b = d0

s = 1: b = d1

s = 0: d0 = b

s = 1: d1 = b

)()( 10 dsdsb sbd 0

sbd 1

Entwicklung von Schalttermen zur Beschreibung des Ein-Ausgabe-Verhaltens bzw. der Schaltfunktionen:Entwicklung von Schalttermen zur Beschreibung des Ein-Ausgabe-Verhaltens bzw. der Schaltfunktionen:

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Eingaben Ausgaben Eingaben Ausgaben

Schaltterm

fallsfalls fallsfalls

27 Schaltnetze

)()( 10 dsdsb

sbd 0

sbd 1

1

d0

d1

s

&

&

&

&

d0

d1

b

s

Entwicklung von Schaltungen zu den Schalttermen. Entwicklung von Schaltungen zu den Schalttermen.

s

DEMUXd0

d1

b

s

MUXd0

d1

b

Schaltnetz Schaltnetz

NOT-Gatter

28 Idee: Funktionale Modellierung

s

MUXd0

d1

b

)()( 10 dsdsb

1

d0

d1

s

&

&

Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes

Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes

Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion

Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion

29 ÜbungAufgabe:

Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.

Aufgabe:

Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz.

1

d0

d1

&

&

&

&

d0

d1

b

s s

30 ÜbungAufgabe:

Entwickeln und testen Sie ein Multiplexer-Demultiplexer-System mit 4 Datenleitungen. Benutzen Sie zur Auswahl der Datenleitung 2 Steuerleitungen. Adressieren Sie die Datenleitungen wie unten angezeigt.

Aufgabe:

Entwickeln und testen Sie ein Multiplexer-Demultiplexer-System mit 4 Datenleitungen. Benutzen Sie zur Auswahl der Datenleitung 2 Steuerleitungen. Adressieren Sie die Datenleitungen wie unten angezeigt.

MUX DEMUX

0 0 1 0

d0

d2

d1

d3

d0

d2

d1

d3

s1 s0 s1 s0

b

31 Teil 3

Exkurs: Disjunktive Normalform (DNF) und Schaltalgebra

32

Steuerung einer Autoinnenbeleuchtung

Problem: Öffnet man eine der beiden Türen, so soll das Licht im Auto angehen.Problem: Öffnet man eine der beiden Türen, so soll das Licht im Auto angehen.

nach H. Bühler: Grundlagen einer Verständigung mit Computern

33

Steuerung einer Autoinnenbeleuchtung

x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“

y: „Licht im Auto ist an“

?x1

x2

y

x1 x2 y

0 00 11 01 1

Schaltvariablen:Schaltvariablen:

Schaltfunktion ?Schaltfunktion ?Wertetabelle ?Wertetabelle ? Schaltung ?Schaltung ?

y = ?

34

Steuerung einer Autoinnenbeleuchtung

x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“

y: „Licht im Auto ist an“

?x1

x2

y

x1 x2 y

0 0 10 1 11 0 11 1 0

Schaltvariablen:Schaltvariablen:

Schaltfunktion ?Schaltfunktion ?Wertetabelle ?Wertetabelle ? Schaltung ?Schaltung ?

y = ?

35

Autoinnenbeleuchtung: logischer Ansatz

x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“

y: „Licht im Auto ist an“

x1 x2 y

0 0 10 1 11 0 11 1 0

Schaltvariablen:Schaltvariablen:

Schaltfunktion ?Schaltfunktion ?Wertetabelle:

Wertetabelle:

Ansatz 1: logische Idee: „Das Licht ist nur dann aus (d.h. nicht

an), wenn beide Türen geschlossen sind“

d.h.

bzw.

Ansatz 2: guter Blick auf Wertetabelle: y sieht aus wie UND, nur je 0/1

vertauscht!

D.h. y = invertiertes UND, siehe Ansatz 1!

21xxy

21xxy

36

Autoinnenbeleuchtung: systematisch

x1: „Fahrertür ist geschlossen“x2: „Beifahrertür ist geschlossen“

y: „Licht im Auto ist an“

x1 x2 y

0 0 1

0 1 1

1 0 1

1 1 0

Schaltvariablen:Schaltvariablen:

Schaltfunktion ?Schaltfunktion ?Wertetabelle:

Wertetabelle:

Ansatz 3: systematische Sammlung aller Fälle mit y=1,

d.h. der positiven Minterme:

21xxy

21xxfalls

)x(x)xx()xx(y212121

21xxfalls

21xxfalls

y=1, falls einer dieser Fälle zutrifft,

d.h.

Eingangskombinationen

37 Vergleich der Schaltterme

x1 x2

y

)()()( 212121 xxxxxxy

&

&

&

11

21 xxy

2 Gatter 9 Gatter

Ansatz 3:Disjunktive Normalform

(DNF)

x1 x2 y

0 0 10 1 11 0 11 1 0

Ansatz 1/2: logisch /intuitiv

x1&

x2

y

38

Steuerung einer Autoinnenbeleuchtung

21 xxy

x1 x2

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 1/2Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 1/2

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

39

Steuerung einer Autoinnenbeleuchtung

)()()( 212121 xxxxxxy

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1 x2x1

0

0

1

1

x2

0

1

0

1

x1 x2

x1 x2 (y1 y2) y2

y1 y2 y3

Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

40

Steuerung einer Autoinnenbeleuchtung

)()()( 212121 xxxxxxy

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3

Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

Korrektheitsnachweis mit einer Wertetabelle:

Vorgabe: schrittweise Prüfung:

41 Finden von Schalttermen

x1 x2

y

&

&

&

11

9 GatterProblem:

Wie findet man systematisch Schaltterme für eine vorgegebene Schaltfunktion?

Problem:

Wie findet man systematisch Schaltterme für eine vorgegebene Schaltfunktion?

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

)()()( 212121 xxxxxxy

42 Minimierung des Schaltnetzes

Problem:Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion?

Problem:Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion?

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

21 xxy

x1&

x2

1 y

x1&

x2

yNAND-Gatter

43 Boolesche Algebra / Schaltalgebra

Objekte:

0 (FALSE) 1 (TRUE)

Operationen:

¯ (NOT) (AND) (OR)

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

1

1

1

x

0

1

x

1

0

Entwickelt 1854 von George Boole (1815-1864)

44 Schaltterme

211 xxt )()()( 2121212 xxxxxxt

Beispiele:

Schaltvariable:

Eine Schaltvariable ist eine Variable, für die nur die Werte 0 und 1 eingesetzt werden können.

Schaltvariable:

Eine Schaltvariable ist eine Variable, für die nur die Werte 0 und 1 eingesetzt werden können.

Schaltterm:

Ein Schaltterm ist aufgebaut aus- den Konstanten 0 (FALSE) und 1 (TRUE)- Schaltvariablen- den Operationen (AND), (OR), ¯ (NOT).

Schaltterm:

Ein Schaltterm ist aufgebaut aus- den Konstanten 0 (FALSE) und 1 (TRUE)- Schaltvariablen- den Operationen (AND), (OR), ¯ (NOT).

45 Aufstellen von Schalttermen

Wert des Minterms y2 ist 1 gdw

Wert(x1) = 0 und Wert(x2) = 1 gdw Wert(x1) = 1 und Wert(x2) = 1

)()()( 212121 xxxxxxy

x1

0

0

1

1

x2

0

1

0

1

y

1

1

1

0

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3 Minterm (Elementarkonjunktion)

Wert(y) ist 1 gdw

Wert eines Minterms ist 1

Term in disjunktiver Normalform

(Disjunktion von Mintermen)

46 Äquivalenz von Schalttermen

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

(y1 y2) y2

1

1

1

0

y1 y2 y3

x1 x2

1

1

1

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

0

0

0

1

211 xxt )()()( 2121212 xxxxxxt

Zwei Schaltterme t1 und t2 sind (logisch) äquivalent gdw gilt:

Der Wert von t1 und t2 ist für alle möglichen Einsetzungen der in t1 und t2 vorkommenden Variablen durch 0 bzw. 1 gleich.

Zwei Schaltterme t1 und t2 sind (logisch) äquivalent gdw gilt:

Der Wert von t1 und t2 ist für alle möglichen Einsetzungen der in t1 und t2 vorkommenden Variablen durch 0 bzw. 1 gleich.

47 Gesetze der Schaltalgebra

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

(y1 y2) y3

1

1

1

0

y1 y2 y3

)()()( 2121212 xxxxxxt

x1 x2

0

1

0

0

x1

0

0

1

1

x2

0

1

0

1

x1 x2

1

0

0

0

x1

1

1

0

0

x2

1

0

1

0

x1 x2

0

0

1

0

y1 (y2 y3)

1

1

1

0

48 Gesetze der Schaltalgebra

a

0

0

0

0

1

1

1

1

b

0

0

1

1

0

0

1

1

a b

0

0

1

1

1

1

1

1

c

0

1

0

1

0

1

0

1

(a b) c

0

1

1

1

1

1

1

1

b c

0

1

1

1

0

1

1

1

a (b c)

0

1

1

1

1

1

1

1

)()( cbacba Assoziativgesetz für Disjunktionen:Assoziativgesetz für Disjunktionen:

49 Gesetze der Schaltalgebra

Assoziativgesetze:

)()( cbacba

abba Kommutativgesetze:

abba

)()()( cabacba Distributivgesetze: (zwei !!)

)()()( cabacba

)()( cbacba

baba De Morgansche Gesetze:

baba

Beweise? Per

Wertetabelle!

50 Gesetze der Schaltalgebra

0-1-Gesetze:

Komplementgesetze:a

0a

1a

aa

aa

aa

aa

Absorptionsgesetze: )( baa

)( baa

Gesetze der neutralen Elemente:

1a

0a

Übung: Ergänzen Sie die jeweiligen Ergebnisse:

51 Gesetze der Schaltalgebra

0-1-Gesetze:

Komplementgesetze:

aa

00a11a

0 aa

1 aa

Absorptionsgesetze: abaa )(

abaa )(

Gesetze der neutralen Elemente:

aa 1aa 0

aaa aaa

52 Vereinfachung von Schalttermen

)()()( 212121 xxxxxxy

21 xx

)())()(( 212121 xxxxxx )())(( 21221 xxxxx )())(( 21221 xxxxx

)()1( 211 xxx )( 211 xxx

)()( 2111 xxxx )(1 21 xx

)( 21 xx

)()()( 212121 xxxxxxy

21 xxy Ergebnis:Die Terme sind logisch äquivalent.

Ergebnis:Die Terme sind logisch äquivalent.

Tipp zur Notation:Die Priorität vor und das Weglassen von macht Terme übersichtlicher!

53

Termumformung m. Boolescher Algebra

212121 xxxxxxy

21xx

21221 )( xxxxx

211 xxx

))(( 2111 xxxx

)(1 21 xx

21 xx

)()()( 212121 xxxxxxy

21 xxy

2. Distributivgesetz !

Tipp zur Notation:Die Priorität vor und das Weglassen von macht Terme übersichtlicher!

54 Übung: NAND, NOR, XOR

Neben den drei Grundoperationen gibt es auch die folgenden Operationen

als fertige Bausteine: NAND („Not AND“), NOR („Not OR“) undXOR („exklusives ODER“)

Testen Sie diese Operationen mit Hades und ergänzen Sie die Wertetabellen.

Beschreiben Sie diese Operationen auch mit Schalttermen, in denen nur die drei Grundoperationen vorkommen.

Neben den drei Grundoperationen gibt es auch die folgenden Operationen

als fertige Bausteine: NAND („Not AND“), NOR („Not OR“) undXOR („exklusives ODER“)

Testen Sie diese Operationen mit Hades und ergänzen Sie die Wertetabellen.

Beschreiben Sie diese Operationen auch mit Schalttermen, in denen nur die drei Grundoperationen vorkommen.

x1

0

0

1

1

x2

0

1

0

1

NAND NOR XOR

21 xx 2xx1 21 xx

55 Teil 3

Rechensysteme

56 7-Segment-Anzeige

Aufgabe: Dekodier-Schaltung zur Ansteuerung einer 7-Segment-AnzeigeAufgabe: Dekodier-Schaltung zur Ansteuerung einer 7-Segment-Anzeige

x3

x2

x1

x0

7-Segment-Dekoder

ZifferDualzahl Segmente

x3 x2 x1 x0 a b c d e f g

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1

Wertetabelle:

7-Segment-Anzeige: Wertetabelle

Ziffer

Dualzahl Segmente

x3 x2 x1

x0 a b c d e f g

0 0 0 0 0 1

1 0 0 0 1 0

2 0 0 1 0 1

3 0 0 1 1 0

4 0 1 0 0 0

5 0 1 0 1 0

6 0 1 1 0 1

7 0 1 1 1 0

8 1 0 0 0 1

9 1 0 0 1 0

Wertetabelle:

57

7-Segment-Anzeige: DNF für e

Ziffer

Dualzahl Segmente

x3 x2 x1

x0 a b c d e f g

0 0 0 0 0

1

1 0 0 0 1 0

2 0 0 1 0

1

3 0 0 1 1 0

4 0 1 0 0 0

5 0 1 0 1 0

6 0 1 1 0

1

7 0 1 1 1 0

8 1 0 0 0

1

9 1 0 0 1 0

DNF für Segment e = 0123012301230123 xxxxxxxxxxxxxxxx

58

7-Segment-Anzeige: Minimierung für e

DNF für Segment e = 0123012301230123 xxxxxxxxxxxxxxxx

)xxxxxxxx()xxxxxxxx( 0123012301230123

)xx(xxx)xx(xxx 2201333012

013012 xxxxxx

)xxxx(x 13120

59

Pärchen mit möglichst vielen

„gleichen“ Variablen bilden

Ausklammern

Komplementgesetz

Übungen: Zeichnen Sie die Schaltung zu dieser Formel!

Implementieren Sie diese Schaltung in Hades!

7-Segment-Anzeige: Übungen60

Übungen: Für alle weiteren Segmente (in Gruppenarbeit):

Bilden Sie die DNF, minimieren Sie soweit möglichund implementieren Sie die entsprechende

Schaltungen!

Definieren Sie Ihre Schaltung als neuen Baustein(siehe Seite 79) und speichern ihn im Kursordnerunter dem Namen <Segment-Name><Autor-

Name>!

Schaltsymbole im Wandel der Zeit61

c

AND

OR

NOT

NAND

NOR

XOR

62 Zahldarstellungen

Problem: Wie viele Blätter sind hier dargestellt?Problem: Wie viele Blätter sind hier dargestellt?

(10010)2 18 (12)16

63 Zahldarstellungen

Problem: Wie viele Blätter sind hier dargestellt?Problem: Wie viele Blätter sind hier dargestellt?

(10010)2 18 (12)16

unär „Päckchen“ binär dezimalhexadezimalunär „Päckchen“ binär dezimalhexadezimal

dezimal hexadezimal binär (dual) dezimal hexadezimal binär (dual)

64 Stellenwertsysteme

23

00000000111111110

22

00001111000011110

21

00110011001100110

20

01010101010101010

100

01234567890123456

101

00000000001111111

160

0123456789ABCDEF0

24

00000000000000001

161

00000000000000001

Stellenwerte:Stellenwerte:

65 Addiersystem

3

97

0 1

11

1 1

00+

Summand A

Summand B

Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.

Schriftliche Addition im Zehnersystem:Schriftliche Addition im Zehnersystem:

Summand A

Summand B

Schriftliche Addition im Dualsystem:Schriftliche Addition im Dualsystem:

++

66 Addiersystem

312

97

6

0 110

11

0

1 100

0011

+11

Summand A

Summand B

Übertrag

Summe

Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln.

Schriftliche Addition im Zehnersystem:Schriftliche Addition im Zehnersystem:

Summand A

Summand B

Übertrag

Summe

Schriftliche Addition im Dualsystem:Schriftliche Addition im Dualsystem:

++

67 Addierschaltung

Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)

Rechenbeispiel:

Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)

Rechenbeispiel:1 0 0

+ 1 0 1= a

= b

= summe

= a

= b

= summe

68 Addierschaltung

Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)

Rechenbeispiel:

Schaltung:

Ansatz 1: Wertetabelle?

Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit)

Rechenbeispiel:

Schaltung:

Ansatz 1: Wertetabelle?

1 0 0+ 1 1 0

11 0 0 1

= a

= b

= summe

= a

= b

= summe

a2 a0a1 b2 b0b1

s2 s0s1s3

+

Achtung: 1+1 ergibt 0 mit Übertrag

1 !

69 Addierschaltung: per Wertetabelle

Wertetabelle:

Übungen:

a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!

b) Aus wie vielen Zeilen besteht die Tabelle?

Wertetabelle:

Übungen:

a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!

b) Aus wie vielen Zeilen besteht die Tabelle?

a b s

a2 a1 a0 b2 b1 b0 s3 s2 s1 s0

0 0 0 0 0 00 0 0 0 0 10 0 0 0 1 00 0 0 0 1 10 0 0 1 0 00 0 0 1 0 10 0 0 1 1 00 0 0 1 1 10 0 1 0 0 00 0 1 0 0 1... ... ... ... ... ... ... ... ... ...

1 1 1 1 1 1

70 Addierschaltung: per Wertetabelle

Wertetabelle:

Übungen:

a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!

b) Aus wie vielen Zeilen besteht die Tabelle?

6 Eingangsvariable,

d.h. 26 = 64Kombinationen!Das sind viele...

Wertetabelle:

Übungen:

a) Berechnen Sie die Ergebnisse der letzten beiden notierten Zeilen!

b) Aus wie vielen Zeilen besteht die Tabelle?

6 Eingangsvariable,

d.h. 26 = 64Kombinationen!Das sind viele...

a b s

a2 a1 a0 b2 b1 b0 s3 s2 s1 s0

0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...

1 1 1 1 1 1 1 1 1 0Und für 64-Bit- Zahlen?

71 Addierschaltung: per ROM-Speicher

Ansatz 2:

Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).

Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.

a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?

b) Wie groß wäre er für zwei 16-Bit-Zahlen?

Ansatz 2:

Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).

Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.

a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?

b) Wie groß wäre er für zwei 16-Bit-Zahlen?

Adresse Inhalt

a2 a1 a0 b2 b1 b0 s3 s2 s1 s0

0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...

1 1 1 1 1 1 1 1 1 0

26 = 64 Speicherzellen á 4 Bit

232 4 Mrd Speicherzellen á 17 Bit

= 12 GB

72 Addierschaltung: per ROM-Speicher

Ansatz 2:

Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).

Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.

a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?

b) Wie groß wäre er für zwei 16-Bit-Zahlen?

Ansatz 2:

Die gewünschten Werte der Tabellewerden zuvor in einem ROM-Bausteinfest gespeichert („eingebrannt“).

Die Eingangsbits von a und bwerden dann als Adresse benutzt, und der Speicher liefert jeweils das zugehörige Ergebnis.

a) Wie „groß“ wäre ein ROM für zwei 3-Bit-Zahlen?

b) Wie groß wäre er für zwei 16-Bit-Zahlen?

Adresse Inhalt

a2 a1 a0 b2 b1 b0 s3 s2 s1 s0

0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 10 0 0 0 1 0 0 0 1 00 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 00 0 0 1 0 1 0 1 0 10 0 0 1 1 0 0 1 1 00 0 0 1 1 1 0 1 1 10 0 1 0 0 0 0 0 0 10 0 1 0 0 1 0 0 1 0... ... ... ... ... ... ... ... ... ...

1 1 1 1 1 1 1 1 1 0Und für 64-Bit- Zahlen?

26 = 64 Speicherzellen á 4 Bit

232 4 Mrd Speicherzellen á 17 Bit

= 12 GB

73 Addierschaltung: Module

Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)

Rechenbeispiel:

Schaltung:(mit Modulen)

Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)

Rechenbeispiel:

Schaltung:(mit Modulen)

1 0 0+ 1 1 0

11 0 0 1

= a

= b

= summe

= a

= b

= summe

Sind alle Module gleich?b2a2

s2

+

b1a1

s1

+

b0a0

s0

+ü1 ü0ü2

s3

74 Addierschaltung: HA und VA

Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)

Rechenbeispiel:

Schaltung:(mit Modulen)

Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung)

Rechenbeispiel:

Schaltung:(mit Modulen)

1 0 0+ 1 1 0

11 0 0 1

= a

= b

= summe

= a

= b

= summe

b2a2

s2

VA

b1a1

s1

VA

b0a0

s0

HAü1 ü0ü2

s3

Das hinterste Modul erhält noch keinen

Übertrag,d.h. nur „HA“

Halb-Addierer

75 Addierschaltung: HA und VA

Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie

möglichst einfache Schaltungen für

a) den HA:

Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie

möglichst einfache Schaltungen für

a) den HA:

ba

s

HAü

b) den VA:b) den VA:ba

s

VAü üv

a b üv s ü

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

a b s ü0 00 11 01 1

76 Addierschaltung: HA und VA

Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie

möglichst einfache Schaltungen für

a) den HA:

Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie

möglichst einfache Schaltungen für

a) den HA:

ba

s

HAü

b) den VA:b) den VA:ba

s

VAü üv

a b üv s ü

0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

a b s ü0 0 0 00 1 1 01 0 1 01 1 0 1

77 Addierschaltung: HA und VA

Lösung für:

a) den HA:

Lösung für:

a) den HA:

ba

s

HAü

a b s ü0 0 0 00 1 1 01 0 1 01 1 0 1

baü

ba

babas

)()(

78 Addierschaltung: HA und VA

Lösung für:

a) den VA:

Lösung für:

a) den VA:

ba

s

VAü üv

a b üv s ü

0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

vvvv abüüabübabüaü

vvvv abüübaübaübas

79

4-Bit-Paralleladdierer mit Bausteinen

a3 a2

HA

VA

a1 a0

b3 b2 b1 b0

VA

VA

1 0 0

s0

s1

s2

s3

ü

Beispiel: (1001)2 + (1011)2 = (10100)2

1

1 0 1 1

0

0

1

0

1

80

Hinweise: Definition von Bausteinen

Schritte zum Definieren eines neuen Bausteins („Subdesigns“):

1. Schaltung erzeugen, Ein- und Ausgänge sinnvoll benennen, und abspeichern (z. B. als HA.hds)

2. Einen Namen für das Subdesign setzen: [Edit][Set design name...] HA

3. Zugehörige Symboldatei erzeugen: [Edit][Create symbol] (Hades erzeugt dann intern die Datei HA.sym als Rechteck-Baustein mit entsprechenden Ports)

4. In neuer Schaltung dieses Subdesign benutzen: [rechte Maustaste] [Create] [Create Subdesign...] HA.hds

class name

instance name

81 Übung: 4-Bit-Addierer

Aufgabe:

Erstellen und testen Sie zunächst einen Halb- und Volladdierer.

Definieren Sie zugehörige Bausteine (Subdesigns) und entwickeln Sie mit diesen anschließend einen 4-Bit-Paralleladdierer!

Aufgabe:

Erstellen und testen Sie zunächst einen Halb- und Volladdierer.

Definieren Sie zugehörige Bausteine (Subdesigns) und entwickeln Sie mit diesen anschließend einen 4-Bit-Paralleladdierer!

82 Übung 4-Bit-InkrementiererAufgabe:

Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.

Aufgabe:

Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer.

Idee:Idee:

1 10

11

0

1 01

0

11

Zahl

Inkrement

Übertrag

Nachfolger

83 Übung 4-Bit-Komparator

Aufgabe:

Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind.

Aufgabe:

Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind.

Idee:Idee:

11 1

11

110

011

Zahl A

Zahl B

Hilf

Ergebnis

0

84 Lösung - Addierer

85 Lösung - Inkrementierer

1 10

11

0

1 01

0

11

Zahl

Inkrement

Übertrag

Nachfolger

Idee:Idee:

konstante 1 (io – VCC)

86 Lösung - Komparator

Idee:Idee:11 1

11

110

011

Zahl A

Zahl B

Hilfsregister

Ergebnis

0

87 Teil 4

Flip-Flops

Bisher: Schaltnetze

Schaltnetz

y = f(x)

Eingangx

Ausgangy

+ jede beliebige Funktion ist berechenbar

- keine Möglichkeit einer Speicherung

88

Schaltwerk

Idee: Rückkopplung

SchaltnetzEingangx

Ausgangy

Rückkopplung: Ein Teil der Ausgangsleitungen wird als „erweiterte Eingangsleitungen“ wieder zugeführt,

d.h. y = f(x, y) .

Dies bringt neue Verhaltensmöglichkeiten mit sich!

(„Wer seinen Output reflektiert, kann lernen ... !“)

89

90 AlarmanlageProblem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,

die erst durch ein manuelles „Rücksetzen“ wieder verstummt!

Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,

die erst durch ein manuelles „Rücksetzen“ wieder verstummt!

91

Alarmanlage als zustandsbasiertes System

Alarm

Sirene aus

RücksetzenAnfangszustand

auslösende Aktion

Sirene an

Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,

die erst durch ein manuelles „Rücksetzen“ wieder verstummt!

Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden,

die erst durch ein manuelles „Rücksetzen“ wieder verstummt!

Zustandsvariable:

Q = 0: „Sirene aus“Q = 1: „Sirene an“

Steuersignale:

S = 1: Alarm auslösen (Setzen)R = 1: Rücksetzen

Zustandsgraph:

Aufgabe: ODER-Selbsthalteschaltung

Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei

einem Alarmsignalden Ausgang dauerhaft auf 1 setzt!

1Eingang S (Setzen)

Zustand Q(Ausgang)

92

Aufgabe: ODER-Selbsthalteschaltung

Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei

einem Alarmsignalden Ausgang dauerhaft auf 1 setzt!

1Eingang S (Setzen)

Zustand Q(Ausgang)

93

Aufgabe: ... mit Rücksetz-Eingang

Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.

1 Ausgang Q&Setzen: S

Rücksetzen: R UND als „Tor“-Schaltung:

bei R = 0: Durchlassbei R = 1: Sperrung.

94

Aufgabe: ... mit Rücksetz-Eingang

Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.

1Setzen: S Ausgang Q&

Rücksetzen: R

Funktionstabelle:

S R QaltQ

0 0 0

0 0 1

0 1 beliebig

1 0 beliebig

1 1 beliebig

UND als „Tor“-Schaltung:

bei R = 0: Durchlassbei R = 1: Sperrung.

Qalt

Übung!

95

Lösung: R-S-Flipflop

Aufgabe: Ergänzen Sie einen Rücksetz-Eingang,um den Ausgang auf Q = 0 zurück zu setzen.

1 Ausgang Q&

Funktionstabelle:

S R Q alt Q

0 0 0 0

0 0 1 1

0 1 beliebig

0

1 0 beliebig

1

1 1 beliebig

0

kurz:

S R Q

0 0 bleibt

Speichern

0 1 0 Rücksetzen

1 0 1 Setzen

1 1 0 (Rücksetzen)

UND als „Tor“-Schaltung:

bei R = 0: Durchlassbei R = 1: Sperrung.

Setzen: S

Rücksetzen: R

96

Dieses RS-Flipflop ist das elementarste Speicherelement (für ein Bit)und erhält ein eigenes Schaltsymbol:

Beschreibung mittels eines Zustandsgraphen:

RS-Flipflop: Zustandsdiagramm

S Q

R ¬Q

0

S ¬R

Setzen

Rücksetzen

R

1 ¬RR ¬S

Funktion: S R Q ¬Q

Speichern: 0 0 bleibt

bleibt

Rücksetzen: 0 1 0 1

Setzen: 1 0 1 0

Verboten!(inkonsistent)

1 1 0 0

97

Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q !

Übung: Zeitverhalten

Zeit

S

R

Q

10

10

10

98

Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q !

Lösung: Zeitverhalten

Zeit

S

R

Q

10

10

10

99

1S Q&

R

RS-Flipflop: Umformung

Umformung des RS-Flipflop ...

Forme mittels DeMorgan um:

Q = ¬R (S Q)

=

100

1S Q&

R

RS-Flipflop: Umformung

Umformung des RS-Flipflop:

Forme mittels DeMorgan um:

Q = ¬R (S Q)

= ¬(¬¬R ¬(S Q))

= ¬ ( R ¬(S Q))

Übung: Aufbau des RS-Flipflop mit 2 NOR-Gattern ?

101

1S Q&

R

RS-Flipflop: Typischer Aufbau

Umformung des RS-Flipflop:

Forme mittels DeMorgan um:

Q = ¬R (S Q)

= ¬ (R ¬(S Q))

1S Q1

R

Aufbau mit 2 NOR-Gattern... ...und typischem Layout:

1

1

S

RQ

¬Q

102

103 Teil 5

Von taktgesteuerten Flip-Flops zu Registern

104 Synchronisation von Flip-Flops

In der Regel müssen bei Speichervorgängenmehrere Bits gleichzeitig übernommen werden.

Hierzu ist es notwendig, die Flip-Flops zu synchronisieren, d. h. eine am Eingang vorliegende Information darf erst auf ein bestimmtes Signal hin übernommen werden.

Man verwendet hierzu i. a. ein periodisches Taktsignal („C wie Clock“).

Fallende Flanke

Steigende Flanke

1-Zustand

0-Zustand

105 Taktpegel-gesteuertes RS-Flip-Flop

S

*

0

0

1

1

R

*

0

1

0

1

Q‘

Q

Q

0

1

0

C

0

1

1

1

1

S

Q

R

S

R

&

&

C

Idee: 2 Tore steuern, ob S und R „durchgelassen“ werden.

Nur wenn der Takt den Wert 1 hat, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen.

C S

Q = 0 Q = 1

C RC S

C R

S = R = 1 vermeide

n

wie bisher

gesperrt

2 Tore

Q

106

Übung: Taktpegel-gesteuertes RS-FF

C

S

Q

R

S

Q

R

S

R

&

&

C

Aufgabe:

Testen Sie das entwickelte Flip-Flop mit Hades.

Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm.

Aufgabe:

Testen Sie das entwickelte Flip-Flop mit Hades.

Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm.

Impulsdiagramm

Q

107 Lösung: Taktsteuerung

S

*

0

0

1

1

R

*

0

1

0

1

Q‘

Q

Q

0

1

C

0

1

1

1

1

C S

Q = 0 Q = 1

C RC S

C R

S = R = 1 vermeiden

C

S

Q

R

Nur wenn der Takt auf "1" ist, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen.

108 Wunsch: ein Dateneingang D

Idee:

Zur Speicherung eines Bits wäre es praktisch, statt der beiden Eingänge S und R nur noch einen Dateneingang D zu haben.

Im Falle von D=1 sollte dann S=1 und R=0 sein,

im Falle von D=0 sollte S=0 und R=1 sein.

Durch welche Ergänzung kann dies erreicht werden?

Idee:

Zur Speicherung eines Bits wäre es praktisch, statt der beiden Eingänge S und R nur noch einen Dateneingang D zu haben.

Im Falle von D=1 sollte dann S=1 und R=0 sein,

im Falle von D=0 sollte S=0 und R=1 sein.

Durch welche Ergänzung kann dies erreicht werden?

1

DS

Q

R

S

R

&

&

CQ

QDC

Q

Taktpegelgesteuertes D-Flipflop

109

Wunsch: Flanken- statt Pegelsteuerung

Problem:

Während der Taktphase C=1 (d.h. während einem Zeitintervall )ist jede Änderung am Eingang D sofort am Ausgang wirksam.

Besser wäre es, den Eingangswertnur zu einem definierten Zeitpunkt zu übernehmen!

Problem:

Während der Taktphase C=1 (d.h. während einem Zeitintervall )ist jede Änderung am Eingang D sofort am Ausgang wirksam.

Besser wäre es, den Eingangswertnur zu einem definierten Zeitpunkt zu übernehmen!

QDC

Q

110 Master-Slave-D-Flipflop

Idee: Master-Slave („Schleusen-Prinzip“)

Zwei pegelgesteuerte D-Flipflops werden hintereinander im „Gegentakt“ betrieben, d.h.

während der Phase C=0: Master übernimmt, Slave bleibt

während der Phase C=1: Master speichert, Slave übernimmt dessen Wert

zum Zeitpunkt des Wechsels von C auf 1 (steigende Taktflanke) wird der Eingang übernommen und gespeichert!

QD

Q

vorderflanken-gesteuertes D-Flipflop

D

C 1

Master Slave

Q

Q

QMDC

QSDC

111 Übung: D-Flipflop

C

D

Q

Aufgaben:

a) Ergänzen Sie den Verlauf für Q.

b) Erstellen Sie eine D-Flip-Flop-Testschaltung und überprüfen SieIhr gezeichnetes Ausgangssignal.

Aufgaben:

a) Ergänzen Sie den Verlauf für Q.

b) Erstellen Sie eine D-Flip-Flop-Testschaltung und überprüfen SieIhr gezeichnetes Ausgangssignal.

C

C

C

C D

C

C D

C

CC DC D

Z0

Q = 0

Z3

Q = 0

Z2

Q = 1

Z1

Q = 1

112 Lösung: D-Flip-Flop

C D

CC

C D

CC

CC C DC D

Z0

Q = 0

Z3

Q = 0

Z2

Q = 1

Z1

Q = 1

C

D

Q0 3 0 3 0 1 2 3 0 3 0 1 2 1 2 3

Ein Zustandswechsel kann nur bei einer steigenden Taktflanke erfolgen.

113 Flipflops in Hades

Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:

Übung:

Testen Sie deren Funktionanhand der Schaltung Flipflop-Demo.hds !

Achtung:

NR bedeutet „Not Reset“, ist also ein Reset-Eingangmit vorgeschaltetem Inverter (siehe Bild)!

„Offene Eingänge“ führen zu seltsamen Fehlern, d.h.alle Eingänge müssen mit definierten Werten belegt werden!

Nicht benutzte Ausgänge dürfen offen bleiben.

Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:

Übung:

Testen Sie deren Funktionanhand der Schaltung Flipflop-Demo.hds !

Achtung:

NR bedeutet „Not Reset“, ist also ein Reset-Eingangmit vorgeschaltetem Inverter (siehe Bild)!

„Offene Eingänge“ führen zu seltsamen Fehlern, d.h.alle Eingänge müssen mit definierten Werten belegt werden!

Nicht benutzte Ausgänge dürfen offen bleiben.

114 Flipflops in Hades

Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:

Übung:

Testen Sie deren Funktionanhand der SchaltungFlipflop-Demo.hds !

(Tipp: NR bedeutet „Not Reset“ im Sinne eines Inverters!)

Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine:

Übung:

Testen Sie deren Funktionanhand der SchaltungFlipflop-Demo.hds !

(Tipp: NR bedeutet „Not Reset“ im Sinne eines Inverters!)

pegelgesteuertes D-Flipflop

vorderflanken-gesteuertes D-Flipflop

vorderflanken-gesteuertes

D-Flipflopmit Set- und Reset-Eingang (je negiert)

115 Typische Macken von HadesProbleme ... und Lösungen:Probleme ... und Lösungen:

Ein Anschluss-Pin ist nicht erreichbar: Stellen Sie die Einrastpunkte feiner, im MenüView – Magnetic Grid ...

Sie möchten einen Verbindungspunkt setzenbzw. von einer Leitung weiter abzweigen:

wire – add segment

Ein Bauteil gibt seine Signale nicht weiter,obwohl die Leitungen „optisch“ verbunden sind:

Schließen Sie das Bauteil neu an:wire – autoconnect SimObject

Sie sehen keine Anschluss-Bezeichnungen:

Aktivieren Sie im Menü:Layers – Port Labels

Vordefinierte Bausteine „verschwinden“ (!!!) :

Speichern Sie alle Schaltungen im gleichen (Netzwerk-)Ordner! Dann beziehen sich alle Verweise auf den gleichen Pfad.Namenskonvention: <Schaltungs-Name> ( <Autor-Name> )

Die Schaltung „hängt“ in einem undefinierten Zustand:

Starten Sie den Simulationslauf neu:Reset, dann Run forever

Irgendwo steckt noch ein Fehler...: Options – Check design & highlight errors

116 Übung: Schieberegister

Ein 4-Bit-Schieberegister ist ein Speicherelementmit folgenden Eigenschaften:Ein 4-Bit-Schieberegister ist ein Speicherelementmit folgenden Eigenschaften:

1) Das Register kann 4 Bit mit Hilfe von Flip-Flops speichern.

2) Mit jeder steigenden Taktflanke werden die gespeicherten Werte um ein Bit nach rechts verschoben.

3) Das erste Flip-Flop übernimmt jeweils den Wert am Dateneingang, der Wert des letzten Flip-Flops wird „herausgeschoben“.

0 1 0Din 1

Übung: Überlegen Sie, welche Flipflops hierfür günstig sind,

und entwerfen Sie die entsprechende Schaltung!

Übung: Überlegen Sie, welche Flipflops hierfür günstig sind,

und entwerfen Sie die entsprechende Schaltung!

Dout

117 Lösung: 4-Bit-Schieberegister

118 Übung: Schieberegister-Baustein

4 parallele Eingänge (zum „Laden“)

serieller Daten-Eingang

Umschalter „Shift Enable“:1:Shift / 0:Load

Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung:[rechte Maustaste] [create] [create by name] [hades.models.register.ShiftRegister]

Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung:[rechte Maustaste] [create] [create by name] [hades.models.register.ShiftRegister]Übung: Öffnen Sie die Schieberegister-Demo und testen Sie diesen Baustein! Übung: Öffnen Sie die Schieberegister-Demo und testen Sie diesen Baustein!

4 parallele Ausgänge

119 Serielle DatenübertragungAufgabe: Mit nur einer einzigen Leitung sollen Daten von einem Sender zu einem Empfänger übertragen werden.

Dies lässt sich seriell mit Schieberegistern realisieren:

Aufgabe: Mit nur einer einzigen Leitung sollen Daten von einem Sender zu einem Empfänger übertragen werden.

Dies lässt sich seriell mit Schieberegistern realisieren:

0 1 1 0

paralleles Laden

paralleles Holen

Entwerfen Sie eine entsprechende Schaltung in Hades!

Hinweise:

Sie benötigen zur Synchronisation eine zusätzliche gemeinsame Taktleitung!

Die Schieberegister finden Sie unter [create] [create by name] [hades.models.register.ShiftRegister]

serielles Übertragen

120 Serielles Addierwerk

0

00 0 1 1 VA

Ein serielles 4-Bit-Addierwerk lässt sich wie dargestellt mit Hilfe eines Volladdierers und Schieberegisterbausteinen aufbauen.Ein serielles 4-Bit-Addierwerk lässt sich wie dargestellt mit Hilfe eines Volladdierers und Schieberegisterbausteinen aufbauen.

0 1 1 0 0

1

121 Übung: Serielles AddierwerkEntwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern.

Entwickeln Sie ein serielles 4-Bit-Addierwerk. Benutzen Sie vordefinierte Schieberegisterbausteine, um die Dualzahlen zwischenzuspeichern.

Tipp: per Kontextmenü – Edit können Sie verschiedene Parameter der Bausteine einstellen, bei den Schieberegistern z.B. die Anzahl der Bits.

Tipp: per Kontextmenü – Edit können Sie verschiedene Parameter der Bausteine einstellen, bei den Schieberegistern z.B. die Anzahl der Bits.

122 4-Bit-Register

Sie finden bei Hades in der RTL (Register Transfer Library) das folgende 4-Bit-Register (ohne Schiebefunktion):

Übung:

Testen Sie seine Funktionanhand der Schaltung4-Bit-Register-Demo.hds !

Sie finden bei Hades in der RTL (Register Transfer Library) das folgende 4-Bit-Register (ohne Schiebefunktion):

Übung:

Testen Sie seine Funktionanhand der Schaltung4-Bit-Register-Demo.hds !

123 Aufgabe: 4-Bit-Zähler

Mit einem Register und einem Inkrementierer lässt sich ein Zähler bauen:

Übung:

Definieren Sie einen 4-Bit-Inkrementierer(in Modulbauweise, wie beim 4-Bit-Addierer)und konstruieren Sie eineentsprechende Zähler-Schaltung !

Mit einem Register und einem Inkrementierer lässt sich ein Zähler bauen:

Übung:

Definieren Sie einen 4-Bit-Inkrementierer(in Modulbauweise, wie beim 4-Bit-Addierer)und konstruieren Sie eineentsprechende Zähler-Schaltung !

4-Bit-INC

CR 4-Bit-Reg.

Takt

Q3

Q2

Q1

Q0

124 Aufgabe: Dezimal-Zähler

Durch gezieltes Rücksetzen beim Auftreten der Zahl 10kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden.

Übung:

Ergänzen Sie den 4-Bit-Zählerentsprechend!

Durch gezieltes Rücksetzen beim Auftreten der Zahl 10kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden.

Übung:

Ergänzen Sie den 4-Bit-Zählerentsprechend!

4-Bit-INC

10-Erkennung

C

R 4-Bit-Reg.Takt

125

Lösung: Dezimal-Zähler mit Anzeige

126 Aufgabe: Elektronischer Würfel

3-Bit-INC

6-Erkennung

CR 3-Bit-Reg.

Takt-generator

Dekoderfür Augen-

zahlen

127 Würfel-Codierung

Augen

Zustands-code

Dualzahl LEDs

x2 x1 x0 A B C D1 0 0 0 0 0 0 0 1

2 1 0 0 1 1 0 0 0

3 2 0 1 0 1 0 0 1

4 3 0 1 1 1 1 0 0

5 4 1 0 0 1 1 0 1

6 5 1 0 1 1 1 1 0

A B

C D C

B A

A = B = C =D =

Übung: Ergänzen Sie die Wertetabelle und bestimmen Sie die Funktionen für die Würfelaugen!

Tipp: Die sieben Augen können in 4 Gruppen unterteilt werden:

128 Würfel-Codierung

Augen

Zustands-code

Dualzahl LEDs

x2 x1 x0 A B C D1 0 0 0 0 0 0 0 1

2 1 0 0 1 1 0 0 0

3 2 0 1 0 1 0 0 1

4 3 0 1 1 1 1 0 0

5 4 1 0 0 1 1 0 1

6 5 1 0 1 1 1 1 0

A B

C D C

B A

A = x2 + x1 + x0

B = x2 + x1 x0

C = x2 x0

D = x0

129 Würfel mit Hades

130 Literaturhinweise

F. Gasper, I. Leiß, M. Spengler, H. Stimm: Technische und theoretische Informatik. bsv 1992.

Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler Verlag 1988.

H. Bühler: Grundlagen einer Verständigung mit Computern. Skript.

Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson Studium 2003.

Für weitere Fragen:

Recommended