FAKULTÄT FÜR INFORMATIK

Ähnliche Dokumente
FAKULTÄT FÜR INFORMATIK

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Speicherung digitaler Signale

Flipflops. asynchron: Q t Q t+t

Flip Flops allgemein - Digitale Signalspeicher

Angewandte Physik II: Elektronik

16 Latches und Flipflops (Bistabile Kippstufen)

Vorbereitung zum Versuch

Logik mit Gedächtnis : Sequentielle Logik

Schaltwerke Schaltwerk

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Grundtypen Flip-Flops

EHP Einführung Projekt A

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

Praktikum Grundlagen der Elektronik

2.5.1 Das Basis-Flipflop

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Praktikum Digitaltechnik

Speicherung von Signalen - Flipflops, Zähler, Schieberegister

Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

5.2 Endliche Automaten

Kapitel 2. Elementare Schaltwerke. 2.1 RS-Flipflop

Versuch P1-63 Schaltlogik Vorbereitung

Versuch 3: Sequenzielle Logik

GTI ÜBUNG 10 FLIPFLOPS UND AUTOMATEN

Schaltungen Jörg Roth 197

Digitale Netzwerke... 2

Protokoll zu Grundelemente der Digitaltechnik

Übung 1 RS-FFs mit NOR- oder NAND-Gattern

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

Versuchsvorbereitung P1-63: Digitale Elektronik, Schaltlogik

3 Arithmetische Schaltungen

Speicherregister/Latches (1) 1

III. Asynchrone und synchrone Schaltwerke

Integrierte Schaltungen

Übungsblatt 8 Lösungen:

Drücken Sie (später) bei Speichere Änderungen in der Bibliothek default? auf Nein.

1. Praktische Übung zur Vorlesung Technische Informatik I

Hardwarearchitekturen und Rechensysteme

Einführung in die technische Informatik

DIGITALTECHNIK 10 SCHIEBEREGISTER

Hardwarepraktikum WS 1997/98. Versuch 4. Sequentielle Systeme I

Digitaltechnik II SS 2007

3. Prozesse in VHDL 1

Lerntext zum Kapitel Digitaltechnik

Protokoll Flip-Flops. Protokollanten: Torsten Görig und Michael Horstmann

Hardware Praktikum 2008

Automaten. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Teil 1: Digitale Logik

Praktikum Digitaltechnik SS Versuchsbeschreibungen

Arbeitsbereich Technische Aspekte Multimodaler Systeme. Praktikum der Technischen Informatik T1 2. Flipflops. Name:...

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

10. Elektrische Logiksysteme mit

Versuchsvorbereitung: P1-63, 64, 65: Schaltlogik

Füllstandsregelung. Technische Informatik - Digitaltechnik II

Kapitel 5: Schieberegister. Anwendungen von Schieberegistern. Grundschaltung eines Schieberegisters. Kapitelverzeichnis (Buch Künzli)

Sequenzielle Schaltwerke

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Halbleiterdaten. Eigenschaften von Si und GaAs bei T = 300K, sofern nicht anders angegeben. Eigenschaft Symbol Einheit Silizium GaAs

Entwurf und Simulation einfacher Logikelemente

Schaltlogik. Versuch: P Vorbereitung - Physikalisches Anfängerpraktikum 1 Wintersemester 2005/06 Julian Merkert ( )

KLAUSUR DIGITALTECHNIK SS 00

BA-Mannheim, 2. Semester IT Digitaltechnik (Hr. Schillack)

V10: Flip-Flops und Zähler

Versuch: D1 Gatter und Flipflops

Institut für Informatik. Aufgaben zum Elektronik - Grundlagenpraktikum. 4. Praktikumskomplex - Schaltungen mit digitalen Speicherschaltkreisen

DuE-Tutorien 17 und 18

Getaktete Schaltungen

Vorbereitung: Schaltlogik

C. Sequentielle Logik

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Q R. reset (R) set (S) unzulässig! Unkontrollierte Rückkopplung von Gatterausgängen auf Gattereingänge führt zu logisch "inkonsistentem" Verhalten!

Digitalelektronik. Philipp Fischer. 9. Dezember 2002

9 Flipflops (FF) Basis-FF. (Auffang-FF, Latch) praxis verstehen chancen erkennen zukunft gestalten 9-1

Praktikum Rechnerarchitektur. Seite 1 Prof. Dr.-Ing. Ulrich Schmidt 2011 Praktikum Rechnerarchitektur

Labor Grundlagen der Elektrotechnik

Protokoll zum Versuch Flip-Flop

