Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Digitaltechnik Weiterbildungslehrgang XII – Kurs 4

Ähnliche Präsentationen


Präsentation zum Thema: "Digitaltechnik Weiterbildungslehrgang XII – Kurs 4"—  Präsentation transkript:

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

2 Digitaltechnik: Wurzeln
2 Mathematik Physik (Halbleitertechnologie) Aussagenlogik, Boolesche Algebra elektronische Schaltungen ich denke  ich bin digitale Logikschaltungen z.B. Addierer, Dekoder, Speicher, Zähler, Prozessoren...

3 Logische Grundoperationen
Teil 1 3 Logische Grundoperationen

4 Problem 1: Aufzugssteuerung
4 Problem: Ein Aufzug soll sich nur dann nach oben bewegen, wenn der Knopf gedrückt und die Tür zu ist. Motor Tür-kontakt Knopf Lösung? nach H. Bühler: Grundlagen einer Verständigung mit Computern

5 Aufzugssteuerung 5 Problem: Ein Aufzug soll sich nur dann nach oben bewegen, wenn der Knopf gedrückt und die Tür zu ist. Motor Motor Tür-kontakt Knopf Lösung mittels Elektrotechnik (NaWi 5. Klasse): Reihenschaltung nach H. Bühler: Grundlagen einer Verständigung mit Computern

6 Binäre Kodierung mit Schaltvariablen
6 Motor Schaltvariablen bzw. logische Variablen können nur zwei Werte annehmen: 0 bzw. false, „nein“ oder 1 bzw. true, „ja“ y Tür-kontakt x1 Knopf x2 Übung: Interpretieren Sie die folgenden Systemzustände: x1=1, x2=0 x1=0, x2=1 Ergänzen Sie in der Schalttabelle das gewünschte Ausgabe-Verhalten: Definition der Schaltvariablen: x1: „Tür geschlossen?“ x2: „Knopf gedrückt?“ y : „Motor läuft?“ x1 1 x2 y

7 Binäre Kodierung mit Schaltvariablen
7 Motor Tür-kontakt x1 Knopf x2 y 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: x1=1, x2=0 x1=0, x2=1 Ergänzen Sie in der Schalttabelle das gewünschte Ausgabe-Verhalten: Definition der Schaltvariablen: x1: „Tür geschlossen?“ x2: „Knopf gedrückt?“ y : „Motor läuft?“ x1 1 x2 y

8 Logik-basierte Systembeschreibung ...
8 Motor Tür-kontakt x1 Knopf x2 y Beschreibung des Systemverhaltens durch eine aussagenlogische Formel (Schaltfunktion): „Motor gdw „Tür ist und „Knopf ist läuft“ geschlossen“ gedrückt“ y = x  x2 ... und technische Realisierung mit Logikbaustein: UND-Operator x1 1 x2 y x1 & x2 y nur Signalfluss, kein Stromfluss! UND-Gatter

9 Zwei Darstellungen: Logik - Elektronik
9 Systemgrößen: Systemverhalten: x1: „Tür ist geschlossen“ x2: „Schalter ist gedrückt“ y: „Motor ist aktiv“ y = x1  x2 Logik Logische Formel (Schaltterm) Elektronik (Hardware) Kontaktschalter x1 & y Motor Kontaktschalter x2 Elektronischer Baustein (Logikgatter)

10 Problem 2: Steuerung eines Türöffners
10 Problem: Die Haustür soll sich öffnen, wenn der Türöffner im ersten oder im zweiten Stock gedrückt wird. Schaltvariablen? nach H. Bühler: Grundlagen einer Verständigung mit Computern

11 Lösung mit ODER-Operator
11 Beschreibung der Systemgrößen mit Schaltvariablen: 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 Beschreibung des Systemverhaltens mit logischen Operationen bzw. Wertetabelle: x2 y x1 1 x2 y ODER-Operator y = x1  x2 ODER-Gatter Realisierung: x1 1 x2 y 0111

12 Übungen 12 Übung 1: Gegeben ist die folgende Schaltung: Notiere den entsprechenden Schaltterm und ergänze die zugehörige Wertetabelle ! a b c y 1

