Digitaltechnik Klaus Becker 2007.

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Programmierung: Einführung
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
5. Aussagenlogik und Schaltalgebra
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Statistiken und Tabellen
Technische Informatik I
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Analoge vs. Digitale Informationen
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
AC Analyse.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
Addierwerke.
Logischen Grundverknüpfungen
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Rechnerarchitektur.
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Der Simple As Possible Computer
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
Zusatzfolien zu B-Bäumen
Digitaltechnik Weiterbildungslehrgang XII – Kurs 4
Eine Einführung in die CD-ROM
Dokumentation der Umfrage
Basisinformationstechnologie HK-Medien
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
Dualzahlen und ihre logischen Verknüpfungen
Schaltnetze Klaus Becker 2003.
Universelle Registermaschine
Schaltwerke Klaus Becker 2003.
Logische Grundelemente
Addieren und Subtrahieren von Dezimalzahlen
Messung der Ionisierungsenergie von Wasserstoff
Der Ablauf eines Clear Rex Klärzyklus
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Eine lllustration der Herausforderungen des Stromsystems der Zukunft
Speichern von Informationen
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Speichern von Informationen
Parkplatz-Orga Diese Version ist vom finale Version!
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Technische Informatik II
Technische Informatik II
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Von der Schaltfunktion zur Schaltung
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
AGOF facts & figures: Branchenpotenziale im Internet Q2 2014: Parfum & Kosmetik Basis: internet facts / mobile facts 2014-I.
Folie Einzelauswertung der Gemeindedaten
Rechnerstrukturen 3b. Endliche Automaten.
Technische Informatik II
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (4|10)
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Logische Grundschaltungen
 Präsentation transkript:

Digitaltechnik Klaus Becker 2007

Digitaltechnik S R & C 1 QS QM

Logische Grundoperationen Teil 1 Logische Grundoperationen

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

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

Beschreibung des Systemverhaltens Beschreibung von Systemzuständen: x1 = 0: Tür ist offen x1 = 1: Tür ist geschlossen x2 = 0: Schalter ist nicht gedrückt x2 = 1: Schalter ist gedrückt y = 0: Motor ist inaktiv y = 1: Motor ist aktiv y x1 x2 Schalttabelle / Schaltfunktion x1 1 x2 1 y 1 „Motor ist aktiv“ genau dann, wenn „Tür ist geschlossen“ und „Schalter ist gedrückt“

Logische Deutung Logische Deutung 0: falsch 1: wahr y x1 x2 x1 1 x2 1 Wahrheitswerte x1 x2 logische Verknüpfung von Aussagen aussagenlog. Formel / Schaltterm x1 1 x2 1 y 1 y: „Motor ist aktiv“ genau dann, wenn x1: „Tür ist geschlossen“ und x2: „Schalter ist gedrückt“

Technische Lösung – mit Logikgatter y Beschreibung von Systemzuständen: x1 = 0: Tür ist offen x1 = 1: Tür ist geschlossen x2 = 0: Schalter ist nicht gedrückt x2 = 1: Schalter ist gedrückt y = 0: Motor ist inaktiv y = 1: Motor ist aktiv x1 x2 x1 1 x2 1 y 1 x1 & y UND-Operator x2 Kontakt-schalter Und-Gatter Motor

Logik-basierte Systembeschreibung Beschreibung des Systemverhaltens mit einer aussagenlogischen Formel (Schaltfunktion): y x1 1 x2 1 y 1 x1 x2 Systemgrößen Systemverhalten x1: „Tür ist geschlossen“ x2: „Schalter ist gedrückt“ y: „Motor ist aktiv“ „Motor ist aktiv“ genau dann, wenn „Tür ist geschlossen“ und „Schalter ist gedrückt“

Elektronik-Logik-Schichtung Systemgrößen Systemverhalten x1: „Tür ist geschlossen“ x2: „Schalter ist gedrückt“ y: „Motor ist aktiv“ Logik Elektronik Kontaktschalter x1 & y Motor Kontaktschalter x2 Logikgatter

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

