Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Digitaltechnik Klaus Becker 2007. 2 Digitaltechnik S R S R & & C S R & & 1 QSQS QMQM.

Ähnliche Präsentationen


Präsentation zum Thema: "Digitaltechnik Klaus Becker 2007. 2 Digitaltechnik S R S R & & C S R & & 1 QSQS QMQM."—  Präsentation transkript:

1 Digitaltechnik Klaus Becker 2007

2 2 Digitaltechnik S R S R & & C S R & & 1 QSQS QMQM

3 3 Teil 1 Logische Grundoperationen

4 4 Aufzugssteuerung 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: Nur wenn der Stromkreis geschlossen ist, kann der Motor den Aufzug bewegen.

5 5 Binäre Kodierung mit Schaltvariablen Schaltvariable Binäre Kodierung: Kodierung mit zwei Werten: 0 / 1 x1x1 x2x2 y Systemzustände: Tür ist offen / geschlossen Schalter ist gedrückt / nicht gedrückt Motor ist inaktiv / aktiv Beschreibung von Systemzuständen: x 1 = 0: Tür ist offen x 1 = 1: Tür ist geschlossen x 2 = 0: Schalter ist nicht gedrückt x 2 = 1: Schalter ist gedrückt y = 0: Motor ist inaktiv y = 1: Motor ist aktiv

6 6 Beschreibung des Systemverhaltens x10011x10011 x20101x20101 y0001y0001 Schalttabelle / Schaltfunktion x1x1 x2x2 y Motor ist aktiv genau dann, wenn Tür ist geschlossen und Schalter ist gedrückt Beschreibung von Systemzuständen: x 1 = 0: Tür ist offen x 1 = 1: Tür ist geschlossen x 2 = 0: Schalter ist nicht gedrückt x 2 = 1: Schalter ist gedrückt y = 0: Motor ist inaktiv y = 1: Motor ist aktiv

7 7 Logische Deutung logische Verknüpfung von Aussagen x1x1 x2x2 y Logische Deutung 0: falsch 1: wahr y: Motor ist aktiv genau dann, wenn x 1 : Tür ist geschlossen und x 2 : Schalter ist gedrückt x10011x10011 x20101x20101 y0001y0001 aussagenlog. Formel / Schaltterm Wahrheitswerte

8 8 Technische Lösung – mit Logikgatter x1x1 x2x2 y Und-Gatter x1x1 & x2x2 y Kontakt- schalter Motor x10011x10011 x20101x20101 y0001y0001 UND- Operator Beschreibung von Systemzuständen: x 1 = 0: Tür ist offen x 1 = 1: Tür ist geschlossen x 2 = 0: Schalter ist nicht gedrückt x 2 = 1: Schalter ist gedrückt y = 0: Motor ist inaktiv y = 1: Motor ist aktiv

9 9 Logik-basierte Systembeschreibung Beschreibung des Systemverhaltens mit einer aussagenlogischen Formel (Schaltfunktion): x1x1 x2x2 y x 1 : Tür ist geschlossen x 2 : Schalter ist gedrückt y: Motor ist aktiv Systemgrößen Motor ist aktiv genau dann, wenn Tür ist geschlossen und Schalter ist gedrückt Systemverhalten x10011x10011 x20101x20101 y0001y0001

10 10 Elektronik-Logik-Schichtung Logik x1x1 & x2x2 y Kontaktschalter Motor Logikgatter x 1 : Tür ist geschlossen x 2 : Schalter ist gedrückt y: Motor ist aktiv SystemgrößenSystemverhalten Elektronik

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

12 12 Lösung mit ODER-Operator x 1 : Türöffner im 1. Stock ist gedrückt x 2 : Türöffner im 2. Stock ist gedrückt y: Türverriegelung ist deaktiviert x10011x10011 x20101x20101 y0111y0111 x1x1 1 x2x2 y Beschreibung der Systemgrößen mit Schaltvariablen Beschreibung des Systemverhaltens mit logischen Operationen ODER- Operator