13 Übungen 13 Ü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? a b c y 1

14 Übungen 14 Übung 3: Bei der Talent-Show DSDSI entscheidet eine 3er-Jury per Mehrheitsabstimmung, ob ein Kandidat weiterkommt oder nicht. a) Erstelle eine entsprechende Wertetabelle mit Eingängen a, b, c und Ausgang y ! b) Entwickle einen passenden Schaltterm für y ! c) Zeichne die entsprechende Schaltung! a b c y 1

15 Problem: Kühlschrankbeleuchtung
15 Problem: Öffnet man den Kühlschrank, so soll das Licht im Kühlschrank automatisch angehen. Tür-Kontakt Lampe nach H. Bühler: Grundlagen einer Verständigung mit Computern

16 Lösung mit NICHT-Operator
16 Beschreibung der Systemgrößen mit Schaltvariablen: x: „Tür-Kontakt geschlossen“ y: „Lampe an“ Beschreibung des Systemverhaltens mit Wertetabelle bzw. logischen Operationen: NICHT-Operator x 1 y 1 bzw. kürzer x 1 y Negationspunkt beachten! NICHT-Gatter (Inverter)

17 Übersicht: Grundoperationen
17 UND-Operation (Konjunktion) ODER-Operation (Disjunktion ) NICHT-Operation (Negation ) x1 1 x2 1 x1  x2 1 x1 1 x2 1 x1  x2 1 x 1 x 1 Logik Elektronik x1 x1 & 1 y y x 1 y x2 x2 UND-Gatter ODER-Gatter NICHT-Gatter

18 Eine komplexere Schaltung
18 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! Beschreibung der Systemgrößen mit Schaltvariablen: k : „Kaffee-Taste gedrückt“ t : „Tee-Taste gedrückt“ w : „Wartung läuft“ h : „Heizung an“ Beschreibung des Systemverhaltens ?

19 Tipp zum Erstellen: Dualsystem!
Kaffeemaschine 19 Schaltvariablen: k: „Kaffee-Taste gedrückt“ t: „Tee-Taste gedrückt“ w: „Wartung läuft“ h: „Heizung an“ Schaltfunktion ? Wertetabelle ? k t w h 1 Tipp zum Erstellen: Dualsystem!

20 Kaffeemaschine k 1 t h & w 1 Schaltvariablen:
20 Schaltvariablen: k: „Kaffee-Taste gedrückt“ t: „Tee-Taste gedrückt“ w: „Wartung läuft“ h: „Heizung an“ Schaltfunktion: Wertetabelle: k t w h 1 1 & k t w h 1 Schaltung:

21 Umsetzung in Hades k 1 t h & w 1 Schaltung auf Papier:
21 Schaltung auf Papier: Umsetzung in einem Simulationsprogramm: (z.B. Hades, Uni Hamburg) 1 & k t w h 1 Farbcodes bei Hades: grau = 0 rot = 1 blau = undefiniert Eingabe-Pins Gatter und Leitungen Ausgabe-Pin

22 Übung mit HADES 22 Aufgabe: Bauen Sie in Hades die folgenden Schaltungen auf und testen Sie deren Funktion: Ein ODER-Gatter (mit zwei Input-Pins und einem Output-Pin) 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 Schaltfunktionen und Schaltnetze
Teil 2 23 Schaltfunktionen und Schaltnetze

24 Multiplexer – Demultiplexer
24 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. d0 MUX DEMUX d1 s = 0 Steuer-Eingang s = 1

25 Funktionale Modellierung
25 Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung): Binäre Daten 1 1 MUX DEMUX 1 Steuersignal Steuersignal 1 d0 d0 MUX DEMUX b b d1 d1 Eingaben Ausgaben Eingaben Ausgaben s s

26 Logische Systembeschreibung
26 Entwicklung von Schalttermen zur Beschreibung des Ein-Ausgabe-Verhaltens bzw. der Schaltfunktionen: d0 d0 MUX DEMUX b b d1 d1 Eingaben Ausgaben Eingaben Ausgaben s s s = 0: b = d0 s = 0: d0 = b falls falls s = 1: b = d1 s = 1: d1 = b Schaltterm