Lösung mit ODER-Operator 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ürverriegelung ist deaktiviert“ Beschreibung des Systemverhaltens mit logischen Operationen x1 1 x2 1 y 1 ODER-Operator x1 1 y x2

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

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

Logische Grundoperationen Konjunktion / UND-Operation Disjunktion / ODER-Operation Negation / NICHT-Operation x1 1 x2 1 x1  x2 1 x1 1 x2 1 x1  x2 1 x 1 x 1 Logik Elektronik x1 x1 & y 1 y x 1 y x2 x2 UND-Gatter ODER-Gatter NICHT-Gatter

Ü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".

Schaltfunktionen und Schaltnetze Teil 2 Schaltfunktionen und Schaltnetze

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

Funktionale Modellierung 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

Logische Systembeschreibung 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 s = 1: b = d1 s = 1: d1 = b Schaltterm

Schaltnetze 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

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

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

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

Exkurs: Schaltalgebra Teil 3 Exkurs: Schaltalgebra

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

Steuerung einer Autoinnenbeleuchtung Beschreibung der Systemgrößen mit Schaltvariablen: x1: „Fahrertür ist geschlossen“ x2: „Beifahrertür ist geschlossen“ y: „Licht im Auto ist an“ Beschreibung des Systemverhaltens mit einer Schaltfunktion: x1 1 x2 1 y 1 x1 F y x2

Schaltterme und Schaltnetze x1 1 x2 1 y 1 Schaltfunktion Schaltterme x1 x2 9 Gatter x1 & & y x2 1 2 Gatter & 1 y & Schaltnetze

Steuerung einer Autoinnenbeleuchtung Beschreibung der Schaltfunktion mit einem Schaltterm – Version 1 Korrektheitsnachweis mit einer Wertetabelle: x1 1 x2 1 y 1 x1 1 x2 1 x1  x2 1 x1  x2 1

Steuerung einer Autoinnenbeleuchtung Beschreibung der Schaltfunktion mit einem Schaltterm – Version 2 Korrektheitsnachweis mit einer Wertetabelle: 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

Finden von Schalttermen x1 1 x2 1 y 1 x1 x2 Problem: Wie findet man systematisch Schaltterme zur Repräsentation von vorgegebenen Schaltfunktion? 9 Gatter & 1 & 1 y &

Minimierung des Schaltnetzes 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

Boolesche Algebra / Schaltalgebra 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 (1815-1864)

Schaltterme 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:

Aufstellen von Schalttermen 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)

Äquivalenz von Schalttermen 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

Gesetze der Schaltalgebra 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

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

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

Gesetze der Schaltalgebra Komplementgesetze: De Morgansche Gesetze: Adsorptionsgesetze:

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

Vereinfachung der Schreibweise x1 1 x2 1 x1  x2 1 x1 1 x2 1 x1  x2 1 x 1 x 1 x1 1 x2 1 x1  x2 1 x1 1 x2 1 x1 + x2 1 x 1 x 1

Termumformung m. Boolescher Algebra

Ü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. x1 1 x2 1 x1 NAND x2 1 x1 NOR x2 x1 XOR x2

Teil 3 Rechensysteme

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

Stellenwertsysteme 23 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 22 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 21 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 20 0 1 0 1 0 1 0 1 0 1 0 10 1 0 1 101 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 100 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 160 0 1 2 3 4 5 6 7 8 9 A B C D E F Dualzahlen Hexadezimalzahlen

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

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

Halbaddierer a 1 b 1 s 1 ü 1 1 a s HA 1 1 b ü Halbaddierer

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

Volladdierer m. Halbaddierer-Bausteinen c ü HA 1 ü s ü HA s s a 1 b 1 s 1 ü 1 Volladdierer a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 s 0 1 1 0 1 0 0 1 ü 0 0 0 1 0 1 1 1 Halbaddierer

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

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

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

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

Übung 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

Lösung - Addierer

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

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

Teil 4 Flip-Flops

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

Zapfsäule als zustandsbasiertes System freigeben einhängen auslösende Aktion einhängen Anfangszustand bereit gesperrt Zustand freigeben Grundeigenschaft zustandsbasierter Systeme: Das Verhalten des Systems hängt nicht nur von den auslösenden Aktionen (freigeben / einhängen) ab, das Verhalten hängt auch von internen Zuständen des Systems (bereit / gesperrt) ab.