13 13 Problem: Kühlschrankbeleuchtung 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

14 14 Lösung mit NICHT-Operator x: Tür ist geschlossen y: Licht im Kühlschrank ist an x01x01 y10y10 x1y Beschreibung der Systemgrößen mit Schaltvariablen Beschreibung des Systemverhaltens mit logischen Operationen bzw. NICHT-Operator

15 15 Logische Grundoperationen x10011x10011 x20101x20101 x 1 x x10011x10011 x20101x20101 x 1 x x01x01 x10x10 x1x1 1 x2x2 y x1x1 & x2x2 yx1y UND-Gatter Konjunktion / UND-Operation Disjunktion / ODER-Operation Negation / NICHT-Operation ODER-GatterNICHT-Gatter Logik Elektronik

16 16 Übung Aufgabe: Testen Sie die Gatter zu den logischen Grundoperationen mit Hilfe von Hades. Gatter: [rechte Maustaste: create -> gates ->...] Eingang: [rechte Maustaste: create -> io -> Ipin(switch)] Ausgang: [rechte Maustaste: create -> io -> Opin (LED)] Verbindungen mit der Maus "ziehen".

17 17 Teil 2 Schaltfunktionen und Schaltnetze

18 18 Multiplexer – Demultiplexer Ein Problem der Vermittlungstechnik: Zwei Teilnehmer sollen wahlweise ihre Daten (in binärer Form kodiert) über eine gemeinsame Leitung senden. MUXDEMUX 01

19 19 Funktionale Modellierung MUXDEMUX 01 s d0d0 d1d1 b s MUX d0d0 d1d1 b Steuersignal Binäre Daten Steuersignal Modellierung des Ein-/Ausgabe-Verhaltens (Black-Box-Modellierung): Eingaben Ausgaben Eingaben Ausgaben

20 20 Logische Systembeschreibung s = 0: b = d 0 s = 1: b = d 1 s = 0: d 0 = b s = 1: d 1 = b Entwicklung von Schalttermen zur Beschreibung des Ein-Ausgabe- Verhaltens bzw. der Schaltfunktionen: s DEMUX d0d0 d1d1 b s MUX d0d0 d1d1 b Eingaben Ausgaben Eingaben Ausgaben Schaltterm

21 21 Schaltnetze 1 d0d0 d1d1 s & & & & d0d0 d1d1 b s Entwicklung von Schaltungen zu den Schalttermen. s DEMUX d0d0 d1d1 b s MUX d0d0 d1d1 b Schaltnetz NOT-Gatter

22 22 Idee: Funktionale Modellierung s MUX d0d0 d1d1 b 1 d0d0 d1d1 s & & Realisierung des Systems mit Hilfe eines Logik- basierten Schaltnetzes Beschreibung des Systemverhaltens mit einer logischen Schaltfunktion

23 23 Übung Aufgabe: Erstellen und testen Sie mit Hilfe von Hades das entwickelte Schaltnetz. 1 d0d0 d1d1 & & & & d0d0 d1d1 b ss

24 24 Übung 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 0010 d0d0 d2d2 d1d1 d3d3 d0d0 d2d2 d1d1 d3d3 s1s1 s0s0 s1s1 s0s0 b

25 25 Teil 3 Exkurs: Schaltalgebra

26 26 Steuerung einer Autoinnenbeleuchtung 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

27 27 Steuerung einer Autoinnenbeleuchtung x 1 : Fahrertür ist geschlossen x 2 : Beifahrertür ist geschlossen y: Licht im Auto ist an x10011x10011 x20101x20101 y1110y1110 F x1x1 x2x2 y Beschreibung der Systemgrößen mit Schaltvariablen: Beschreibung des Systemverhaltens mit einer Schaltfunktion:

28 28 Schaltterme und Schaltnetze x1x1 x2x2 y & & & 1 1 x1x1 & x2x2 y x10011x10011 x20101x20101 y1110y Gatter 9 Gatter Schaltfunktion Schaltterme Schaltnetze