27 Schaltnetze Entwicklung von Schaltungen zu den Schalttermen. d0 d0 MUX
27 Entwicklung von Schaltungen zu den Schalttermen. d0 d0 MUX DEMUX b b d1 d1 s s NOT-Gatter d0 & & d0 b 1 d1 & & d1 Schaltnetz Schaltnetz s s

28 Idee: Funktionale Modellierung
28 d0 MUX b Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion d1 s d0 & 1 Realisierung des Systems mit Hilfe eines Logik-basierten Schaltnetzes d1 & s

29 Übung 29 Aufgabe: Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz. d0 & & d0 b 1 d1 & & d1 s s

30 Übung 30 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. d0 d0 d1 b d1 MUX DEMUX d2 d2 d3 d3 1 s1 s0 s1 s0

31 Exkurs: Disjunktive Normalform (DNF)
Teil 3 31 Exkurs: Disjunktive Normalform (DNF) und Schaltalgebra

32 Steuerung einer Autoinnenbeleuchtung
32 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
33 Schaltvariablen: x1: „Fahrertür ist geschlossen“ x2: „Beifahrertür ist geschlossen“ y: „Licht im Auto ist an“ Wertetabelle ? Schaltfunktion ? Schaltung ? x1 x2 y 1 ? x1 x2 y y = ?

34 Steuerung einer Autoinnenbeleuchtung
34 Schaltvariablen: x1: „Fahrertür ist geschlossen“ x2: „Beifahrertür ist geschlossen“ y: „Licht im Auto ist an“ Wertetabelle ? Schaltfunktion ? Schaltung ? x1 x2 y 1 ? x1 x2 y y = ?

35 Autoinnenbeleuchtung: logischer Ansatz
35 Schaltvariablen: x1: „Fahrertür ist geschlossen“ x2: „Beifahrertür ist geschlossen“ y: „Licht im Auto ist an“ Wertetabelle: Schaltfunktion ? 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! x1 x2 y 1

36 Autoinnenbeleuchtung: systematisch
36 Schaltvariablen: x1: „Fahrertür ist geschlossen“ x2: „Beifahrertür ist geschlossen“ y: „Licht im Auto ist an“ Wertetabelle: Schaltfunktion ? Ansatz 3: systematische Sammlung aller Fälle mit y=1, d.h. der positiven Minterme: x1 x2 y 1 Eingangskombinationen y=1, falls einer dieser Fälle zutrifft, d.h.

37 Vergleich der Schaltterme
37 x1 x2 y 1 Ansatz 1/2: logisch / intuitiv Ansatz 3: Disjunktive Normalform (DNF) x1 x2 9 Gatter 2 Gatter x1 & x2 y & 1 & 1 y &

38 Steuerung einer Autoinnenbeleuchtung
38 Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 1/2 Korrektheitsnachweis mit einer Wertetabelle: Vorgabe: schrittweise Prüfung: x1 1 x2 1 y 1 x1 1 x2 1 x1  x2 1 x1  x2 1

39 Steuerung einer Autoinnenbeleuchtung
39 Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3 Korrektheitsnachweis mit einer Wertetabelle: Vorgabe: schrittweise Prüfung: y1 y2 y3 x1 1 x2 1 y 1 x1 1 x2 1 x1  x2 x1  x2 x1  x2 (y1  y2)  y2

40 Steuerung einer Autoinnenbeleuchtung
40 Beschreibung der Schaltfunktion mit einem Schaltterm – Ansatz 3 Korrektheitsnachweis mit einer Wertetabelle: Vorgabe: schrittweise Prüfung: y1 y2 y3 x1 1 x2 1 y 1 x1 1 x2 1 x1  x2 1 x1  x2 1 x1  x2 1 (y1  y2)  y2 1

41 Finden von Schalttermen
41 x1 1 x2 1 y 1 x1 x2 9 Gatter Problem: Wie findet man systematisch Schaltterme für eine vorgegebene Schaltfunktion? & 1 & 1 y &

42 Minimierung des Schaltnetzes
42 x1 1 x2 1 y 1 Problem: Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion? x1 & 1 y x2 x1 & y x2 NAND-Gatter

