-
Die
vorliegende Erfindung bezieht sich auf Flip-Flops und insbesondere
auf D-Flip-Flops, die für besonders
hohe Taktraten geeignet sind.
-
Die
Fachveröffentlichung „A Low-Swing
Clock Double-Edge Triggered Flip-Flop", IEEE, Journal of Solid-State Circuits,
Vol. 37, No. 5, May 2002 offenbart ein Flip-Flop mit reduziertem
Leistungsverbrauch im Vergleich zu herkömmlichen Flip-Flops. Insbesondere
werden unnötige Übergänge innerer Knoten
vermieden, um den Leistungsverbrauch zu reduzieren. Ferner wird
eine Trigger-Operation sowohl für
die ansteigende als auch für
die abfallende Taktflanke eingesetzt, so dass im Vergleich zu Einflanken-getriggerten
Flip-Flop die Taktfrequenz reduziert werden kann.
-
Die
US-Patentveröffentlichung
US 2004/0114702 A1 offenbart einen Phasendetektor mit einem ersten
Flip-Flop zum Abtasten eines ankommenden Signals gemäß einem
ersten Lokaltaktsignal, um ein erstes abgetastetes Datensignal zu
erzeugen, ein zweites Flip-Flop zum Abtasten des ankommenden Datensignals
gemäß einem
zweiten Lokaltaktsignal, um ein zweites abgetastetes Datensignal
zu erzeugen, und ein drittes Flip-Flop zum Abtasten des zweiten abgetasteten
Datensignals, basierend auf dem ersten abgetasteten Datensignal,
um ein binäres
Steuersignal zu erzeugen. Das dritte Flip-Flop umfasst ein Doppelflanken-getriggertes Flip-Flop.
-
Das
US-Patent Nr. 5,250,858 offenbart ein Doppelflankengetriggertes
Speicherbauelement, bei dem das Ausgangssignal sowohl bei der steigenden als
auch bei der fallenden Flanke eines Takteingangsignals aktualisiert
wird.
-
Das
US-Patent Nr. 6,300,809 B1 offenbart ein Doppelflankengetriggertes
Flip-Flop, das zwei Datenübergänge pro
Taktzyklus liefert. Insbesondere wird neben dem Takt auch eine verzögerte Version des
Taktsignals geliefert. Ferner werden zwei transparente Latche mit
Takteingängen
geliefert, die durch entgegengesetzte Polaritäten des verzögerten Taktsignals
gesteuert werden. Schließlich
wird ein Multiplexer vorgesehen, dessen Eingänge durch Ausgangssignale der
Latche gespeist werden, wobei ein Select-Eingang des Multiplexers
durch das Taktsignal gespeist wird. Ferner wird ein Select-Signal
zum Auswählen
des Latches bereitgestellt, dessen Takt inaktiv ist.
-
Das
US-Patent Nr. 6,489,825 B1 offenbart ein schnelles Doppel-Flanken-getriggertes
Flip-Flop mit geringem Leistungs- und
Flächenverbrauch.
So werden ein Invertierer, ein Paar von Latchen und ein Zwei-zu-Eins-Multiplexer
eingesetzt. Ein erster Latch gibt ein erstes Signal ansprechend
auf ein erstes Datensignal aus, wenn ein Taktsignal in einem ersten Zustand
ist, und speichert den logischen Zustand des ersten Signals, wenn
das Taktsignal in einem zweiten logischen Zustand ist. Ein zweiter
Latch gibt ein zweites Signal ansprechend auf eine zweites Datensignal aus,
wenn das Taktsignal in dem zweiten logischen Zustand ist, und speichert
den Logikzustand des zweiten Signals, wenn das Taktsignal in dem
ersten Logikzustand ist. Der Multiplexer steuert den Logikzustand
des Flip-Flop-Ausgangssignals ansprechend auf den logischen Zustand
des ersten Signals, wenn das Taktsignal in dem zweiten Logikzustand
ist, und ansprechend auf den logischen Zustand des zweiten Signals,
wenn das Taktsignal in dem ersten logischen Zustand ist.
-
Die
US-Patentveröffentlichung
US 2004/0041610 A1 offenbart ein Scan-Design für Doppel-Flanken-getriggerte
Flip-Flops. Die Doppel-Flanken-getriggerte Flip-Flop-Scan-Zelle
liefert die Fähigkeit,
Daten bei jeder Flanke eines Taktsignals in einem Funktionsmodus
einer integrierten Schaltung zu erfassen und auszugeben. In einem
Testmodus ermöglicht
es die Doppel-Flanken-getriggerte Flip-Flop-Scan-Zelle, dass Testdaten
in und aus der Scan-Zelle herausgescannt werden, um eine Beobachtbarkeit
und Steuerbarkeit des internen Zustands der Scan-Zelle zu schaffen.
-
Das
US-Patent Nr. 6,438,023 B1 offenbart ein Doppel-Flanken-getaktetes Speicherbauelement, das
entweder durch die steigende Flanke, die fallende Flanke oder durch
beide Flanken eines Taktsignals getriggert wird. Kreuz-gekoppelte
Inverter an den Eingängen
werden vorgesehen, um kurze und potentiell negative Setup-Zeiten
zu realisieren. Kreuzgekoppelte Tri-State-Inverter an den Ausgängen verbessern
die Takt-zu-Daten-Zeiten. Ein Precharge-Evaluierungs-Verfahren wird verwendet, um
Daten sowohl bei der ansteigenden als auch bei der fallenden Flanke
des Taktsignals zum Speichern zu übertragen. Inverter mit schwacher
Rückkopplung werden
optional verwendet, um den Zustand des Speicherbauelements in der
Abwesenheit eines Taktsignals beizubehalten.
-
Das
US-Patent Nr. 6,400,199 B1 offenbart ein Doppelflankengetriggertes
Differenz-Flip-Flop, das eine erste Differenz-Master-Schaltung, eine zweite Differenz-Master-Schaltung
und eine Differenz-Slave-Schaltung hat. Die erste Master-Schaltung speichert
den ersten Eingangswert während
der Zeitdauer von der vorauseilenden Flanke bis zur nacheilenden
Flanke des Takts. Die zweite Master-Schaltung speichert den zweiten
Eingangswert während
der Zeitdauer von der nacheilenden Flanke bis zur vorauseilenden
Flanke des Takts. Die Slave-Schaltung ist mit den Ausgängen der
ersten und der zweiten Master-Schaltung elektrisch verbunden. Die
Slave-Schaltung umfasst einen zweiten Repeater als Ausgangsende
des Flip-Flops, gibt den ersten Eingangswert der nacheilenden Flanke
des Takts aus und gibt den zweiten Eingangswert bei der vorauseilenden
Flanke des Takts aus.
-
12 zeigt ein typischer Einflanken-getriggertes
D-Flip-Flop, wie
es in „Halbleiter-Schaltungs-Technik", U. Tietze, Ch.
Schenk, Seite 238, Springer-Verlag, 1989, dargestellt ist. Prinzipiell
ist das Flip-Flop eine Master-Slave-Struktur. Ein Slave-Latch, der aus den
Invertern G21 und G22 gebildet ist, wird mit dem Datenwert eines
Master-Latches,
der aus den Invertern G11, G12 gebildet ist, versorgt, wenn ein
Taktübergang
stattfindet. So wird bei dem in 12 gezeigten
D-Flip-Flop ein Datenwert durch den Master-Latch abgetastet und
dann, wenn der Takt seinen Zustand wechselt, in den Slave-Latch
eingespeichert und als Datenwert Q bzw. als invertierter Datenwert Q ausgegeben. Solange der
Takt C = 0 ist, folgt der Master dem Eingangssignal, und es wird
Q1 = D. Der Slave speichert währenddessen
den alten Zustand. Wenn der Takt auf 1 geht, wird die in diesem
Augenblick anliegende Information D im Master eingefroren und an
den Slave und damit an den Q-Ausgang übertragen. Die bei der positiven
Taktflanke am D-Eingang anliegende Information wird also momentan
an den Q-Ausgang übertragen.
In der übrigen
Zeit ist der Zustand des D-Eingangs ohne Einfluss. Im Unterschied
zu einem JK-Flip-Flop mit Eingangsblockierung erscheint der eingelesene
Wert nicht erst bei der negativen Taktflanke am Ausgang, sondern
sofort. Ein Vorteil dieser Schaltung liegt also darin, dass nun
die ganze Taktperiodendauer zur Bildung der neuen D-Signale zur Verfügung steht.
Wenn man JK-Flip-Flops verwendet, muss dieser Vorgang ablaufen,
während
der Takt 0 ist, also bei symmetrischem Takt in der halben Zeit.
-
Generell
existieren bei solchen Flip-Flops verschiedene Kenngrößen. Die
Zeit „CLK2Q" gibt an, wie lange,
ausgehend von einem Taktereignis, also beispielsweise einer ansteigenden
oder abfallenden Taktflanke, man warten muss, bis ausgangsseitig
der Datenwert erscheint, der zum Zeitpunkt des Taktereignisses am
Eingang anlag.
-
So
ist bei dem in 12 gezeigten
Flip-Flop unbedingt darauf zu achten, dass das Slave-Flip-Flop erst
dann geöffnet
wird, wenn das Master-Flip-Flop sauber geschlossen hat. Andererseits muss
das Master-Flip-Flop so lange geöffnet sein, dass
der Datenwert am D-Eingang sauber in dem Master-Flip-Flop gespeichert ist. Schließlich muss das
Slave-Flip-Flop
ausreichend lange geöffnet
sein, damit der von dem Master-Latch übernommene Datenwert sauber
in dem Slave-Latch
eingelesen ist.
-
Alle
diese Vorgänge,
also das Einspeichern eines Datenwerts im Master-Latch, das Übertragen des
Datenwerts vom Master-Latch
in den Slave-Latch und das komplette Übernehmen des Datenwerts durch
den Slave-Latch muss innerhalb eines einzigen Taktzyklus stattfinden.
-
Um
für bestimmte
Temperaturzustände
einer Schaltung und andere äußere Umstände, die
im Betrieb einer Schaltung auftreten, alle diese Zeiten sicherzustellen,
damit keine Berechnungsfehler auftreten, werden Sicherheitsmargen
eingeplant, die alle zu Lasten der Taktfrequenz gehen. Andererseits
ist die Taktfrequenz dafür
verantwortlich, dass ein Prozessor schnell betrieben wird. Darüber hinaus
hängt auch
der Leistungsverbrauch mit der Taktfrequenz zusammen. Ist die Taktfrequenz
höher,
treten also mehr Schaltübergänge auf,
so ist auch der Leistungsverbrauch höher, während dann, wenn die Taktfrequenz
reduziert ist, auch der Leistungsverbrauch geringer wird.
-
In
einer typischen Logikschaltung existieren viele Flip-Flops an vielen Stellen.
Alle diese Flip-Flops müssen
mit einem Takt versorgt werden, der den einzelnen Flip-Flops über einen
sogenannten Clock-Tree bereitgestellt wird. Dieser Clock-Tree trägt inzwischen
zu einem ganz erheblichen Prozentsatz zum Stromverbrauch einer Schaltung
bei. Daher wird es immer angestrebt, Doppelflanken-getriggerte Flip-Flops zu haben, da
dann im Vergleich zu Einflankengetriggerten Flip-Flops die Taktfrequenz
halbiert werden kann. Andererseits müssen dennoch ausreichende Sicherheitsmargen
für die
einzelnen Daten-Übergänge innerhalb
des Flip-Flops beibehalten werden, wobei insbesondere für das korrekte
Einlesen eines Datenwerts in einen Latch besonders hohe Sicherheitsmargen
benötigt
werden, da dann, wenn das Einlesen eines Datenwerts in einen Latch
nicht sichergestellt wird, ein Rechenfehler auftritt.
-
Diese
Margen führen
jedoch wiederum dazu, dass geringere Taktfrequenzen eingesetzt werden können. Problematisch
an diesen Margen ist ferner, dass sie für einen typischen normalen
Betrieb gar nicht ausgeschöpft
werden, dass jedoch dennoch aufgrund dieser Margen, also aus Sicherheitsgründen die
Taktfrequenz nicht derart hochgefahren werden kann, wie es eigentlich
erwünscht
wäre.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes
Flip-Flop-Konzept zu schaffen.
-
Diese
Aufgabe wird durch eine Flip-Flop-Vorrichtung nach Patentanspruch
1 oder ein Verfahren zum Speichern und Ausgeben eines Datenwerts nach
Patentanspruch 19 gelöst.
-
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass eine
Rückkopplungseinrichtung vorgesehen
wird, um einen von einem Speicherelement ausgegebenen Datenwert
mit einem in den Speicher eingegebenen Datenwert zu vergleichen, um
aus diesem Vergleich ein Vergleichssignal abzuleiten. Dieses Vergleichssignal
wird dazu verwendet, um einen Steuerpuls für ein steuerbares Speicherelement
zu erzeugen, so dass bei der korrekten Einspeicherung eines Datenwerts
in einen Latch nicht mehr mit Sicherheitsmargen gearbeitet werden muss.
Stattdessen wird bei der vorliegenden Erfindung nunmehr eine Kontrolle
davon geschaffen, ob ein Datenwert in einem Latch gespeichert ist,
so dass der Latch genau dann wieder geschlossen werden kann, wenn
der Wert korrekt gespeichert ist oder noch offengelassen wird, wenn
der Wert noch nicht korrekt gespeichert ist. Das Latch ist daher
ohne Sicherheitsmargen automatisch genauso lange geöffnet, dass
eine sichere Einspeicherung des Datenwerts erreicht wird, es ist
also „self-getimed".
-
Bei
einem bevorzugten Ausführungsbeispiel der
vorliegenden Erfindung wird ferner das Vergleichssignal dazu verwendet,
um einen Pulsgenerator zum Steuern des Speichers nur dann überhaupt zu
aktivieren, wenn eingangsseitig und ausgangsseitig bezüglich des
Speichers unterschiedliche Situationen vorliegen. Damit wird auch
sichergestellt, dass nur dann im Flip-Flop umgeschaltet wird, wenn
auch z. B. ein neuer vom vorherigen Datenwert unterschiedlicher
Datenwert eingangsseitig anliegt. Ein Pulsgenerator zum Liefern
des Steuerpulses wird somit durch das Vergleichssignal, wenn es
auf unterschiedliche Zustände
am Eingang und am Ausgang des Latches hinweist, aktiviert. Dann,
wenn eine z. B. ansteigende Flanke eines Takts kommt, wird der Latch
geöffnet.
Der Latch bleibt dann so lange offen, bis die Rückkopplungseinrichtung anzeigt,
dass der Datenwert korrekt in den Latch gespeichert ist, dass also
Eingangs- und Ausgangswert gleich sind. Dann wird der Latch wieder
geschlossen. Diese Schließen wird
dadurch erreicht, dass das Vergleichssignal wieder in den 0-Zustand
zurückgeht.
Geht das Vergleichssignal dann, in einem späteren Zyklus wieder in einen
Eins-Zustand über, existieren
also wieder unterschiedliche Zustände am Ausgang und am Eingang
des Flip-Flops, so wird der Pulsgenerator wieder aktiviert, um dann,
wenn wieder ein Taktereignis kommt, wie beispielsweise eine steigende
Flanke und eine fallende Flanke, den Latch zu öffnen, wobei der Latch dann
genauso lange offen bleibt, bis der Datenwert korrekt eingespeichert
ist, und wobei dann der Latch unmittelbar wieder geschlossen wird.
-
Erfindungsgemäß wird also
das Öffnen
des Latches ausgehend von einer Taktflanke erreicht, während das
Schließen
des Latches unmittelbar dann durchgeführt wird, wenn ein Datenwert
korrekt eingespeichert ist. Damit müssen keine Sicherheitsmargen
mehr eingesetzt werden. Stattdessen wird immer unter allen Umständen der
Latch so lange offen gehalten, bis ein Wert korrekt eingelesen ist.
Damit kann im Vergleich zu Anwendungen, bei denen eine Sicherheitsmarge
beibehalten werden musste, der Takt erhöht werden, da das er findungsgemäße Konzept
immer sicherstellt, dass ein Datenwert korrekt in den Latch eingelesen
wird.
-
Darüber hinaus
wird im Vergleich zum Master-Slave-Konzept nur ein einziger Latch
benötigt, wodurch
Transistoren und damit Chipfläche
und damit natürlich
auch Leistungsverbrauch eingespart werden.
-
Darüber hinaus
ist das erfindungsgemäße Konzept
sehr entwurfs-freundlich, da sämtliche
Elemente, also das Speicherelement, die Rückkopplungseinrichtung und
der Steuerpulsgenerator mit Standard-Entwurfs-Techniken entwickelt
werden können.
Erfindungsgemäß wird ferner,
trotz der Tatsache, dass keine Master-Slave-Struktur mehr eingesetzt
wird, eine Doppelflanken-Triggerung ermöglicht, wodurch unmittelbar
eine 50-prozentige Reduzierung des Stromverbrauchs im Clock-Tree
resultiert.
-
Der
Pulsgenerator am Flip-Flop-Takt-Eingang gemäß der vorliegenden Erfindung
ist self-timed, so dass je nach Implementierung nicht nur Doppelflanken-getriggerte
Flip-Flops, sondern auch Einflanken-getriggerte Flip-Flops eingesetzt
werden können.
Zum Entwurf werden jedoch die ganz normalen Konzepte des Standard-Tool-Flows
eingesetzt. Es werden also keine anwendungsspezifischen Clock-Tree-Anpassungen
vorgenommen, wie sie in Hochleistungs-Spezialentwürfen durchgeführt worden
sind, um hohe Taktfrequenzen zu erreichen.
-
Aufgrund
des erfindungsgemäßen Steuerpulsgenerators,
der von der Rückkopplungseinrichtung
gesteuert wird, der am Clock-Input eines Standard-Flip-Flops angeordnet
ist, kann auch ein reduzierter Transistor-Count verglichen mit Standard-Flip-Flops
erreicht werden. Ferner wird auch ein reduzierter Silizium-Flächenverbrauch
erreicht.
-
Bevorzugte
Ausführungsbeispiel
der vorliegenden Erfindung umfassen Transistorimplementierungen,
bei denen durch nur minimale Änderungen übliche Flip-Flop-Anforderungen
reali siert werden, wie beispielsweise ein Set-Eingang, ein Reset-Eingang,
ein Enable-Eingang oder negierte Implementierungen für die verschiedenen
Flip-Flop-Vorrichtungen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
-
1 ein
schematisches Blockschaltbild einer erfindungsgemäßen Flip-Flop-Vorrichtung;
-
2 eine
tabellarische Darstellung des Zusammenhangs zwischen Vergleichssignal
und Steuerpuls;
-
3 eine
erfindungsgemäße Flip-Flop-Zelle;
-
4 eine
erfindungsgemäße negierte Flip-Flop-Zelle;
-
5 eine
Flip-Flop-Zelle mit Set-Funktion;
-
6 eine
negierte Flip-Flop-Zelle mit Set-Funktion;
-
7 eine
Flip-Flop-Zelle mit Reset-Funktion;
-
8 eine
negierte Flip-Flop-Zelle mit Reset-Funktion;
-
9 eine
Flip-Flop-Zelle mit Enable-Funktion;
-
10 eine
negierte Flip-Flop-Zelle mit Enable-Funktion;
-
11 ein
Zeitdiagramm der Flip-Flop-Signale am Beispiel eines Single-Etched-Flip-Flops;
und
-
12 ein
bekanntes Einflanken-getriggertes D-Flip-Flop.
-
1 zeigt
eine erfindungsgemäße Flip-Flop-Vorrichtung
zum Speichern und Ausgeben eines Datenwerts. Die Flip-Flop-Vorrichtung umfasst ein
steuerbares Speicherelement 10, das vorzugsweise als Latch-Speicher
ausgebildet ist, und das steuerbar ist, um abhängig von einem Steuerpuls 12 geöffnet zu
sein, um einen anliegenden Datenwert zu speichern und ausgangsseitig
auszugeben. Der Datenwert wird über
einen Daten-Eingang 14 eingegeben. Die erfindungsgemäße Flip-Flop-Vorrichtung umfasst
ferner eine Rückkopplungseinrichtung 16 zum
Vergleichen eines an einem Latch-Speicher-Eingang anliegenden Datenwerts und eines
von dem Speicherelement ausgegebenen Werts an einem Ausgang 18 und
zum Ausgeben eines Vergleichssignals 20, das von dem Speicher-Eingangswert und dem
Speicher-Ausgangswert abhängt.
Das Vergleichssignal 20 wird in einen Steuerpulsgenerator 22 eingespeist,
um den Steuerpuls 12 abhängig von dem Vergleichssignal
zu erzeugen. Der Steuerpulsgenerator ist ferner mit einem Takteingang 24 gekoppelt,
um zum Erzeugen des Steuerpulses auch den Takt am Takteingang 24 zu
verwenden.
-
Ist
das Vergleichssignal 20 gleich 0, sind also die Eingangs-
und Ausgangsdaten des Latch-Speichers gleich, so wird kein Steuerpuls
erzeugt, so ist also der Pulsgenerator 22 deaktiviert.
War der Steuerpuls allerdings bereits in einem hohen Zustand, und
folgt dann ein Übergang
des Vergleichssignals von einem Eins-Zustand auf einen 0-Zustand,
so wird die zweite Flanke, also die abfallende Flanke des Steuerpulses 12 dann
erzeugt, wenn das Vergleichssignal in den 0-Zustand übergeht.
-
Geht
das Vergleichssignal in den 1-Zustand über, so bedeutet dies, dass
am Eingang und am Ausgang des Latch-Speichers unterschiedliche Werte anliegen.
Dann muss der Latch geöffnet
werden. Der Pulsgenerator 22 ist in diesem Fall also aktiv,
um bei einem Taktereignis des Takts am Takteingang 24 eine
ansteigende Flanke des Steuerpulses zu erzeugen.
-
Damit
wird, getriggert durch den Takt bzw. ein Taktereignis, also z. B.
eine ansteigende oder eine abfallende Flanke oder beide Flanken
eine ansteigende Flanke des Steuerpulses erzeugt, die dazu führt, dass
der Latch-Speicher geöffnet
wird. Ein Datenwert am Dateneingang 14 wird dann in den Latch-Speicher
eingelesen. Sobald dann der Latch-Speicher diesen Datenwert am Ausgang
stabil ausgibt, wird das Vergleichssignal 20 wieder in
den 0-Zustand gebracht, so dass der Pulsgenerator 22 unmittelbar
die abfallende Flanke erzeugt und den Latch-Speicher schließt. Erfindungsgemäß wird daher
immer automatisch dann, wenn ein Wert komplett in den Latch-Speicher
eingelesen ist, dieser wieder geschlossen, und zwar durch die abfallende
Flanke des Steuerpulses.
-
Der
Steuerpulsgenerator 22 ist ferner ausgebildet, um nur dann
für die
Erzeugung eines Steuerpulses bereit zu sein, wenn das Vergleichssignal
anzeigt, dass ein Eingang der Speichereinrichtung 10 und
ein Ausgang der Speichereinrichtung 10 unterschiedliche
Werte haben.
-
Wie
es bereits ausgeführt
worden ist, ist der Steuerpulsgenerator 22 ferner ausgebildet,
um abhängig
von einer steigenden oder fallenden Flanke eines Taktpulses an dem
Takteingang 24 eine erste Flanke des Steuerpulses zu erzeugen,
um das Speicherelement 10 zu öffnen.
-
Der
Steuerpulsgenerator 22 ist also ausgebildet, um nur dann,
ansprechend auf ein Taktereignis, die erste Flanke des Steuerpulses
zu erzeugen, wenn gleichzeitig das Vergleichssignal anzeigt, dass die
beiden Signale am Eingang und am Ausgang des Latch-Speichers unterschiedlich
sind. Der Pulsgenerator 22 ist ferner, wie es ausgeführt worden
ist, derart ausgebildet, dass eine zweite Flanke des Steuerpulses,
die den Latch-Speicher wieder schließt, nur dann erzeugt wird,
wenn das Vergleichssignal anzeigt, dass der an dem Speicher anliegende
Eingangswert gleich dem vor dem Speicher ausgegebene Ausgangswert
ist, wobei dies darauf hinweist, dass der Eingangswert korrekt und
sauber in den Latch-Speicher 10 eingelesen worden ist.
-
Vorzugsweise
umfasst die Rückkopplungseinrichtung 16 ein
lineares Gatter, wie beispielsweise ein XOR-Gatter, wenn der Eingangwert
mit dem Latch-Ausgangswert verglichen wird, oder ein XNOR-Gatter,
wenn der Eingangswert mit dem negierten Ausgangwert verglichen wird.
Ferner ist am Ausgang des Latch-Speichers vorzugsweise noch ein
Buffer-Verstärker 26 vorgesehen,
der dann, wenn der Ausgang des Latch-Speichers der negierte Ausgangswert Q ist, als Invertierer ausgebildet
ist.
-
Nachfolgend
wird anhand von 11 das Zeitverhalten der erfindungsgemäßen Schaltung
dargelegt. Beispielhaft ist ein Datenverlauf bei 30 gezeigt.
Bei 32 ist ein Taktverlauf gezeigt. Das Teilbild 34 zeigt
eine Folge von Steuerpulsen, während
das Teilbild 36 in 11 das
Latch-Ausgangssignal am Ausgang 18 darstellt. Das Vergleichssignal 20,
das am Ausgang der Rückkopplungseinrichtung 16 von 1 geliefert
wird, ist durch das Teilbild 38 in 11 dargestellt.
Bei dem in 11 gezeigten Ausführungsbeispiel
ist ein Einflanken-getriggertes Flip-Flop gezeigt, also ein Flip-Flop,
das immer bei der ansteigenden Flanke des Takts den Dateneingang
abtastet. Unabhängig
von dem Taktsignal geht das Vergleichssignal bei 40 in
einen hohen Zustand, da zu diesem Zeitpunkt das Datensignal von
einem 0-Zustand in den 1-Zustand übergeht. Dadurch, dass das
Vergleichssignal 20 zum Zeitpunkt 40 in den hohen Zustand
geht, ist der Pulsgenerator 22 in einem aktivierten Zustand.
Die steigende Flanke des Steuerpulses wird dann erzeugt, wenn eine
nächste
ansteigende Taktflanke 42 kommt. Zu diesem Zeitpunkt wird
der Latch-Speicher 10 geöffnet, und ein Datenwert wird
eingelesen, wie es durch einen schematischen schrägen Verlauf 44 des
Ausgangssignals Q des Latch-Speichers
dargestellt ist. Sobald der Ausgangswert Q des Latch-Speichers seinen
hohen Zustand erreicht, was zum Zeitpunkt 46 der Fall ist,
wird die fallende Flanke des Steuerpulses 48 geliefert. Diese
Tatsache, also dass der Ausgangswert Q des Latch-Speichers gleich
dem Eingangswert DATA des Latch-Speichers ist, wird durch die fallende
Flanke 48 des ersten XOR-Ausgangs-Pulses erfasst, wobei diese
fallende Flanke synchron zur fallenden Flanke des Steuerpulses ist.
-
Der
Latch-Ausgangszustand Q wird so lange beibehalten, bis eine nächste steigende
Flanke 50 des Taktsignals kommt. Ob diese steigende Flanke zu
einem Öffnen
des Latch-Speichers führt,
ob also diese steigende Flanke 50 einen neuen Steuerpuls 52 bedingt,
hängt davon
ab, ob das Vergleichssignal zum Zeitpunkt der Taktflanke 50 im „1"-Zustand ist, was
in 11 bei 54 gezeigt ist. Wäre das XOR-Ausgangssignal
zum Zeitpunkt der steigenden Flanke 50 des Takts noch in
dem „0"-Zustand, was dann
der Fall sein würde,
wenn der „1"-Zustand der Daten bis nach der steigenden
Flanke 50 angedauert hätte,
so würde die
steigende Flanke 50 des Taktes „ausgeblendet" werden, hätte also
keinerlei Relevanz, da diese steigende Taktflanke keinen Steuerpuls
(wie beispielsweise den Steuerpuls 52) bedingen würde.
-
Nachdem
jedoch das Datensignal zum Zeitpunkt der steigenden Flanke 50 des
Taktes in dem 0-Zustand ist, wird der Latch-Speicher zum Zeitpunkt der steigenden
Flanke 50 geöffnet
und geht in den 0-Zustand über.
Der Steuerpuls 52 hat dann seine fallende Flanke, wenn
der Latch-Speicher ausgangsseitig ebenfalls im 0-Zustand ist, da
dann das Vergleichssignal, also der XOR-Ausgabepuls 54 seine fallende
Flanke haben wird. Zum Zeitpunkt 56 geht das Datensignal
wieder in den hohen Zustand, was unmittelbar zu einem Ansteigen
des Vergleichssignals führen
wird. Die nächste
steigende Flanke 58 des Taktsignals führt wiederum dazu, dass der
Latch geöffnet
wird, was durch einen ansteigenden Signalverlauf 60 signalisiert
ist. Der Latch-Speicher hält
seinen Zustand dann so lange, bis die nächste ansteigende Taktflanke 62 kommt.
Da zum Zeitpunkt der ansteigenden Flanke 62 das Datensignal
auf „0" ist, wird der Latch
wieder geöffnet
und entladen, wobei dann, wenn er entladen ist, der Steuerpuls 64 seine fallende
Flanke hat.
-
Die
erfindungsgemäße Flip-Flop-Vorrichtung ist
dahin gehend vorteilhaft, dass durch die Aktivierung des Pulsgenerators
mittels des Vergleichssignals nur dann eine Bereitschaft des Pulsgenerators zum
Erzeugen des Steuerpulses erzeugt wird, wenn tatsächlich eine
Datenänderung
aufgetreten ist. Darüber
hinaus wird die fallende Flanke des Steuerpulses immer mit der fallende
Flanke des Vergleichssignals synchron sein, so dass der Latch-Speicher
immer dann wieder geschlossen wird, wenn der Eingangswert sauber
in den Latch-Speicher eingespeichert ist, was unmittelbar durch
den aktuell anliegenden Ausgangswert des Latch-Speichers verifiziert wird.
-
Nachfolgend
werden Bezug nehmend auf die 3 – 10 verschiedene
Transistorrealisierungen der erfindungsgemäßen Schaltung dargelegt. Ein
sogenanntes D-Q-Flip-Flop, wie es in 3 gezeigt
ist, umfasst den Dateneingang 14, den Takteingang 24 und
einen Ausgang Q 100. Ein Latch-Speicher ist durch die Schaltungselemente
realisiert, die in dem rechten Drittel von 3 zu sehen
sind. Diese umfassen einen Eingangstransistor 101, zwei
weitere Transistoren 102, 103, einen weiteren
Transistor 104 sowie einen Transistor 105, der
von einem Rückkopplungspfad 106 gesteuert
wird. Ferner ist zwischen den Ausgang des Latch-Speichers (Knoten 108)
und einen inneren Knoten 107 ein Inverter 109 geschaltet.
Darüber
hinaus ist zwischen dem Latch-Ausgang 108 und dem Q-Ausgang
der Flip-Flop-Vorrichtung ein weiterer Inverter 110 geschaltet.
Dieser Inverter 110 ist nötig, wenn der Latch-Speicher,
wie es für
das in 3 gezeigte Ausführungsbeispiel bevorzugt wird,
ausgangsseitig den negierten Ausgangswert Q liefert und nicht den Ausgangswert Q,
der am Ausgang 100 anliegen soll.
-
Die
Eingangsdaten werden über
den Dateneingang, der durch den Knoten 111 symbolisiert
ist, geliefert. Der Knoten 111 wird von einer Dateneingangs-Stufe
gespeist, die einen Inverter 112, einen Transistor 113 und
einen Transistor 114 umfasst. Die Rückkopplungseinrichtung 16 zum
Vergleichen des Latch-Eingangswerts mit dem Latch-Ausgangswert wird
durch zwei Transistoren 115 und 116 geliefert, wobei
der Transistor 115 mit dem Rückkopplungspfad 106 gekoppelt
ist, wenn der Transistor 116 von dem Datensignal gesteuert
wird, das am Eingang 14 geliefert wird (nach einer Inversion
durch den Inverter 112).
-
An
einem Knoten 117 liegt das Vergleichssignal bzw. Enable-Signal, während der
Steuerpuls bzw. das Pulsgenerator-Steuersignal an einem Knoten 118 anliegt.
Der Pulsgenerator 22, wie er in 1 dargestellt
ist, wird durch einen vorderen Teil der Schaltung von 3 gebildet.
Im Einzelnen umfasst der Pulsgenerator einen ersten Transistor 120 sowie einen
zweiten Transistor 122, die beide vom Takteingang 24 gesteuert
werden. Ein weiterer Transistor 123 sowie ein weiterer
Transistor 124 werden direkt von dem Vergleichssignal gesteuert.
Die Transistoren 125 und 126 werden von einem
Zwischenpotential 127 zwischen den beiden Eingangstakt-gesteuerten
Transistoren 120, 122 gesteuert. Das Zwischenpotential
am Knoten 127 steuert ferner einen weiteren Transistor 130.
Ferner steuert der Takteingang 24 einen weiteren Transistor 132.
Ein Potential an einem Zwischenknoten 133 steuert einen
weiteren Transistor 134.
-
Das
in 3 gezeigte Flip-Flop ist ein Doppelflankengetriggertes
Flip-Flop aufgrund des Transistors 134. Würde der
Transistor 134 weggelassen werden, so würde das in 3 gezeigte
Doppelflanken-getriggerte Flip-Flop zu einem Einflanken-getriggerten
Flip-Flop werden.
-
Ferner
bedeuten die dicken schwarzen Punkte in 3 einen
hohen Spannungsversorgungszustand, der auch als Vdd bezeichnet wird, während die
anderen Potentialanschlüsse
eine Schaltungsmasse oder – allgemein
gesagt – ein
anderes Bezugspotential (z.B. Vss) darstellen und wie üblich durch ein
umgekehrtes „T"-Symbol gekennzeichnet
sind. Die in der Schaltung eingezeichneten Kapazitäten dienen
der Simulation von Laufzeiten und können in Implementierungen eingesetzt
werden, obgleich eine reine Transistorimplementierung ohne Kapazitäten bevorzugt
wird.
-
Die
in 4 gezeigte alternative Implementierung unterscheidet
sich von 3 dadurch, dass der Dateneingang 14 an
einem Zwischenknoten 140 der Dateneingangs-Stufe, die durch
die Elemente 112, 113, 114 gebildet wird,
untergebracht ist. Damit laufen sämtliche Datenwerte, bevor sie
das XOR-Gatter, das durch die Transistoren 115, 116 gebildet
wird, erreichen, durch den Inverter 112. Andererseits sind
die Datenwerte nunmehr im Vergleich zur Ausführung von 3 bei 4,
bevor sie in den Dateneingang 111 für den Latch-Speicher eintreten, nicht
mehr invertiert.
-
5 zeigt
ein Ausführungsbeispiel
eines erfindungsgemäßen Flip-Flops
mit Set-Funktion. Zusätzlich
zum Dateneingang 14 ist nunmehr ein Set-Eingang 150 vorgesehen,
wobei der Dateneingang und der Set-Eingang in einem NOR-Gatter 152 verknüpft werden.
Ferner ist ein weiterer Transistor 154 vorgesehen, der
den Steuerpulsknoten 118 kurzschließt, wenn der Set-Eingang einen
logisch hohen Zustand hat. Sobald also der Set-Eingang einen logisch
hohen Zustand hat, wird ein Datenwert Q ausgegeben, der, nachdem
der Steuerpuls deaktiviert ist, so lange bestehen bleibt, bis der
Set-Eingang wieder gelöscht
ist.
-
6 zeigt
eine alternative Implementierung von 5 an, wobei
jedoch der Ausgang des NOR-Gatters 152 an einen Zwischenknoten 160 angeschlossen
ist, der sich oberhalb des Inverters 112 (und nicht unterhalb
des Inverters 112, wie in 5) befindet.
-
Bei
dem in 7 gezeigten Ausführungsbeispiel wird anstatt
des Set-Eingangs ein Reset-Eingang 170 verwendet, der zugleich
den Transistor 154 ansteuert, um dann, wenn der Reset-Eingang
hoch ist, den Steuerpuls zu deaktivieren. Das Reset-Signal am Reset-Eingang 170 wird
durch einen Invertierer 172 invertiert und einem NAND 174 zugeführt. Dem NAND-Gatter 174 wird
ferner das Datensignal am Daten-Eingang 14 zugeführt. Der
Ausgang des NAND-Gatters 174 ist wieder mit dem Zwischenknoten 140 gekoppelt.
-
Der
Reset-Eingang stellt sicher, dass am Ausgang Q des Flip-Flops unabhängig davon,
was eingangsseitig anliegt, und unabhängig davon, was an Zwischenzuständen vorliegt,
ein logisch niedriger Zustand erhalten wird, wenn das Signal am
Reset-Eingang 170 in den hohen Zustand gebracht wird.
-
Die
in 8 gezeigte Ausführungsform zeigt eine negierte
Flip-Flop-Implementierung mit Reset-Funktion, die sch wiederum dadurch
unterscheidet, dass der Ausgang des NAND-Gatters 174 nicht am Zwischenknoten 140,
sondern am Knoten 160 angeschlossen ist.
-
9 zeigt
eine weitere Ausführungsform der
vorliegenden Erfindung, die im Vergleich zu den anderen Implementierungen
zusätzlich
eine Enable-Funktion hat. So wird ein Enable-Signal 190 über den
Enable-Eingang eingegeben. Dieses Signal wird an einen Transistor 191 und
an einen Transistor 124 geleitet. Im Unterschied zu den
vorherigen Implementierungen des Pulsgenerators, die die Transistoren 194 und 193 bereits
umfassten, sind ferner weitere Transistoren 191 und 124 vorhanden,
die zu den beiden anderen Transistoren 193 und 194 parallel geschaltet
sind, wie es aus 9 ersichtlich ist. Dieser Transistor
erhält
ebenso wie der Transistor 194 das Vergleichssignal am Knoten 117 als
Steuersignal. Ein weiterer Transistor 195 erhält als Steuersignal
das Zwischenpotential 127. Durch ein Low-Enable-Signal
am Eingang 190 wird erreicht, dass unabhängig von
dem tatsächlichen
Enable-Signal am Knoten 117 eine De-Aktivierung des Pulsgenerators 22 erreicht
wird. In anderen Worten aus gedrückt,
bewirkt das Enable-Signal, dass das Vergleichssignal 20 in 1 immer
einen „Null"-Zustand hat.
-
Die
Implementierung des Flip-Flops mit Enable-Funktion von 10 unterscheidet
sich von 9 dadurch, dass der Takteingang 14 wieder
mit dem Zwischenpotential 140 gekoppelt ist, so dass ausgehend
von einem negierten Datenwert ein nicht-negierter Ausgangswert Q
erreicht wird.
-
Die
Implementierungen in den 3–10 sind
dahin gehend besonders vorteilhaft, dass sie sehr Transistorsparend
ausgeführt
sind. So genügt für die Version
von 3 eine Gesamtanzahl von weniger als 20 Transistoren,
um ein komplettes Flip-Flop zu implementieren. Darüber hinaus
sind sämtliche
Zusatzfunktionalitäten,
wie sie in den 4–10 dargestellt
sind, ohne weiteres einfach in den Basisentwurf von 3 gewissermaßen modular
implementierbar, was einer üblichen
Implementierung mittels Layout-Bibliotheken
entspricht. Erfindungsgemäß werden
keine anwendungsspezifischen Spezialimplementierungen benötigt, sondern es
wird ein universelles Entwurfskonzept geschaffen, bei dem die Basisversion
des Flip-Flops ohne weiteres durch verschiedene Funktionalitäten an bestimmte
Anwendungsszenarien angepasst werden kann, ohne dass der Standard-Entwurfs-Vorteil
verloren wird.
-
Bei
der Transistorimplementierung, wie beispielsweise in 3,
sind die Transistoren 102, 105 PMOS-Transistoren,
und sind die Transistoren 103, 104 NMOS-Transistoren.
Genauso bedeuten die dicken Punkte positive Versorgungsspannungszuführungen
Vdd, während
das andere Bezugspotential das Massepotential oder allgemein Vss
ist. In den Transistorimplementierungen können die Arten der Transistoren
(PMOS, NMOS) ausgetauscht werden. Hierzu ist es dann erforderlich,
auch die Bezugspotentiale Vss und Vdd auszutauschen.
-
Ferner
sei darauf hingewiesen, dass bei der Beschreibung des Flip-Flops
von 1 von einem Steuerpuls ausgegangen wird, der einen
logisch niedrigen Zustand hat, und der dann, wenn er eine ansteigende
Flanke hat, in einen logisch hohen Zustand übergeht, um dann wieder bei
einer abfallenden Flanke in seinen logisch niedrigen Zustand überzugehen.
Die selbe Funktionalität
kann jedoch auch dann erreicht werden, wenn die Steuerpuls-Signalform
normalerweise in einen logisch hohen Zustand ist, um dann in einen
niedrigen Zustand umzuschalten, wenn der Latch-Speicher geöffnet werden
soll, und um dann wieder mittels einer ansteigenden Flanke in den
logisch hohen Zustand überzugehen,
wenn der Latch-Speicher wieder geschlossen werden soll.
-
Genauso
muss das Vergleichssignal nicht unbedingt einen logisch hohen Zustand
haben, um den Pulsgenerator zu aktivieren. Es könnte genauso normalerweise
einen logisch hohen Zustand haben, in dem der Pulsgenerator deaktiviert
ist, um dann, wenn der Pulsgenerator 22 zu aktivieren ist,
in einen logisch niedrigen Zustand überzugehen.
-
- 10
- Speicherpuls
- 12
- Steuerpuls
- 14
- Daten-Eingang
- 16
- Rückkopplungseinrichtung
- 20
- Vergleichssignal
- 22
- Pulsgenerator
- 24
- Takteingang
- 26
- Buffer-Verstärker
- 34
- Teilbild
- 36
- Teilbild
- 38
- Teilbild
- 42
- Taktflanke
- 48
- Steuerpuls
- 52
- Steuerpuls
- 54
- XOR-
Ausgabepuls
- 60
- Signalverlauf
- 62
- Flanke
- 64
- Steuerpuls
- 101
- Eingangstransistor
- 102–105
- Transistor
- 106
- Rückkopplungspfad
- 107
- innere
Knoten
- 108
- Knoten
- 109
- Inverter
- 110
- Inverter
- 112
- Inverter
- 113–116
- Transistor
- 150
- Set-Eingang
- 152
- NOR-Gatter
- 170
- Reset-Eingang
- 172
- Inverter
- 174
- NAND
- 190
- Low-Enable-Sinal
- 191–195
- Transistor