29 29 Steuerung einer Autoinnenbeleuchtung x 1 x x10011x10011 x20101x20101 y1110y1110 x10011x10011 x20101x20101 x 1 x Beschreibung der Schaltfunktion mit einem Schaltterm – Version 1 Korrektheitsnachweis mit einer Wertetabelle:

30 30 Steuerung einer Autoinnenbeleuchtung x10011x10011 x20101x20101 y1110y1110 x 1 x x10011x10011 x20101x20101 x 1 x x 1 x (y 1 y 2 ) y y1y1 y2y2 y3y3 Beschreibung der Schaltfunktion mit einem Schaltterm – Version 2 Korrektheitsnachweis mit einer Wertetabelle:

31 31 Finden von Schalttermen x1x1 x2x2 y & & & Gatter Problem: Wie findet man systematisch Schaltterme zur Repräsentation von vorgegebenen Schaltfunktion? x10011x10011 x20101x20101 y1110y1110

32 32 Minimierung des Schaltnetzes Problem: Wie gewinnt man möglichst einfache Schaltnetze zur Realisierung der vorgegebenen Schaltfunktion? x10011x10011 x20101x20101 y1110y1110 x1x1 & x2x2 1y x1x1 & x2x2 y NAND-Gatter

33 33 Boolesche Algebra / Schaltalgebra Objekte: 0 (FALSE) 1 (TRUE) Operationen: ¯ (NOT) (AND) (OR) x10011x10011 x20101x20101 x 1 x x10011x10011 x20101x20101 x 1 x x01x01 x10x10 Entwickelt 1854 von George Boole ( )

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

35 35 Aufstellen von Schalttermen Wert des Minterms y 2 ist 1 gdw Wert(x 1 ) = 0 und Wert(x 2 ) = 1 gdw Wert(x 1 ) = 1 und Wert(x 2 ) = 1 x10011x10011 x20101x20101 y1110y1110 x 1 x x10011x10011 x20101x20101 x 1 x x 1 x (y 1 y 2 ) y y1y1 y2y2 y3y3 Minterm (Elementarkonjunktion) Wert(y) ist 1 gdw Wert eines Minterms ist 1 Term in disjunktiver Normalform (Disjunktion von Mintermen)

36 36 Äquivalenz von Schalttermen x 1 x x10011x10011 x20101x20101 x 1 x x11100x11100 x21010x21010 x 1 x (y 1 y 2 ) y y1y1 y2y2 y3y3 x 1 x x10011x10011 x20101x20101 x 1 x Zwei Schaltterme t 1 und t 2 sind (logisch) äquivalent gdw gilt: Der Wert von t 1 und t 2 ist für alle möglichen Einsetzungen der in t 1 und t 2 vorkommenden Variablen durch 0 bzw. 1 gleich.

37 37 Gesetze der Schaltalgebra x 1 x x10011x10011 x20101x20101 x 1 x x11100x11100 x21010x21010 x 1 x (y 1 y 2 ) y y1y1 y2y2 y3y3 x 1 x x10011x10011 x20101x20101 x 1 x x11100x11100 x21010x21010 x 1 x y 1 (y 2 y 3 ) 1 0

38 38 Gesetze der Schaltalgebra a a b b a b 0 1 c c (a b) c 0 1 b c a (b c) 0 1 Assoziativgesetz für Disjunktionen:

39 39 Gesetze der Schaltalgebra Assoziativgesetze: Kommutativgesetze: Distributivgesetze: Gesetze der neutralen Elemente:

40 40 Gesetze der Schaltalgebra 0-1-Gesetze: Komplementgesetze: De Morgansche Gesetze: Adsorptionsgesetze:

41 41 Vereinfachung von Schalttermen Ergebnis: Die Terme sind logisch äquivalent.