43 Boolesche Algebra / Schaltalgebra
43 Operationen: ¯ (NOT)  (AND)  (OR) Objekte: 0 (FALSE) 1 (TRUE) x1 1 x2 1 x1  x2 1 x1 1 x2 1 x1  x2 1 x 1 x 1 Entwickelt 1854 von George Boole ( )

44 Schaltterme Schaltvariable:
44 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). Beispiele:

45 Aufstellen von Schalttermen
45 Minterm (Elementarkonjunktion) y1 y2 y3 x1 1 x2 1 y 1 x1 1 x2 1 x1  x2 1 x1  x2 1 x1  x2 1 (y1  y2)  y2 1 Wert des Minterms y2 ist 1 gdw Wert(x1) = 0 und Wert(x2) = 1 gdw Wert(x1) = 1 und Wert(x2) = 1 Wert(y) ist 1 gdw Wert eines Minterms ist 1 Term in disjunktiver Normalform (Disjunktion von Mintermen)

46 Äquivalenz von Schalttermen
46 x1 1 x2 1 x1  x2 1 x1  x2 1 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. y1 y2 y3 x1 1 x2 1 x1 1 x2 1 x1  x2 1 x1  x2 1 x1  x2 1 (y1  y2)  y2 1

47 Gesetze der Schaltalgebra
47 x1 1 x2 1 x1 1 x2 1 x1  x2 1 x1  x2 1 x1  x2 1 y1  (y2  y3) 1 y1 y2 y3 x1 1 x2 1 x1 1 x2 1 x1  x2 1 x1  x2 1 x1  x2 1 (y1  y2)  y3 1

48 Gesetze der Schaltalgebra
48 Assoziativgesetz für Disjunktionen: a 1 b 1 c 1 a  b 1 b  c 1 (a  b)  c 1 a  (b  c) 1

49 Gesetze der Schaltalgebra
49 Assoziativgesetze: Kommutativgesetze: Beweise? Per Wertetabelle! Distributivgesetze: (zwei !!) De Morgansche Gesetze:

50 Gesetze der Schaltalgebra
50 Übung: Ergänzen Sie die jeweiligen Ergebnisse: Gesetze der neutralen Elemente: 0-1-Gesetze: Komplementgesetze: Absorptionsgesetze:

51 Gesetze der Schaltalgebra
51 Gesetze der neutralen Elemente: 0-1-Gesetze: Komplementgesetze: Absorptionsgesetze:

52 Vereinfachung von Schalttermen
52 Tipp zur Notation: Die Priorität  vor  und das Weglassen von  macht Terme übersichtlicher! Ergebnis: Die Terme sind logisch äquivalent.

53 Termumformung m. Boolescher Algebra
53 Tipp zur Notation: Die Priorität  vor  und das Weglassen von  macht Terme übersichtlicher! 2. Distributivgesetz !

