-
Die
Erfindung betrifft eine Zähler-
und Digital/Analog(DAC)-Vorrichtung, einen korrespondierenden Verzögerungsregelkreis
(DLL), einen korrespondierenden Speicher und ein Speichersystem
und ein korrespondierendes Zählverfahren.
-
Aktuelle,
auf einer Leiterplatte (PCB) angebrachte integrierte Schaltungen,
z.B. synchrone DRAM (SDRAM), RAMBUS-DRAM usw., umfassen eine Verzögerungsregelkreisschaltung
(DLL-Schaltung). Die DLL-Schaltung
hält einen
vorgegebenen Phasenzusammenhang zwischen einem internen Takt und
einem externen Referenz- oder Systemtakt aufrecht, der beispielsweise
von einer Speichersteuerung bereitgestellt wird.
-
In
seiner einfachsten Form weist ein DLL eine programmierbare Verzögerungsleitung
und etwas Steuerlogik auf. Die Verzögerungsleitung erzeugt eine
verzögerte
Version des Referenztaktsignals. Das verzögerte Taktsignal wird dem anderen
internen Schaltungsaufbau der integrierten Schaltung zur Verfügung gestellt,
z.B. dem integrierten Schaltkreis (IC) des DRAM, von dem der DLL
ein Teil ist. Zusätzlich
zur Bereitstellung an den anderen, internen Schaltungsaufbau des
IC wird das interne Taktsignal auch zu einer Verzögerungssteuerlogik
des DLL zurückgekoppelt.
Die Verzögerungssteuerlogik vergleicht
das Taktsignal, das zurückgekoppelt
wurde, mit dem Referenztaktsignal, um ein Maß an Verzögerung einzustellen, das durch
die programmierbare Verzögerungsleitung
bewirkt werden soll.
-
1A zeigt
einen DLL gemäß dem Stand der
Technik. Der DLL 100 empfängt einen Referenztakt REFCLK,
der einer variablen Verzögerungsleitung 110 zur
Verfügung
gestellt wird. Das verzögerte Taktsignal
CLKOUT wird an den übrigen
Schaltungsaufbau des IC (nicht dargestellt) ausgegeben. Zudem wird
das Ausgabetaktsignal CLKOUT über
eine Replikaverzögerungseinheit 140 als
Signal FBCLK an einen Phasenkomparator 130 zurückgeführt, der
auch den Referenztakt REFCLK empfängt. Der Phasenkomparator 130 stellt
einer Verzögerungssteuerschaltung
(DCC) 120 ein Aufwärts/Abwärts-Zählsignal
zur Verfügung.
Die DCC 120 umfasst einen Zähler 122, der eine
N-Bit-Ausgabe einem N-Bit-Digital/Analog-Wandler (DAC) zur Verfügung stellt.
Der DAC 121 und dadurch die DCC 120 gibt ein Verzögerungseinstellsignal
DLYADJ an die variable Verzögerungsleitung 110 aus.
-
Die
Funktion des DLL 100 besteht darin, einen vorbestimmten
Phasendifferenzwert zwischen dem Referenztaktsignal REFCLK und dem
Ausgabetaktsignal CLKOUT zu erzielen. Zur Vereinfachung wird die
Funktion des DLL 100 unter der Annahme erklärt, dass
der vorbestimmte Verzögerungswert
360° oder
eine Periodendauer beträgt.
Die Funktion des DLL 100 wird nun bezüglich der Signalverläufe von 1B beschrieben.
In 1B ist ein Signalverlauf des Referenztaktes REFCLK
dargestellt. Unter dem Signalverlauf REFCLK ist der Signalverlauf
des Rückkopplungstaktes
FBCLK dargestellt. Wie erwartet, ist der Rückkopplungstakt FBCLK in der
Phase verzögert,
d.h. relativ zum Signalverlauf des Referenztaktes REFCLK nach rechts
verschoben. Unter Berücksichtigung,
dass die vorbestimmte Phase mit einer Periodendauer angenommen wird,
wurden Pfeile 160 bis 168 bereitgestellt, um die
Verzögerung zwischen
den ansteigenden Flanken des Signalverlaufs des Rückkopplungstaktes
FBCLK und den ansteigenden Flanken des jeweils nächsten Zyklus im Signalverlauf
des Referenztaktes REFCLK zu betonen. Eine Betrachtung von 1B ergibt,
dass der Effekt des DLL 100 darin besteht, die durch die
Pfeile 160 bis 168 angezeigten Verzögerungen
zu verkürzen.
-
Der
Aufwärtszähl-Signalverlauf
und der Abwärtszähl-Signalverlauf
des Phasenkomparators 130 sind ebenfalls in 1B dargestellt.
Jeder der Pfeile 160 bis 168 zeigt an, dass eine
zusätzliche
Verzögerung
erforderlich ist, wenngleich in kleineren Werten für den Signalverlauf 160 bis
zum Signalverlauf 168. Folglich nehmen die Dauern der Rechteckimpulse 170 bis 178 des
Aufwärtszähl-Signalverlaufs
vom Impuls 170 bis zum Impuls 178 ab.
-
Der
Phasenwert zwischen dem Rückkopplungstaktsignal
FBCLK und dem Referenztaktsignal REFCLK ist ebenfalls in 1B dargestellt.
Eine Betrachtung des Phasenverlaufs (PH-Verlaufs) ergibt, dass der
Wert der Phasendifferenz mit der Progression durch die Impulse 170 bis 178 abnimmt,
wie durch die Aufwärtspfeile 180 bis 188 angezeigt
wird. Analog nimmt das vom N-Bit-DAC 121 ausgegebene Verzögerungseinstellsignal
DLYADJ umgekehrt proportional zur Abnahme der Phasendifferenz zu.
In gleicher Weise nimmt der Verzögerungsverlauf,
nämlich
der Signalverlauf, der beschreibt, wie dicht die Verzögerung an
einer vollen Periodendauer ist, von links nach rechts korrespondierend
mit der durch die Pfeile 180 bis 188 angezeigten
Abnahme des Phasen(PH)-Verlaufs ab.
-
Der
DAC 121 kann auf verschiedene Arten implementiert werden.
Eine einfache Implementierung besteht darin, den individuellen Transistoren
innerhalb des DACs 121 eine binäre Gewichtung zuzuordnen. 3 zeigt
ein schematisches Blockdiagramm eines binär gewichteten DAC 300 gemäß dem Stand
der Technik. Der DAC 300 umfasst vier 1-Bit-Wandler 302, 306, 310 und 314,
die eine Annahme eines 4-Bit-Gewichtungssystems
reflektieren (die Anzahl vier ist zur Vereinfachung gewählt; typische
DACs umfassen mehr Bits). Der 1-Bit-Wandler 302 umfasst
einen Ausgabetransistor 322 mit einem Kanal, dessen Breite/Länge(W/L)-Verhältnis so
gewählt
ist, dass er einen Einheitsstrom mit einem Wert i erzeugt. Der 1-Bit-Wandler 306 umfasst
einen Ausgabetransistor 324, dessen Kanal ein Breite/Länge-Verhältnis von
2W/L aufweist und einen Strom mit einem Wert von 2i aufnehmen kann,
d.h. einen doppelt so großen
Strom wie der Wandler 302. Der 1-Bit-Wandler 310 umfasst
einen Ausgabetransistor 326, dessen Kanal ein Breite/Länge-Verhältnis von 4W/L
aufweist und einen Strom mit einem Wert von 4i aufnehmen kann. Und
der 1-Bit-Wandler 314 umfasst einen Ausgabetransistor 328,
dessen Kanal ein Breite/Länge-Verhältnis von
8W/L aufweist und einen Strom mit einem Wert von 8i aufnehmen kann.
-
Ein
Binärsystem
repräsentiert,
wie andere Positionszahlensysteme, basierend auf der Kombination
von individuellen Bits eine Zahl, wobei jedes Bit einen Unterwert
repräsentiert,
der auf seiner relativen Position basiert und darauf, ob er im Nullzustand
oder im Einszustand ist. Eine 4-Bit-Binärzahl weist
Bits b3b2b1b0 auf, wobei b0 = 20 = 1, b1 = 21 = 2, b2 = 22 = 4 und b3 = 23 = 8, d.h.
b3 = 8b0, b2 = 4b0 und b1 = 2b0. Eine Überprüfung der
1-Bit-Wandler 313, 310, 306 und 302 ergibt,
dass ihre entsprechenden Ströme
eine binäre
Gewichtung für
eine 4-Bit-Binärzahl
reflektieren.
-
Weiter
umfasst der DAC 300 einen Puffer 320. Eine Ausgabe 318 des
Puffers 320 ist mit den Eingängen 304, 308, 312 und 316 der
1-Bit-Wandler 302, 306, 310 bzw. 314 verbunden.
Basierend auf den an jeden der 1-Bit-Wandler 302 angelegten
Steuersignalen, nämlich
b0 und b0b für den Wandler 302, b1
und b1b für
den Wandler 306, b2 und b2b für den Wandler 310 sowie
b3 und b3b für
den Wandler 314, wird jeder der 1-Bit-Wandler selektiv
an- oder abgeschaltet. Wenn eingeschaltet, nimmt jeder 1-Bit-Wandler
seinen entsprechenden Strom auf. Wenn alle Transistoren leitend
geschaltet sind, ziehen sie gemeinsam die Summe ihrer individuellen Ströme aus dem
Puffer 320 auf der Ausgabeleitung 318. In gleicher
Weise gibt die zweite Ausgabeleitung 321 des Puffers 320 die
gleiche Strommenge ab, wie sie aus der Ausgabeleitung 318 gezogen
wird. Der Strom auf der zweiten Ausgabeleitung 321 repräsentiert
das Verzögerungseinstellsignal
DLYADJ.
-
2A ist
eine Darstellung eines Beispielwerts für die Verzögerung zwischen dem Ausgabetakt
CLKOUT des DLL 100 und dem Referenztakt REFCLK. Eine Betrachtung
des Signalverlaufs DLY ergibt, dass er eine typische Abklingkurve
ist, die sich auf einen vorbestimmten Verzögerungswert 208 einstellt.
Es ist anzumerken, dass der Ausgabetakt CLKOUT ein analoges Signal
ist, das sich kontinuierlich verändern
kann. Im Gegensatz dazu ist die Verzögerungssteuerschaltung (DCC) 120 ein
digitales Bauelement, welches das Aufwärts/Abwärts-Steuersignal vom Phasenkomparator 130 in
ein binär
gewichtetes Wort übersetzt.
Aufgrund einer Vielzahl von Gründen,
z.B. thermische Fluktuationen, Systemspannungsfluktuationen, Rauschen
usw., gibt es gewisse Schwingungen oder Jitter 210 im Verzögerungssignalverlauf
DLY, auch nachdem der DLL einen synchronisierten Zustand erreicht
hat, d.h. nachdem sich der Signalverlauf DLY auf den vorbestimmten
Verzögerungswert 208 eingestellt
hat. Dieser Jitter 210 fällt in einen Wertebereich 220.
Der synchronisierte Zustand des DLL 100 wird wie dargestellt
nach 4μs
erreicht.
-
2B zeigt
eine Darstellung von 6-Bit-Worten und deren dezimalem Äquivalent.
Um die Erklärung
zu vereinfachen wird angenommen, dass der Jitter 210 mit
den Zählwerten
3110 und 3210 korrespondiert,
die durch den Zähler 122 ausgegeben
werden. In anderen Worten ausgedrückt, es wird angenommen, dass
die Zählwerte,
die mit dem Jitter 210 kor respondieren, 3110 und
3210 sind. Eine Betrachtung von 2B ergibt,
dass der Übergang
von 3110 auf 3210 eine
Zustandsänderung
von jedem der Bits b0 bis b5 beinhaltet. Wenn der Zählwert zwischen 3110 und 3210 hin und
her wechselt (oder jittert), wechselt jedes der Bits b0 bis b5 zyklisch
zwischen einem Nullzustand und einem Einszustand hin und her.
-
Wenn
eines der Bits in dem vom Zähler 122 ausgegebenen
Zählerwert
von Eins auf Null oder von Null auf Eins wechselt, hört der Strom
entweder zu fließen
auf oder beginnt durch den oder den oder die korrespondierenden
Transistoren des jeweiligen 1-Bit-Wandlers zu fließen. Wenn
nur der Transistor leitend oder sperrend geschaltet wird, der mit
dem niedrigstwertigen Bit korrespondiert, kann die Stromdifferenz
vernachlässigt
werden. Wenn aber alle Transistoren, wie bei dem in 2B dargestellten Übergang
von 3110, auf 3210 oder
von 3210 zurück auf 3110,
ihren Leitungszustand verändern,
sind hohe Strommengen involviert.
-
2C zeigt
Strommengen für
eine theoretische Situation, in der alle Transistoren leitend bzw. sperrend
geschaltet werden, d.h. einen Mehrbitübergang. Hierbei korrespondiert
die x-Achse mit der Zeit und die y-Achse korrespondiert mit dem Strom.
Eine Kennlinie 240 zeigt einen Gesamtstrom, der zu einem
Mehrbitübergangszeitpunkt 246 abgeschaltet wird,
während
eine Kennlinie 242 den Gesamtstrom darstellt, der am Übergangszeitpunkt
oder am Punkt 246 eingeschaltet wird. Eine Kennlinie 244 zeigt
die Summe der Kennlinien 240 und 242. Bei dieser
theoretischen Bedingung ist die abgeschaltete Strommenge im Wesentlichen
gleich der eingeschalteten Strommenge, so dass nur eine kleine bis
gar keine Veränderung
im Gesamtstromwert auftritt.
-
2D zeigt
realistische Werte für
Strommengen, die mit dem Mehrbitübergangspunkt 246 assoziiert
sind. Eine Kennlinie 248 korrespondiert dadurch mit der
Kennlinie 240, dass sie den Gesamtstrom zeigt, der zum
Mehrbitübergangspunkt 246 abgeschaltet
wird. Eine Kennlinie 250 korrespondiert dadurch mit der
Kennlinie 242, dass sie den Gesamtstrom darstellt, der
am Mehrbitübergangspunkt 246 eingeschaltet
wird. Eine Betrachtung der Kennlinien 248 und 250 ergibt,
dass ihre Übergänge im Vergleich
zu den abrupten Übergängen der
theoretischen Kennlinien 240 und 242 sehr graduell
sind. Eine Kennlinie 252 korrespondiert dadurch mit der Kennlinie 244,
dass sie die Summe der durch die Kennlinien 248 und 250 repräsentierten
Ströme zeigt.
Eine Betrachtung der Kennlinie 252 ergibt, dass eine signifikante
Abnahme des Gesamtstroms vorhanden ist, der mit dem Mehrbitübergangspunkt 246 assoziiert
ist. Dies steht in einem scharfen Kontrast zu der im Wesentlichen
flachen Kennlinie 244 der korrespondierenden theoretischen
Situation.
-
Die
große Änderung
des während
eines Mehrbitübergangs
durch den DAC 121 fließenden Gesamtstroms,
wie durch die Kennlinie 252 gemäß 2D dargestellt,
erzeugt ein großes
Maß an
Rauschen in der integrierten Schaltung. Dies ist ein Problem. Wenn
der DAC 121 gezwungen ist, zyklisch über einen Mehrbitübergang
zu wechseln, z.B. von 3110 auf 3210 und von 3210 zurück auf 3110, wird das Problem wesentlich verschlechtert.
-
Der
Stand der Technik versucht dieses Problem dadurch zu behandeln,
dass der Digital/Analog-Wandler (DAC) 121 auf einen anderen
Code als auf dem einfachen binär
gewichteten Code basiert wird. Insbesondere wurde ein Hybrid eines
binär gewichteten
Codes und eines Thermometercodes angewandt. In dem Hybridcode wird
eine Zahl zum Teil durch einen binär gewichteten Code und zum
Teil durch einen Thermometercode repräsentiert. Bei einem Thermometercode
repräsentiert
jedes Bit einen vorbestimmten Dezimalwert.
-
4A zeigt
eine Tabelle eines beispielhaften hybriden Thermometer-/Binärcodes.
Hierbei korrespondieren die niederwertigsten Bits mit dem Binärcodeteil,
nämlich
die Bits c0 und c1.
Die höherwertigen
Bits werden durch den Thermometercodeteil repräsentiert, nämlich die Bits b0,
b1, b2 und b3. Der Hybridcode gemäß 4A setzt
zur Vereinfachung eine Situation voraus, in der es gewünscht ist,
nur ein Maximum von 1910 zu repräsentieren.
-
Eine
Betrachtung der Zeilen in 4A, die mit
den Zahlen 010 bis 310 korrespondiert,
ergibt, dass der Thermometercode nur Nullwerte aufweist, während der
Binärcodeteil
einen typischen binären
Fortgang zeigt. Bei der Zahl 410 ist der
Binärcodeteil
auf Null zurückgesetzt,
während
das Bit b0 des Thermometercodeteils einen Wert von Eins annimmt,
während
die Bits b1 bis b3 auf dem Wert Null bleiben. Eine Betrachtung des
Fortgangs von 410 bis 710 ergibt,
dass der Binärcodeteil
wieder über
den normalen binären
Fortgang zunimmt, während
der Thermometercodeteil gleich bleibt. Bei der Zahl 810 ist
der Binärcodeteil
jedoch auf Null zurückgesetzt,
während das
Bit b1 des Thermometercodeteils einen Wert von Eins annimmt. Eine
Betrachtung des Fortgangs von 810 bis 1110 ergibt, dass der Binärcodeteil wieder über den
normalen binären
Fortgang zunimmt, während der
Thermometercodeteil gleich bleibt. Bei der Zahl 1210 ist
der Binärcodeteil
zurückgesetzt,
während
das Bit b2 des Thermometercodeteils auf einen Wert von Eins wechselt.
-
4B zeigt
ein schematisches Blockdiagramm einer Schaltung zum Erzeugen des
Hybridcodes von 4A gemäß dem Stand der Technik. Aufwärts/Abwärts-Zählsignale
(vom Komparator 130) werden von einem 4-Bit-Zähler 410 empfangen. Die
oberen zwei höchstwertigen
Bits c3, c2 werden einem thermischen Decoder 420 zur Verfügung gestellt,
der einen 4-Bit-Thermometercode b3b2b1b0 ausgibt.
-
4C zeigt
ein schematisches Blockdiagramm für einen DAC 430 (gemäß dem Stand
der Technik), der auf dem Hybridcode gemäß 4A und 4B basiert.
Der DAC 430 umfasst sechs 1-Bit-Wandler 4311 , 4312 , 4312 , 4313 , 4314 , 4321 und 4322 . Der 1-Bit-Wandler 432 weist
ein W/L-Verhältnis auf,
das so betrachtet werden kann, dass es einen Einheitsstrom mit einem
als i bezeichneten Wert erzeugt. Konsistent mit einer binären Gewichtung
weist der 1-Bit-Wandler 4322 ein
Verhältnis
von 2W/L für eine
Stromkapazität
von 2i auf. Die vier 1-Bit-Wandler 4311 bis 4314 weisen jeweils das gleiche Verhältnis auf,
nämlich
4W/L für
eine Stromkapazität
von 4i. Die Wandler 4321 und 4322 empfangen die Ausgabe c0 bzw. c1.
Die Wandler 4311 bis 4314 empfangen die Ausgabe b0, b1 bzw.
b2.
-
Ausgedrückt in Mehrbitübergängen zeigt
der Hybridcode von 4A einen ungünstigsten Fall bei den Übergängen zwischen
310 und 410, 710 und 810, 1110 und 1210 sowie
1510 und 1610. Es
ist jedoch festzustellen, dass während
dieser Übergänge nur
3 Bits wechseln, nämlich
die Binärcodebits
c0 und c1 und nur
eines der Thermometercodebits. Als Konsequenz zeigt der auf dem
Hybridcode basierende DAC eine wesentlich kleinere Änderung
des Gesamtstroms während
eines Mehrbitübergangs,
als sie der DAC vom reinen Binärcodetyp
erfährt.
Dies ist ein Vorteil, der vom Thermometercodeaspekt des Hybridcodes
eingebracht wird.
-
Der
Thermometercodeaspekt weist jedoch auch einige Nachteile auf. Um
den Binärcodeanteil auf
eine relativ kleine Bitanzahl zu begrenzen, kann jedes Bit des Thermometercodes
nur ein relativ kleines dezimales Äquivalent repräsentieren.
Im Beispiel von 4A repräsentiert jedes Bit des Thermometercodeteils
die Zahl 410, die mit 22 korrespondiert.
Als Konsequenz wird der Binärcodeteil
im Hybridcode von 4A auf nur zwei binäre Bits
c0 und c1 begrenzt. Wenn der Binärcodeanteil
auf 3 Bits erhöht wird,
so dass das höchstwertige
Bit des Binärcodeanteils
einen Wert von 22 = 410 repräsentiert,
würde jedes
Bit des Thermometercodes den nächst
höheren Exponenten
von 2, nämlich
23 = 810, repräsentieren.
-
Dieser
Zusammenhang ist wichtig, da die Anzahl von Thermometercodebits
zunimmt, die zum Repräsentieren
eines bestimmten Wertes erforderlich ist, wenn das von jedem Thermometerbit
repräsentierte
dezimale Äquivalent
abnimmt. Im Beispiel von 4A kann
der Hybridcode nur ein Maximum von 1910 repräsentieren.
Dies ist eine niedrige Zahl und erfordert trotzdem einen 4-Bit-Thermometercode.
Somit liegt ein Problem bei der Verwendung des Thermometercodes
darin, dass er typischerweise eine große Anzahl von Bits erfordert,
um eine einigermaßen
große
Zahl zu repräsentieren.
Als Konsequenz verbraucht der korrespondierende Transistorschaltungsaufbau
ein großes
Maß an
Oberfläche
auf einer integrierten Schaltung und seine Verdrahtung verkompliziert
die Architektur des DACs, von dem er ein Teil ist.
-
Die
Patentschrift
US 6.087.868 offenbart
einen digitalen Verzögerungsregelkreis,
der eine variable Verzögerungsleitung,
die einen Referenztakt empfängt
und einen verzögerten
internen Takt ausgibt, einen Phasendetektor zum Vergleichen des
Referenztaktes und des internen Taktes und zur Bereitstellung einer
Aufwärts/Abwärts-Anzeige
sowie ein Verzögerungssteuermittel
umfasst, das auf die Aufwärts/Abwärts-Anzeige reagiert,
um eine Verzögerung
in einer Halbleiterbauelement-Taktpufferung
zu beseitigen, die aus einer inhärenten
Verzögerung
resultiert, die durch die Elemente im Taktpfad verursacht wird.
Die Verzögerung
wird in diskreten Schritten durch eine Einstellung variiert, wie
viele Verzögerungsschritte
in der Verzögerungskette
enthalten sind. Der Verzögerungsregelkreis
kann verwendet werden, um einen internen Takt zu erzeugen, um die Ausgabepuffer
z.B. in einem SDRAM-Bauelement
zu steuern.
-
Die
Offenlegungsschrift US 2002/0015460 offenbart einen Verzögerungsregelkreis,
der eine Hauptverzögerungsleitung
mit einer Feinverzögerungsleitung
und einer Grobverzögerungsleitung
umfasst.
-
Als
technisches Problem liegt der Erfindung die Bereitstellung einer
Zähler-
und Digital/Analog-Wandlervorrichtung, die wenigstens einige der oben
erwähnten
Nachteile der DACs des Standes der Technik vermeidet und insbesondere
mit einer vereinfachten Architektur realisiert werden kann und weniger
Oberfläche
einer integrierten Schaltung verbraucht, sowie eines korrespondierenden
Verzögerungsregelkreises,
Speicherbauelements und Speichersystems und eines korrespondierenden
Zählverfahrens
zugrunde.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung einer Zähler- und Digital/Analog-Wandlervorrichtung
gemäß Patentanspruch
1, eines Verzögerungsregelkreises
gemäß Patentanspruch
4, eines Speicherbauelements gemäß Patentanspruch
6, eines Speichersystems gemäß Patentanspruch
7 und eines Zählverfahrens
gemäß Patentanspruch
8.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Ein
erfindungsgemäßer Gleitcodegenerator kann
einen Coin-Codezähler
und einen Cash-Codezähler
umfassen. Der Coin-Codezähler
ist zum Zählen
eines Wertes eines Coin-Codes und kann in Reaktion auf Zählaufwärts- und
Zählabwärtssignale
UP und DN arbeiten, die von einem Phasendetektor ausgegeben werden.
Der Cash-Code-Zähler
kann in Reaktion auf Ausgabesignale S1 und S0 des Coin-Code-Zählers und
der Zählaufwärts- und
Zählabwärtssignale
UP und DN des Phasendetektors arbeiten. Das bedeutet, dass der Coin-Zähler Zählimpulse
des Phasendetektors empfängt,
um einen 2-Bit-Coin-Code S[1:0] auszugeben. Ein Coin-Zähler weist
basierend auf Zählimpulsen
einen der Zustände
00, 01 und 11 auf. Wenn der Coin-Zähler den Zustand 11 erreicht,
d.h. den vollen Zustand, kann das Zählaufwärtssignal UP den Wert im Coin-Zähler nicht
mehr erhöhen,
kann aber den Wert im Cash-Zähler erhöhen.
-
Wenn
der Coin-Zähler
beispielsweise den Zustand 00 erreicht, d.h. den leeren Zustand,
kann das Zählabwärtssignal
DN den Wert im Coin-Zähler nicht
mehr verkleinern, kann aber den Wert im Cash-Zähler verkleinern. Der Cash-Zähler empfängt einen
Zählimpuls
des Phasendetektors und einen Coin-Code S[1:0] des Coin-Zählers, um
einen Cash-Code B[7:0] auszugeben. Wenn ein Coin-Code einen vollen
Zustand aufweist (und nicht erhöht
werden kann), wird der Zustand des Cash-Zählers basierend auf dem Zählaufwärtssignal
UP auf den nächsten
Zustand erhöht.
Wenn der Coin-Code jedoch einen leeren Zustand aufweist, wird der
Zustand des Cash-Zählers
gehalten, während
ein Zustand des Coin-Zählers in
Reaktion auf einen Zählimpuls
erhöht wird.
Der Coin-Zähler
ist ausreichend groß,
so dass ein Hin-und-Her-Jitter (oder zyklisches oder ringartiges
Wechseln), der während
eines Synchronisationszustands eines Verzögerungsregelkreises (DLL) auftritt,
keine Veränderung
des Werts des Cash-Zählers bewirkt.
In anderen Worten ausgedrückt,
die Wiederholung des Zählaufwärts- und
Zählabwärtssignals UP
und DN, die durch den Hin-und-Her-Jitter verursacht wird, kann den
Wert variieren, der vom Coin-Code repräsentiert wird, stört aber
nicht den Wert im Cash-Zähler.
Wenn ein Wert des Hin-und-Her-Jitters beispielsweise innerhalb eines zweiten
Gewichts des Cash-Zählers
liegt, kann ein Wert des Coin-Zählers
gleich einem zweiten Bit des Cash-Zählers 224 sein.
-
Zusätzliche
Eigenschaften und Vorteile der Erfindung werden aus der nachfolgenden
detaillierten Beschreibung von Ausführungsbeispielen, den zugehörigen Patentansprüchen und
den beiliegenden Zeichnungen verständlicher.
-
Vorteilhafte,
nachfolgend im Detail beschriebene Ausführungsformen der Erfindung
sowie das zu deren besserem Verständnis oben erläuter te,
herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt. Es zeigen:
-
1A ein
schematisches Blockdiagramm eines Verzögerungsregelkreises (DLL) entsprechend dem
Stand der Technik,
-
1B einen
Satz von Signalverläufen
zur Darstellung der Funktion des DLL von 1 entsprechend
dem Stand der Technik,
-
2A eine
grafische Darstellung der Progression in Richtung eines diesen asymptotisch
erreichenden Synchronisationszustands durch den DLL von 1A entsprechend
dem Stand der Technik,
-
2B eine
Tabelle zur Darstellung eines Beispielsatzes von Binärcodewerten,
die mit der in 2A dargestellten Synchronisationsbedingung korrespondieren,
entsprechend dem Stand der Technik,
-
2C eine
grafische Stromdarstellung für den
theoretischen Fall, in dem alle Ausgabetransistoren eines binär codierten
DAC gemäß dem Stand
der Technik leitend oder sperrend geschaltet sind,
-
2D eine
realistische grafische Stromdarstellung entsprechend dem Stand der
Technik, die mit theoretischen Strömen gemäß 2C korrespondiert,
-
3 ein
Diagramm eines binär
gewichteten DACs 300 auf Transistorebene entsprechend dem Stand
der Technik,
-
4A eine
Tabelle, die Bitwerte für
eine Progression von 010 bis 1910 eines
hybriden Thermometer-/Binärcodes
auflistet,
-
4B ein
schematisches Blockdiagramm eines hybriden Thermometer-/Binärcodegenerators entsprechend
dem Stand der Technik, der mit dem Hybridcode von 4A korrespondiert,
-
4C ein
schematisches Blockdiagramm eines hybriden, auf einem Thermometer-/Binärcode basierenden
DAC entsprechend dem Stand der Technik, der mit 4A korrespondiert,
-
5 ein
schematisches Blockdiagramm eines erfindungsgemäßen Verzögerungsregelkreises (DLL),
-
6A bis 6B Tabellen
zur Darstellung eines Ausführungsbeispiels
eines erfindungsgemäßen Gleitcodes,
-
6C ein
anderes Ausführungsbeispiel
eines erfindungsgemäßen Gleitcodes,
-
7A ein
schematisches Blockdiagramm eines erfindungsgemäßen Gleitcodegenerators,
-
7B ein
Zustandsdiagramm, das mit einem Coin-Zähler von 7A korrespondiert,
-
7C ein
Zustandsdiagramm, das mit einem Cash-Zähler von 7A korrespondiert,
-
7D eine
Tabelle zur Darstellung von Änderungen
von Bitwerten eines beispielhaften erfindungsgemäßen Gleitcodes,
-
7E eine
Tabelle zur Darstellung eines zyklischen Wechsels gemäß 7D in
größerem Detail,
-
8 ein
Ablaufdiagramm von Vorgängen entsprechend
einer erfindungsgemäßen Ausführungsform,
-
9 ein
Zustandsdiagramm zur Darstellung von Änderungen von Bitwerten eines
beispielhaften erfindungsgemäßen Gleitcodes,
-
10 ein
Schaltbild eines Ausführungsbeispiels
eines erfindungsgemäßen DACs,
-
11A und 11B ein
Schaltbild eines Ausführungsbeispiels
eines erfindungsgemäßen Gleitcodegenerators,
-
12 ein
Schaltbild eines Ausführungsbeispiels
eines erfindungsgemäßen Coin-Zählers,
-
13 ein
Schaltbild eines Ausführungsbeispiels
geradzahliger Logikeinheiten aus den 11A und 11B,
-
14 ein
Schaltbild eines Ausführungsbeispiels
einer Flip-Flop-Einheit aus 13,
-
15 ein
Schaltbild eines Ausführungsbeispiels
ungeradzahliger Logikeinheiten aus den 11A und 11B,
-
16 ein
Schaltbild eines Ausführungsbeispiels
einer Flip-Flop-Einheit aus 15,
-
17 ein
schematisches Blockdiagramm eines erfindungsgemäßen Speicherbauelements und
-
18 ein
schematisches Blockdiagramm eines erfindungsgemäßen Speichersystems.
-
Operationen
einer Zählervorrichtung
entsprechend einer erfindungsgemäßen Ausführungsform
umfassen: Repräsentieren
von Zahlen mit einer Basis N mit einem gemischten Code, der einen
nicht auf N basierenden Coin-Codeanteil und einen nicht auf N basierenden
Cash-Codeanteil
aufweist, wobei der Coin-Code mit einem oder mehreren der niederwertigsten
Bits des Cash-Codes korrespondiert, aber weniger als alle Bits des
Cash-Codes aufweist, wobei der Coin-Codeanteil des gemischten Codes
einen Bereich von Zahlen mit der Basis N repräsentiert, der einen oberen
Grenzwert und einen unteren Grenzwert aufweist; Feststellen, wenn
ein Triggersignal zum Aufwärtszählen ist,
ob ein vorher erhaltener Wert des Coin-Codeanteils gleich dem oberen Grenzwert
ist; Aufwärtszählen, wenn
unter Verwendung des Coin-Codeanteils festgestellt wurde, dass der
vorher erhaltene Wert des Coin-Codeanteils niedriger als der Aufwärtszählgrenzwert
ist; Aufwärtszählen, wenn
unter Verwendung des genannten Cash-Codeanteils festgestellt wurde,
dass der vorher erhaltene Wert des Coin-Codeanteils gleich dem Aufwärtszählgrenzwert
ist; Feststellen, wenn das Triggersignal zum Abwärtszählen ist, ob ein vorher erhaltener
Wert des Coin-Codeanteils gleich dem unteren Grenzwert ist; Abwärtszählen, wenn
unter Verwendung des Coin-Codeanteils festgestellt wurde, dass der
vorher erhaltene Wert des Coin-Codeanteils höher als der zweite Grenzwert
ist; und Abwärtszählen, wenn
unter Verwendung des Cash-Codeanteils festgestellt wurde, dass der
vorher erhaltene Wert des Coin-Codeanteils gleich dem unteren Grenzwert
ist, wobei sich eine Änderung
der Zählrichtung
als Wechsel des Wertes des Coin-Codeanteils manifestiert, während der
Wert des Cash-Codeanteils gleich gehalten wird.
-
Die
Variable N kann beispielsweise 10 sein. Ein solcher Coin-Code kann
z.B. ein Thermometercode oder ein Binärcode sein, und ein solcher Cash-Code
kann z.B. ein Binärcode
sein.
-
Operationen
eines Ausführungsbeispiels
einer erfindungsgemäßen Zählervorrichtung
umfassen: Repräsentieren
von Zahlen mit einer Basis N mit einem gemischten Code, der einen
nicht auf N basierenden Coin-Codeanteil
und einen nicht auf N basierenden Cash-Codeanteil aufweist, wobei
der Coin-Code mit einem oder mehreren der niederwertigsten Bits
des Cash-Codes korrespondiert, aber weniger als alle Bits des Cash-Codes
aufweist; Zählen
durch Repräsentieren
des Zählwerts
als eine Summe der Zahl mit der Basis N, die durch den Coin-Code
repräsentiert
wird, und der Zahl mit der Basis N, die durch den Cash-Code repräsentiert
wird; und Ändern
der Zählrichtungen
durch Wechseln des Coin-Codes, bis eine Zählkapazität des Coin-Codes überschritten
wird, wobei der Cash-Code geändert wird,
nachdem die Zählkapazität des Coin-Codes überschritten
ist; wobei sich ein zyklischer Wechsel zwischen benachbarten Zahlen
mit der Basis N im Wert des Coin-Codeanteils
manifestiert, während
der Wert des Cash-Codeanteils gleich bleibt.
-
Operationen
eines Ausführungsbeispiels
einer erfindungsgemäßen Zählervorrichtung
umfassen: Repräsentieren
von Zahlen mit einer Basis N mit einem gemischten Code, der einen
nicht auf N basierenden Coin-Codeanteil
und einen nicht auf N basierenden Cash-Codeanteil aufweist, wobei
der Coin-Code mit einem oder mehreren der niederwertigsten Bits
des Cash-Codes korrespondiert, aber weniger als alle Bits des Cash-Codes
aufweist; wobei ein Zählwert
durch Summieren der Zahl mit der Basis N, die durch den Coin-Code
repräsentiert
wird, und der Zahl mit der Basis N, die durch den Cash-Code repräsentiert
wird, gebildet wird; Ausführen
eines Zählversuchs
in Reaktion auf ein Triggersignal unter Verwendung des Coin-Codes;
Aufwärtszählen mit dem
Cash-Code nur dann, wenn der Coin-Code einen oberen Grenzwert erreicht;
und Abwärtszählen mit
dem Cash-Code nur dann, wenn der Coin-Code einen unteren Grenzwert
erreicht; wobei sich ein zyklischer Wechsel zwischen benachbarten
Zahlen der Basis N im Coin-Codeanteil manifestiert, während der
Cash-Codeanteil gleich gehalten wird.
-
5 zeigt
ein schematisches Blockdiagramm einer Verzögerungsregelkreis(DLL)-Schaltung 500 gemäß einer
Ausführungsform
der Erfindung. Die Schaltung 500 umfasst eine allgemein
bekannte variable Verzögerungsleitung 510 mit
Verzögerungseinheiten 511, 512, 513 und 514.
Mehr oder weniger Verzögerungseinheiten
können
vorhanden sein; zur Vereinfachung sind hier nur vier dargestellt. Zudem
umfasst die Schaltung 500 einen Phasendetektor/Komparator 540 und
eine Verzögerungssteuerschaltung 516.
Innerhalb der Verzögerungssteuerschaltung 516 sind
ein Gleitcodegenerator 530 und ein gleitcodierter Digital/Analog-Wandler
(DAC) 520 enthalten.
-
Die
erste Verzögerungseinheit 511 und
der Phasenkomparator 540 empfangen jeweils das Systemtaktsignal
CLKSRC. In einer bekannten Weise sind die Verzögerungseinheiten 511 bis 514 mit
ihren miteinander verbundenen Ausgängen kaskadiert, um das Ausgabetaktsignal
CLKOUT zu formen. Das Ausgabetaktsignal wird als Rückkopplungssignal FBCLK
zum Phasenkomparator 540 zurückgeführt. Der Komparator 540 gibt
in Abhängigkeit
davon, ob die Phase des Ausgabetaktes CLKOUT gegenüber dem
Referenztakt CLKSRC voreilt oder nacheilt, ein Aufwärtszählsignal
oder ein Abwärtszählsignal
aus. Der Gleitcodegenerator 530 zählt, d.h. erzeugt Gleitcodes,
in Reaktion auf die Aufwärts/Abwärts-Signale vom
Phasenkomparator 540. Wie nachfolgend detaillierter beschrieben
wird, weist der Gleitcode einen Coin-Codeanteil S[i:0] und einen
Cash-Codeanteil B[j:0] auf, die dem gleitcodierten DAC 520 zur
Verfügung
gestellt werden. Der DAC 520 stellt jeder Verzögerungseinheit 511 bis 514 parallel
ein Verzögerungseinstellsignal
DLY-ADJ zur Verfügung.
-
6A zeigt
Tabellen, die ein Ausführungsbeispiel
eines erfindungsgemäßen Gleitcodes
listen. Eine der Tabellen 610 listet den Cash-Codeanteil, der als
ein einfaches Beispiel die Form eines 10Bit binär gewichteten Codes aufweist.
Beispielhafte Zustände der
entsprechenden Bitpositionen sind angezeigt. Die andere Tabelle 620 listet
ein Beispiel eines 2-Bit-Coin-Codes sowie beispielhafte Zustände der entsprechenden
Bitpositionen. Der 2-Bit-Coin-Code nimmt die Form eines Thermometercodes
an. Der Gleitcode von 6A repräsentiert 33610,
was als Kombination des Cash-Codes 33410 und
des Coin-Codes 210 ausgedrückt ist.
Der Gleitcode kann einen Dezimalwert auf mehrfache Arten gemäß der Kombination
des Cash-Codes und des Coin-Codes ausdrücken.
-
6C zeigt
ein Beispiel eines Gleitcodes, der einen Dezimalwert auf verschiedene
Arten ausdrücken
kann. Es wird angemerkt, dass das dezimale Äquivalent zu den Binärcodeanteilen
in 6C in eckigen Klammern („⌷")eingeschlossen dargestellt ist.
So kann in 6C ein Dezimalwert 32 auf drei
Arten gemäß der Kombination
des Cash-Codes und des Coin-Codes dargestellt werden.
-
6B ist ähnlich zu 6A,
außer
dass der beispielhaft dargestellte Coin-Code ein 3-Bit-Coin-Code
ist, der die Form eines 3-Bit binär gewichteten Codes annimmt.
Wieder sind in 3 beispielhafte Zustände von
entsprechenden Bitpositionen dargestellt. Der Gleitcode von 6B repräsentiert
33910, was als Kombination des Cash-Codes 33410 und des Coin-Codes 510 ausgedrückt ist.
-
7A zeigt
ein schematisches Blockdiagramm des erfindungsgemäßen Gleitcodegenerators 530 gemäß einer
Ausführungsform
der Erfindung. Der Generator 530 umfasst einen Coin-Zähler 710 und
einen Cash-Zähler 720.
In diesem Ausführungsbeispiel
kann der Coin-Zähler
ein 2-Bit-Stapelspeicher sein und der Cash-Zähler kann ein 3-Bit- Binärzähler sein.
Andere Implementierungen des Coin-Zählers und des Cash-Zählers können verwendet
werden.
-
Der
Coin-Zähler 710 und
der Cash-Zähler 720 empfangen
jeweils die Aufwärtszähl-/Abwärtszählsignale
vom Phasenkomparator 540. Der Coin-Zähler 710 gibt den
Coin-Code aus, der aus Gründen
der Vereinfachung in 7A mit einer Länge von
2-Bit angenommen wird, nämlich
mit S[1:0]. Zusätzlich
zur Bereitstellung an den DAC 520 kann die Ausgabe des
Coin-Zählers 710 dem
Cash-Zähler 720 bereitgestellt
werden. Der Cash-Zähler 720 gibt den
Cash-Code aus, der aus Gründen
der Vereinfachung in 7A als Beispiel einen 3-Bit-Code
annimmt, nämlich
B[2:0].
-
7B zeigt
ein Zustandsdiagramm des vom Coin-Zähler 710 ausgegebenen
Coin-Codes. Im Ausführungsbeispiel
der 7B ist der Coin-Code ein 2-Bit-Thermometercode,
der vom 2-Bit-Stapelspeicher erzeugt wird. Der Betrieb des Coin-Zählers 710 begrenzt
den Coin-Code auf drei Zustände.
Diese Zustände
sind in Blöcken 712, 714 und 716 dargestellt.
Jedes der Coin-Code-Bits S0 und S1 repräsentieren
ein dezimales Äquivalent
von eins.
-
Unter
der Annahme, dass das Zählen
mit Null beginnt, ist die Ausgabe des Coin-Zählers 710 anfänglich im
Zustand 00, wie durch die Box 712 angezeigt wird, was gleich
010 ist. Wenn der Zählerstand erhöht wird,
nimmt die Ausgabe des Coin-Zählers 710 einen
Wert 01 an, wie durch die Box 714 dargestellt ist, was
mit 110 korrespondiert. Ein Inkrementieren
des Zählerstands
bewirkt wieder, dass die Ausgabe des Coin-Zählers 710 einen
Wert 11 annimmt, wie durch die Box 716 angezeigt wird,
was gleich 210 ist. Wenn der Phasenkomparator 540 ein
weiteres Aufwärtszählsignal
bereitstellt, wechselt der Coin-Zähler 710 seine Ausgabe
nicht, d.h. die Ausgabe bleibt, wie durch die Box 716 dargestellt
wird.
-
Anstatt
eines Überlaufs
des Coin-Zählers
inkrementiert der Cash-Zähler
korrespondierend seine Ausgabe. 7C zeigt
ein Zustandsdiagramm des Cash-Codes, der vom Cash-Zähler 720 ausgegeben wird.
Wieder unter der Annahme, dass das Zählen bei 0 startet, nimmt der
Cash-Code anfänglich den Zustand
000 ein und hält
ihn während
der ersten drei Zählvorgänge, die
mit 010, 110 und
210 korrespondieren. Aber mit dem vierten
Zählvorgang,
wenn der Coin-Zähler überläuft, wird
der Cash-Code auf 001 inkrementiert. Im Beispiel von 7C nimmt
der Cash-Code die Form eines binär
gewichteten Codes an. Wenn der Phasenkomparator mit der Bereitstellung
von Aufwärtszählimpulsen
für die
Zähler 710 und 720 weitermacht,
bleibt der Coin-Zähler 710 in seinem Überlaufzustand
und der Cash-Zähler
absorbiert die Erhöhung,
indem er vom Zustand 001 zum Zustand 010, zum Zustand 011, zum Zustand 100 usw.
weitergeht.
-
Wenn
ein Abwärtszählimpuls
durch den Phasenkomparator 540 bereitgestellt wird, wird
der Wechsel anfänglich
durch den Coin-Code absorbiert und nicht vom Cash-Code. Der Zustand
des Cash-Codes bleibt gleich, während
der Coin-Code vom Zustand 716 auf den Zustand 714 abnimmt. Wenn
ein weiterer Abwärtszählimpuls
empfangen wird, absorbiert der Coin-Code wieder die Abnahme durch Ändern vom
Zustand 714 zum Zustand 712. Wird dann noch ein
weiterer Abwärtszählimpuls
empfangen, erreicht der Coin-Zähler
eine Unterlaufsituation, in der er nicht weiter verkleinert werden
kann. Entsprechend bleibt der Coin-Code im Zustand 712, während die
Abnahme vom Cash-Code absorbiert wird, der korrespondierend dekrementiert
wird.
-
Durch
Einrichten eines relativ kleinen oberen Grenzwertes und eines relativ
kleinen unteren Grenzwertes kann die Masse der numerischen Darstellung
vom Cash-Code bewältigt
werden. Die Auswahl des Cash-Codes
in einer binär
gewichteten Form reduziert signifikant die Anzahl an erforderlichen
1-Bit-Wandlern. Alternativ können
andere Codes für
den Cash-Zähler
verwendet werden. So kann beispielsweise ein Thermometercode verwendet werden,
wenn es wichtiger ist, die Anzahl von Bits in einem Übergang
während
eines schlechtesten Falls eines Mehrbitübergangs zu reduzieren, als
der Faktor, den IC-Oberflächenverbrauch
zu reduzieren.
-
Zudem
weist der Coin-Code den Vorteil auf, dass er und nicht der Cash-Code einen Wechsel
der Zählrichtung
absorbiert. Dies ist z.B. in einer Situation wichtig, in der sich
ein DLL synchronisiert und dadurch etwas zyklisches Verhalten aufgrund
von Jitter zeigt. Die kleineren Transistoren in den 1-Bit-Wandlern,
die mit dem Coin-Code assoziiert sind, der das zyklische Wechselverhalten
absorbiert, erzeugen weniger Rauschen als die meisten Transistoren
in den 1-Bit-Wandlern, die mit dem Cash-Code assoziiert sind.
-
7D zeigt
ein Ausführungsbeispiel
eines erfindungsgemäßen 9-Bit-Gleitcodes. Der Gleitcode umfasst
einen 2-Bit-Coin-Code und einen 7-Bit-Cash-Code. In diesem Beispiel nimmt
der Cash-Code wieder die Form eines binär gewichteten Codes an, während der
Coin-Code die Form eines einfachen Binärcodes annimmt, bei dem jede
Bitposition den gleichen numerischen Wert, z.B. 1, repräsentiert. 7D zeigt
eine Situation, die analog zu der in 2B dargestellten
Situation des Standes der Technik ist (in der nämlich zyklisches Wechselverhalten
um die numerischen Werte 3110 und 3210 auftritt). In 7D korrespondiert
das zyklische Vorwärts-
und Rückwärtswechseln
um die Werte 3110 und 3210 im
Stand der Technik gemäß 2B wegen der
zwei zum Cash-Code gehörigen
zusätzlichen Bits
S1, S0, die beide I10 repräsentieren,
mit dem zyklischen Wechselverhalten in 7D zwischen
den Werten 3310 und 3410.
Die in 7D dargestellte Wechselsituation
unterscheidet sich vom Stand der Technik gemäß 2B dadurch,
dass dieses zyklische Wechseln durch einen Gleitcode gemäß einer Ausführungsform
der Erfindung behandelt wird.
-
Wie
gesagt, erfolgt das zyklische Wechseln wegen des Jitters eines synchronisierten
Zustands eines DLL. Die Größe des Coin-Codes
kann zum Absorbieren des Jitters ausgelegt werden. Passende Bitlängen für den Coin-Code
und den Cash-Code sind von den Umständen abhängig, in denen der Gleitcode
anzuwenden ist. Mit der Zunahme des Bereichs des zyklischen Wechselns
kann sich die korrespondierende Anzahl der Bits im Coin-Zähler erhöhen.
-
Angenommen,
dass der Phasenkomparator kontinuierlich Aufwärtszählsignale bereitgestellt hat, dann
könnte
der Gleitcode einen Zustand von 3110 erreicht
haben, der mit einem Coin-Code von 01 und einem Cash-Code von 0011110
korrespondiert. Ein nachfolgender Aufwärtszählimpuls würde den Coin-Code in den Zustand
11 erhöhen
und den Cash-Code
gleich lassen. Eine weitere Erhöhung
auf 3310 würde den Coin-Code gleich lassen,
nämlich
auf 11, und den Cash-Code auf den Zustand 0011111 erhöhen. Eine
weitere Erhöhung
auf 3410 würde den Coin-Code auf 11 gleich
lassen und den Cash-Code auf den Zustand 0100000 inkrementieren,
wie in Zeile 731 dargestellt ist. Der Übergang 730 von 3310 auf 3410 ist ein
Mehrbitübergang
im Cash-Code. Sollte das nächste
Signal des Phasenkomparators 540 ein Abwärtszählimpuls
sein, ist es wünschenswert,
einen weiteren Mehrfachbitübergang 730 zu
verhindern, beispielsweise aufgrund des assoziierten Rauschens,
das durch den Zustandswechsel von sechs Ausgabetransistoren der
entsprechenden 1-Bit-Wandler verursacht wird.
-
Unter
der Annahme, dass das nächste
Zählsignal
des Phasenkomparators 540 ein Dekrementsignal ist, absorbiert
der Coin-Zähler
anstelle des Cash-Zählers
die Abnahme und nimmt in Zeile 732 den Zustand 01 an. Wenn
dann ein Dekrementsignal empfangen wird, wird die Abnahme wieder
vom Coin-Zähler
absorbiert, der in Zeile 734 den Zustand 00 annimmt. Wenn
das nächste
Zählsignal
des Phasenkomparators 540 jedoch ein Aufwärtszählsignal ist,
wird die Zunahme immer noch vom Coin-Code reflektiert, der den Zustand
01 annimmt, wie in Zeile 736 angezeigt wird. Eine weitere
Zunahme wird wieder durch den Coin-Code absorbiert, der den Zustand
11 annimmt, wie in Zeile 738 angezeigt wird. An diesem
Punkt hat der Coin-Code jedoch seine obere Grenze erreicht. Die
direkt nachfolgende Erhöhung würde dann
vom Cash-Code absorbiert werden.
-
Wenn
das nachfolgende Zählsignal
ein Abwärtszählsignal
ist, wird das Inkrement vom Coin-Code absorbiert, der den Zustand
01 annimmt, wie in Zeile 740 dargestellt ist. Ein zyklischer
Wechsel zwischen 3310 und 3410 wird
von Übergängen des Coin-Codes
und nicht von Übergängen des Cash-Codes
absorbiert. Dies eliminiert die wiederholten Mehrbitübergänge, unter
denen der korrespondierende, in 2B dargestellte
DAC des Standes der Technik leidet.
-
7E zeigt
ein Diagramm zur Darstellung zyklischer Wechsel zwischen 3410 und 3210 (wieder durch
Jitter verursacht) und wie sie durch den Coin-Code absorbiert werden. 7E zeigt
lediglich Aspekte von 7D detaillierter. In 7E korrespondiert
die x-Achse mit der Zeit und die y-Achse korrespondiert mit dem
Wert, der durch den Coin-Code repräsentierten Zahl. Die untere
Zeile 742 weist den Coin-Code-Zustand 00 auf, der mit 3210 korrespondiert. Die mittlere Zeile 744 weist
den Coin-Code-Zustand 01 auf, der mit 3310 korrespondiert.
Und die obere Zeile 746 weist den Coin-Code-Zustand 11
auf, der mit 3410 korrespondiert. Die Zeitinkremente
t731, t732, t734, ..., t740 korrespondieren
mit Zuständen,
die jeweils in den Zeilen 731, 732, 734,
..., 740 dargestellt werden. Eine Betrachtung von 7E insgesamt
ergibt, dass die zyklischen Wechsel vollständig vom Coin-Code absorbiert
werden.
-
8 zeigt
ein erfindungsgemäßes Ablaufdiagramm 800.
Der Ablauf beginnt im Block 802 und schreitet mit Block 804 fort,
in dem bestimmt wird, ob der Zählimpuls
vom Phasenkomparator 540 ein Aufwärtszähl- oder Abwärtszählimpuls ist. Wenn ein Aufwärtszählimpuls
empfangen wurde, geht der Ablauf vom Block 804 zum Block 806 weiter,
in dem bestimmt wird, ob der Coin-Zähler voll ist, d.h. ob der Zustand
des Coin-Codes augenblicklich
seiner oberen Grenze entspricht. Wenn dem so ist, fährt der
Ablauf mit Block 810 fort, in dem das Inkrement durch den
Cash-Zähler
absorbiert wird, d.h. der Cash-Zähler
wird erhöht.
Vom Block 810 fährt
der Ablauf mit Block 812 fort, in dem die Summe des Coin-Codes und
des Cash-Codes den numerischen Wert des Gleitcodes repräsentiert.
-
Wenn
im Block 806 jedoch bestimmt wird, dass der Coin-Zähler nicht
voll ist, fährt
der Ablauf mit Block 814 fort, in dem das Inkrement durch
den Coin-Zähler
absorbiert wird, d.h. der Coin-Zähler
wird erhöht.
Vom Block 814 fährt
der Ablauf mit Block 812 fort, in dem der Coin-Code und
der Cash-Code summiert werden, um das numerische Äquivalent
des Gleitcodes zur Verfügung
zu stellen.
-
Zurück zum Block 804 wechselt
der Ablauf, wenn bestimmt wird, dass der Zählimpuls ein Abwärtszählimpuls
ist, zum Block 808. Im Block 808 wird bestimmt,
ob der Coin-Code leer ist, d.h. ob der Coin-Zähler augenblicklich an seiner
unteren Grenze ist. Wenn dem so ist, fährt der Ablauf mit Block 810 fort,
in dem das Dekrement durch den Cash-Code absorbiert wird, d.h. der
Wert des Cash-Codes wird verkleinert. Wie vorher wechselt der Ablauf
vom Block 810 zum Block 812. Wenn jedoch im Block 808 bestimmt
wird, dass der Coin-Code nicht leer ist, fährt der Ablauf mit Block 814 fort,
in dem der Coin-Code das Dekrement absorbiert, d.h. der Coin-Code
wird verkleinert. Vom Block 814 fährt der Ablauf mit dem Block 812 fort.
-
9 zeigt
ein Zustandsdiagramm für
das Beispiel eines erfindungsgemäßen Gleitcodes
mit einem 2-Bit-Coin-Code und einem 7-Bit-Cash-Code. Wieder kann der Coin-Code ein
Thermometercode sein. Die obere Grenze des Coin-Codes kann 11 sein,
während
der untere Grenzzustand 00 sein kann. Der Cash-Code kann ein binär gewichteter Code
sein. 9 zeigt, wie der Coin-Codeanteil des Gleitcodes
Wechsel in der Zählrichtung
absorbiert, während
der Cash-Codeanteil nicht betroffen ist. Zusätzlich zeigt 9,
wie verschiedene Kombinationen von Werten, die vom Coin-Codeanteil
und vom Cash-Codeanteil des Gleitcodes angenommen werden, die gleichen
numerischen Werte repräsentieren können.
-
In 9 repräsentiert
jedes Oval einen Zustand des Gleitcodes. Die sechs Bits vor dem „+" korrespondieren
mit dem Cash-Code, während
die zwei Bits nach dem „+" den Coin-Code repräsentieren.
Zusätzlich
repräsentiert
der unterstrichene Teil innerhalb des Ovals das dezimale Äquivalent
des Gleitcodes. Während
eines typischen Betriebs eines Verzögerungsregelkreises (DLL) gemäß Ausführungsformen
der Erfindung kann der Gleitcodegenerator 530, wenn der
DLL einen synchronisierten Zustand erreicht, so festgelegt sein,
dass er zwischen zwei Zahlen periodisch wechselt, um Jitterrauschen
aufzunehmen.
-
Zuerst
sei die Situation betrachtet, in welcher sich der synchronisierte
Zustand und das assoziierte Jitterrauschen als zyklisches Wechseln
zwischen den Werten 29 und 30 manifestieren, wie durch das Oval 929 bzw. 930 angezeigt.
Im Zustand 9291 nimmt der Coin-Code
den Zustand 00 an, während
der Cash-Code den Zustand 011101 annimmt. Wenn ein Aufwärtszählsignal
empfangen wird, kann das Inkrement vom Coin-Code absorbiert werden, wie durch den
Zustand 9301 reflektiert wird,
der mit 3010 korrespondiert. Wenn während des
Zustands 9301 ein Dekrementsignal
empfangen wird, kann das Dekrement vom Coin-Code absorbiert werden,
wodurch der Gleitcode zum Zustand 9291 zurückkehrt, der
mit 2910 korrespondiert. Das durch Jitterrauschen
verursachte zyklische Wechseln tritt zwischen den Zuständen 9291 und 9301 auf,
ohne den Cash-Code zu beeinflussen, d.h. der Cash-Code von jedem
dieser Zustände
kann der gleiche sein, da das zyklische Wechseln vom Coin-Code absorbiert werden
kann.
-
Wenn
während
des Zustands 9291 des Gleitcodes
ein Dekrementsignal empfangen wird, kann das Dekrement vom Cash-Code
absorbiert werden, weil der Coin-Code augenblicklich seinen unteren Grenzwert
von 00 aufweist. Daher führt
das Dekrement vom Zustand 9291 dazu,
dass der Gleitcode den Zustand 928 einnimmt, in dem der
Coin-Code 00 ist, während
der Cash-Code 011100 ist. Wenn dann ein Inkrementsignal empfangen
wird, kann das Inkrement vom Coin-Code absorbiert werden, da dieser
im Zustand 00 anstatt im oberen Grenzzustand von 11 ist, so dass
der Gleitcode zum Zustand 9292 übergeht,
der mit 2910 korrespondiert. Der Cash-Code
in Zustand 9292 entspricht demjenigen
in Zustand 928, der Coin-Code hat jedoch auf 01 gewechselt.
Wenn ein Dekrementsignal empfangen wird, während der Gleitcode im Zustand 9292 ist, kann das Dekrement vom Coin-Code
01 absorbiert werden, weil dieser nicht in seinem unteren Grenzzustand
00 ist. Dadurch wechselt der Gleitcode vom Zustand 9292 zurück in den Zustand 928.
Es sei angemerkt, dass die Zustände 9291 und 9292 beide
2910 repräsentieren und dies durch verschiedene
Kombinationen des Coin-Codes und des Cash-Codes umsetzen.
-
Nun
wird eine Situation betrachtet, in welcher sich der synchronisierte
Zustand des DLL und das assoziierte Jitterrauschen als zyklisches
Wechseln zwischen den Werten 31 und 30 manifestieren, wie durch
die Ovale 931 bzw. 9302 angezeigt
wird. Im Zustand 931 ist der Coin-Code 01 und der Cash-Code ist
011110. Wird ein Dekrementsignal empfangen, während der Gleitcode im Zustand 931 ist,
führt dies zu
einem Übergang
in den Zustand 9302 , weil der Coin-Code
01 im Zustand 931 nicht an seiner unteren Grenze 00 ist,
d.h. der Coin-Code kann das Dekrement absorbieren. Eine Betrachtung
der Zustände 931 und 9302 ergibt, dass sie den gleichen Cash-Code,
aber verschiedene Coin-Codes aufweisen. Es ergibt sich ebenfalls,
dass der Übergang
vom Zustand 931 zum Zustand 9302 einen Übergang
von 3110 auf 3010 reflektiert.
Es wird angemerkt, dass die Zustände 9301 und 9302 beide
3010 repräsentieren und dies durch verschiedene
Kombinationen des Coin-Codes und des Cash-Codes umsetzen.
-
Wenn
im Zustand 9302 ein Dekrementsignal empfangen
wird, wechselt der Gleitcode hinunter in den Zustand 9291 . Dieser Übergang kann vom Cash-Code
absorbiert werden, weil im Zustand 9302 der
Coin-Code 00 an seiner unteren Grenze ist. Wenn ein Inkrementsignal
empfangen wird, während der
Gleitcode im Zustand 9302 ist,
kann das Inkrement vom Coin-Code absorbiert werden, da im Zustand 9302 der Coin-Code 00 nicht an seiner oberen Grenze
ist. Daher wechselt ein Inkrement im Zustand 9302 den
Gleitcode zum Zustand 931. Wieder kann das zyklische Wechseln
zwischen den Zuständen 9302 und 931 vom Coin-Code und
nicht vom Cash-Code absorbiert werden.
-
Im
Zustand 931, der mit 3110 korrespondiert, ist
der Coin-Code 01 nicht an seiner oberen Grenze 11. Wird im Zustand 931 ein
Inkrementsignal empfangen, führt
dies dazu, dass das Inkrement vom Coin-Code absorbiert wird und
der Gleitcode in den Zustand 9321 wechselt
(der mit 3210 korrespondiert). Eine Betrachtung
der Zustände 931 und 9321 ergibt, dass sie den gleichen Cash-Code,
aber verschiedene Coin-Codes aufweisen. Im Zustand 9321 ist der Coin-Code 11 an seiner oberen
Grenze. Wenn ein Dekrementsignal im Zustand 9321 empfangen
wird, kann das Dekrement vom Coin-Code absorbiert werden, daher
wechselt der Gleitcode zurück
in den Zustand 931.
-
Wenn
im Zustand 9321 ein Inkrementsignal empfangen
wird, kann das Inkrement nicht vom Coin-Code 11 absorbiert werden,
da er an seiner oberen Grenze ist. Daher kann das Inkrement vom Cash-Code
absorbiert werden, was durch den Übergang in den Zustand 9331 reflektiert wird. Eine Betrachtung
der Zustände 9321 und 9331 ergibt,
dass sie den gleichen Coin-Code, aber verschiedene Cash-Codes aufweisen.
-
Nun
wird eine Situation betrachtet, in welcher sich der synchronisierte
Zustand des DLL und das assoziierte Jitterrauschen als zyklisches
Wechseln zwischen den Werten 34 und 33 manifestieren, wie durch
das Oval 934 bzw. 9332 angezeigt
wird. Wenn ein Inkrementsignal empfangen wird, während der Gleitcode im Zustand 9331 ist, wechselt der Gleitcode in den
Zustand 934. Im Zustand 9331 ist
der Coin-Code 11 an seiner oberen Grenze, so dass er kein Inkrement
absorbieren kann. Stattdessen kann das Inkrement vom Cash-Code absorbiert
werden. Eine Betrachtung der Zustände 9331 und 934 ergibt,
dass sich ihre Cash-Codes
unterscheiden, ihre Coin-Codes jedoch gleich sind. Zudem ist der Übergang
vom Zustand 9331 zum Zustand 934 ein
Mehrbitübergang im
Cash-Code.
-
Es
ist ersichtlich, dass die Zustände 9321 und 9322 beide
den Wert 3210 repräsentieren und dies durch verschiedene
Kombinationen des Coin-Codes und
des Cash-Codes umgesetzt wird. Zudem ist ersichtlich, dass ein zyklisches
Vorwärts-
und Rückwärtswechseln
zwischen 3310 und 3210 mit
einem zyklischen Wechseln zwischen den Zuständen 9331 und 9322 korrespondiert, wobei der Unterschied durch
den Coin-Zähler
absorbiert werden kann. In anderen Worten ausgedrückt, nur
der Coin-Zähler wechselt
zyklisch zwischen den Zuständen 9331 und 9322 .
-
Wenn
ein Inkrementsignal empfangen wird, während der Gleitcode im Zustand 9331 ist, wechselt der Gleitcode in den
Zustand 934. Im Zustand 9331 ist
der Coin-Code 11 an seiner oberen Grenze, so dass er kein Inkrement
absorbieren kann. Stattdessen kann das Inkrement vom Cash-Code absorbiert werden.
Eine Betrachtung der Zustände 9331 und 934 ergibt, dass sich
ihre Cash-Codes unterscheiden, ihre Coin-Codes jedoch gleich sind.
Zudem ist der Übergang
vom Zustand 9331 zum Zustand 934 ein
Mehrbitübergang
im Cash-Code.
-
Wenn
ein Dekrementsignal während
des Zustands 934 empfangen wird (der wieder mit 3410 korrespondiert), kann das Dekrement vom
Coin-Code 11 absorbiert
werden, der nicht an seiner unteren Grenze 00 ist. Daher reagiert
der Gleitcode auf ein Dekrementsignal durch einen Übergang
vom Zustand 934 in den Zustand 9332 (der
3310 repräsentiert) und nicht in den
Zustand 9331 . Eine Betrachtung
der Zustände 934 und 9332 ergibt, dass sie gleiche Cash-Codes aufweisen,
aber verschiedene Coin-Codes. Wenn ein Inkrementsignal im Zustand 9332 empfangen wird, kann das Inkrement
vom Coin-Code 10 absorbiert werden, da er nicht an seiner oberen
Grenze 11 ist. Daher bewirkt ein im Zustand 9332 empfangenes
Inkrement, dass der Gleitcode zurück in den Zustand 934 wechselt.
Es ist festzustellen, dass ein zyklisches Wechseln zwischen 3310 und 3410 ein Rückwärts- und
Vorwärtswechseln
zwischen den Zuständen 9332 und 934 betrifft. Für einen
Wechsel zwischen den Zuständen 9332 und 934 kann der Unterschied
durch den Coin-Code und nicht durch den Cash-Code absorbiert werden.
-
9 zeigt,
dass ein Mehrbitübergang
im Cash-Code nach dem Beginn des zyklischen Wechselns vermieden
werden kann. Solche durch zyklisches Wechseln verursachte Mehrbitübergänge konnten
durch die DLL-Anordnungen
des Standes der Technik nicht verhindert werden.
-
10 zeigt
ein Schaltbild eines Ausführungsbeispiels
einer erfindungsgemäßen Verzögerungssteuerschaltung 516.
Der Gleitcodegenerator (EC-GEN) 530 ist so dargestellt,
dass er den Coin-Zähler 710 im
Cash-Zähler 720 umfasst.
Der gleitcodierte DAC (EC-DAC) 520 ist so darge stellt, dass
er zwei gleich gewichtete Ausgabetransistoren in einem Block 1200 umfasst,
der mit dem Coin-Zähler
korrespondiert, und acht binär
gewichtete Transistoren in einem Wandlerblock 1100 umfasst,
der mit dem Cash-Zähler
korrespondiert. Die Transistoren SWS0 und SWS1 korrespondieren mit
den Bits S0 und S1 des Coin-Codes. Die Transistoren SWB0, SWB1,
..., SWB7 korrespondieren mit den Bits B0, B1, ..., B7 des Cash-Zählers. In
diesem Beispiel ist der Cash-Zähler
zur Vereinfachung der Darstellung und der Beschreibung wieder auf
8-Bit begrenzt. Die passende Anzahl von Bits für den Cash-Code und für den Coin-Code
sind wieder von den Umständen
abhängig,
unter denen Ausführungsformen
der Erfindung eingesetzt werden.
-
Wie
im Stand der Technik wird die Gewichtung des binärcodierten Wandlers 1100 durch
Variieren der Breite und Länge
der entsprechenden Transistoren ausgeführt. Im Gleitcode, der in der
Beispielschaltung gemäß 10 benutzt
wird, repräsentieren,
wie in den vorherigen Beispielen des Gleitcodes, Bits S0, S1 und
B0 alle den gleichen numerischen Wert, z.B. 1. Entsprechend sind
die Breite/Länge-Verhältnisse
(W/L) der Transistoren SWS0, SWS1 und SWB0 gleich. Die W/L-Verhältnisse
der Transistoren SWB1 bis SWB7 folgen hingegen der binären Gewichtung.
Wenn beispielsweise das W/L-Verhältnis
des Transistors SWB0 gleich WL ist, dann ist das korrespondierende
Verhältnis
für den Transistor
SWB1 gleich 2W/L, ..., für
den Transistor SWB5 gleich 32W/L, für den Transistor SWB6 gleich 64W/L
usw. Der EC-DAC 520 umfasst zudem einen Puffer 1300 von
einem Typ, der dem Puffer 320 aus dem Stand der Technik ähnlich ist.
Im Betrieb kann die Summe der von den entsprechenden Transistoren
gezogenen Ströme
durch den Puffer 1300 über den
Widerstand R durch den Transistor MP0 gespeist werden. Im Wesentlichen
der gleiche Strom kann durch den Puffer 1300 über den
Transistor MP1 als Verzögerungseinstellsignal
DLYADJ ausgegeben werden.
-
Die 11A und 11B zeigen
ein Schaltbild eines Ausführungsbeispiels
des erfindungsgemäßen Gleitcodegenerators
(EC-GEN) 530. Hier ist der Coin-Zähler 710 als ein Logikbauelement 222 ausgeführt, während der
Cash-Zähler 720 als
eine Mehrzahl von kaskadierten Logikbauelementen UC0, UC1, UC2,
..., UC7 ausgeführt
ist. Das Ausführungsbeispiel
gemäß 11A bis 11B setzt
wieder das Beispiel fort, in dem der Cash-Codeanteil 8 Bits aufweist,
nämlich
B0 bis B7, die jeweils mit den Logikbauelementen UC0 bis UC7 korrespondieren.
-
Unter
Bezugnahme auf 12 ist das Logikbauelement 222 des
Coin-Zählers detaillierter
dargestellt. Das Coin-Bauelement 222 wird durch ein Rücksetzsignal
RESET initialisiert und erzeugt in Reaktion auf das Aufwärtszählsignal
UP und das Abwärtszählsignal
DN den Coin-Code S[i:0] (in diesem Ausführungsbeispiel ist i = 0,1).
In diesem Ausführungsbeispiel
ist der Coin-Code ein 2-Bit-Thermometercode, der als einheitlich
gewichtetes Zahlensystem ausgedrückt
ist. Ein solcher Coin-Code „S1S0" wird zum Cash-Code-Zähler 720 übertragen,
der als nächste Stufe
angeordnet ist. Der Coin-Code-Zähler 222 umfasst
NAND-Gatter G10 und G12, PMOS-Transistoren MP10, MP12, MP14, MP16,
MP18 und MP20, NMOS-Transistoren MN10, MN12, MP14, MN18, MN20, MN22
und MN24 und Inverter INV10, INV12, ... und INV30, die wie in 12 dargestellt
verschaltet sind. Inverterpaare INV12 und INV14, INV16 und INV18,
INV22 und INV24 sowie INV26 und INV28 sind jeweils gekoppelt, um
einen Zwischenspeicher zu bilden.
-
Bei
der oben beschriebenen Schaltungsstruktur wird, wenn ein Coin-Code-Signal S0 gleich „1" ist, das Aufwärtszählsignal
UP zum Coin-Code-Signal
S1 übertragen.
Wenn das Coin-Code-Signal S1 gleich „1" ist, wird das Aufwärtszählsignal UP zum Cash-Code-Zähler 224 übertragen.
Dies wird nachfolgend im Detail beschrieben.
-
Wenn
das Rücksetzsignal
RESET einen aktiven hohen Pegel annimmt, werden Zwischenspeicher
LAT1 und LAT3 des Coin-Code-Zählers 222 initialisiert.
Danach wird, wenn das Aufwärtszählsignal UP
aktiviert wird, der PMOS-Transistor MP10 durch ein invertiertes
Aufwärtszählsignal
UPB leitend geschaltet. In diesem Fall wird ein im Zwischenspeicher LAT1
gespeicherter Wert von „0" auf „1" invertiert. Dann
werden, wenn das Aufwärtszählsignal
UP inaktiv wird, die NMOS-Transistoren MN14 und MN16 und die PMOS-Transistoren
MP12 und MP14 leitend geschaltet. Als Ergebnis wird der im Zwischenspeicher
LAT1 gespeicherte Wert über
die NMOS-Transistoren MN14 und MN16 und die PMOS-Transistoren MP12 und MP14 zu einem
Zwischenspeicher LAT2 übertragen.
Das bedeutet, dass der Coin-Code „S1S0" den Wert „01" annimmt, wenn das Aufwärtszählsignal
UP aktiv wird.
-
Wenn
das Aufwärtszählsignal
UP wieder aktiviert wird, nimmt das Ausgabesignal UPB des NAND-Gatters
G12 niedrigen Pegel an und ein im Zwischenspeicher LAT3 gespeicherter
Wert wird von „0" auf „1" invertiert. Dies
geschieht, weil ein Ausgabesignal S0 des Zwischenspeichers LAT2
hohen Pegel annimmt. Dann werden, wenn das Aufwärtszähllsignal UP inaktiv wird,
die NMOS-Transistoren MN22 und MN24 und die PMOS-Transistoren MP18
und MP20 leitend geschaltet. Als Ergebnis wird der im Zwischenspeicher
LAT3 gespeicherte Wert über
die NMOS-Transistoren
MN22 und MN24 und die PMOS-Transistoren MP18 und MP20 zu einem Zwischenspeicher
LAT4 übertragen.
Das bedeutet, dass der Coin-Code „S1S0" den Wert „11" annimmt, wenn das Aufwärtszählsignal
ein weiteres Mal aktiv wird.
-
Wenn
der Coin-Code „S1S0" gleich „11" ist und das Aufwärtszählsignal
wieder aktiviert wird, wird der Coin-Code „S1S0" gehalten, während ein Cash-Code-Wert variiert
wird. Dies wird später
im Detail beschrieben. Zusammenfassend wird der Cash-Code nicht
durch die Variation eines Eingabebinärcodes beeinflusst, während der
Coin-Code im Wert erhöht
wird.
-
Wenn
ein Coin-Code-Signal S0b gleich „1" ist, wird das Abwärtszählsignal DN zum Cash-Code-Zähler 224 übertragen.
Wenn ein Coin-Code-Signal
S1b gleich „1" ist, wird das Abwärtszählsignal
DN zum Coin-Code-Signal
S0 übertragen.
Dies wird nachfolgend detaillierter beschrieben.
-
Wenn
der Coin-Code „S1S0" gleich „11" ist und das Abwärtszählsignal
DN aktiviert wird, wird der Zwischenspeicher LAT3 über den
NMOS-Transistor MN18
initialisiert. Wenn das Abwärtszählsignal
DN inaktiv wird, wird ein im Zwischenspeicher LAT3 gespeicherter
Wert über
die NMOS-Transistoren MN22 und MN24 und die PMOS-Transistoren MP18
und MP20 zum Zwischenspeicher LAT4 übertragen. Als Ergebnis wird
das Coin-Code-Signal S1 von „1" auf „0" variiert und das
Coin-Code-Signal
S0 wird auf seinem vorherigen Wert gehalten. Wenn das Abwärtszählsignal
DN wieder aktiviert wird, wird der Zwischenspeicher LAT1 über den
NMOS-Transistor MN10 initialisiert. Der NMOS-Transistor MN10 wird durch eine Ausgabe
des Inverters INV10 gesteuert. Da das Signal S1b mit dem Wert „1" zu einem Eingabeanschluss
des NAND-Gatters G10 übertragen wird,
wird der NMOS-Transistor MN10 leitend geschaltet, wenn das Abwärtszählsignal
DN aktiviert wird. Wenn das Abwärtszählsignal
DN inaktiv wird, wird der im Zwischenspeicher LAT1 gespeicherte Wert über die
NMOS-Transistoren MN14 und MN16 und die PMOS-Transistoren MP12 und
MP14 zum Zwischenspeicher LAT2 übertragen.
Als Ergebnis wird das Coin-Code-Signal S0 von „1" auf „0" geändert.
-
Wenn
der Coin-Code „S1S0" gleich „00" ist und das Abwärtszählsignal
DN wieder aktiviert wird, wird der Coin-Code „S1S0" gehalten, während der Cash-Code-Wert variiert
wird. Dies wird später
im Detail beschrie ben. Zusammenfassend wird der Cash-Code nicht
durch die Variation des Eingabebinärcodes beeinflusst, während der
Coin-Code im Wert verkleinert wird.
-
Zurück zu den 11A und 11B arbeitet
der Cash-Code-Zähler 224 in
Reaktion auf einen Ausgabewert des Coin-Code-Zählers 222 und der Aufwärtszähl- und
Abwärtszählsignale
UP und DN des Phasendetektors 540. Der Cash-Code-Zähler 224 umfasst
acht Einheitszähler
UC0 bis UC7, die durch ein Rücksetzsignal
RESET initialisiert werden und einen 8-Bit-Zähler bilden. Die geradzahligen
Einheitszähler
UC0, UC2, UC4 und UC6 arbeiten in Reaktion auf die Aufwärtszähl- und
Abwärtszählsignale UP
und DN. Die ungeradzahligen Einheitszähler UC1, UC3, UC5 und UC7
arbeiten in Reaktion auf invertierte Aufwärtszähl- und Abwärtszählsignale UPB und DNB. Der
Cash-Code-Zähler 224 führt einen Aufwärts-/Abwärtszählvorgang
aus, der analog zu einem Binärzähler ist,
außer
dass der Cash-Code-Zähler 224 durch
eine Ausgabe des Coin-Code-Zählers 222 beeinflusst
ist.
-
Ein
beliebiger der geradzahligen Zähler UC0,
UC2, UC6 und UC8 ist in 13 detaillierter dargestellt.
Ein Einheitszähler
UCi (i = 0, 2, 4 und 6) umfasst fünf NAND-Gatter G14, G16, G18,
G20 und G22 und ein Flip-Flop
FF1, die wie in 13 dargestellt verschaltet sind.
Der Einheitszähler
UCi arbeitet in Reaktion auf die Aufwärtszähl- und Abwärtszählsignale UP und DN und auf
einen Wert, der im Einheitszähler
einer vorausgehenden Stufe gespeichert ist. Das Flip-Flop FF1 weist
einen Zwischenspeicher LAT5 mit Invertern INV44 und INV46, Übertragungsgatter
TG10 und TG12, einen NMOS-Transistor MN26 und Inverter INV48, INV50,
INV52 und INV54 auf, wie in 14 dargestellt
ist.
-
Wenn
das Rücksetzsignal
RESET aktiviert wird, wird der Zwischenspeicher LAT5 des Flip-Flops FF1 über den
NMOS-Transistor MN26 initialisiert. Wenn ein Eingabesignal In_Carry_Up
hohen Pegel aufweist und das Aufwärtszählsignal UP aktiviert wird,
nimmt ein Ausgabesignal Flag_Inv des NAND-Gatters G18 hohen Pegel
an. Wenn das Eingabesignal In_Carry_Up hohen Pegel aufweist, zeigt dies
an, dass ein im Einheitszähler
der vorherigen Stufe gespeicherter Wert (oder ein Wert S1 eines Coin-Code-Zählers) „1" ist. Das Ausgabesignal Flag_Inv
mit hohem Pegel bewirkt, dass das Übertragungsgatter TG10 inaktiv
wird und das Übertragungsgatter
TG12 aktiviert wird. Der Zwischenspeicher LAT5 wird basierend auf
einem Ausgabewert Qb auf einem vorherigen Wert gehalten oder invertiert. Da
das Übertragungsgatter
TG10 im inaktiven Zustand ist, werden Ausgabesignale Q und Qb eines Flip-Flops
FF mit den vorherigen Werten gehalten. Danach nimmt, wenn das Aufwärtszählsignal
UP inaktiv wird, das Ausgabesignal Flag_Inv des NAND-Gatters G18 niedrigen
Pegel an. Dies bewirkt, dass das Übertragungsgatter TG10 aktiviert
wird und das Übertragungsgatter
TG12 inaktiv wird. Ein im Zwischenspeicher LAT5 gespeicherter Wert
wird als das Ausgabesignal Q über
das Übertragungsgatter TG10
ausgegeben. Die Ausgabesignale Q und Qb werden über die korrespondierenden
NAND-Gatter G20 und G22 zu einem Einheitszähler der nächsten Stufe übertragen.
-
Wenn
das Ausgabesignal Q z.B auf hohem Pegel ist, nimmt ein Zwischenspeicherknoten
ND1 des Zwischenspeichers LAT5 des Flip-Flops FF1 hohen Pegel an
und ein Zwischenspeicherknoten ND2 nimmt niedrigen Pegel an. Wenn
von einer vorausgehenden Stufe übertragene
Signale In_Carry_Up und In_Carry_Dn hohen bzw. niedrigen Pegel aufweisen (alle
Werte der in der vorherigen Stufe angeordneten Zähler sind „1"), nimmt das Ausgabesignal Flag_Inv des
NAND-Gatters G18 hohen Pegel an, wenn das Aufwärtszählsignal UP aktiviert wird.
Dies bewirkt, dass das Übertragungsgatter
TG12 aktiviert wird und das Übertragungsgatter
TG10 inaktiv wird. Der Zwischenspeicherknoten ND1 ist über das Übertragungsgatter
TG12 mit dem Ausgabesignal Qb gekoppelt. Das bedeutet, dass der
im Zwischenspeicher LAT5 gespeicherte Wert von „1" auf „0" invertiert wird. Danach nimmt, wenn
das Aufwärts zählsignal UP
inaktiv wird, das Ausgabesignal Flag_Inv des NAND-Gatters G18 niedrigen
Pegel an und der im Zwischenspeicher LAT5 gespeicherte Wert wird
als Ausgabesignal Q über
das Übertragungsgatter
TG10 ausgegeben. Die Ausgabesignale Q und Qb des Einheitszählers UCi
werden über
die korrespondierenden NAND-Gatter G20 und G22 zu einem Einheitszähler der
nächsten
Stufe übertragen.
-
Andererseits
nimm das Ausgabesignal Flag_Inv des NAND-Gatters G18 hohen Pegel
an, wenn das Eingabesignal In_Carry_Dn auf hohem Pegel ist und das
Abwärtszählsignal
DN aktiviert wird. Dies bewirkt, dass das Übertragungsgatter TG10 inaktiv
wird und das Übertragungsgatter
TG12 aktiviert wird. Der Zwischenspeicher LAT5 wird basierend auf dem
Ausgabewert Qb auf einem vorherigen Wert gehalten oder invertiert.
Da das Übertragungsgatter TG10
im inaktiven Zustand ist, werden die Ausgabesignale Q und Qb des
Flip-Flops FF auf vorherigen Werten gehalten. Danach nimmt, wenn
das Abwärtszählsignal
DN inaktiv wird, das Ausgabesignal Flag_Inv des NAND-Gatters G18
niedrigen Pegel an. Dies bewirkt, dass das Übertragungsgatter TG10 aktiviert
wird und das Übertragungsgatter
TG12 inaktiv wird. Ein im Zwischenspeicher LAT5 gespeicherter Wert
wird als das Ausgabesignal Q über
das Übertragungsgatter
TG10 ausgegeben. Die Ausgabesignale Q und Qb werden über die
korrespondierenden NAND-Gatter G20 und G22 zu einem Einheitszähler der
nächsten
Stufe übertragen.
-
Wenn
das Ausgabesignal Q beispielsweise auf hohem Pegel ist, nimmt der
Zwischenspeicherknoten ND1 des Zwischenspeichers LAT5 des Flip-Flops
FF1 hohen Pegel an und der Zwischenspeicherknoten ND2 nimmt niedrigen
Pegel an. Wenn die von der vorherigen Stufe übertragenen Signale In_Carry_Up
und In_Carry_Dn niedrigen bzw. hohen Pegel aufweisen (alle Werte
der in der vorherigen Stufe angeordneten Zähler sind „0"), nimmt das Ausgabesignal Flag_Inv
des NAND-Gatters G18 hohen Pegel an, wenn das Abwärtszählsignal
DN aktiviert wird. Dies bewirkt, dass das Übertragungsgatter TG12 aktiviert
wird und das Übertragungsgatter TG10
inaktiv wird. Der Zwischenspeicherknoten ND1 ist über das Übertragungsgatter
TG12 mit dem Ausgabesignal Qb gekoppelt. Das bedeutet, dass der
im Zwischenspeicher LAT5 gespeicherte Wert von „1" auf „0" invertiert wird. Anschließend nimmt,
wenn das Aufwärtszählsignal
UP inaktiv wird, das Ausgabesignal Flag_Inv des NAND-Gatters G18 niedrigen
Pegel an und der im Zwischenspeicher LAT5 gespeicherte Wert wird
als Ausgabesignal Qb über
das Übertragungsgatter
TG10 ausgegeben. Die Ausgabesignale Q und Qb des Einheitszählers UCi
werden über
die korrespondierenden NAND-Gatter G20 und G22 zu einem Einheitszähler der
nächsten
Stufe übertragen.
-
Ein
beliebiger der ungeradzahligen Einheitszähler UC1, UC3, UC5 und UC7
ist in 15 detaillierter dargestellt.
Ein Einheitszähler
UCi (i = 1, 3, 5 und 7) umfasst fünf NOR-Gatter G24, G26, G28,
G30 und G32 und ein Flip-Flop FF2, die wie in 15 dargestellt
verschaltet sind. Der Einheitszähler
UCi arbeitet in Reaktion auf die invertierten Aufwärtszähl- und Abwärtszählsignale
UPB und DNB und auf einen Wert, der in einem Einheitszähler einer
vorausgehenden Stufe gespeichert ist. Das Flip-Flop FF2 weist einen Zwischenspeicher
LAT6 mit Invertern INV56 und INV58, Übertragungsgatter TG14 und
TG16, einen NMOS-Transistor MN28 und Inverter INV60, INV62, INV64
und INV66 auf, die wie in 14 dargestellt verschaltet
sind.
-
Wenn
das Rücksetzsignal
RESET aktiviert wird, wird der Zwischenspeicher LAT6 des Flip-Flops FF2 über den
NMOS-Transistor MN28 initialisiert. Wenn das Eingabesignal In_Carry_Up
niedrigen Pegel aufweist und das Aufwärtszählsignal UP aktiviert wird,
nimmt ein Ausgabesignal Flag_Inv des NOR-Gatters G28 niedrigen Pegel
an. Dies bewirkt, dass das Übertragungsgatter
TG14 inaktiv wird und das Übertragungsgatter
TG16 aktiviert wird. Der Zwischenspeicher LAT6 wird gemäß einem
Ausgabesignal Qb auf einem vorherigen Wert gehalten oder invertiert.
-
Da
das Übertragungsgatter
TG14 im inaktiven Zustand ist, werden die Ausgabesignale Q und Qb
des Flip-Flops FF auf vorherigen Werten gehalten. Danach nimmt,
wenn das Aufwärtszählsignal
UP inaktiv wird, das Ausgabesignal Flag_Invb des NOR-Gatters G28
hohen Pegel an. Dies bewirkt, dass das Übertragungsgatter TG14 aktiviert
wird und das Übertragungsgatter
TG16 inaktiv wird. Ein im Zwischenspeicher LAT6 gespeicherter Wert
wird als das Ausgabesignal Q über
das Übertragungsgatter TG14
ausgegeben. Die Ausgabesignale Q und Qb werden über die korrespondierenden
NOR-Gatter G30 und G32 zu einem Einheitszähler der nächsten Stufe übertragen.
-
Wenn
das Ausgabesignal Q beispielsweise auf hohen Pegel ist, nimmt ein
Zwischenspeicherknoten ND3 des Zwischenspeichers LAT6 des Flip-Flops
FF2 hohen Pegel an und ein Zwischenspeicherknoten ND4 davon nimmt
niedrigen Pegel an. Wenn die von der vorherigen Stufe übertragenen Signale
In_Carry_Up und In_Carry_Dn niedrigen bzw. hohen Pegel aufweisen
(alle Werte der in der vorherigen Stufe angeordneten Zähler sind „1"), nimmt das Ausgabesignal
Flag_Inv des NOR-Gatters G28
niedrigen Pegel an, wenn das Aufwärtszählsignal UP aktiviert wird.
Dies bewirkt, dass das Übertragungsgatter
TG16 aktiviert wird und das Übertragungsgatter
TG14 inaktiv wird. Der Zwischenspeicherknoten ND3 ist über das Übertragungsgatter TG16
mit dem Ausgabesignal Qb gekoppelt. Das bedeutet, dass der im Zwischenspeicher
LAT6 gespeicherte Wert von „1" auf „0" invertiert wird.
Anschließend
nimmt, wenn das Aufwärtszählsignal
UP inaktiv wird, das Ausgabesignal Flag_Invb des NOR-Gatters G28
hohen Pegel an und der im Zwischenspeicher LAT6 gespeicherte Wert
wird als Ausgabesignal Q über
das Übertragungsgatter
TG14 ausgegeben. Die Ausgabesignale Q und Qb des Einheitszählers UCi werden über die
korrespondierenden NOR-Gatter G30
und G32 zu einem Einheitszähler
der nächsten Stufe übertragen.
-
Andererseits
nimmt das Ausgabesignal Flag_Invb des NOR-Gatters G28 hohen Pegel
an, wenn das Eingabesignal In_Carry_Dn auf niedrigem Pegel ist und
das Abwärtszählsignal
DN aktiviert wird. Dies bewirkt, dass das Übertragungsgatter TG14 inaktiv
wird und das Übertragungsgatter
TG16 aktiviert wird. Der Zwischenspeicher LAT6 wird basierend auf
dem Ausgabewert Qb auf einem vorherigen Wert gehalten oder invertiert.
Da das Übertragungsgatter
TG14 im inaktiven Zustand ist, werden die Ausgabesignale Q und Qb
des Flip-Flops FF2 auf vorherigen Werten gehalten. Danach nimmt,
wenn das Abwärtszählsignal
DN inaktiv wird, das Ausgabesignal Flag_Invb des NOR-Gatters G28
hohen Pegel an. Dies bewirkt, dass das Übertragungsgatter TG14 aktiviert
wird und das Übertragungsgatter
TG16 inaktiv wird. Der im Zwischenspeicher LAT6 gespeicherte Wert
wird als das Ausgabesignal Q über
das Übertragungsgatter
TG14 ausgegeben. Die Ausgabesignale Q und Qb werden über die
korrespondierenden NOR-Gatter G30 und G32 zu einem Einheitszähler der
nächsten
Stufe übertragen.
-
Wenn
das Ausgabesignal Q beispielsweise auf hohem Pegel ist, nimmt der
Zwischenspeicherknoten ND3 des Zwischenspeichers LAT6 des Flip-Flops
FF2 hohen Pegel an und der Zwischenspeicherknoten ND4 davon nimmt
niedrigen Pegel an. Wenn die von einer vorherigen Stufe übertragenen
Signale In_Carry_Up und In_Carry_Dn hohen bzw. niedrigen Pegel aufweisen
(alle Werte der in der vorherigen Stufe angeordneten Zähler sind „0"), nimmt das Ausgabesignal
Flag_Invb des NOR-Gatters
G28 niedrigen Pegel an, wenn das Abwärtszählsignal DN aktiviert wird.
Dies bewirkt, dass das Übertragungsgatter
TG16 aktiviert wird und das Übertragungsgatter
TG14 inaktiv wird. Der Zwischenspeicherknoten ND3 ist über das Übertragungsgatter TG16
mit dem Ausgabesignal Qb gekoppelt. Das bedeutet, dass der im Zwischenspeicher
LAT6 gespeicherte Wert von „1" auf „0" invertiert wird.
Anschließend
nimmt, wenn das Abwärtszählsignal
DN inaktiv wird, das Ausgabesignal Flag_Invb des NOR-Gatters G28
hohen Pegel an und der im Zwischen speicher LAT6 gespeicherte Wert
wird als Ausgabesignal Q über
das Übertragungsgatter
TG14 ausgegeben. Die Ausgabesignale Q und Qb des Einheitszählers UCi werden über die
korrespondierenden NOR-Gatter G30
und G32 zu einem Einheitszähler
der nächsten Stufe übertragen.
-
17 zeigt
ein schematisches Blockdiagramm eines erfindungsgemäßen Speicherbauelements,
z.B. eines synchronen DRAMs (SDRAM) 1800. Der SDRAM 1800 umfasst
einen erfindungsgemäßen DLL 1802.
Der DLL 1802 umfasst einen erfindungsgemäßen EC-DAC 1804.
-
18 zeigt
ein schematisches Blockdiagramm eines erfindungsgemäßen Speichersystems 1806.
Das System 1806 umfasst eine allgemein bekannte Speichersteuereinheit 1808 und
eine Mehrzahl von SDRAMs 1800 gemäß einer Ausführungsform
der Erfindung. In 18 empfangen die Speichersteuerschaltung
und die Mehrzahl von SDRAMs 1800 jeweils ein Systemtaktsignal
REFCLK. Die Speichersteuereinheit 1808 stellt der Mehrzahl
von SDRAMs 1800 Speicherbefehle zur Verfügung.
-
Eine
passende Größe des Coin-Codes
kann durch Bestimmen des Amplitudenhubs des zu erwartenden Jitters
ausgewählt
werden. Dies korrespondiert wieder mit dem Bereich 220 des
Standes der Technik gemäß 2A.
Der Coin-Code kann so ausgewählt
werden, dass er den Bereich 220 aufnimmt. Dies stellt einen
Coin-Code zur Verfügung,
der groß genug
ist, um das vom Jitter 210 verursachte zyklische Wechseln
zu absorbieren, ohne sich auf den Cash-Code zum Absorbieren des
Jitters verlassen zu müssen.
In anderen Worten ausgedrückt,
ein solcher Entwurf des Cash-Codes eliminiert die durch das zyklische
Wechseln verursachten Mehrbitübergänge. Wieder
kann sich das zyklische Wechseln, wie z.B. in 9 reflektiert,
das in einem synchronisierten Zustand eines DLLs auftritt, als 1-Bit-Übergang
innerhalb des Cash-Codes
manifestieren.
-
Der
Ursprung der Begriffe, nämlich
des Coin-Codes und des Cash-Codes,
liegt in den zwei üblichsten
Formen gesetzlicher Zahlungsmittel: Münzen und Papiergeld oder Bargeld
(„Tender"). Obwohl Münzen technisch
als Bargeld („Cash") angesehen werden,
implizieren viele Menschen nur Papiergeld, wenn sie sich auf Bargeld
beziehen. Die Leute führen typischerweise
eine kleinen Geldbetrag in Münzen und
einen wesentlich größeren Betrag
in „Cash" mit sich. Diese
Klein-Groß-Dichotomie gibt Anlass
zu den Begriffen Coin-Code und Cash-Code.