42 42 Vereinfachung der Schreibweise x10011x10011 x20101x20101 x 1 x x10011x10011 x20101x20101 x 1 + x x01x01 x10x10 x10011x10011 x20101x20101 x 1 x x10011x10011 x20101x20101 x 1 x x01x01 x10x10

43 43 Termumformung m. Boolescher Algebra

44 44 Übung Aufgabe: Neben der NAND-Operation gibt es als weitere wichtige Operationen die NOR-Operation und die XOR-Operation. Testen Sie diese Operationen mit Hades und ergänzen Sie ihre Wertetabellen. Beschreiben Sie diese Operationen auch mit Schalttermen, in denen nur die drei Grundoperationen vorkommen. x10011x10011 x20101x20101 x 1 NAND x x 1 NOR x 2 x 1 XOR x 2

45 45 Teil 3 Rechensysteme

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

47 47 Stellenwertsysteme A B C D E F Dualzahlen Hexadezimalzahlen

48 48 Addiersystem Summand A Summand B Übertrag Summe Ziel ist es, ein Addiersystem für Dualzahlen zu entwickeln. Schriftliche Addition im Zehnersystem: Summand A Summand B Übertrag Summe Schriftliche Addition im Dualsystem:

49 49 Funktionale Modellierung Summand A Summand B Übertrag Summe HA a b s 1 1 ü 0 1 VA a c s 0 1 ü 1 0 b 0 VolladdiererHalbaddierer

50 50 Halbaddierer a0011a0011 b0101b0101 s0110s0110 ü0001ü0001 HA a b s 1 1 ü 0 1 Halbaddierer

51 51 c c Volladdierer a a b b s s ü ü VA a c s 0 1 ü 1 0 b 0 Volladdierer

52 52 Volladdierer m. Halbaddierer-Bausteinen ab HA 1 c s ü s ü ü s c c a a b b s s ü ü a0011a0011 b0101b0101 s0110s0110 ü0001ü0001 Volladdierer Halbaddierer

53 53 4-Bit-Paralleladdierer mit Bausteinen a3a3 a2a2 HA VA a1a1 a0a0 b3b3 b2b2 b1b1 b0b0 100 s0s0 s1s1 s2s2 s3s3 ü Beispiel: (1001) + (1011) = 1(0100)

54 54 Übung Aufgabe: Erstellen und testen Sie zunächst einen Halb- und Volladdierer. Entwickeln Sie anschließend einen 4-Bit-Paralleladdierer mit Hilfe geeigneter Bausteine.

55 55 Hinweise: Erzeugung von Bausteinen Schritt 1: Schaltnetz erzeugen und abspeichern (z. B.: ha.hds) Schritt 2: Neues Symbol erzeugen: [Edit][Create symbol] Schritt 3: Neuen Baustein erzeugen: [rechte Maustaste] [Create] [Create Subdesign...] ha.hds Schritt 4: Neuen Baustein benutzen: [rechte Maustaste] [Create] [Create Subdesign...] ha.hds

56 56 Übung Aufgabe: Entwickeln Sie analog zum 4-Bit-Addierer einen 4-Bit-Inkrementierer. Idee: Zahl Inkrement Übertrag Nachfolger

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

58 58 Lösung - Addierer

59 59 Lösung - Inkrementierer Zahl Inkrement Übertrag Nachfolger Idee:

60 60 Lösung - Komparator Idee: Zahl A Zahl B Hilf Ergebnis 0

61 61 Teil 4 Flip-Flops

62 62 An der Tankstelle Problem: Steuerung der Kontrolllampe einer Zapfsäule nach D. Jonietz: Lehrprobenentwurf 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.

63 63 Zapfsäule als zustandsbasiertes System einhängen bereitgesperrt einhängenfreigeben Zustand Anfangszustand auslösende Aktion 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.

64 64 Binäre Kodierung S S R R Q010011Q Q Q nichts machenfreigebeneinhängeneinhängen und freigeben Neuer Zustand Aktueller Zustand Zustände: Q = 0: bereit Q = 1: gesperrt Steuersignale: S: einhängen R: freigeben einhängen bereitgesperrt einhängenfreigeben