54 Übung: NAND, NOR, XOR 54 Neben den drei Grundoperationen gibt es auch die folgenden Operationen als fertige Bausteine: NAND („Not AND“), NOR („Not OR“) und XOR („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. NAND NOR XOR x1 1 x2 1

55 Teil 3 55 Rechensysteme

56 7-Segment-Anzeige 56 Aufgabe: Dekodier-Schaltung zur Ansteuerung einer 7-Segment-Anzeige x3 x2 x1 x0 7-Segment-Dekoder Ziffer Dualzahl Segmente x3 x2 x1 x0 a b c d e f g 1 2 3 4 5 6 7 8 9 Wertetabelle:

57 7-Segment-Anzeige: Wertetabelle
57 Wertetabelle: Ziffer Dualzahl Segmente x3 x2 x1 x0 a b c d e f g 1 2 3 4 5 6 7 8 9

58 7-Segment-Anzeige: DNF für e
58 DNF für Segment e = Ziffer Dualzahl Segmente x3 x2 x1 x0 a b c d e f g 1 2 3 4 5 6 7 8 9

59 7-Segment-Anzeige: Minimierung für e
59 DNF für Segment e = 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!

60 7-Segment-Anzeige: Übungen
60 Übungen: Für alle weiteren Segmente (in Gruppenarbeit): Bilden Sie die DNF, minimieren Sie soweit möglich und implementieren Sie die entsprechende Schaltungen! Definieren Sie Ihre Schaltung als neuen Baustein (siehe Seite 79) und speichern ihn im Kursordner unter dem Namen <Segment-Name><Autor-Name>!

61 Schaltsymbole im Wandel der Zeit
61 AND NAND OR NOR NOT XOR

62 Zahldarstellungen (10010)2 18 (12)16
62 Problem: Wie viele Blätter sind hier dargestellt? (10010)2 18 (12)16

63 Zahldarstellungen (10010)2 18 (12)16
63 Problem: Wie viele Blätter sind hier dargestellt? (10010)2 18 (12)16 unär „Päckchen“ binär dezimal hexadezimal

64 Stellenwertsysteme dezimal hexadezimal binär (dual) Stellenwerte: 101
64 dezimal hexadezimal binär (dual) Stellenwerte: 101 100 161 160 A B C D E F 0 24 23 22 21 20

65 Addiersystem 65 Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln. Schriftliche Addition im Zehnersystem: 3 9 7 Summand A + Summand B Schriftliche Addition im Dualsystem: + 1 1 0 0 0 1 1 1 Summand A Summand B

66 Addiersystem 66 Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln. Schriftliche Addition im Zehnersystem: 3 1 2 9 7 6 Summand A + Summand B Übertrag Summe Schriftliche Addition im Dualsystem: + 1 1 1 1 0 Summand A Summand B Übertrag Summe

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

68 Achtung: 1+1 ergibt 0 mit Übertrag 1 !
Addierschaltung 68 Aufgabe: Addierschaltung für zwei Dualzahlen a und b ( je 3 Bit) Rechenbeispiel: Schaltung: Ansatz 1: Wertetabelle? = a = b = summe Achtung: 1+1 ergibt 0 mit Übertrag 1 ! a2 a0 a1 b2 b0 b1 s2 s0 s1 s3 +

69 Addierschaltung: per Wertetabelle
69 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 1 ...

70 Addierschaltung: per Wertetabelle
70 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 = 64 Kombinationen! Das sind viele... a b s a2 a1 a0 b2 b1 b0 s3 s2 s1 s0 1 ... Und für 64-Bit- Zahlen?

71 Addierschaltung: per ROM-Speicher
71 Ansatz 2: Die gewünschten Werte der Tabelle werden zuvor in einem ROM-Baustein fest gespeichert („eingebrannt“). Die Eingangsbits von a und b werden 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 1 ... 26 = 64 Speicherzellen á 4 Bit 232  4 Mrd Speicherzellen á 17 Bit = 12 GB

72 Addierschaltung: per ROM-Speicher
72 Ansatz 2: Die gewünschten Werte der Tabelle werden zuvor in einem ROM-Baustein fest gespeichert („eingebrannt“). Die Eingangsbits von a und b werden 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 1 ... 26 = 64 Speicherzellen á 4 Bit 232  4 Mrd Speicherzellen á 17 Bit = 12 GB Und für 64-Bit- Zahlen?

73 Addierschaltung: Module
73 Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung) Rechenbeispiel: Schaltung: (mit Modulen) = a = b = summe b2 a2 s2 + b1 a1 s1 b0 a0 s0 ü1 ü0 ü2 s3 Sind alle Module gleich?

74 Addierschaltung: HA und VA
74 Ansatz 3: Per Modularisierung (stellen- bzw. spaltenweise Berechnung) Rechenbeispiel: Schaltung: (mit Modulen) = a = b = summe Das hinterste Modul erhält noch keinen Übertrag, d.h. nur „HA“ Halb-Addierer b2 a2 s2 VA b1 a1 s1 b0 a0 s0 HA ü1 ü0 ü2 s3

75 Addierschaltung: HA und VA
75 Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie möglichst einfache Schaltungen für a) den HA: b a s HA ü a b s ü 1 a b üv s ü 1 b a s VA ü üv b) den VA:

76 Addierschaltung: HA und VA
76 Übung: Ergänzen Sie die Wertetabellen und entwickeln Sie möglichst einfache Schaltungen für a) den HA: b a s HA ü a b s ü 1 a b üv s ü 1 b a s VA ü üv b) den VA:

77 Addierschaltung: HA und VA
77 Lösung für: a) den HA: b a s HA ü a b s ü 1

78 Addierschaltung: HA und VA
78 Lösung für: a) den VA: b a s VA ü üv a b üv s ü 1

79 4-Bit-Paralleladdierer mit Bausteinen
79 Beispiel: (1001)2 + (1011)2 = (10100)2 a3 a2 a1 a0 1 1 1 ü VA s3 VA 1 s2 VA s1 HA s0 1 1 1 b3 b2 b1 b0

80 Hinweise: Definition von Bausteinen
80 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:
81 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-Inkrementierer
82 Aufgabe: Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer. Idee: 0 1 1 1 1 0 Zahl Inkrement Übertrag Nachfolger

83 Übung 4-Bit-Komparator
83 Aufgabe: Entwickeln Sie einen 4-Bit-Komparator, der überprüft, ob zwei 4-Bit-Dualzahlen gleich sind. Idee: 1 1 0 0 1 1 1 1 1 1 1 Zahl A Zahl B Hilf Ergebnis

84 Lösung - Addierer 84

85 Lösung - Inkrementierer
85 Idee: 0 1 1 1 1 0 Zahl Inkrement Übertrag Nachfolger konstante 1 (io – VCC)

86 Lösung - Komparator 1 1 0 0 1 1 1 1 1 1 1 Idee: 86 Zahl A Zahl B
1 1 0 0 1 1 1 1 1 1 1 Zahl A Zahl B Hilfsregister Ergebnis

87 Teil 4 87 Flip-Flops

88 Bisher: Schaltnetze Schaltnetz y = f(x) Eingang x Ausgang y
88 Schaltnetz y = f(x) Eingang x Ausgang y + jede beliebige Funktion ist berechenbar - keine Möglichkeit einer Speicherung

89 Idee: Rückkopplung Schaltwerk Schaltnetz Eingang x Ausgang y
89 Schaltwerk Schaltnetz Eingang x Ausgang y 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 ... !“)

90 Alarmanlage 90 Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden, die erst durch ein manuelles „Rücksetzen“ wieder verstummt!

91 Alarmanlage als zustandsbasiertes System
91 Problem: Durch einen Alarmsensor soll eine Sirene aktiviert werden, die erst durch ein manuelles „Rücksetzen“ wieder verstummt! auslösende Aktion Zustandsgraph: Alarm Sirene aus Sirene an Anfangszustand Rücksetzen Zustandsvariable: Q = 0: „Sirene aus“ Q = 1: „Sirene an“ Steuersignale: S = 1: Alarm auslösen (Setzen) R = 1: Rücksetzen

92 Aufgabe: ODER-Selbsthalteschaltung
92 Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei einem Alarmsignal den Ausgang dauerhaft auf 1 setzt! 1 Zustand Q (Ausgang) Eingang S (Setzen)

93 Aufgabe: ODER-Selbsthalteschaltung
93 Aufgabe: Entwickeln Sie mit einem ODER-Gatter eine „Selbsthalte“-Schaltung, die bei einem Alarmsignal den Ausgang dauerhaft auf 1 setzt! 1 Zustand Q (Ausgang) Eingang S (Setzen)

94 Aufgabe: ... mit Rücksetz-Eingang
94 Aufgabe: Ergänzen Sie einen Rücksetz-Eingang, um den Ausgang auf Q = 0 zurück zu setzen. 1 & Setzen: S Ausgang Q UND als „Tor“-Schaltung: bei R = 0: Durchlass bei R = 1: Sperrung. Rücksetzen: R

95 Aufgabe: ... mit Rücksetz-Eingang
95 Aufgabe: Ergänzen Sie einen Rücksetz-Eingang, um den Ausgang auf Q = 0 zurück zu setzen. Qalt 1 & Setzen: S Ausgang Q UND als „Tor“-Schaltung: bei R = 0: Durchlass bei R = 1: Sperrung. Rücksetzen: R Funktionstabelle: S R Qalt Q 1 beliebig Übung!