Binäre Kodierung nichts machen nichts machen freigeben freigeben einhängen einhängen Neuer Zustand Aktueller Zustand bereit gesperrt nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 freigeben Zustände: Q = 0: „bereit“ Q = 1: „gesperrt“ Steuersignale: S: einhängen R: freigeben

Entwicklung einer Schaltung nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R Q 0 1 Q‘ 0 1 1 1 Q 1 Q‘ S

Entwicklung einer Schaltung nichts machen nichts machen freigeben freigeben einhängen einhängen einhängen und freigeben einhängen und freigeben S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ 0 1 0 0 1 1 Q 1 S & Q‘ R

Entwicklung einer Schaltung Q 1 S & Q‘ R Q 1 S 1 Q‘ R S 1 Q 1 Q‘ R

Überprüfung der Schaltung 1 P Bedingung: P = Q 1 Q R S = 1; R = 0; P = ..; Q = ..  P‘ = 0; Q‘ = 1 S = 0; R = 1; P = ..; Q = ..  P‘ = 1; Q‘ = 0 S = 0; R = 0; P = 1; Q = 0  P‘ = 1; Q‘ = 0 S = 0; R = 0; P = 0; Q = 1  P‘ = 0; Q‘ = 1 S = 1; R = 1; P = 0; Q = 1  P‘ = 0; Q‘ = 0 unzulässig S = 1; R = 1; P = 1; Q = 0  P‘ = 0; Q‘ = 0

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

Flip-Flop als Speicherelement 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1 Q R Flip-Flop-System Speicherelement S Q Schaltsymbol R Das entwickelte Flip-Flop-System verhält sich wie ein Speicherelement. Mit Hilfe der Funktionen „Setzen“ und „Rücksetzen“ wird ein Wert in den Speicher geschrieben, mit der Funktion „Bewahren“ wird er im Speicher aufbewahrt.

Zustandsgraph S 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen Q = 0 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen Q = 0 Q = 1 S = 0; R = 1 S R S = R = 1 vermeiden S Q = 0 Q = 1 R

Übung S 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1 1 R 1 Q‘ Q 1 Funktion Bewahren Rücksetzen Setzen S 1 P = Q 1 Q R Flip-Flop-System Speicherelement Aufgabe: Bauen Sie das Flip-Flop-System auf und testen Sie sein Verhalten.

Übung S S 0 0 1 1 R 0 0 1 1 Q 0 1 Q‘ Funktion & Q & P R Aufgabe: System Systemverhalten Aufgabe: Testen Sie auch das dargestellte System und beschreiben Sie sein Verhalten.

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

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

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. 1-Zustand 0-Zustand Steigende Flanke Fallende Flanke

Taktgesteuertes Flip-Flop Nur wenn der Takt den Wert 1 hat, kann ein Setzen oder Rücksetzen des Flip-Flops erfolgen. S & S Q C R & R C 1 S * 1 R * 1 Q‘ Q 1 C  S S = R = 1 vermeiden C  R C  S Q = 0 Q = 1 C  R

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

Master-Slave-Flip-Flop 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 C  S QM = 0 QS = 0 C  R QM = 1 QS = 0 QM = 1 QS = 1 QM = 0 QS = 1 C Master Slave S R & C 1 QS QM

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

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

Übung 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 C 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

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

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

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

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

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

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

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

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

Übung 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.io.IpinVector hades.models.rtlib.register.RegRE hades.models.rtlib.io.OpinVector

Lösung - Taktsteuerung 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

Lösung - MS-Flip-Flop C  S C  S QM = 0 QS = 0 C  R QM = 1 QS = 0 QM = 1 QS = 1 QM = 0 QS = 1 C Ein Zustandswechsel erfolgt beim MS-Flip-Flop um eine halbe Taktperiode verzögert. S QM QS & & S S R R & & R C 1 C  S C S R QM QS

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

Teil 6 Registermaschine

