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