96 Lösung: R-S-Flipflop 1 &
96 Aufgabe: Ergänzen Sie einen Rücksetz-Eingang, um den Ausgang auf Q = 0 zurück zu setzen. 1 & Setzen: S Ausgang Q UND als „Tor“-Schaltung: bei R = 0: Durchlass bei R = 1: Sperrung. Rücksetzen: R Funktionstabelle: S R Q alt Q 1 beliebig kurz: S R Q bleibt Speichern 1 Rücksetzen Setzen (Rücksetzen)

97 RS-Flipflop: Zustandsdiagramm
97 Dieses RS-Flipflop ist das elementarste Speicherelement (für ein Bit) und erhält ein eigenes Schaltsymbol: Beschreibung mittels eines Zustandsgraphen: Funktion: S R Q ¬Q Speichern: bleibt Rücksetzen: 1 Setzen: Verboten! (inkonsistent) S Q R ¬Q S  ¬R Setzen Rücksetzen R 1 ¬R R  ¬S

98 Übung: Zeitverhalten Übung: Zeitverhalten eines RS-Flipflops:
98 Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q ! S 1 0 R 1 0 Q 1 0 Zeit

99 Lösung: Zeitverhalten
99 Übung: Zeitverhalten eines RS-Flipflops: Ergänzen Sie den Ausgang Q ! S 1 0 R 1 0 Q 1 0 Zeit

100 RS-Flipflop: Umformung
100 Umformung des RS-Flipflop ... Forme mittels DeMorgan um: Q = ¬R  (S  Q) =  1 & S Q R

101 RS-Flipflop: Umformung
101 Umformung des RS-Flipflop: Forme mittels DeMorgan um: Q = ¬R  (S  Q) = ¬(¬¬R  ¬(S  Q)) = ¬ ( R  ¬(S  Q)) 1 & S Q R Übung: Aufbau des RS-Flipflop mit 2 NOR-Gattern ?

102 RS-Flipflop: Typischer Aufbau
102 Umformung des RS-Flipflop: Forme mittels DeMorgan um: Q = ¬R  (S  Q) = ¬ (R  ¬(S  Q)) 1 & S Q R Aufbau mit 2 NOR-Gattern... ...und typischem Layout: S 1 ¬Q 1 1 S Q 1 Q R R

103 Von taktgesteuerten Flip-Flops zu Registern
Teil 5 103 Von taktgesteuerten Flip-Flops zu Registern

104 Synchronisation von Flip-Flops
104 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 („C wie Clock“). 1-Zustand Steigende Flanke Fallende Flanke 0-Zustand

105 Taktpegel-gesteuertes RS-Flip-Flop
105 2 Tore 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. S & S Q C R Q & R C 1 S * 1 R * 1 Q‘ Q 1 C  S S = R = 1 vermeiden C  R gesperrt C  S wie bisher Q = 0 Q = 1 C  R

106 Übung: Taktpegel-gesteuertes RS-FF
106 Aufgabe: Testen Sie das entwickelte Flip-Flop mit Hades. Ergänzen Sie anschließend das unten dargestellte Impulsdiagramm. S & S Q C R Q & R C S R Q Impulsdiagramm

107 Lösung: Taktsteuerung
107 Nur wenn der Takt auf "1" ist, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen. C 1 S * 1 R * 1 Q‘ Q 1 C  S Q = 0 Q = 1 C  R C  S C  R S = R = 1 vermeiden C S R Q

108 Wunsch: ein Dateneingang D
108 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? Taktpegelgesteuertes D-Flipflop S Q R & C 1 D Q D C Q Q

109 Wunsch: Flanken- statt Pegelsteuerung
109 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 Eingangswert nur zu einem definierten Zeitpunkt zu übernehmen! Q D C Q

110 Master-Slave-D-Flipflop
110 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! vorderflanken-gesteuertes D-Flipflop Master Slave D QM D C QS D C Q D Q C 1 Q Q