Lösung 3.1 Schaltalgebra - Schaltnetze (AND, OR, Inverter)

Entwurf digitaler Systeme

D Sequentielle Logik. D Sequentielle Logik. 1 Schaltwerke (2) 1 Schaltwerke. Einordnung in das Schichtenmodell:

Grundlagen der Informatik

Einführung in VHDL (2)

Versuch P1-63, 64, 65. Schaltlogik VORBEREITUNG. Stefanie Falk

Grundtypen Flip-Flops

COMPUTERGESTÜTZTES EXPERIMENTIEREN I P R A K T I K U M

Statische Timing-Analyse

Ideale Impulsglieder ohne Einsatz von RC-Gliedern und nicht getaktete (asynchrone) JK-Flipflops

Praktikum Systementwurf mit VHDL HDL Design Lab

Aufgaben und Lösungen

Sequenzielle Schaltungen (1)

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

12. Tutorium Digitaltechnik und Entwurfsverfahren

Klausur zur Vorlesung

Grundlagenlabor Digitaltechnik GRUNDLAGENLABOR DIGITALTECHNIK VERSUCH 4 VERSUCHSTHEMA FLIP-FLOPS ALS ZÄHLER PROTOKOLLANT/ -IN

Bericht. Digitallabor. Hochschule Karlsruhe N1. Aufgabe 5.6 Stoppuhr. Teilnehmer: Natalia Springer, Tong Cha. Datum:

GAL 16V8. 4. Laboreinheit - Hardwarepraktikum SS 2002 VCC / +5V. Eingang / Clock. 8 konfigurierbare Ausgangszellen. 8 Eingänge GND / 0V.

Einstellige binäre Addierschaltung (Addierer)

Digitaltechnik Laborversuch 1. FlipFlops. Wichtige Informationen

Wirkung a b Q t Q t+1

Transkript:

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Lösungsvorschlag zur Zentralübung 10 13.01.2017 Antworten auf die Fragen im Text (Flipflops und Schaltwerke) Wandeln Sie diese Schaltung durch Einfügen von Invertern in ein rein NOR-basiertes RS-Flipflop um. S R Durch Einfügen von zwei Invertern (am Ausgang des OR-Flipflops und am nachfolgenden AND-Eingang) wird die Funktion des Flipflops nicht beeinflusst, lediglich das Ausgangsignal invertiert. Ein weiterer Inverter am R-Eingang macht diesen genauso High-aktiv wie den S-Eingang. Das daraus folgende AND-Gatter mit zwei invertierten Eingängen kann nach der De Morganschen Regel in ein NOR umgewandelt werden. (Die übliche Über-Kreuz-Zeichnung der Verbindungen kann leicht durch Umdrehen des unteren Gatters verwirklicht werden.) Wie könnte ein Flipflop aussehen, das nur dann seinen Wert ändern kann, wenn ein zusätzlicher Takteingang aktiv (log. 1) ist? (Sogenanntes taktgesteuertes Flipflop.) Ein NOR-basiertes RS-Flipflop hat seinen (inaktiven) Speicherzustand, wenn an den Eingängen (R,S) = (0,0) anliegt. Es liegt daher nahe, die Signale R und S über Datenwegsschalter mit dem Taktsignal zu verknüpfen: 1