Zielsetzung Mit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger Rechner entwickelt werden. Wir orientieren uns hier am Konzept des Bonsai-Rechners. (vgl. http://www.hsg-kl.de/faecher/inf/material/bonsai/index.php)

Registermaschine Eine Registermaschine bearbeitet beliebig eingebbare Daten nach einem fest vorgegebenen Programm. Daten Programm 0: 5 1: 3 2: 0 3: 0 4: 0 .. > 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT > 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. Wenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2. > x TST i > x HLT Beende die Bearbeitung.

Universelle Registermaschine Programm 0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT 0: 0 0005 1: 0 0003 .. 0 0000 Codierung: CPU INC: 1 DEC: 2 JMP: 3 TST: 4 HLT: 5 Daten Programm 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 CPU Daten

Rechnerarchitektur (von Neumann) Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

Befehlszyklus PC IR Akku Wiederhole Befehl holen Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR Arbeitsspeicher Steuerwerk Befehlszyklus Datenbus Wiederhole Befehl holen Befehl dekodieren und ausführen Akku Rechenwerk

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 hades.models.rtlib.register.RegRE CLK: Takt-Eingang (Register reagiert b. steigender Taktflanke) NR: Reset-Eingang (NR = 0: Reset) ENA: Enable-Eingang (ENA = 1: Register bereit zum Lesen) D: Daten-Eingang Q: Daten-Ausgang

Registertest 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. hades.models.rtlib.io.IpinVector hades.models.rtlib.io.OpinVector

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

Test des Rechenwerks 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. hades.models.rtlib.arith.Decr hades.models.rtlib.arith.Incr hades.models.rtlib.muxes.Mux21

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: 0 3 .. 0 0 Arbeitsspeicher Akku Rechenwerk

RAM-Baustein 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 i1 -18300 33900 @N 1001 16 8 RP1.rom [end components] hades.models.rtlib.memory.RAM 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

RAM-Test 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. RAM  Akku

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

Schritt 4: Datenbus Akku Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen. 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: 0 3 .. 0 0 Arbeitsspeicher Datenbus Akku Rechenwerk

Datenbus Datenbus Datenbus RAM  Datenbus  Akku Akku  Datenbus  RAM

Torsteuerung hades.models.rtlib.muxes.TriBuf Datenbus 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.

Tristate-Verhalten S 1 E 1 A 1 S 1 E 1 A Z 1 S = 0: passiv UND-Gatter S 1 E 1 A 1 Tristate-Gatter S 1 E 1 A Z 1 hochohmig S = 0: passiv S = 1: aktiv (durchlassen)

Schritt 5: Befehlsregister und Adressbus JMP 3 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: 0 3 .. 0 0 3 3 IR Arbeitsspeicher Datenbus Akku Rechenwerk

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

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

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

Schritt 6: Programmzähler Adressbus 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: 0 3 .. 0 0 PC 3 3 IR Arbeitsspeicher Datenbus Akku Rechenwerk

Programmzähler Adressbus Programmzähler Befehlsregister Datenbus

Schritt 7: Programmbeendung Adressbus 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: 0 3 .. 0 0 PC 3 3 IR Arbeitsspeicher Datenbus Akku Rechenwerk

Nullentdeckung Datenbus hades.models.rtlib.compare.CompareEqual

Schritt 8: Steuerwerk PC IR Akku Adressbus 3 3 Arbeitsspeicher 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: 0 3 .. 0 0 PC 3 3 IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

Steuerwerk Steuersignal Steuerwerk

Mikroprogramm Mikroprogramm Befehl holen 0 10 1 10, 3, 11 2 0, 2 INC ausführen 10 12 11 12, 3, 7 12 12, 5 13 12, 4, 8, 13 14 0, 1 ... Mikroprogramm

Ausführung des Mikroprogramms Befehl holen 0 10 1 10, 3, 11 2 0, 2 INC ausführen 10 12 11 12, 3, 7 12 12, 5 13 12, 4, 8, 13 14 0, 1 ... Mikroprogrammzähler Mikroprogrammzähler

Funktionseinheiten Programmzähler Befehlsregister Adressbus Arbeitsspeicher Datenbus Rechenwerk Steuerwerk Akkumulator

Funktionseinheiten PC IR Akku Adressbus Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

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. ...