111 Übung: D-Flipflop Aufgaben: a) Ergänzen Sie den Verlauf für Q.
111 Aufgaben: a) Ergänzen Sie den Verlauf für Q. b) Erstellen Sie eine D-Flip-Flop-Testschaltung und überprüfen Sie Ihr gezeichnetes Ausgangssignal. C C  D C Z0 Q = 0 Z3 Z2 Q = 1 Z1 C C C D Q

112 Lösung: D-Flip-Flop 112 C C Ein Zustandswechsel kann nur bei einer steigenden Taktflanke erfolgen. C  D Z0 Q = 0 Z1 Q = 1 C C  D C  D C Z3 Q = 0 Z2 Q = 1 C  D C C C D Q 3 3 1 2 3 3 1 2 1 2 3

113 Flipflops in Hades 113 Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine: Übung: Testen Sie deren Funktion anhand der Schaltung Flipflop-Demo.hds ! Achtung: NR bedeutet „Not Reset“, ist also ein Reset-Eingang mit 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 114 Sie finden bei Hades unter Flipflops u.a. die folgenden Bausteine: Übung: Testen Sie deren Funktion anhand der Schaltung Flipflop-Demo.hds ! (Tipp: NR bedeutet „Not Reset“ im Sinne eines Inverters!) pegelgesteuertes D-Flipflop vorderflanken-gesteuertes D-Flipflop vorderflanken-gesteuertes D-Flipflop mit Set- und Reset- Eingang (je negiert)

115 Typische Macken von Hades
115 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 setzen bzw. 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
116 Ein 4-Bit-Schieberegister ist ein Speicherelement mit folgenden Eigenschaften: Din 1 1 Dout 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“. Übung: Überlegen Sie, welche Flipflops hierfür günstig sind, und entwerfen Sie die entsprechende Schaltung!

117 Lösung: 4-Bit-Schieberegister
117

118 Übung: Schieberegister-Baustein
118 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! serieller Daten-Eingang 4 parallele Eingänge (zum „Laden“) Umschalter „Shift Enable“: 1:Shift / 0:Load 4 parallele Ausgänge

119 Serielle Datenübertragung
119 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: paralleles Laden serielles Übertragen 1 1 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]

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

121 Übung: Serielles Addierwerk
121 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.

122 4-Bit-Register 122 Sie finden bei Hades in der RTL (Register Transfer Library) das folgende 4-Bit-Register (ohne Schiebefunktion): Übung: Testen Sie seine Funktion anhand der Schaltung 4-Bit-Register-Demo.hds !

123 Aufgabe: 4-Bit-Zähler 123 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 eine entsprechende Zähler-Schaltung ! 4-Bit-INC C R 4-Bit-Reg. Takt Q3Q2Q1Q0

124 Aufgabe: Dezimal-Zähler
124 Durch gezieltes Rücksetzen beim Auftreten der Zahl 10 kann ein Dezimal-Zähler (d.h. modulo 10) realisiert werden. Übung: Ergänzen Sie den 4-Bit-Zähler entsprechend! 4-Bit-INC 10-Erkennung C R 4-Bit-Reg. Takt

125 Lösung: Dezimal-Zähler mit Anzeige
125

126 Aufgabe: Elektronischer Würfel
126 Takt- generator C R 3-Bit-Reg. Dekoder für Augen- zahlen 3-Bit-INC 6-Erkennung

127 Würfel-Codierung 127 Ü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: Augen Zustands-code Dualzahl LEDs A B C D C B A x2 x1 x0 A B C D 1 1 2 1 1 3 2 1 1 4 3 1 1 5 4 1 1 1 6 5 1 1 1 A = B = C = D =

128 Würfel-Codierung Augen A B C D C B A A B C D A = x2 + x1 + x0
128 Augen Zustands-code Dualzahl LEDs A B C D C B A x2 x1 x0 A B C D 1 1 2 1 1 3 2 1 1 4 3 1 1 5 4 1 1 1 6 5 1 1 1 A = x2 + x1 + x0 B = x2 + x1 x0 C = x2 x0 D = x0

129 Würfel mit Hades 129

130 Literaturhinweise Für weitere Fragen:
130 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:


Herunterladen ppt "Digitaltechnik Weiterbildungslehrgang XII – Kurs 4"

Ähnliche Präsentationen


Google-Anzeigen