65 65 Entwicklung einer Schaltung S0011S RQ0111Q01111 Q0101Q0101 nichts machenfreigebeneinhängeneinhängen und freigeben Q 1 S Q

66 66 Entwicklung einer Schaltung S000011S R001100R Q010011Q Q010101Q nichts machenfreigebeneinhängeneinhängen und freigeben Q 1 S Q & R

67 67 Entwicklung einer Schaltung Q 1 S Q & R Q 1 S Q 1 R Q 1 S Q 1 R

68 68 Überprüfung der Schaltung 1 S Q 1 R P 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 S = 1; R = 1; P = 1; Q = 0 P = 0; Q = 0 Bedingung: P = Q unzulässig

69 69 Flip-Flop FunktionS S R R Q010011Q Q Q Zustand bewahren Zustand zurücksetzen Zustand setzen 1 S Q 1 R P = Q Flip-Flop-System Systemverhalten Eine Schaltung, die zwei stabile Zustände besitzt (bistabile Kippschaltung), wird als Flip-Flop bezeichnet.

70 70 Flip-Flop als Speicherelement S0011S0011 R0101R0101 QQ01QQ01 Funktion Bewahren Rücksetzen Setzen S R Q 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. Schaltsymbol 1 S Q 1 R P = Q Flip-Flop-SystemSpeicherelement

71 71 Zustandsgraph S Q = 0Q = 1 RS R S0011S0011 R0101R0101 QQ01QQ01 Funktion Bewahren Rücksetzen Setzen S = R = 1 vermeiden S = 1; R = 0 Q = 0Q = 1 S = 1; R = 0S = 0; R = 1 S = 0; R = 0

72 72 Übung Aufgabe: Bauen Sie das Flip-Flop-System auf und testen Sie sein Verhalten. S0011S0011 R0101R0101 QQ01QQ01 Funktion Bewahren Rücksetzen Setzen 1 S Q 1 R P = Q Flip-Flop-SystemSpeicherelement

73 73 Übung FunktionS S R R QQ Q & S Q & R P System Systemverhalten Aufgabe: Testen Sie auch das dargestellte System und beschreiben Sie sein Verhalten.

74 74 Übung FunktionS S R R QQ Q & S Q & R P System Systemverhalten Aufgabe: Testen Sie, ob man mit der oben dargestellten Schaltung ebenfalls ein Speicherelement erhält.

75 75 Teil 5 Von taktgesteuerten Flip-Flops zu Registern

76 76 Synchronisation von Flip-Flops 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. Fallende Flanke Steigende Flanke 1-Zustand0-Zustand

77 77 Taktgesteuertes Flip-Flop S*0011S*0011 R*0101R*0101 QQQ01QQQ01 C01111C01111 S Q R S R & & C Nur wenn der Takt den Wert 1 hat, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen. C S Q = 0Q = 1 C RC S C R S = R = 1 vermeiden

78 78 Übung 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. Impulsdiagramm

79 79 Master-Slave-Flip-Flop S R S R & & C S R & & 1 QSQS QMQM Master Die Belegungen der Eingänge wirken sich hier erst um eine halbe Taktperiode verzögert am Ausgang aus. Master- und Slave-Flip-Flop sind abwechselnd zum (Rück-)Setzen bereit bzw. gesperrt. C S Q M = 0 Q S = 0 C R C S C R Q M = 1 Q S = 0 Q M = 1 Q S = 1 Q M = 0 Q S = 1 C S CC Slave

80 80 Übung Aufgabe: Testen Sie die Flip- Flop-Schaltung (siehe msff.hds) und ergänzen Sie das Impulsdiagramm. C S QMQM R QSQS

81 81 Flankengesteuertes D-Flip-Flop & DQ & P = Q & & & & C Ein Zustandswechsel erfolgt hier nur bei einer steigenden Taktflanke.