S R Durch geschicktes Einfügen von Invertern kann man ein solches getaktetes Flipflop auch ausschließlich aus NAND-Gattern aufbauen. Bitte selbst probieren! Tip: Zunächst die Datenwegsschalter umwandeln, danach ergeben sich die Konsequenzen für das Flipflop von selbst. Da die Schaltung symmetrisch bezüglich der Wahl der Ein- und Ausgänge ist, wird sich am Ende eine umgekehrte Bezeichnung der Ausgänge ergeben. Wie müsste man das Flipflop zusätzlich beschalten, wenn nur ein Eingang (genannt D) zum Datenspeichern neben dem Takteingang vorhanden sein soll? (Sogenanntes D-Flipflop.) Jedes Flipflop mit einem Setz- und einem Rücksetzeingang hat mindestens die beiden gültigen Eingangswerte (0, 1) und (1, 0), die den Vorgang des Setzens oder Rücksetzens auslösen. Eine Umwandlung in ein ausschliesslich speicherndes Flipflop kann somit durch Einfügen eines Inverters geschehen, im Beispiel bei einem NAND-basierten getakteten RS-Fliplflop, welches dadurch zu einem getakteten D-Flipflop wird: S Aufgabe 10.1 1) Wie lässt sich ein RS-Flipflop (z.b. die NAND-Variante) in VHDL vom Verhalten her beschreiben? Wir gehen zunächst nur vom -Ausgang aus. Dieser behält seinen alten Wert, wenn R und S 1 sind, wird mit S=0 auf 1 und mit R=0 auf 0 gezwungen. q <= 1 when s= 0 else 0 when r= 0 else q; Interessanterweise benötigen wir hier den invertierten -Ausgang nicht, um die Speicherfunktion zu erhalten. Dies geschieht allein schon über die Rückkopplung (d. h. q taucht auf der 2

rechten Seite auf). 2) Wie lässt sich ein NOR-RS-Flipflop in VHDL strukturell (d. h. als Netzliste mit Gatterkomponenten und Verdrahtung) beschreiben? Zunächst die Interfacebeschreibung der Entity: entity nor_rs is port (r,s : in std_logic; q,qn : out std_logic ) end entity; Für die Architecture ist zu beachten, dass q bzw. qn mit dem Modus OUT nicht intern wieder gelesen werden können. Daher müssen wir interne Signale iq und iqn einführen. architecture structural of nor_rs is signal iq,iqn: std_logic; -- interne Signale component nor2 -- Def. des NORs mit zwei Eingängen port (a,b : in std_logic; x : out std_logic ); end component; q<=iq; qn<=iqn; -- Ausgabe der internen Signale NOR_1: nor2 port map (s, iq, iqn); -- SET ist am NOR mit /! NOR_2: nor2 port map (r, iqn, iq); end structural; Aufgabe 10.2 1) Machen Sie sich anhand des Impulsverlaufes des Taktsignales klar, wann jeweils die einzelnen Teilflipflops schalten. (2) (3) (1) (4) 1. Das Signal ist gerade nicht mehr Low, d.h. für den Slave gerade nicht mehr aktiv. Folge ist, dass das Slave-Flipflop sperrt und somit keine Zustandswechsel an seinem Ausgang vorkommen können. 3

2. ist jetzt vollständig aktiv, d. h. das Master-Flipflop öffnet und kann somit gesetzt werden. 3. Nun ist nicht mehr aktiv, so dass das Master-Flipflop wieder sperrt und seinen letzten gesetzten Wert behält. 4. Schließlich wird für das Slave-Flipflop wieder aktiv und kann somit den Wert des Master-Flipflops übernehmen. In der letzten Phase findet der eigentliche, nach außen sichtbare Wechsel des Zustandes eines Master-Slave-Flipflops statt. Ein MS-Flipflop mit einem solchen Taktverlauf nennt man daher negativ flankengesteuert, da die negative (d. h. die abfallende) Flanke für den eigentlichen Zustandswechsel sorgt. Mit einem Inverter für kann auf die steigende Flanke reagiert werden. Kann es bei schnellen Signalwechseln Probleme geben? Ist das Eingangssignal in der Umgebung der übernehmenden Taktflanke instabil, kann zunächst ein falscher Zustand abgespeichert werden. In einem noch engeren Fenster um diese Taktflanke herum ist es aber auch möglich, dass das Flipflop zwar einen Wert annimmt, nach einiger Zeit aber spontan zurückfällt, zwischen 0 und 1 oszilliert oder sogar konstante Spannungspegel ausgibt, die weder 1 noch 0 zuzuordnen sind. Dieser Zustand kann relativ lange anhalten und wird Metastabilität genannt. Ein Auftreten kann schwerste Probleme nach sich ziehen und potentiell durch Folgefehler sogar dauerhafte Hardwareschäden verursachen. Besonders gravierend kann das bei der Zustandspeicherung von Automaten sein, wo z.b. ungültige Zustände entstehen, die durch keinen in dem Kontext möglichen Übergang verlassen werden können. Die Wahrscheinlichkeit für ein metastabiles Ereignis steigt rapide an, wenn die sogenannte Setup- und Holdzeiten um die Taktflanke verletzt werden. Man kann durch verschiedene technische Tricks dieses Zeitfenster verkleinern, aber nicht völlig eliminieren. Es gibt kein Flipflop, das keine Metastabilität besitzt! Die einzige Möglichkeit, den Effekt extrem unwahrscheinlich (< 10 30 ) auftreten zu lassen, ist die strikte Einhaltung der Setup/Hold-Zeiten. Anwendung: JK-Flipflop Wenn man sich die Funktionstabelle eines RS-Flipflops genau anschaut, stellt man fest, dass die Eingangkombination (R,S) = (1,1) (bzw. (R,S) = (0,0) beim NAND-basierten Flipflop) eine Ausgangskombination von (, ) = (1, 1) erzeugt und somit eigentlich nicht gültig ist, da NOT ist. Um zu verhindern, dass die besagte Eingangskombination versehentlich genutzt wird, kann man nun dafür sorgen, dass ihr eine neue Funktion zugeordnet wird. Üblicherweise wählt man dafür den Wechsel des aktuellen Zustandes (Toggle, daher auch T-Flipflop). Die neue Funktionstabelle sieht also z.b. folgendermaßen aus, wobei nun R und S als J und K (Jump and Kill) bezeichnet werden: 4

