16. Latches und Flipflops - users.etech.haw
Transcription
16. Latches und Flipflops - users.etech.haw
Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 16 Latches und Flipflops (Bistabile Kippstufen) • Latches und Flipflops dienen als Speicherelemente in sequentiellen Schaltungen. • Latches werden durch Pegel gesteuert (Zustandssteuerung). Bei der VHDL-Synthese treten Latches häufig unerwünscht auf → VHDL-Syntheserichtlinien beachten! • Flipflops sind wesentlicher Bestandteil getakteter Schaltungen wie z.B. von Zustandsautomaten und Prozessoren. Sie werden durch Flanken, also durch Pegeländerungen gesteuert. • Beim Einsatz von Flipflops sind zeitliche Randbedingungen unbedingt zu beachten, um einen eindeutig definierten Ausgangszustand zu erhalten. • Es werden erläutert: • Basis RS-Latch • Taktzustandsgesteuertes RS-Latch • Data- (D-) Latch • D-Flipflop • JK-Flipflops haben heute nur geringe praktische Bedeutung DIGITALTECHNIK 16-1 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 16.1 Basis RS-Latch • Grundstruktur aller Flipflops → enthält Rückkopplungen der Ausgänge zu denEingängen • Strukturelle VHDL-Beschreibung durch zwei kreuzgekoppelte NOR-Gatter → buffer-port Modus erforderlich: Schaltsymbol: library ieee; use ieee.std_logic_1164.all; entity RSLATCHX is port( R, S : in std_logic; -- Setzen/Ruecksetzen Q, NQ: buffer std_logic); -- Ausgaenge als buffer end RSLATCHX; ------------------------------------architecture STRUKTUR of RSLATCHX is begin NQ <= S nor Q after 10 ns; Q <= R nor NQ after 10 ns; end STRUKTUR; DIGITALTECHNIK 16-2 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Verhalten des Basis RS-Latches Zustandsfolgetabelle: S R Q 0 0 0 0 0 1 0 1 X 1 0 X 1 1 X Q+⎯Q+ Arbeitstabelle: Im RS-Latch existiert eine kombinatorische Schleife, d.h. der Ausgang eines kombinatorischen Ausgangs wird ohne Latch oder Flipflop auf den Eingang des Gatters geführt. Bei kombinatorischen Schleifen besteht die Gefahr des Schwingens ! DIGITALTECHNIK S 0 0 1 1 R Q+ 0 1 0 1 Bedeutung Synthesetabelle: Q 0 0 1 1 Q+ S 0 1 0 1 R 16-3 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Analyse der Zustandsübergänge im Basis RS-Latch (die Rückkopplung wird sequentiell betrachtet) NOR-Gatter: Ein beliebiger '1' Eingang erzwingt eine '0' am Ausgang Alle Eingänge '0' bewirken eine '1' am Ausgang Setzen Halten DIGITALTECHNIK Rücksetzen Irregulär 16-4 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Verhaltensbeschreibung für das Basis RS- Latch architecture VERHALTEN of RSLATCHX is begin process(R, S) begin if (S='1' and R='0') then Q <= '1' after 10 ns; elsif (S='0' and R='1') then Q <= '0' after 10 ns; elsif (S='0' and R='0') then Q <= Q after 10 ns; else Q <= 'X' after 10 ns; end if; end process; NQ <= not Q after 10 ns; end VERHALTEN; Charakteristische Gleichung des RS-Flipflops: Q+: ⎯Q Q 0 4 5 1 2 6 7 3 ⎯S S ⎯S ⎯R --Setzen --Ruecksetzen --Speichern --Irregulaer Hinweis: RS-Basis Latches lassen sich auch aus kreuzgekoppelten NAND-Gattern aufbauen. Dann werden die Eingänge Low-Aktiv gesteuert. R Q+= ... DIGITALTECHNIK 16-5 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 16.1 Taktzustandsgesteuertes RS-Latch (Gated RS-Latch) • Das Basis RS-Latch ist für synchrone Schaltungen kein geeignetes Speicherelement da es sich nicht mit anderen Schaltungsteilen synchronisieren läßt. Es kann als asynchroner Zustandsautomat aufgefasst werden. • Das taktzustandsgesteuerte RS-Latch enthält ein Takttor (Gate), welches aus zwei UND-Gattern besteht und die S- und R-Eingänge mit dem Takt synchronisiert. Durch diese Gatter aktiviert der S- bzw. R-Eingang das Latch nur, wenn gleichzeitig das Takttor geöffnet ist, d.h. das Taktsignal C='1' ist. C 0 0 1 1 1 1 1 S X X 0 0 1 0 1 R X X 0 0 0 1 1 SI 0 0 0 0 1 0 1 RI 0 0 0 0 0 1 1 Q 0 1 0 1 X X X Q+ Zustand 0 1 0 1 1 0 0 DIGITALTECHNIK 16-6 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Verhaltensmodell für das taktzustandsgesteuerte RS-Latch (mit Testbenchauszug) library ieee; use ieee.std_logic_1164.all; entity RSLATCHT is --- keine port-Deklarationen da Testbench end RSLATCHT; architecture VERHALTEN of RSLATCHT is signal C, R, S, Q: std_logic; begin --- Teststimuli -STIM: process begin C <='0'; R <='0'; S <='1'; wait for 50 ns; -- Setzen .... end process STIM; RS: process(C, R, S) begin if C = '1' then if (S='1' and R='0') then Q <= '1' after 10 ns; --Setzen elsif (S='0' and R='1') then Q <= '0' after 10 ns; --Ruecksetzen elsif (S='0' and R='0') then Q <= Q after 10 ns; --Speichern else Q <= 'X' after 10 ns; --Irregulaer end if; end if; end process RS; end VERHALTEN; DIGITALTECHNIK 16-7 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Zeitverhalten des taktzustandsgesteuerten RS-Latches • Das taktzustandsgesteuerte Latch wird als transparent bezeichnet, wenn C='1' ist. D.h. jede Änderung von R und S wirkt sich sofort auf die Ausgänge aus. Während C='0' behält das RS-Latch seinen Ausgangswert bei. R und S sind also Vorbereitungseingänge, deren Wirkung erst bei C='1' auftritt. • Bei Verwendung des taktzustandsgesteuerten RS-Latches ist weiter dafür zu sorgen, dass R und S im transparenten Zustand (C='1') nicht gemeinsam aktiviert werden. D.h. es muss die Nebenbedingung C∧R∧S = '0' eingehalten werden. • Bei t=0 ist das RS-Latch solange undefiniert 'U', bis ihm durch R oder S ein Wert zugewiesen wird. DIGITALTECHNIK 16-8 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Syntheseergebnis des Basis RS-Latches für ein XC95108 CPLD Syntheseergebnis des RS-Latches für ein XC95108 CPLD ; Implemented Equations. /QOUT := Vcc QOUT.CLKF = Gnd QOUT.RSTF = C * R QOUT.SETF = C */R * S QOUT.PRLD = GND DIGITALTECHNIK 16-9 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 16.2 D-Latch (Data-Latch) • D-Latches werden dort verwendet, wo in einer Schaltung Signale eine bestimmte Zeit (die Periodendauer des Taktes C) konstant gehalten werden sollen. • Ein D-Latch dient als Speicherelement nur während der Haltephase, d.h. während es nicht transparent ist C='0'. Bei C='1' erscheint der am D-Eingang liegende Signalwert nach kurzer Verzögerung am Latchausgang. • Wenn das D-Latch als Speicher mit definierter Zykluszeit arbeiten soll, so muss der Entwickler dafür sorgen, dass während des transparenten Zustands keine Signaländerungen am D-Eingang erfolgen. Schaltsymbol: • Das D-Latch entsteht aus dem taktzustandsgesteuerten RS-Latch, indem durch einen Inverter zwischen den S- und REingängen dafür gesorgt wird, dass der irreguläre Zustand nicht auftreten kann. DIGITALTECHNIK 16-10 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz D-Latch Verhalten Zustandsfolgetabelle: C D Q Q+ 0 X 0 0 X 1 1 0 X 1 1 X Arbeitstabelle: C D Q+ 0 X 1 X Charakteristische Gleichung des D-Latches: ... DIGITALTECHNIK Synthesetabelle (C='1'): Q Q+ D 0 0 0 1 1 0 1 1 16-11 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Modellierung von D-Latches entity DLATCH1 is port( C, D : in bit; Q: out bit); end DLATCH1; architecture VERHALTEN of DLATCH1 is begin process(C, D) begin if C ='1' then Q <= D after 10 ns; -- else Q <= Q; end if; end process; end VERHALTEN; --Uebernehmen --Speichern Syntheserichtlinie für D-Latches: Ein Signal oder eine Variable wird dann zum D-Latch synthetisiert, wenn dem Signal bzw. der Variablen in einer if- oder case-Anweisung nicht in allen möglichen Verzweigungen ein Wert zugewiesen wird. Um sicher zu sein, dass kein Latch verwendet werden soll, sollte dem Signal bzw. der Variablen vor der Verzweigung ein Defaultwert zugewiesen werden. DIGITALTECHNIK 16-12 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz 16.3 D- (Daten-) Flipflop • D-Latches sind als Speicherelement in Schaltwerken nicht zu empfehlen da die Transparenz der Latches zu schwerwiegenden Fehlern beim Schaltverhalten führen kann. • Seit vielen Jahren werden in Schaltwerken überwiegend flankengesteuerte Speicherelemente (Flipflops) verwendet. Diese haben den Vorteil, dass das Takttor nur während eines sehr kurzen Entscheidungsintervalls nahe der aktiven Flanke ↑geöffnet ist. • Kurzzeitige Störungen des Eingangsignals erscheinen nicht am Flipflopausgang. DIGITALTECHNIK 16-13 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz D-Flipflop Varianten • In der Praxis besitzen Flipflops weitere Eingänge: Einen Rücksetz- (Reset-) und / oder einen Setz- (Preset-) Eingang. Damit wird der Flipflopausgang asynchron, d.h. unabhängig vom Takt, auf '0' bzw. '1' gebracht. Einen Freigabe- (Enable-) Eingang. Falls dieser Eingang nicht aktiviert ist, so erfolgt während der aktiven Taktflanke keine Datenübernahme. Er dient in Schaltwerken mit mehreren Flipflops dazu, eine Bedingung zu definieren, unter der die Datenübernahme erfolgen soll. • Unterschiedliche Flipflop Typen werden bei ansteigender ↑ oder bei abfallender ↓ Flanke betrieben. • Beispiele für Flipflop-Schaltsymbole: Ansteigende Flanke, ENABLE und RESET Abfallende Flanke, ENABLE und PRESET DIGITALTECHNIK 16-14 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz VHDL-Beschreibung zweier D-Flipflops entity DFLIPFLO is port( CLK, D, RESET, PRESET, ENABLE : in bit; QR, QF: out bit); end DFLIPFLO; architecture VERHALTEN of DFLIPFLO is begin R_EDGE: process(CLK, RESET) begin if RESET='1' then QR <= '0' after 10 ns; elsif (CLK='1' and CLK'event) then if ENABLE = '1' then QR <= D after 10 ns; end if; end if; end process R_EDGE; F_EDGE: process(CLK, PRESET) begin if PRESET='1' then QF <= '1' after 10 ns; elsif (CLK='0' and CLK'event) then if ENABLE = '1' then QF <= D after 10 ns; end if; end if; end process F_EDGE; end VERHALTEN; DIGITALTECHNIK -- Zwei Flipfloptypen -- 1. FF-Typ -- asynchroner Reset auf '0' -- ansteigende Flanke -- Freigabe in extra if-Anweisung -- 2. FF-Typ -- asynchroner Preset auf '1' -- abfallende Flanke -- Freigabe in extra if-Anweisung 16-15 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Syntheserichtlinien für D-Flipflops Synthesewerkzeuge inferrieren D-Flipflops, wenn die nachfolgenden Syntheserichtlinien eingehalten werden: • Durch die Klammer elsif ... CLK'event ... end if wird ein taktsynchroner Rahmen definiert. Die Taktflanke wird z.B. durch if CLK='1' and CLK'event beschrieben. • Alle Signale und Variable, denen im taktsynchronen Rahmen ein Wert zugewiesen wird, werden zu Flipflops bzw. Registern (das sind mehrere gleichartig angesteuerte Flipflops) synthetisiert. • Die asynchronen Setz- und Rücksetzeingänge müssen vor der Taktflankenabfrage abgefragt werden. • In der if-Abfrage der Flanke darf keine weitere Bedingung, wie z.B. eine Enable-Abfrage stehen. • Signalen oder Variablen, denen in einem taktsynchronen Rahmen ein Wert zugewiesen wurde, darf außerhalb dieses getakteten Rahmens kein Wert zugewiesen werden. • Wenn eine Variable innerhalb eines taktsynchronen Rahmens auf allen Pfaden durch einen Prozess zuerst eine Wertzuweisung erfährt, bevor sie gelesen wird, bzw. in einer if- oder caseAbfrage verwendet wird, so wird die Variable als kombinatorische Logik synthetisiert, bzw. heraus optimiert. • if-Anweisungen müssen nicht alle möglichen Verzweigungen enthalten, um Latches zu vermeiden. DIGITALTECHNIK 16-16 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Analyse des Zeitverhaltens: • qf reagiert mit Verzögerung auf die ansteigende Flanke. • qr reagiert mit Verzögerung auf die abfallende Flanke. • Die RESET und PRESET Eingänge wirken asynchron. • Die Datenübernahme erfolgt nur bei enable ='1'. DIGITALTECHNIK 16-17 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Synthese eines D-Flipflops mit Freigabeeingang • Falls keine Flipflops mit Freigabeeingang zur Verfügung stehen, so ist der Freigabeeingang durch einen Datenpfad zu beschreiben, der den aktuellen Zustand auf den Eingang zurück führt: D_INT = (ENABLE ∧ D) ∨ ( ¬ENABLE ∧ QR) • Gefährlich wäre es, wenn das ENABLE-Signal mit dem Taktsignal UND verknüpft werden würde. Grund: Das UND-Gatter würde eine Verzögerung bewirken. Dies ist jedoch in Schaltungen mit vielen Flipflops nicht zulässig, da alle Flipflops gemeinsam getaktet werden müssen ( Clock-Skew so gering wie möglich!). DIGITALTECHNIK 16-18 Hochschule für Angewandte Wissenschaften Hamburg Prof. Dr. J. Reichardt FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Prof. Dr. B. Schwarz Setup- und Hold- Zeiten in D-Flipflops • Um sicher zu stellen, dass der D-Eingang an den Q-Ausgang sicher übertragen wird, darf sich das Eingangssignal kurz vor und nach der aktiven Flanke (im Entscheidungsintervall) nicht ändern. Andernfalls geht das Flipflop in einen metastabilen Zustand. • Das Entscheidungsintervall tE besteht aus der Setupzeit tS und der Holdzeit tH tH : tE = tS + tH • Das Ausgangssignal erscheint um die Signalverzögerungszeit tpLH verzögert . tS Zahlenwerte für die Advance High Density CMOS- (AHC-) Logikfamilie: tS = 5 ns tH = 0.5 ns tpLH = tpHL = 9...15 ns tpLH Eine direkte Kopplung von Flipflopausgängen auf Flipflopeingänge ist in einem synchronen System nur deswegen möglich, weil tH << tp . → Clock-Skew minimieren! DIGITALTECHNIK 16-19