82 82 Übung C D Q Aufgabe: Erstellen Sie zunächst eine D- Flip-Flop-Testschaltung. Erzeugen Sie dann die im Impulsdiagramm dargestellten Eingangssignale und ergänzen Sie das Q-Ausgangssignal. C D CC C C C C Z 0 Q = 0 Z 3 Q = 0 Z 2 Q = 1 Z 1 Q = 1

83 83 Schieberegister Ein 4-Bit-Schieberegister ist eine Einheit mit folgenden Eigenschaften: /1/ Das Register kann 4 Bit mit Hilfe von Flip-Flops speichern. /2/ Das Register hat einen Dateneingang, über den es neue Werte aufnehmen kann. /3/ Mit jeder steigenden Taktflanke werden die gespeicherten Werte um eine Einheit nach rechts verschoben. Das erste Flip-Flop übernimmt den Wert am Dateneingang, der Wert des letzten Flip-Flops geht (hier) verloren

84 84 Übung Entwerfen und testen Sie ein 4-Bit-Schieberegister, das mit Hilfe von D- Flip-Flops aufgebaut ist.

85 85 Schieberegister-Baustein Eingang zum Laden Takt Shift-Eingang Umschalten: Laden/Shift Reset Hades stellt einen vordefinierten Schieberegisterbaustein zur Verfügung: [rechte Maustaste] [create] [create by name] [ hades.models.register.ShiftRegister]

86 86 Übung hades.models.register.ShiftRegister Testen Sie den vordefinierten Schieberegister-Baustein von Hades.

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

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

89 89 Register Ein Register soll als Speichereinheit wie folgt arbeiten: /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. ENA NR D clk Q

90 90 Übung Testen Sie folgende Realisierung des Registers. wenn Q FF = 1 und ENA = 0 wenn ENA = 1 und NR = 1 und D = 1 1 oder ENA NR D Q clk

91 91 Übung hades.models.rtlib.io.OpinVector hades.models.rtlib.io.IpinVector Testen Sie auch den von Hades vordefinierten Register-Baustein: [create] [Create By Name] [ hades.models.rtlib.register.RegRE ] Stellen Sie den Baustein auf die Größe "8 Bit" ein: [rechte Maustaste] [Edit] [...]. Benutzen Sie eine hexadezimale Darstellung des Registerinhalts. hades.models.rtlib.register.RegRE

92 92 Lösung - Taktsteuerung S*0011S*0011 R*0101R*0101 QQQ01QQQ01 C01111C01111 C S Q = 0Q = 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.

93 93 Lösung - MS-Flip-Flop C S QMQM R QSQS S R S R & & C S R & & 1 QSQS QMQM C S Q M = 0 Q S = 0 C R C S C R Q M = 1 Q S = 0 Q M = 1 Q S = 1 Q M = 0 Q S = 1 C S CC Ein Zustandswechsel erfolgt beim MS-Flip- Flop um eine halbe Taktperiode verzögert.

94 94 Lösung - D-Flip-Flop C D CC C C C C Z 0 Q = 0 Z 3 Q = 0 Z 2 Q = 1 Z 1 Q = 1 C D Q Ein Zustandswechsel kann nur bei einer steigenden Taktflanke erfolgen.

95 95 Teil 6 Registermaschine