J K 0 x x alt alt 1 0 0 alt alt 1 0 1 0 1 1 1 0 1 0 1 1 1 alt alt Diese Funktionalität wird üblicherweise dadurch implementiert, dass im Fall (J, K) = (1, 1) die Ausgänge kreuzweise über Datenwegsschalter an die Eingänge eines herkömmlichen RS-Flipflips zurückgeführt werden: J K Voraussetzung für diese Form der Rückkopplung ist allerdings die Verwendung eines nichttransparenten Systemflipflops, hier angedeutet durch das Dreieck am Takteingang (= Flankensteuerung) sowie den senkrechten uerstrich im Flipflopsymbol (= Master-Slave-Technik). Auch das JK-Flipflop kann natürlich Metastabilität aufweisen! 2) Entwerfen Sie ein sogenanntes D-Master-Slave-Flipflop durch (graphische) Verschaltung von Gattersymbolen. D Master-Latch Slave-Latch 5

3) Schaltbild (vereinfachte Darstellung der D-FFs): 1 2 3 4 D1 FF1 FF2 FF3 FF4 D D D D Ausgangswerte: D1 1 2 3 4 undefinierter Wert Obige Anordnung ist ein Schieberegister. Dies kann z. B. benutzt werden, um serielle Daten zu parallelisieren. Wenn die Flipflopeingänge auch über einen Umschalter mit einem bestimmten Wert geladen werden können, ist es zusätzlich möglich, parallele Bitworte durch das Schieben zu serialisieren. Die Anwendungen sind damit z. B. in der gesamten Übertragungstechnik, bei seriellen Schnittstellen wie RS232, USB, Firewire, Serial ATA, Displayansteuerung (TFT) etc. Aufgabe 10.3 1) Darstellung des Verhaltens eines D-Master-Slave-Flipflops in VHDL: process(clk) -- in architecture eingebunden if rising_edge(clk) then -- steigende Flanke q<=d; end if; end process; 2) Um nicht jedes Bit einzeln beschreiben zu müssen, werden jetzt Vektoren benutzt. Wie bei Aufgabe 9.1 wird ein internes Signal benutzt. entity shift_register is port (d,clk: in std_logic; q : out std_logic_vector(4 downto 1) ); end entity; 6

architecture simpel of shift_register is signal iq: std_logic_vector(4 downto 1); q<=iq; process(clk) if rising_edge(clk) then iq(1)<=d; iq(4 downto 2)<=iq(3 downto 1); end if; end process; end simpel; 3) 8Bit-Addierer mit zwei Takten Verzögerung. Eingänge a, b und Ausgang z sind in der Entity als unsigned(7 downto 0) definiert. architecture beispiel of adder is -- Wir brauchen wieder interne Zwischenspeicher für a und b -- Diese Signale sind ausserhalb der Entity NICHT sichtbar! signal a_ff,b_ff: unsigned(7 downto 0); process(clk) if rising_edge(clk) then a_ff <= a; b_ff <= b; z <= a_ff + b_ff; end if; end process; end beispiel; Funktionsweise: a und b werden mit der steigenden Taktflanke in den Entity-internen Signalen a ff und b ff zwischengespeichert. Diese Zwischenspeicher werden auch Register genannt. Das Ergebnis der Addition von a ff und b ff wird in Flipflops gespeichert, deren Ausgang auf das Signal z gegeben wird. Durch die Semantik des Prozesses (Zuweisungen erst am Ende) entsteht damit eine Verzögerung des Ausgangs zu den Eingangswerten um insgesamt zwei Takte. Diese Verzögerungskonstruktion mit zusätzlichen Flipflops ist sinnvoll, um reale Gatterlaufzeiten zu entzerren (Stichwort Pipelining). Beispielsweise können somit Berechnungen, die für einen Takt zu lange dauern, in Zwischenstufen aufgeteilt werden, die durch Flipflops getrennt werden. Dieser Aufbau erlaubt höhere Taktraten auf Kosten der Verzögerung (Latenz). 7