96 96 Zielsetzung Mit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger Rechner entwickelt werden. Wir orientieren uns hier am Konzept des Bonsai-Rechners. (vgl.

97 97 Registermaschine > 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT 0:5 1:3 2:0 3:0 4:0.. ProgrammDaten Eine Registermaschine bearbeitet beliebig eingebbare Daten nach einem fest vorgegebenen Programm. > x INC i Erhöhe Register i um 1. Gehe zu Zeile x+1. > x DEC i Erniedrige Register i um 1. Gehe zu Zeile x+1. > x JMP i Gehe zu Zeile i. > x TST i Wenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2. > x HLT Beende die Bearbeitung.

98 98 Universelle Registermaschine CPU 0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT 0: : Daten Programm Daten Programm 0: : : : : : : : : Codierung: INC: 1 DEC: 2 JMP: 3 TST: 4 HLT: 5 CPU

99 99 Rechnerarchitektur (von Neumann) Rechenwerk Datenbus Adressbus Akku PCIR 0: : : : : : : : : ArbeitsspeicherSteuerwerk

100 100 Befehlszyklus Rechenwerk Datenbus Adressbus Akku PCIR 0: : : : : : : : : ArbeitsspeicherSteuerwerk Wiederhole Befehl holen Befehl dekodieren und ausführen Befehlszyklus

101 101 Schritt 1: Akku-Register Wir beginnen mit dem Akku-Register. Der hier benutzte Akku soll 8-Bit- Dateneinheiten aufnehmen können. Benutzen Sie den von Hades vordefinierten Register-Baustein: [create] [Create By Name] [...] Stellen Sie den Baustein auf die Größe "8 Bit" ein: [rechte Maustaste] [Edit] [...]. Benutzen Sie eine hexadezimale Darstellung des Registerinhalts. Akku CLK: Takt-Eingang (Register reagiert b. steigender Taktflanke) NR: Reset-Eingang (NR = 0: Reset) ENA: Enable-Eingang (ENA = 1: Register bereit zum Lesen) D: Daten-Eingang Q: Daten-Ausgang hades.models.rtlib.register.RegRE

102 102 Registertest hades.models.rtlib.io.OpinVector hades.models.rtlib.io.IpinVector Testen Sie den Registerbaustein. Benutzen Sie geeignete Eingabe- und Ausgabe-Einheiten (die auf die Größe "8 Bit" angepasst werden müssen). Schreiben Sie einen Wert in das Register und lesen Sie ihn wieder aus.

103 103 Schritt 2: Rechenwerk Mit Hilfe des Rechenwerkes sollen einfache Inkrementier- und Dekrementieroperationen ausgeführt werden. Rechenwerk Akku Das Rechenwerk wird hier mit vordefinierten Incr- bzw. Decr- Bausteinen realisiert. Zur Auswahl der Datenleitungen werden geeignete Multiplexer benötigt.

104 104 Test des Rechenwerks hades.models.rtlib.arith.Decr hades.models.rtlib.arith.Incr hades.models.rtlib.muxes.Mux21 Bauen Sie die Schaltung auf und testen Sie diese, indem Sie eine zweistellige Hexadezimalzahl (8-Bit-Einheit) in den Akku schreiben und diese Zahl dann inkrementieren / dekrementieren.

105 105 Schritt 3: Arbeitsspeicher Die im Akku-Register zu verarbeitenden Daten sollen aus einem Arbeitsspeicher geholt und nach der Bearbeitung im Akku wieder in den Arbeitsspeicher geschrieben werden. 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: Arbeitsspeicher Rechenwerk Akku

106 106 RAM-Baustein nCS: nCS = 0: (notChipSelect) RAM-Baustein aktiv nWE: nWE = 0: DIN adressiertes Register nWE = 1: adressiertes Register DOUT A: Adress-Eingang DIN: Daten-Eingang DOUT: Daten-Ausgang hades.models.rtlib.memory.RAM Erzeugen Sie einen RAM-Baustein und legen Sie die Speichergröße wie angezeigt fest. Hades zeigt die Speicherinhalte zunächst nicht korrekt als zweistellige Hexadezimalzahlen an. Benutzen Sie folgenden "Trick": Speichern Sie die Schaltung ab. Öffnen Sie diese Datei mit einem Texteditor. Ergänzen Sie die Zeile zur Beschreibung des RAM- Bausteins um eine Datei-Angabe. In dieser Datei sollen die gewünschten Speicherinhalte stehen. [components]... hades.models.rtlib.memory.RAM i RP1.rom... [end components]

107 107 RAM-Test RAM Akku Testen Sie das bisher entwickelte System. Der Inhalt von Register 7 soll aus dem Speicher gelesen und im Akku zwischengelagert werden. Anschließend soll dieser Wert inkrementiert werden.

108 108 RAM-Test Akku RAM Testen Sie das bisher entwickelte System. Der im Akku zwischengelagerte Wert soll zurück in das Register 7 geschrieben werden.

109 109 Schritt 4: Datenbus Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen. Rechenwerk Datenbus Akku 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: Arbeitsspeicher

110 110 Datenbus RAM Datenbus AkkuAkku Datenbus RAM

111 111 Torsteuerung Datenbus hades.models.rtlib.muxes.TriBuf Bei der Realisierung des Busses muss darauf geachtet werden, dass nicht mehrere Quellen ihre Daten gleichzeitig auf den Bus schreiben. Der Datenfluss soll mit Hilfe von Toren, die durch Tristate-Gatter realisiert werden, geregelt werden.

112 112 Tristate-Verhalten S0011S0011 E0101E0101 A0001A0001 S0011S0011 E0101E0101 AZZ01AZZ01 hochohmig S = 0: passiv S = 1: aktiv (durchlassen) UND-Gatter Tristate-Gatter

113 113 Schritt 5: Befehlsregister und Adressbus Rechenwerk Datenbus Adressbus Akku IR 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: Arbeitsspeicher 3 JMP 3

114 114 Befehlsregister Datenbus Adressbus Befehlsregister Speicher Reset Bussplitter Die hexadezimal kodierten Befehle werden im Befehlsregister in ihre Bestandteile zerlegt.

115 115 Befehlsregister und Bussplitter hades.models.rtlib.register.RegRE hades.models.rtlib.io.BusTapBottom

116 116 Bussystem 8-Bit-Datenbus 4-Bit-Adressbus Befehlsregister Speicher mit 16 8-Bit-Registern

117 117 Schritt 6: Programmzähler Rechenwerk Datenbus Adressbus Akku IR 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: Arbeitsspeicher 3 PC 0

118 118 Programmzähler Adressbus Datenbus Befehlsregister Programmzähler

119 119 Schritt 7: Programmbeendung Rechenwerk Datenbus Adressbus Akku IR 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: Arbeitsspeicher 3 PC 0

120 120 Nullentdeckung Datenbus hades.models.rtlib.compare.CompareEqual

121 121 Schritt 8: Steuerwerk Rechenwerk Datenbus Adressbus Akku IR 0:3 3 1: 1 7 2:2 8 3: 4 8 4:3 1 5: 5 0 6: 0 0 7:0 5 8: ArbeitsspeicherSteuerwerk 3 PC 0

122 122 Steuerwerk Steuersignal

123 123 Mikroprogramm Befehl holen , 3, 11 20, 2 INC ausführen , 3, , , 4, 8, , 1...

124 124 Ausführung des Mikroprogramms Mikroprogrammzähler Befehl holen , 3, 11 20, 2 INC ausführen , 3, , , 4, 8, , 1...

125 125 Funktionseinheiten ProgrammzählerBefehlsregister Rechenwerk Arbeitsspeicher Akkumulator Steuerwerk Datenbus Adressbus

126 126 Funktionseinheiten Rechenwerk ArbeitsspeicherSteuerwerk Datenbus Adressbus Akku PCIR

127 127 Literaturhinweise F. Gasper, I. Leiß, M. Spengler, H. Stimm: Technische und theoretische Informatik. Bsv Eckhart Modrow: Automaten Schaltwerke Sprachen. Dümmler Verlag H. Bühler: Grundlagen einer Verständigung mit Computern. Skript. Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme. Pearson Studium


Herunterladen ppt "Digitaltechnik Klaus Becker 2007. 2 Digitaltechnik S R S R & & C S R & & 1 QSQS QMQM."

Ähnliche Präsentationen


Google-Anzeigen