DE10136163A1 - Konfiguration zur Erzeugung eines Taktes mit einer Verzögerungsschaltung und ein Verfahren hierfür - Google Patents

Konfiguration zur Erzeugung eines Taktes mit einer Verzögerungsschaltung und ein Verfahren hierfür

Info

Publication number
DE10136163A1
DE10136163A1 DE10136163A DE10136163A DE10136163A1 DE 10136163 A1 DE10136163 A1 DE 10136163A1 DE 10136163 A DE10136163 A DE 10136163A DE 10136163 A DE10136163 A DE 10136163A DE 10136163 A1 DE10136163 A1 DE 10136163A1
Authority
DE
Germany
Prior art keywords
clock
gray code
signal
delay
carry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10136163A
Other languages
English (en)
Inventor
Yasuhiko Tsukikawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE10136163A1 publication Critical patent/DE10136163A1/de
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/0805Details of the phase-locked loop the loop being adapted to provide an additional control signal for use outside the loop
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0814Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0816Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the controlled phase shifter and the frequency- or phase-detection arrangement being connected to a common input
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • H03L7/0818Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the controlled phase shifter comprising coarse and fine delay or phase-shifting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Dram (AREA)
  • Pulse Circuits (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

Verzögerungsverriegelungsschaltung (DLL) mit einem Gray-Code (Wechselcode)-Zähler als Verzögerungsregister. Es kann verhindert werden, daß ein Übertrag bei mehr als einem Bit auftreten kann, um ein Springen der Verzögerungszeit zu minimieren, falls ein metastabiler Zustand auftreten sollte.

Description

Die Erfindung betrifft Verzögerungsverriegelungsschleifen, die verwendet werden, um eine genaue Synchronisation in einem System bereitzustellen, das in Synchronisation mit einem Takt arbeitet, Halbleitervorrichtungen, die die Verzögerungsverriegelungsschleifen enthalten, und Steuerverfahren für Systeme, die in Synchronisation mit einem Takt arbeiten.
Es wird ein Fall betrachtet, bei dem in einem System, das in Synchronisation mit einem Takt arbeitet eine Komponente eine Leseanweisung in Synchronisation mit einem Takt erhält, die das Lesen von Daten anweist, und in Antwort auf die Anweisung werden die gelesenen Daten in Synchronisation mit einem Takt an einen Systembus zurückgegeben. Im folgenden bezeichnet ein Referenzzeichen ADR einen Binärcode, ein Referenzzeichen ADR (k) ein k-tes Bit in einem Binärcode, auf das als Registerwert ADR (k) oder Binärcode ADR (k) Bezug genommen wird.
Es wird ebenfalls angenommen, daß mit einer Systemtaktperiode "T" die Komponente eine Zeitperiode T0 benötigt, um gelesene Daten vorzubereiten nachdem es die Leseanweisung erhalten hat, und daß die Taktperiode T länger sein kann als die Periode T0 oder umgekehrt, und für einen ganzzahligen Wert N gilt eine Beziehung N × T ≦ T0 < (N+1) × T. In diesem Szenario erfolgt auf folgende Weise eine Ausgabe.
Bezugnehmend auf Fig. 17 wird zum Zeitpunkt t1 (eine steigende Flanke 0 eines Taktes CLKext) eine Leseanweisung zum Lesen von Daten in Synchronisation mit dem Takt CLKext erteilt, und Lesedaten werden vorbereitet, und in Synchronisation mit einer nachfolgenden steigenden Flanke 1 des Taktes CLKext (zum Zeitpunkt t2 : t2 = t1 + T) werden die Daten ausgegeben.
Die Komponente benötigt eine Zeitperiode Td nachdem es den Takt CLKext erhalten hat und bevor es die vorbereiteten Daten an ein Ausgabepuffer ausgibt. Somit werden die Daten eigentlich ausgegeben, wenn eine Zeitperiode Td verstrichen ist, die der Taktflanke 1 folgt.
Die Zeitperiode Td enthält, wie in Fig. 18 gezeigt, eine Zeitperiode Tin und eine Zeitperiode Tout (Td = Tin + Tout). Die Zeitperiode Tin wird für die Komponente benötigt, um intern aus dem Takt CLKext einen Takt CLKin zu erzeugen, der das Ausgabepuffer ansteuert. Die Zeitperiode Tout wird benötigt, um einen Systembus anzusteuern, der zu einer Ausgangslast korrespondiert, nachdem der Takt CLKin das Ausgabepuffer angesteuert und folglich gestartet hat, um zu Arbeiten bis der Systembus einen vorbestimmten logischen Schwellenwert überschreitet.
Somit erfolgt in diesem System die eigentliche Ausgabe an den Systembus nicht bevor Td nach Auftreten der Taktflanke 1 verstrichen ist. Entsprechend ist das System ausgelegt, um Daten bei der nachfolgenden Taktflanke 2 zu übernehmen.
Falls in einer derartigen Operation die Systemtaktperiode T gleich oder kleiner ist als Td und somit eine hohe Frequenz aufweist, tritt ein in Fig. 19 gezeigtes Problem auf. In Fig. 19 wird eine Datenausgabeoperation bei der Taktflanke 1 gestartet, und bei einer Taktflanke 2 werden die Daten noch nicht an einen Bus übertragen, da die Verzögerungszeit Td größer ist als T. Somit kann das System solange keine Daten übernehmen, bis eine nachfolgende Taktflanke 3 eintrifft. Mit anderen Worten würde ein System, das ausgelegt ist, um Daten bei der Taktflanke 2 zu übernehmen, fehlerhaft arbeiten.
Insbesondere gibt ein kürzlich entwickelter Speicher, DDR-SDRAM (Double Data Rate, Synchronous Dynamic Random Access Memory) Daten sowohl bei der steigenden Flanke als auch bei der fallenden Flanke eines Taktes aus. Falls das oben genannte Verfahren zur Ausgabe von Daten für den DDR-SDRAM angewendet wird, wie in Fig. 20 gezeigt, tritt das gleiche oben beschriebene Problem dann auf, wenn die halbe Taktperiode im wesentlichen gleich Td ist.
Ein derartiger Nachteil, wie oben beschrieben, wird üblicherweise durch eine Verzögerungsverriegelungsschaltung (im folgenden als DLL bezeichnet) beseitigt. Bezugnehmend auf Fig. 21 erhält eine Komponente, die eine DLL verwendet, einen Systemtakt CLKext und verzögert intern den Takt durch ein Verzögerungselement um Tdll1. Dann erzeugt sie einen internen Takt CLKin2, der mit einer Zeitperiode vor einer steigenden Flanke des Systemtaktes ansteigt, die zu einer Ausgabepufferansteuerzeit (Tout' = Tout) korrespondiert.
Die Verwendung des internen Taktes CLKin2 zur Ansteuerung des Ausgabepuffers ermöglicht die Ausgabe von Lesedaten an einen Bus bei einer Flanke des Systemtaktes CLKext. Folglich kann eine Beziehung Tdll1 + Tout' = m × T gebildet werden, wobei m ein ganzzahliger Wert ist, der gleich oder größer ist als eins.
Folglich kann eine DLL verwendet werden, um in Synchronisation mit einem Takt eine Ausgabe zeitlich festzulegen. Die DLL kann ebenso ähnlich für ein Eingangspuffer verwendet werden, um einer Komponente zu erlauben, verschiedene Steuersignale und Eingabedaten durch einen Systembus einzulesen.
Unter Bezugnahme auf Fig. 22 wird der zeitliche Betrieb eines Eingangspuffers beschrieben, der keine DLL verwendet. Wie in Fig. 22 gezeigt, benötigt dieses Eingangspuffer ohne DLL eine Zeitperiode Tin nachdem der Takt CLKext erhalten wurde und bevor eine Komponente intern einen internen Takt CLKin erzeugt.
Somit wird ein erhaltenes externes Steuersignal SIG intern um eine Zeitperiode Tin" verzögert, die zu Tin korrespondiert, um ein Signal SIGin zu erhalten. Bei der Flankentaktgebung des internen Taktes CLKin wird das Signal SIGin durch eine Halteschaltung 910 erhalten und bestimmt. In der Figur ist ein festgestelltes Steuersignal gezeigt.
Bezugnehmend auf Fig. 23 enthält eine Verriegelungsschaltung 910 Inverter IV1-IV4 und NAND-Schaltungen N1-N4. Die Inverter IV1 und IV3 arbeiten in Antwort auf einen internen Takt CLKin und einen Takt /CLKin, der gleich dem invertierten Takt CLKin ist.
Falls keine DLL verwendet wird, kann eine Komponente ein Steuersignal solange nicht verwenden, bis eine Verzögerung von mindestens Tin nach einer Flanke des Systemtaktes CLKext vergangen ist. Somit wäre die. Komponente nicht für hohe Betriebsgeschwindigkeit geeignet.
Eine derartige Verzögerung wird durch die oben genannte DLL kompensiert.
Bezugnehmend auf Fig. 24 erfolgt die Beschreibung einer Betriebswellenform, wenn die DLL verwendet wird. Wie in Fig. 24 gezeigt, wird der Systemtakt CLKext in einer Komponente über ein Verzögerungselement um Tdll2 verzögert, um einen internen Takt CLKin3 zu erzeugen, der an der gleichen Position wie ein Systemtakt CLKext eine Flanke aufweist. Falls der interne Takt CLKin3 verwendet wird, um ein Steuersignal SIG zu verriegeln, dann kann das Steuersignal SIG schneller verriegelt werden als im oben genannten Fall, und zwar um eine Zeitperiode, die zu Tin korrespondiert. Folglich kann das System ausgelegt werden, um für einen Betrieb mit hoher Geschwindigkeit geeignet zu sein. Aus dem oben beschriebenen kann eine Beziehung Tdll2 = m × T gebildet werden.
Bezugnehmend auf Fig. 25 erfolgt die Beschreibung eines Beispiels einer Konfiguration einer Schaltung, die eine herkömmliche DLL verwendet. Eine herkömmliche DLL 9000, wie in Fig. 25 gezeigt, enthält einen Taktpuffer 1, ein genaues Verzögerungselement 3, ein grobes Verzögerungselement 5, einen Decoder 70, einen Binärzähler 80, der zu einem Verzögerungsregister korrespondiert, einen Phasenkomparator 9, einen Zeittaktgenerator 10, einen Pulsgenerator 11 und eine Replica-Schaltung 13.
Ein externer Takt CLKext wird in den Taktpuffer 1 eingegeben. Der Taktpuffer 1 liefert einen Takt BUFFCLK. Zwischen dem externen Takt CLKext und dem Takt BUFFCLK verstreicht die Zeit Tin.
Der Takt BUFFCLK wird in das genaue Verzögerungselement 3 eingegeben. Das genaue Verzögerungselement 3 verzögert den Takt BUFFCLK um Tfine, um einen Takt CLKA auszugeben. Die Verzögerungszeit Tfine zwischen dem Takt BUFFCLK und dem Takt CLKA ist variabel, und ändert sich in Abhängigkeit von dem Wert eines 3-Bit Registerwertes ADR (0 : 2), der in das genaue Verzögerungselement 3 eingegeben wird, um eine kleine Einheit Tf (eine Einheit von ungefähr 40 psek).
Der Takt CLKA wird in das grobe Verzögerungselement 5 eingegeben. Das grobe Verzögerungselement 5 verzögert den Takt CLKA um Tcoarse, um einen Takt CLKB auszugeben. Die Verzögerungszeit Tcoarse, die zwischen den Takten CLKA und CLKB verstreicht, ist variabel und variiert in einer groben Einheit Tc abhängig von einem 6-Bit Registerwert ADR (3 : 8). Tc ist das 8-fache der Zeit Tf.
Das genaue Verzögerungselement 3 und das grobe Verzögerungselement 5 stellen jeweils eine Verzögerung bereit, die durch einen Registerwert festgelegt ist, der vom Binärzähler 80 ausgegeben wird.
In der Schaltungskonfiguration wird für einen Takt mindestens eine Verzögerungszeit Tx benötigt, um das genaue Verzögerungselement 3 und das grobe Verzögerungselement 5 zu durchlaufen. Mit dem Takt, der das genaue Verzögerungselement 3 und das grobe Verzögerungselement 5 durchläuft, ergibt sich unweigerlich eine Verzögerung von Tx, selbst falls ein Registerwert ein Wert einer minimalen Verzögerungszeit aufweist.
Die herkömmliche DLL enthält ein genaues Verzögerungselement 3 und ein grobes Verzögerungselement 5, die jeweils eine Verzögerungszeit aufweisen, die durch einen Binärcode gesetzt ist. Zum Beispiel hat das genaue Verzögerungselement 3 Verzögerungsperioden der Zeit Tf, 2 × Tf und 3 × Tf, jeweils für Registerwerte ADR (0 : 2) von "001", "010" und "011", und das grobe Verzögerungselement 5 hat Verzögerungsperioden der Zeit 7 × Tc und 8 × Tc, jeweils für Registerwerte ADR (3 : 8) von "000111" und "001000".
Wenn die Verzögerungszeit Tx die von der oben genannten Schaltungskonfiguration her resultiert ebenfalls berücksichtigt wird, dann ergibt sich für einen Registerwert von "001001", der Tcoarse bestimmt, und für einen Registerwert von "011" der Tfine bestimmt eine Gesamtverzögerungszeit von Tfine + Tcoarse = Tx + 3 × Tf + 9 × Tc, die zwischen den Takten BUFFCLK und CLKB verstreicht.
Falls das grobe Verzögerungselement 5 einen Registerwert "001001" erhält und das genaue Verzögerungselement 3 einen Registerwert von "011", wird im folgenden allgemein von einem Registerwert "001001011" gesprochen.
Der Takt CLKB wird in einen Pulsgenerator 11 eingegeben, der den internen Takt CLKin2 erzeugt, der verwendet wird, um ein Ausgabepuffer anzusteuern, und einen internen Takt CLKin3, der verwendet wird, um ein Eingangspuffer anzusteuern, und an die Replica-Schaltung 13 geliefert. Der interne Takt CLKin2 dient zum gleichen Zweck wie unter Bezugnahme auf Fig. 21 beschrieben. Folglich wird bei der steigenden Flanke des externen Taktes CLKext eine Ausgabe des Ausgabepuffers an einen Systembus übertragen.
Die Replica-Schaltung 13 verzögert den Takt CLKB um eine feste Zeitverzögerungsperiode (Tin' + Tout'), die eine Summe der Eingangspufferverzögerungszeit Tin und der Ausgabepufferansteuerzeit Tout bildet, um einen Takt FBCLK (Fig. 26) zu erzeugen.
Zwischen den Takten BUFFCLK und FBCLK vergeht eine Verzögerungszeit von Tfine + Tcoarse + Tin' + Tout'. Zwischen dem Auftreten des externen Taktes CLKext und der Erzeugung des Taktes FBCLK haben dazwischen verschiedene Signale ein Beziehung, wie in Fig. 26 gezeigt.
Bezugnehmend auf Fig. 27 wird eine Wellenform beschrieben, wenn eine DLL arbeitet, um eine gewünschte Verzögerungszeit hervorzurufen. In dem Beispiel nach Fig. 27 steigen Takte BUFFCLK und FBCLK gleichzeitig an. Ein externer Takt CLKext ist um Tin vor dem Takt BUFFCLK, und ein interner Takt CLKin2 hat eine steigende Flanke um (Tin' + Tout') vor dem Takt FBCLK.
Folglich hat der interne Takt CLKin2 eine steigende Flanke, die um Tout' vor der des externen Taktes CLKext liegt. Dies entspricht dem unter Bezugnahme auf Fig. 21 beschriebenen Takt. Die Replica-Schaltung 13 liefert eine Verzögerungszeit, die derart entworfen ist, daß Tin = Tin' und Tout = Tout' sind.
Zur Bestimmung der optimalen Verzögerungszeit der DLL ist eine Schaltung erforderlich, um zu detektieren, welcher der Takte BUFFCLK und FBCLK vor dem jeweils anderen ansteigt. Diese Schaltung ist ein Phasenkomparator 9, wie in Fig. 25 gezeigt. Der Phasenkomparator 9 detektiert eine Phasendifferenz zwischen den Takten BUFFCLK und FBCLK und gibt die Ausgangssignale UPF und DNF aus.
Bezugnehmend auf die Fig. 28A und 28B erfolgt die Beschreibung der Signale UPF und DNF. Falls die FBCLK-Taktphase vor der BUFFCLK-Taktphase liegt, liefert der Phasenkomparator 9 eine Ausgabe "UP" (UPF ist "high" und DNF ist "low") wie in Fig. 28A gezeigt. Falls die FBCLK-Taktphase der BUFFCLK- Taktphase nacheilt, liefert der Phasenkomparator 9 eine Ausgabe "DOWN" (DNF ist "high" und UPF ist "low"), wie in Fig. 28B gezeigt.
Eine beispielhafte Konfiguration eines Phasenkomparators 9 ist in Fig. 30 gezeigt. Der Phasenkomparator 9 enthält NAND- Schaltungen N5 bis N10. Die Takte BUFFCLK und FBCLK, die jeweils in die NAND-Schaltungen N5 und N6 eingegeben werden, leisten jeweils einen Beitrag für die Signale UPF und DNF, die von den NAND-Schaltungen N9 und N10 jeweils ausgegeben werden.
Bezugnehmend auf Fig. 25 erhält der Taktgenerator 10 die Signale UPF und DNF und erzeugt einen Zähleraktualisierungstakt CLKCNT und Hoch- und Niedersignale UP und DN.
In Antwort auf den Zähleraktualisierungstakt CLKCNT gibt der Binärzähler 80 Registerwerte ADR (0 : 2) und ADR (3 : 8) aus, die von den Hoch- und Niedersignalen UP und DN abhängen.
Falls der Phasenkomparator 9 eine Ausgabe "UP" liefert, wird der momentane Registerwert erhöht. Zum Beispiel erhöht sich "000000010" auf "000000011". Falls der Phasenkomparator 9 die Ausgabe "DOWN" liefert, dann verringert sich der momentane Registerwert. Zum Beispiel verringert sich "000000011" auf "000000010".
Der Decoder 70 dekodiert den Registerwert ADR (3 : 8). Der Decoder 70, wie in Fig. 29 gezeigt, enthält AND-Schaltungen 90#0-90#7 und 91#9-91#15.
Die AND-Schaltung 90#0 erhält den Binärcode /ADR(0), eine invertierte Version des Binärcodes ADR(0), und den Binärcode­ /ADR(1), eine invertierte Version des Binärcodes ADR(1), und die AND-Schaltung 90#1 erhält Binärcodes ADR(0) und /ADR(1).
Die AND-Schaltung 90#2 erhält die Binärcodes /ADR(0) und ADR(1) und die AND-Schaltung 90#3 erhält die Binärcodes ADR(0) und ADR(1).
Die AND-Schaltung 90#4 erhält den Binärcode /ADR(2), eine invertierte Version des Binärcodes ADR(2), und den Binärcode­ /ADR(3) eine invertierte Version des Binärcodes ADR(3), und die AND-Schaltung 90#5 erhält die Binärcodes ADR(2) und /ADR(3).
Die AND-Schaltung 90#6 erhält die Binärcodes /ADR(2) und ADR(3), und die AND-Schaltung 90#7 erhält die Binärcodes ADR(2) und ADR(3).
Die AND-Schaltung 91#i weist Eingänge auf, die einen Ausgang X(i) von der AND-Schaltung 90#i und eine Ausgabe X(4) von der AND-Schaltung 90#4 erhalten, wobei i = 0 bis 3 ist. Die AND- Schaltung 91#i+4 erhält eine Ausgabe X(i) von der AND-Schaltung 90#i und eine Ausgabe X(5) von der AND-Schaltung 90#5, wobei i = 0 bis 3 ist. Die AND-Schaltung 91#i+8 weist Eingänge auf, die eine Ausgabe X(i) von der AND-Schaltung 90#i und eine Ausgabe X(6) von der AND-Schaltung 90#6 erhalten, wobei i = 0 bis 3 ist. Die AND-Schaltung 91#i+12 erhält eine Ausgabe X(i) von der AND- Schaltung 90#i und eine Ausgabe X(7) von der AND-Schaltung 90#7, wobei i = 0 bis 3 ist. Anhängig von der Ausgabe der AND- Schaltung 90#k wird die Anzahl der Verzögerungsstufen des groben Verzögerungselements 5 bestimmt (zum Beispiel k), wobei k = 0 bis 15 ist. Obwohl hier ein 4-Bit Binärdecoder beispielhaft verwendet wird, ist es für einen Fachmann auf diesem Gebiet selbstverständlich, daß auch ein 6-Bit Binärdecoder verwendet werden kann, der ADR(3)-ADR(8) erhält, indem eine ähnliche Schaltung verwendet wird.
Falls der externe Takt zu sehr verzögert ist, verkürzt die Ausgabe "DOWN" eine Verzögerungszeit, und falls eine Verzögerung unzureichend ist, dann verlängert die Ausgabe "UP" eine Verzögerungszeit. Als ein Ergebnis wird DLL 9000 mit einer Verzögerungszeit stabilisiert, wie oben beschrieben.
Während der Detektion, welche der Taktphasen BUFFCLK und FBCLK vör der jeweils anderen liegt, stellt die DLL die Verzögerungszeit des Verzögerungselements 3 und die des Verzögerungselements 5 entsprechend ein, um die Takte BUFFCLK und FBCLK gleichzeitig ansteigen zu lassen.
Falls eine deutliche Phasendifferenz, wie in den Fig. 28A und 28B gezeigt, vorhanden ist, bestehen keinerlei Probleme. Wie jedoch oben beschrieben, muß die DLL 9000 die Phasendifferenz zwischen den Takten BUFFCLK und FBCLK überwachen und die Verzögerungselemente 3 und 5 einstellen, um die Takte im wesentlichen frei von irgendeiner Phasendifferenz zu halten.
Im Normalzustand, bei dem die DLL 9000 arbeitet, ist von Natur aus kein wesentlicher Phasenunterschied zwischen den Takten BUFFCLK und FBCLK gegeben. In diesem Fall tritt mit einer bestimmten Wahrscheinlichkeit eine Situation auf, bei der der Phasenkomparator 9 eine signifikant lange Zeitperiode benötigt, um zu bestimmen, ob die Ausgabe "UP" oder "DOWN" bereitgestellt werden soll.
Dies gilt allgemein für Flip-Flops, die einen Phasenkomparator 9 enthalten und ist ein Phänomen, das als metastabiler Zustand bekannt ist.
Wie in "Design of CMOS Ultra LSI", BAIFUKAN, 1989, Seite 128 beschrieben, ist es praktisch unmöglich, die Wahrscheinlichkeit des Auftretens des metastabilen Zustandes vollständig zu eliminieren. In einem derartigen Fall kann die herkömmliche Verwendung eines Binärzählers 80 ein Fehloperation zur Folge haben.
Falls z. B. der augenblickliche Registerwert "011111111" ist, dann wäre der nachfolgende Registerwert "100000000" für eine Ausgabe "UP" und "011111110" für eine Ausgabe "DOWN".
Speziell variieren in diesem Beispiel die Bits von dem MSB-Bit bis zu einem Bit, das unmittelbar dem LSB-Bit vorangeht, also im ganzen 8 Bit in Abhängigkeit davon ob der Phasenkomparator 9 "UP" oder "DOWN" ausgibt. Mit anderen Worten haben 9 Bit den Übertrag "1" für "UP", wohingegen für "DOWN" die Bits außer dem LSB-Bit den Übertrag "0" aufweisen. Folglich hat ein Übertrag einen Wert, der signifikant in Abhängigkeit davon variiert, ob der Phasenkomparator 9 "UP" oder "DOWN" ausgibt.
In einem derartigen Fall ist es bei Auftreten des metastabilen Zustandes nicht sicher, ob der Phasenkomparator 9 "UP" oder "DOWN" ausgibt, also ob ein Registerübertrag "0" oder "1" ist. Als ein Ergebnis ist ein nachfolgender Registerzustand nicht festgelegt. Im Endeffekt weist er einen zufälligen Wert.
Mit anderen Worten hätte die DLL eine Verzögerungszeit, die plötzlich von einem Wert zu einem signifikant unterschiedlichen Wert variiert. Falls ein Registerwert "011111111" sich ändert zu "010101010", dann hätten die Verzögerungselemente eine Verzögerungszeit Tcoarse + Tfine, die sich von 31 × Tc + 7 × Tf zu 21 × Tc + 2 × Tf ändert.
Folglich divergiert in der DLL, von der erwartet wird, daß sie in einem gewünschten Verzögerungszustand stabil ist, eine Verzögerungszeit plötzlich und signifikant, was zur Folge hat, daß das gesamte System fehlerhaft arbeitet.
Aufgabe der Erfindung ist die Bereitstellung einer Konfiguration, die in der Lage ist, das Verzögerungsspringen zu minimieren, wenn ein Takt erzeugt wird, sowie eines Verfahrens hierfür.
Die Lösung dieser Aufgabe erfolgt gemäß einer DLL nach Anspruch 1, einer Halbleitervorrichtung nach Anspruch 4 und 11 sowie einem Verfahren nach Anspruch 14.
Weiterentwicklungen der Erfindung sind in den Unteransprüchen angegeben.
Die DLL-Schaltung verwendet folglich einen Gray-Code-Zähler als Verzögerungsregister, das eine Verzögerung einstellt. Dies kann einen Übertrag bei mehr als einem Bit verhindern. Folglich kann die DLL einen Verzögerungswert aufweisen, der stabilisiert ist, um ein Verzögerungsspringen zu minimieren und einen zuverlässigen schnellen Betrieb zu ermöglichen.
Außerdem liefert die Erfindung eine Halbleitervorrichtung mit einer DLL-Schaltung, die einen Gray-Code-Zähler als Verzögerungsregister verwendet, das eine Verzögerung einstellt, wenn ein externer Takt verzögert wird zur Erzeugung eines internen Taktes. Folglich kann prinzipiell Verzögerungsspringen minimiert werden. Somit kann durch Verwendung des internen Taktes zur Steuerung der Eingabe- und Ausgabepuffer ein zuverlässiger und schneller Betrieb bereitgestellt werden.
Außerdem liefert die Erfindung ein Steuerverfahren für ein System, das synchron mit einem Takt arbeitet, wobei ein Gray- Code verwendet wird, um eine Verzögerung zu steuern, und ein Verzögerungsspringen prinzipiell zu minimieren. Folglich kann die Dateneingabe zeitlich stabil festgelegt werden. Ähnlich kann die Datenausgabe stabil sein.
Die vorangegangene und andere Aufgaben, Merkmalen, Aspekte und Vorteile der Erfindung werden im folgenden unter Bezugnahme auf die beigefügten Zeichnungen näher beschrieben. Es zeigen:
Fig. 1 ein Diagramm zur Verdeutlichung eines 4-Bit Gray-Codes;
Fig. 2 ein Diagramm zur Verdeutlichung eines Ausdrucks, der einen 4-Bit Gray-Code in einen 4-Bit Binärcode wandelt;
Fig. 3 einen Ausdruck, der einen n-Bit Gray-Code in einem n-Bit Binärcode wandelt;
Fig. 4 einen Übertrag in einem Gray-Code;
Fig. 5 eine beispielhafte Konfiguration eines Gray- Code-Zählers (von 9 Bit) gemäß einem ersten Ausführungsbeispiel der Erfindung;
Fig. 6 ein Zeitdiagramm zur Verdeutlichung eines Prozesses des Auftretens von Überträgen C(0) bis C(8);
Fig. 7 eine beispielhafte Schaltungskonfiguration eines Gray-Code Registers 810 gemäß dem ersten Ausführungsbeispiel;
Fig. 8 eine beispielhafte Schaltungskonfiguration eines Binärcodegenerators 811 gemäß dem ersten Ausführungsbeispiel;
Fig. 9 eine generelle Konfiguration einer DLL 1000 gemäß dem ersten Ausführungsbeispiel;
Fig. 10 bis 12 Komponenten eines Dekoders 71 gemäß dem ersten Ausführungsbeispiel;
Fig. 13 eine beispielhafte Konfiguration einer Halbleitervorrichtung 10000 mit der DLL 1000 gemäß dem ersten Ausführungsbeispiel;
Fig. 14 eine generelle Konfiguration einer DLL 2000 gemäß einem zweiten Ausführungsbeispiel der Erfindung;
Fig. 15 ein Zeitdiagramm zur Verdeutlichung einer Operation der DLL 2000 gemäß dem zweiten Ausführungsbeispiel;
Fig. 16 eine beispielhafte Konfiguration einer Halbleitervorrichtung 20000 mit der DLL 2000 gemäß dem zweiten Ausführungsbeispiel;
Fig. 17 und 18 ein Zeitdiagramm zur Verdeutlichung einer zeitlichen Festlegung der Ausgabe von Daten;
Fig. 19 ein Zeitdiagramm zur Verdeutlichung eines Problems, das auftritt, wenn eine Systemtaktperiode T kurz ist;
Fig. 20 ein Zeitdiagramm zur Verdeutlichung eines Taktes, bei dem ein DDR-SDRAM arbeitet;
Fig. 21 ein Zeitdiagramm zur Verdeutlichung eines Betriebs einer Komponente, die eine DLL verwendet;
Fig. 22 ein Zeitdiagramm zur Verdeutlichung einer Dateneingabeoperation, wenn keine DLL verwendet wird;
Fig. 23 eine beispielhafte Konfiguration einer Verriegelungsschaltung 910;
Fig. 24 ein Zeitdiagramm zur Verdeutlichung einer Dateneingabeoperation, wenn eine DLL verwendet wird;
Fig. 25 eine beispielhafte Konfiguration einer herkömmlichen DLL 9000;
Fig. 26 ein Zeitdiagramm zur Verdeutlichung einer Operation der DLL 9000;
Fig. 27 ein Zeitdiagramm zur Verdeutlichung einer Operation der DLL 9000;
Fig. 28A und 28B Zeitdiagramme zur Verdeutlichung der Signalwerte UPF und DNF;
Fig. 29 eine beispielhafte Konfiguration eines Decoders 70;
Fig. 30 eine beispielhafte Konfiguration eines Phasenkomparators 9;
Fig. 31 eine beispielhafte Konfiguration eines Taktpuffers 1;
Fig. 32 eine beispielhafte Konfiguration eines Taktpuffers 2;
Fig. 33 eine beispielhafte Schaltungskonfiguration eines Generators 812 gemäß dem ersten Ausführungsbeispiel für einen Übertrag nach oben und einen Übertrag nach unten; und
Fig. 34 eine beispielhafte Schaltungskonfiguration eines Übertragmultiplexers 813 gemäß dem ersten Ausführungsbeispiel.
Im folgenden werden unter Bezugnahme auf die beigefügten Zeichnungen Ausführungsbeispiele der Erfindung beschrieben. In den Figuren sind gleiche Komponenten mit gleichen Bezugszeichen versehen und nicht wiederholt beschrieben.
Erstes Ausführungsbeispiel
Das erste Ausführungsbeispiel liefert eine DLL, mit der ein Verzögerungsspringen minimiert werden kann. Speziell verwendet die DLL einen Gray-Code (Wechselcode)-Zähler als Verzögerungsregister.
Das konstante Verhindern des Auftretens eines Übertrags bei mehr als einem Bit kann das Springen der Verzögerungszeit minimieren, falls der metastabile Zustand auftreten sollte. Im folgenden bezieht sich ein Referenzzeichen GADR auf einen Gray-Code. Außerdem beziehen sich Referenzzeichen GADR(k) auf ein k-tes Bit in einem Gray-Code, das als Registerwert ADR(k) oder Gray-Code GADR(k) bezeichnet wird.
Unter Bezugnahme auf Fig. 1 wird ein 4-Bit Gray-Code beschrieben. Fig. 1 zeigt Dezimalcodes, sowie Binär- und Gray- Codes, die den Dezimalcodes entsprechen. In der Figur repräsentiert der nach oben gerichtete Pfeil eine Abwärtsrichtung und der nach unten gerichtete Pfeil repräsentiert eine Aufwärtsrichtung. Außerdem repräsentiert das Referenzzeichen ADR einen Binärcode, und ein Referenzzeichen GADR repräsentiert einen Gray-Code. Ein Punkt kennzeichnet ein Bit des Binär- und Gray-Codes bei dem ein Übertrag auftritt.
Ein Gray-Code wird wie folgt erzeugt: Unter der Annahme, daß ein Dezimalcode "0" einem Gray-Code "0000" zugewiesen ist, wird jedem Bit in der Aufwärtsrichtung "0" oder "1" zugewiesen, wie im folgenden beschrieben.
In einem Gray-Code wiederholt sich ein 0-tes Bit LSB in Aufwärtsrichtung in der Folge 0110. Ein erstes Bit wiederholt sich in Aufwärtsrichtung in der Folge 00111100. Ein zweites Bit wiederholt sich in Aufwärtsrichtung in: der Folge 0000111111110000. Ähnlich wiederholt sich ein n-tes Bit in der Folge "0" 2n-mal in Abwärtsrichtung, "1" 2(n+1) mal in Aufwärtsrichtung und "0" 2n mal in Aufwärtsrichtung.
Ein Gray-Code in Fig. 1 mit dem n-ten Bit, das in einen Logikwert invertiert ist, dient ebenfalls als Gray-Code.
Sowohl für den Binärcode als auch für den Gray-Code gilt, daß falls ein M-ter Code bei einem iten Bit einen Übertrag nach oben aufweist, dann weist ein (M + 1)-ter Code ebenfalls beim i- ten Bit einen Übertrag nach unten auf. Folglich dient in Fig. 1 ein Punkt, der zwischen dem M-ten Code und dem (M + 1)-ten Code existiert als Übertrag nach oben für den M-ten Code, und als Übertrag nach unten für den (M + 1)-ten Code.
Es ist selbstverständlich, daß ein Binärcode mehr als ein Bit mit einem Übertrag aufweist, der sowohl in der Abwärts- als auch in der Aufwärtsrichtung auftritt, wohingegen ein Gray-Code nur ein Bit mit einem Übertrag aufweist, der jeweils in Aufwärts- und Abwärtsrichtung auftritt.
Zum Beispiel hat ein Binärcode "0110" (Dezimalcode "6") Überträge nach unten, die jeweils beim 0-ten Bit und ersten Bit auftreten, und einen Übertrag nach oben bei dem 0-ten Bit. Im Gegensatz dazu hat ein Dezimalcode, der dem Dezimalcode "6" unmittelbar vorangeht, also ein Dezimalcode "5" (ein Binärcode "0101") Überträge nach oben, die jeweils beim 0-ten und ersten Bits auftreten, und ein Dezimalcode, der dem Dezimalcode "6" unmittelbar folgt, also ein Dezimalcode "7" (ein Binärcode "0111") hat einen Übertrag nach unten beim 0-ten Bit.
Im Gegensatz dazu hat zum Beispiel ein Gray-Code "0101" (Dezimalcode "6") einen Übertrag nach unten, der beim ersten Bit auftritt, und einen Übertrag nach oben, der beim 0-ten Bit auftritt. Der unmittelbar vorangehende Dezimalcode "5" (einen Gray-Code "0111") hat einen Übertrag nach oben, der beim ersten Bit auftritt, und der unmittelbar folgende Dezimalcode "7" (ein Gray-Code "0100") hat einen Übertrag nach unten, der beim 0-ten Bit auftritt. Somit verhindert ein Gray-Code konstant, daß ein Übertrag bei mehr als einem Bit auftritt.
Bezugnehmend auf Fig. 2 erfolgt die Beschreibung eines Beispiels eines Ausdrucks, der einen 4-Bit Gray-Code in einen 4- Bit Binärcode wandelt. In Fig. 2 bezieht sich ein Referenzzeichen EXOR auf ein exklusives ODER (EXOR). Eine EXOR- Schaltung liefert eine "1" für eine ungerade Anzahl von "1" einer Mehrzahl von empfangenen Signalen, und "0" für eine gerade Anzahl von "1" einer Mehrzahl von empfangenen Signalen.
Zum Beispiel korrespondiert EXOR (GADR(3), GADR(2)) zu dem Binärcode ADR(2), und EXOR (GADR(3) - GADR(1)) korrespondiert zu dem Binärcode ADR(3). Speziell kann in Fig. 2 der Ausdruck Gray-Code GADR (3 : 0) in den Binärcode ADR (3 : 0) gewandelt werden.
Bezugnehmend auf Fig. 3 wird ein Ausdruck beschrieben, der einen n-Bit Gray-Code in einen n-Bit Binärcode wandelt. Falls zum Beispiel der Gray-Code GADR(n-1) zu einem Binärcode ADR(n-1) korrespondiert, und EXOR (GADR(n-1) bis GADR(n-3)) zu einem Binärcode ADR(n-3) korrespondiert, dann kann der Ausdruck in Fig. 3 einen n-Bit Gray-Code in einen n-Bit Binärcode wandeln.
Bezugnehmend auf Fig. 4 wird beschrieben bei welchem Bit ein Übertrag in einem Gray-Code auftritt. Fig. 4 zeigt ein Beispiel mit einem Gray-Code "0101", der zu dem Dezimalcode "5" (Binärcode "0110") korrespondiert. In der Figur repräsentiert ein Pfeil eine Beziehung zwischen einem Übertragbit und einem Bit in einem Binärcode.
Der Gray-Coda "0101" hat einen Übertrag nach unten, der bei einem ersten Bit des korrespondierenden Binärcodes "0110" auftritt, dieser ist "1" gesetzt am nächsten zu dem LSB. Der Gray-Code hat ebenfalls einen Übertrag nach oben, der bei einem 0-ten Bit des korrespondierenden Binärcodes "0110" auftritt, dieser ist "0" gesetzt am nächsten zu dem LSB.
Im allgemeinen hat ein Gray-Code einen Übertrag nach unten, der bei einem Bit des korrespondierenden Binärcodes auftritt, der "1" ist, gesetzt am nächsten zu dem LSB, und er hat einen Übertrag nach oben, der bei einem Bit des korrespondierenden Binärcodes auftritt, der "0" ist, gesetzt am nächsten zu dem LSB. Folglich hat ein Gray-Code Überträge nach oben und unten, wobei verhindert ist, daß diese bei mehr als einem Bit auftreten.
Bezugnehmend auf Fig. 5 erfolgt die Beschreibung einer beispielhaften Konfiguration eines Gray-Code-Zählers (9 Bits) gemäß dem ersten Ausführungsbeispiel der Erfindung. Wie in Fig. 5 gezeigt, enthält ein Gray-Code-Zähler 81 ein Gray-Code- Register 810, einen Binärcodegenerator 811, einen Generator 812 für einen Übertrag nach oben und einen Übertrag nach unten, und einen Übertragmultiplexer 813.
Das Gray-Code-Register 810 speichert 9-Bit Gray-Codes GADR(0)-GADR(8). Der Binärcodegenerator 811 enthält EXOR-Schaltungen E0-E7.
Der Binärcodegenerator 811 erhält 9-Bit Gray-Codes GADR(0)-GADR(8) vom Gray-Code-Register 810 und erzeugt Binärcodes ADR(0)-ADR(8) gemäß dem Ausdruck nach Fig. 3.
Der Generator 812 für einen Übertrag nach oben und einen Übertrag nach unten erhält Binärcodes ADR(0)-ADR(8) und erzeugt gemäß dem Ausdruck nach Fig. 4 Überträge nach oben UC(0)-UC(8) oder Überträge nach unten DC(0)-DC(8).
Wie oben beschrieben ist in Überträgen nach oben UC(0)-UC(8) nur ein Bit "1" und die anderen Bits sind "0". Oder in Überträgen nach unten DC(0)-DC(8) ist nur ein Bit "1" und die anderen Bits sind "0".
Der Übertragmultiplexer 813 enthält eine Mehrzahl von Multiplexer, gekennzeichnet mit MUX, der Signale UP und DN empfängt, die jeweils einen logischen Pegel aufweisen, relativ zueinander invertiert.
Falls das Signal UP "1" ist und das Signal DN "0", muß der Zähler inkrementiert werden und die Überträge nach oben UC(0)-UC(8) werden als Überträge C(0)-C(8) durchgeschaltet. Falls im Gegensatz dazu das Signal UP "0" ist und das Signal DN "1", dann muß der Zähler dekrementiert werden und die Überträge nach unten DC(0)-DC(8) werden als Überträge C(0)-C(8) durchgeschaltet.
Von den Überträgen C(0)-C(8) ist nur ein Bit "1", und die anderen Bits sind alle "0". Die oben genannten Überträge C(0)-C(8) werden wie in Fig. 6 gezeigt erzeugt. Die folglich erzeugten Überträge C(0)-C(8) werden in ein Gray-Code-Register 810 eingegeben. Mit einer nachfolgenden zeitlichen Festlegung eines Zähleraktualisierungstaktes CLKCNT wird ein Bit der Gray- Codes GADR(0) bis GADR(8) aktualisiert, um einen neuen Wert in Abhängigkeit von den eingegebenen Überträgen C(0)-C(8) anzunehmen.
Bezugnehmend auf Fig. 7 wird eine beispielhafte Schaltungskonfiguration eines Gray-Code-Register 810 gemäß dem ersten Ausführungsbeispiel beschrieben. Fig. 7 zeigt eine Konfiguration eines Registers, das zu einem Gray-Code GADR(n) korrespondiert, wobei n = 0 bis 8 ist. Sie enthält eine NAND- Schaltung N20, Inverter IV20-IV25 und Gates G20 und G21.
Die NAND-Schaltung N20 empfängt den Zähleraktualisierungstakt CLKCNT und einen Übertrag C(n) und gibt ein Signal /C aus. Der Inverter IV20 invertiert das Signal /C, um ein Signal C auszugeben.
Die Inverter IV21 und IV22 bilden eine Verriegelungsschaltung. Ähnlich bilden die Inverter IV23 und IV24 eine Verriegelungsschaltung. Die Gates G20 und G21 antworten auf Signale C und /C, um ein Eingangssignal an ein Ausgangssignal durchzuschalten, oder um ein Eingangssignal von einem Ausgangssignal zu trennen.
Der Inverter IV25 ist zwischen einem Ausgangsknoten OUT, der den Gray-Code GADR(n) ausgibt und dem Gate G20 verbunden. Die Verriegelungsschaltung, die die Inverter IV21 und IV22 enthält, ist zwischen den Gates G20 und G21 verbunden. Die Verriegelungsschaltung, die die Inverter IV23 und IV24 enthält, ist zwischen dem Gate G21 und dem Knoten OUT verbunden.
Bezugnehmend auf Fig. 8 wird eine beispielhafte Schaltungskonfiguration des Binärcodegenerators 811 gemäß dem ersten Ausführungsbeispiel beschrieben. Wie in Fig. 8 gezeigt enthält der Binärcodegenerator 811 EXOR-Schaltungen E9a, E9b, E9c. . ., die angeordnet sind, um zu dem in Fig. 3 gezeigten Gray-Code/Binärcode-Wandlungsausdruck zu korrespondieren.
Zum Beispiel wird der Gray-Code GADR(8) als Binärcode ADR(8) ausgegeben. Die Gray-Codes GADR(8) und GADR(7), die von der EXOR-Schaltung E9b erhalten werden, werden als Binärcode ADR(7) von dieser ausgegeben. Gray-Codes GADR(6)-GADR(8), die von der EXOR-Schaltung E9c erhalten werden, werden von dieser als Binärcode ADR(6) ausgegeben.
Bezugnehmend auf Fig. 33 erfolgt die Beschreibung einer beispielhaften Schaltungskonfiguration des Übertraggenerators 812 für Übertrag nach oben und Übertrag nach unten gemäß dem ersten Ausführungsbeispiel. Der Übertrag nach oben und Übertrag nach unten Generator 812, wie in Fig. 33 gezeigt, enthält eine Mehrzahl von Logikschaltungen 40, 41, 42. . ., die gemäß dem in Fig. 4 gezeigten System angeordnet sind, das verwendet wird, um die Position eines Übertragbits herauszufinden. Der Übertrag nach oben und Übertrag nach unten Generator 812 gibt Überträge nach unten DC(0), DC(1),. . . und Überträge nach oben UC(0), UC(1),. . . aus.
Bezugnehmend auf Fig. 43 wird eine beispielhafte Schaltungskonfiguration des Übertragmultiplexers 813 gemäß dem ersten Ausführungsbeispiel beschrieben. Fig. 34 zeigt einen Multiplexer, der zu einem Übertrag C(n) korrespondiert, wobei n = 0 bis 8 ist. Dieser Multiplexer, wie in Fig. 34 gezeigt, enthält Logikschaltungen 50 und 51 sowie Inverter IV50-IV55.
Die Logikschaltung 50 empfängt einen Zähleraktualisierungstakt CLKCNT und das Signal UP und gibt ein Signal U aus. Der Inverter IV50 gibt ein invertiertes Signal U, also ein Signal /U aus. Das Signal U wird nur HIGH, wenn das Signal UP einen HIGH-Pegel und der Zähleraktualisierungstakt CLKCNT einen LOW-Pegel aufweist.
Die Logikschaltung 51 empfängt den Zähleraktualisierungstakt CLKCNT und das Signal DN und gibt ein Signal D aus. Der Inverter IV51 gibt ein invertiertes Signal von dem Signal D, also ein Signal /D aus. Das Signal D geht nur auf HIGH, wenn das Signal DN einen HIGH-Pegel aufweist und der Zähleraktualisierungstakt CLKCNT einen LOW-Pegel.
Wenn das Signal U auf HIGH geht (oder das Signal /U auf LOW), invertiert der Inverter IV52 einen Übertrag nach oben UC(n) und gibt den invertierten Übertrag aus. Wenn das Signal D auf HIGH geht (oder das Signal /D auf LOW), invertiert der Inverter IV53 den Übertrag nach unten DC(n) und gibt den invertierten Übertrag aus.
Die Inverter IV54 und IV55 bilden eine Verriegelungsschaltung, die zwischen einem Ausgangsknoten der Inverter IV52 und IV53 und dem Knoten OUT angeordnet ist. Am Knoten OUT wird ein Übertrag C(n) ausgegeben.
Bezugnehmend auf Fig. 9 wird eine allgemeine Konfiguration einer DLL 1000 gemäß dem ersten Ausführungsbeispiel beschrieben. Die in Fig. 9 gezeigte DLL 1000 enthält einen Taktpuffer 1, ein genaues Verzögerungselement 3, ein grobes Verzögerungselement 5, einen Decoder 71, einen Gray-Code-Zähler 81, einen Phasenkomparator 9, einen Zeittaktgenerator 10, einen Pulsgenerator 11 und eine Replica-Schaltung 13.
Die DLL 1000 unterscheidet sich von einer herkömmlichen DLL 9000 dadurch, daß die zuerst genannte DLL einen Gray-Code-Zähler 81 aufweist, anstelle eines Binärzählers 80 und entsprechend einen Decoder 71 anstelle eines Decoders 70 enthält.
Der Gray-Code-Zähler 81 gibt in Antwort auf den Zähleraktualisierungstakt CLKCNT und basierend auf dem Signal UP/DN einen Binärcode ADR (0 : 2) und einen Gray-Code GADR (3 : 8) aus.
Der Docoder 71 decodiert den Gray-Code, GADR(3 : 8) zur Ausgabe eines Signals, das die Anzahl der Verzögerungsstufen des groben Verzögerungselements 5 bestimmt.
Bezugnehmend auf die Fig. 10 bis 12 erfolgt die Beschreibung einer beispielhaften Konfiguration des Decoders 71. Wie in den Fig. 10 bis 12 gezeigt, enthält der Decoder 71 eine AND- Schaltung 60#k, die ein Signal GX(k) ausgibt, wobei k = 0 bis 11 ist, und AND-Schaltungen 61#0-61#63, die ein Signal ausgeben, das die Anzahl der Verzögerungsstufen des groben Verzögerungselements 5 in Abhängigkeit von einem Signal GX(k) bestimmt.
Die AND-Schaltung 60#i × 4 empfängt einen Gray-Code /GADR(3 + i x 2), eine invertierte Version eines Gray-Codes GADR(3 ± i × 2), und einen Gray-Code /GADR(4 + i × 2), eine invertierte Version eines Gray-Codes GADR(4 + i × 2), und eine AND-Schaltung 60#(i × 4 + 1) empfängt die Gray-Codes GADR(3 + i × 2) und /GADR(4 + i × 2), wobei i = 0, 1, 2 ist.
Die AND-Schaltung 60#(i × 4 + 2) empfängt Gray-Codes GADR(3 + i x 2) und GADR(4 + i × 2) und die AND-Schaltung 60#(i × 4 + 3) empfängt die Gray-Codes /GADR(3 + i × 2) und GADR(4 + i × 2).
Die AND-Schaltungen 61#0-61#63 weisen jeweils einen ersten, zweiten und dritten Eingangsknoten auf. Die AND-Schaltungen 61#(8 × i) und 61#(8 × i + 7) empfangen jeweils an ihrem ersten Knoten ein Signal GX(0), die AND-Schaltungen 61#(8 × i + 1) und 61#(8 × i + 6) empfangen jeweils an ihrem ersten Eingangsknoten ein Signal GX(1), die AND-Schaltungen 61#(8 × i + 2) und 61#(8 × i + 5) empfangen jeweils an ihrem ersten Eingangsknoten ein Signal GX(2), und die AND-Schaltungen 61##(8 × i + 3) und 61#(8 × i + 4) empfangen jeweils an ihrem ersten Eingangsknoten ein Signal GX(3), wobei i = 0 bis 7 ist.
Die AND-Schaltungen 61#(j × 32 + 0) bis 61#(j × 32 + 3) und 61#(j × 32 + 28) bis 61#(j × 32 + 31) empfangen jeweils an ihrem zweiten Eingangsknoten ein Signal GX(4), die AND-Schaltungen 61#(j × 32 + 4) bis 61#(j × 32 + 7) und 61#(j × 32 + 24) bis 61#(j × 32 + 27) empfangen jeweils an ihrem zweiten Eingängsknoten ein Signal GX(5), die AND-Schaltungen 61#(j × 32 + 8) bis 61#(j × 32 + 11) und 61#(j × 32 + 20) bis 61#(j × 32 + 23) empfangen jeweils an ihrem zweiten Eingangsknoten ein Signal GX(6), und die AND-Schaltungen 61#(j × 32 + 12) bis 61#(j × 32 + 15) und 61#(j × 32 + 16) bis 61#(j × 32 + 19) empfangen jeweils an ihrem zweiten Eingangsknoten ein Signal GX(7), wobei j = 0, 1 ist.
Die AND-Schaltungen 61#0-61#15 empfangen jeweils an ihrem dritten Eingangsknoten ein Signal GX(8), die AND-Schaltungen 61#16-61#31 empfangen jeweils an ihrem dritten Eingangsknoten ein Signal GX(9), die AND-Schaltungen 61#32-61#47 empfangen jeweils an ihrem dritten Eingangsknoten ein Signal GX(10), und die AND-Schaltungen 61#48 bis 61#63 empfangen jeweils an ihrem dritten Eingangsknoten ein Signal GX(11).
In Antwort auf die Ausgabe von der AND-Schaltung 61#m wird die Anzahl der Verzögerungsstufen (zum Beispiel m- Verzögerungsstufen) des groben Verzögerungselements 5 bestimmt, wobei m = 0 bis 63 ist.
Bezugnehmend auf Fig. 13 wird eine beispielhafte Konfiguration einer Halbleitervorrichtung 10000 beschrieben, die eine DLL 1000 gemäß dem ersten Ausführungsbeispiel aufweist. Die Halbleitervorrichtung 10000, wie in Fig. 13 gezeigt, enthält die DLL 1000, die einen externen Takt CLKext empfängt, ein Eingangspuffer 1001, das Steuersignale empfängt (ein Reihenadressstrobe-Signal /RAS, ein Spaltadressstrobe-Signal /CAS, ein Chipauswahlsignal /CS, ein Schreibvorbereitungssignal /WE und dergleichen), ein Eingangspuffer 1002, das ein Adresssignal An empfängt, wobei n = 0, 1,. . ., eine Steuersignalerzeugungsschaltung 1003, die eine Ausgabe von dem Eingangspuffer 1001 empfängt, um ein internes Steuersignal zu erzeugen, eine Reihenadressverriegelung 1004, die auf das interne Steuersignal antwortet, um eine Reihenadressausgabe von einem Eingangspuffer 1002 zu verriegeln, eine Spaltadressverrieglung 1005, die auf das interne Steuersignal antwortet, zur Verriegelung einer Spaltadressausgabe von dem Eingangspuffer 1002, ein Speicherarray 1006 mit einer Mehrzahl von Speicherzellen, die in Reihen und Spalten angeordnet sind, und eine Mehrzahl von Wortleitungen, die in Richtung der Reihen angeordnet sind und eine Mehrzahl von Bitleitungen, die in der Richtung der Spalten angeordnet sind, einen Reihendecoder 1007, der auf das interne Steuersignal antwortet, zur Auswahl einer Reihe, die zu einer Ausgabe der Reihenadressverriegelung 1004 korrespondiert, und einen Spaltdecoder 1008, der auf das interne Steuersignal antwortet, zur Auswahl einer Spalte, die zu einer Ausgabe der Spaltadressverriegelung 1005 korrespondiert.
Die Eingangspuffer 1001 und 1002 übernehmen ein empfangenes Signal in Synchronisation mit dem Takt BUFFCLK (oder CLKin3), der von der DLL 1000 ausgegeben wird. Der Takt CLKin3 ist für einen schnellen Betrieb geeigneter als der Takt BUFFCLK.
Die Halbleitervorrichtung 10000 enthält auch eine Arrayeingabe/- ausgabe-Schaltung 1009, die bereitgestellt ist, um Daten von dem Speicherarray 1006 zu lesen oder in das Speicherarray 1006 zu schreiben, eine Lesedatenverriegelung 1010, die auf das interne Steuersignal antwortet, um die Lesedaten zu verriegeln, ein Ausgabepuffer 1011, das Daten übernimmt, die durch die Lesedatenverriegelung 1010 verriegelt sind, und die Daten an einen Dateneingabe/-ausgabe-Anschluß DQi ausgibt, eine Schreibdatenverriegelung 1012, die zu schreibende Daten verriegelt, und ein Eingangspuffer 1013, das Daten vom Dateneingabe/-ausgabe-Anschluß DQi übernimmt und Daten, die zu schreiben sind, an die Schreibdatenverriegelung 1012 ausgibt.
Das Ausgabepuffer 1011 arbeitet in Synchronisation mit dem internen Takt CLKin2, der von der DLL 1000 ausgegeben wird.
Die DLL, die einen Gray-Code-Zähler gemäß dem ersten Ausführungsbeispiel enthält, arbeitet wie folgt. In dem Beispiel nach Fig. 1 und 2 (ein 4-Bit Gray-Code), wie z. B. oben beschrieben, tritt in einem Gray-Code-Zähler ein Übertrag nur für ein Bit, sowohl bei "UP" als auch bei "DOWN" auf.
Es sein angenommen, daß der augenblickliche Registerwert ein Dezimalcode "6" ist, der dem Gray-Code "0101" entspricht. Falls das Signal UP einen HIGH-Pegel aufweist, dann ist der Übertrag C(0) "1" und die Überträge C(1)-C(3) sind "0". Falls im Gegensatz dazu das Signal DN einen HIGH-Pegel aufweist, dann ist der Übertrag C(1) auf "1" und die Überträge C(0), C(2), C(3) sind "0". Falls der metastabile Zustand im Phasenkomparator 9 auftritt, sind die Signale UP und DN folglich nicht im Wert festgelegt, wobei jeder Übertrag folgenden Wert aufweist:
Überträge C(2) und C(3) sind "0", egal welches der Signale UP und DN auf HIGH-Pegel ist. Selbst wenn weder das Signal UP noch das Signal DN sichergestellt ist, so sind die Überträge C(2) und C(3) festgelegt und halten "0".
Die Überträge C(0) und C(1) haben in Abhängigkeit von den Werten der Signale UP und DN einen Wert "0" oder "1". Folglich ist weder der Übertrag C(0) noch C(1) festgelegt, wenn weder das Signal UP noch das Signal DN festgelegt ist. Dies hat zur Folge, daß folgende vier Ergebnisse mit irgendeiner Wahrscheinlichkeit auftreten können.
  • 1. Wenn der Übertrag C(0) "0" ist, und der Übertrag C(1) "0", dann sind sämtliche Überträge "0", und ein nachfolgender Registerwert ist immer noch gleich dem Dezimalcode "6", was gleich dem Gray-Code 0101 entspricht.
  • 2. Wenn der Übertrag C(0) "1" ist, und der Übertrag C(1) "0", dann ist ein nachfolgender Registerwert gleich dem Dezimalcode "7", was gleich dem Gray-Code 0100 entspricht.
  • 3. Wenn der Übertrag C(0) "0" ist, und der Übertrag C(1) "1", dann ist ein nachfolgender Registerwert gleich dem Dezimalcode "5", was gleich dem Gray-Code 1111 entspricht.
  • 4. Wenn der Übertrag C(0) "1" ist, und der Übertrag C(1) "1", dann ist ein nachfolgender Registerwert gleich dem Dezimalcode "4", was gleich dem Gray-Code 0110 entspricht.
Nachdem der metastabile Zustand aufgetreten ist, kann somit gemäß diesem Ausführungsbeispiel der augenblickliche Zustand "6" nur in die Zustände "4", "5", "6", "7" übergehen. Mit anderen Worten erfolgen nur Übergänge auf einen Wert, der maximal um "2" beabstandet ist.
Obwohl in dem oben gegebenen Beispiel ein Anfangszustand "6" ist, ist es selbstverständlich, daß irgendein Anfangszustand mit einem anderen Wert als "6" verwendet werden kann, bei dem Übergänge mit einem maximalen Abstandswert von "2" erfolgen.
Dies gilt auch nicht nur für einen 4-Bit Gray-Code-Zähler, sondern allgemein für einen n-Bit Gray-Code-Zähler.
Da der Gray-Code-Zähler verwendet wird, springt ein anfänglicher Registerwert nur auf einen Registerwert, der von diesem um maximal zwei beabstandet ist, falls der metastabile Zustand auftritt. Falls im Gegensatz dazu ein herkömmlicher Binärzähler verwendet wird, kann ein augenblicklicher Registerwert auf einen unerwarteten Registerwert springen. Somit weist die Erfindung erhebliche Vorteile auf.
Falls eine DLL den Gray-Code-Zähler enthält, kann die DLL folglich effektiv einen Verzögerungswert aufweisen, der stabilisiert ist, um ein Verzögerungsspringen zu minimieren und die Wahrscheinlichkeit zu eliminieren, daß ein Fehler auftritt, wie er bei dem herkömmlichen Beispiel beobachtet werden kann.
Zweites Ausführungsbeispiel
Gemäß dem zweiten Ausführungsbeispiel wird eine DLL beschrieben, die auf einem DDR-SDRAM angeordnet ist. Unter Bezugnahme auf Fig. 14 wird eine DLL 2000 für einen DDR-SDRAM beschrieben. Die DLL 2000, wie in Fig. 14 gezeigt, empfängt externe Takte CLKext und ZCLKext, die eine Phasendifferenz von 180° zueinander aufweisen.
Die DLL 2000 enthält Taktpuffer 1 und 2, genaue Verzögerungselemente 3 und 4, grobe Verzögerungselemente 5 und 6, einen Decoder 71, einen Gray-Code-Zähler 81, einen Phasenkomparator 9, einen Zeittaktgenerator 10, Pulsgeneratoren 11 und 12, und eine Replica-Schaltung 13.
Das genaue Verzögerungselement 4 ist mit dem genauen Verzögerungselement 3 identisch, und das grobe Verzögerungselement 6 ist mit dem groben Verzögerungselement 5 identisch. Außerdem ist der Pulsgenerator 12 in der Konfiguration identisch zu dem Pulsgenerator 11.
Taktpuffer 1 und 2 empfangen beide externe Takte CLKext und ZCLKext. Die Taktpuffer 1 und 2, wie in Fig. 31 und 32 gezeigt, enthalten. Transistoren Tr1, Tr2, Tr3, Tr4 und einen Inverter IV10. Die Taktpuffer 1 und 2 geben jeweils Takte BUFFCLK und BUFFZCLK aus.
Der Phasenkomparator 9 vergleicht eine Phase des Taktes FBCLK, der von der Replica-Schaltung 13 ausgegeben wird, und die des Taktes BUFFZCLK, um ein Signal UPF/DNF auszugeben. Der Gray- Code-Zähler 81 gibt den Binärcode ADR (0 : 2) aus, der wiederum in die genauen Verzögerungselemente 3 und 4 eingegeben wird.
Der Decoder 71 decodiert den Gray-Code GADR(3 : 8), der von dem Gray-Code-Zähler 81 ausgegeben wird und gibt diesen an die groben Verzögerungselemente 5 und 6 aus.
Der Takt BUFFZCLK durchläuft das genaue Verzögerungselement 4 und das grobe Verzögerungselement 6, und wird dann an den Pulsgenerator 12 angelegt, der den Takt ZCLKin2 ausgibt, der als interner Takt CLKin2 für den DDR-SDRAM verwendet wird, um Daten auszugeben.
Die DLL 2000 arbeitet wie unter Bezugnahme auf Fig. 15 beschrieben. Bezugnehmend auf Fig. 15 wird das Signal BUFFCLK durch einen Taktpuffer 1 an einem Punkt erzeugt, wo sich ein Ansteigen des Taktes CLKext und ein Fallen des Taktes ZCLKext kreuzen. Der Takt BUFFZCLK wird durch den Taktpuffer 2 an einem Punkt erzeugt, wo sich ein Ansteigen des Taktes ZCLKext und ein Fallen des Taktes CLKext kreuzen.
Der interne Takt CLKin2 wird verwendet, um Daten in Synchronisation mit einem Punkt zu erzeugen, wo sich ein Ansteigen des externen Taktes CLKext und ein Abfallen des externen Taktes ZCLKext kreuzen. Der interne Takt ZCLKin2 wird verwendet, um Daten in Synchronisation mit einem Punkt auszugeben, wo sich ein Ansteigen des externen Taktes ZCLKext und ein Abfallen des externen Taktes CLKext kreuzen.
Unter Bezugnahme auf Fig. 16 wird eine beispielhafte Konfiguration einer Halbleitervorrichtung 20000 beschrieben, die eine DLL 2000 gemäß dem zweiten Ausführungsbeispiel aufweist. Die Halbleitervorrichtung 20000, wie in Fig. 16 gezeigt, enthält die DLL 2000, die externe Takte CLKext und ZCLKext empfängt, einen Eingangspuffer 2001, der ein Steuersignal erhält (ein Reihenadressstrobesignal /RAS, ein Spaltadressstrobesignal /CAS, ein Chipauswahlsignal /CS, ein Schreibvorbereitungssignal /WE und dergleichen), einen Eingangspuffer 2002, der ein Adresssignal An empfängt, wobei n = 0, 1,. . ., 11 ist, und Bankadresssignale BA0 und BA1, eine Steuersignalerzeugungsschaltung 2003, die eine Ausgabe des Eingangspuffers 2001 empfängt, um ein internes Steuersignal zu erzeugen, eine Reihenadressverriegelung 2004, die auf das interne Steuersignal antwortet, um eine Reihenadresse zu verriegeln, die von einem Eingangspuffer 2002 ausgegeben wird, eine Spaltadressverriegelung 2005, die auf das interne Steuersignal antwortet, um eine Spaltadresse zu verriegeln, die von dem Eingangspuffer 2002 ausgegeben wird, ein Speicherarray 2006 mit einer Mehrzahl von Speicherzellen, die in Reihen und Spalten angeordnet sind, und eine Mehrzahl von Wortleitungen, die in Richtung der Reihen angeordnet sind, und eine Mehrzahl von Bitleitungen, die in Richtung der Spalten angeordnet sind, einen Reihendecoder 2007, der auf das interne Steuersignal antwortet, um eine Reihe auszuwählen, die zu einer Ausgabe der Reihenadressverriegelung 2004 korrespondiert, und einen Spaltdecoder 2008, der auf das interne Steuersignal antwortet, um eine Spalte auszuwählen, die zu einer Ausgabe von der Spaltadressverriegelung 2005 korrespondiert. Die Eingangspuffer 2001 und 2002 übernehmen ein empfangenes Signal in Synchronisation mit dem Takt BUFFCLK (oder CLKin3), der von der DLL 2000 ausgegeben wird. Der Takt CLKin3 ist für einen schnellen Betrieb besser geeignet als der Takt BUFFCLK.
Die Halbleitervorrichtung 20000 enthält ferner eine Arrayeingabe/-ausgabe-Schaltung 2009, die bereitgestellt ist, um in ein Speicherarray 2006 Daten zu schreiben und von diesem zu lesen, eine Lesedatenverriegelung 2010, die auf das interne Steuersignal antwortet, um Lesedaten zu verriegeln, ein Ausgabepuffer 2011, das Daten übernimmt, die durch die Lesedatenverriegelung 2010 verriegelt sind, und diese an einen Dateneingabe/-ausgabe-Anschluß DQi ausgibt, eine Schreibdatenverriegelung 2012, die zu schreibende Daten verriegelt, und ein Eingangspuffer 2013, das Daten von dem Dateneingabe/Ausgabe-Anschluß DQi übernimmt und Daten, die zu schreiben sind, an die Schreibdatenverriegelung 2012 ausgibt.
Der Ausgangspuffer 2011 arbeitet in Synchronisation mit internen Takten CLKin2 und ZCLKin2, die von der DLL 2000 ausgegeben werden. Die Halbleitervorrichtung 20000 (ein DDR-SDRAM) kann in einer Taktperiode doppelte Daten ausgeben.
Obwohl die Erfindung beschrieben und im Detail verdeutlicht wurde, ist es selbstverständlich, daß dies nur beispielhaft geschehen ist und keine Beschränkung des Schutzbereichs bedeutet.

Claims (17)

1. Verzögerungsverriegelungsschaltung (DLL) (1000, 200) mit
einer Verzögerungsschaltung (3, 5), die einen ersten Takt verzögert, um einen zweiten Takt auszugeben;
einem Detektor (9), der eine Phasendifferenz zwischen dem ersten Takt und dem zweiten Takt detektiert; und
einem Gray-Code-Zähler (81), der einen Gray-Code verwendet, und auf eine Ausgabe von dem Detektor (9) antwortet zur Erzeugung eines Signals, das eine Verzögerung der Verzögerungsschaltung (3, 5) einstellt.
2. DLL nach Anspruch 1, wobei der Gray-Code-Zähler (81) folgendes enthält:
ein Gray-Code-Register (810) zur Speicherung des Gray- Codes;
einen Binärcodewandler (811) zur Wandlung des Gray-Codes in einen Binärcode;
einen Übertrag nach oben /Übertrag nach unten Generator (812), der den Binärcode verwendet, der in dem Binärcodewandler gespeichert ist, zur Erzeugung eines Übertrag nach oben Signals und eines Übertrag nach unten Signals; und
einen Übertragmultiplexer (313), der aus einem Übertrag nach oben Signal und einem Übertrag nach unten Signal ein Übertragsignal zu erzeugen, das zu einem Ergebnis korrespondiert, das durch den Detektor (9) erhalten wird, zur Aktualisierung des Gray-Codes in dem Gray-Code-Register.
3. DLL nach Anspruch 2, wobei die Verzögerungsschaltung (3, 5) ein genaues Verzögerungselement (3) und ein grobes Verzögerungselement (5) enthält, mit einer Verzögerung größer pro Einheit als die des genauen Verzögerungselements (3), wobei das genaue Verzögerungselement (3) eine Verzögerung aufweist, die durch den Binärcode eingestellt wird, der in dem Binärcodewandler (811) gespeichert ist, und das grobe Verzögerungselement (5) eine Verzögerung aufweist, die durch den Gray-Code eingestellt wird, der in dem Gray-Code-Register (810) gespeichert ist.
4. Halbleitervorrichtung (10000) mit einer DLL (1000) enthaltend:
ein Eingangspuffer (1), das einen externen Takt empfängt und einen ersten internen Takt ausgibt;
eine Verzögerungsschaltung (3, 5), die den ersten internen Takt verzögert, um einen zweiten internen Takt auszugeben;
einen Detektor (9), der die Phasendifferenz zwischen dem ersten internen Takt und dem zweiten internen Takt detektiert; und
einen Gray-Code-Zähler (81), der einen Gray-Code verwendet, und auf eine Ausgabe von dem Detektor (9)antwortet zur Erzeugung eines Signals, das eine Verzögerung der Verzögerungsschaltung (3, 5) einstellt.
5. Halbleitervorrichtung nach Anspruch 4, wobei der Gray- Code-Zähler (81) folgendes enthält:
ein Gray-Code-Register (810) zur Speicherung des Gray- Codes;
einen Binärcodewandler (811) zur Wandlung des Gray-Codes in einen Binärcode;
einen Übertrag nach oben /Übertrag nach unten Generator (812), der den Binärcode verwendet, der in dem Binärcodewandler gespeichert ist, zur Erzeugung eines Übertrag nach oben Signals und eines Übertrag nach unten Signals; und
einen Übertragmultiplexer (813), der aus dem Übertrag nach oben Signal und dem Übertrag nach unten Signal ein Übertragsignal erzeugt, das zu einem Ergebnis korrespondiert, das durch den Detektor (9) erhalten wird, zur Aktualisierung des Gray-Codes in dem Gray-Code-Register.
6. Halbleitervorrichtung nach Anspruch 5, wobei die Verzögerungsschaltung (3, 5) ein genaues Verzögerungselement (3) enthält und ein grobes Verzögerungselement (5) mit einer Verzögerung größer pro Einheit als die des genauen Verzögerungselements (3), wobei das genaue Verzögerungselement (3) eine Verzögerung aufweist, die durch den Binärcode eingestellt wird, der in dem Binärcodewandler (811) gespeichert ist, und das grobe Verzögerungselement (5) eine Verzögerung aufweist, die durch den Gray-Code eingestellt wird, der in dem Gray-Code-Register (810) gespeichert ist.
7. Halbleitervorrichtung nach Anspruch 5, ferner enthaltend eine Eingangsschaltung (1001), die in Antwort auf den zweiten internen Takt arbeiten kann, um ein Signal extern zu empfangen.
8. Halbleitervorrichtung nach Anspruch 7, ferner mit einem Speicherzellenarray (1006), das eine Mehrzahl von Speicherzellen enthält, wobei die Eingangsschaltung (1001) ein Signal empfängt, um Daten in das Speicherzellenarray zu schreiben und von diesem zu lesen.
9. Halbleitervorrichtung nach Anspruch 5, ferner mit einer Ausgabeschaltung (1011), die in Antwort auf den zweiten internen Takt antworten kann, um ein Signal extern auszugeben.
10. Halbleitervorrichtung nach Anspruch 9, ferner mit einem Speicherzellenarray (1006) mit einer Mehrzahl von Speicherzellen, wobei die Ausgabeschaltung (1011) Daten extern ausgibt, die von dem Speicherzellenarray (1006) gelesen werden.
11. Halbleitervorrichtung (20000) mit einer DLL (2000) enthaltend:
ein erstes Eingangspuffer (1), das mindestens einen ersten externen Takt und einen zweiten externen Takt, der in der Phase zum ersten externen Takt komplementär ist, empfängt, und einen ersten internen Takt bei der steigenden Flanke des ersten externen Taktes ausgibt, wenn ein Potential des ersten externen Taktes gleich dem des zweites externen Taktes ist;
ein zweites Eingangspuffer (2), das mindestens den ersten und zweiten externen Takt empfängt, und einen zweiten internen Takt bei der steigenden Flanke des zweiten externen Taktes ausgibt, wenn ein Potential des ersten externen Taktes gleich dem des zweiten externen Taktes ist;
eine erste Verzögerungsschaltung (3, 5), die den ersten internen Takt verzögert, um einen dritten internen Takt auszugeben;
eine zweite Verzögerungsschaltung (4, 6), die den zweiten internen Takt verzögert, um einen vierten internen Takt auszugeben;
einen Detektor (9), der eine Phasendifferenz zwischen dem ersten internen Takt und dem dritten internen Takt detektiert; und
einen Gray-Code-Zähler (81), der einen Gray-Code verwendet, und auf eine Ausgabe von dem Detektor (9)antwortet zur Erzeugung eines Signals, das eine Verzögerung der ersten Verzögerungsschaltung (3, 5) und eine Verzögerung der zweiten Verzögerungsschaltung (4, 6) einstellt.
12. Halbleitervorrichtung nach Anspruch 11, ferner mit einer Ausgabeschaltung (2011), die in Antwort auf den dritten und vierten internen Takt arbeitet, um ein Signal extern auszugeben.
13. Halbleitervorrichtung nach Anspruch 12, ferner mit einem Speicherzellenarray (2006), das eine Mehrzahl von Speicherzellen enthält, wobei die Ausgabeschaltung (2011) in Antwort auf den dritten und vierten internen Takt Daten extern ausgibt, die von dem Speicherzellenarray (2006) gelesen wurden.
14. Steuerverfahren für ein System, das in Synchronisation mit einem Takt arbeitet, mit folgenden Schritten:
Eingeben (1) eines externen Taktes in ein Eingangspuffer, um einen ersten internen Takt zu Erzeugen;
Verzögern (3, 5) des ersten internen Taktes, um einen zweiten internen Takt auszugeben;
Detektieren (9) einer Phasendifferenz zwischen dem ersten und zweiten internen Takt; und
Verwenden (81) eines Gray-Codes, um eine Verzögerung zu bestimmen, die im Verzögerungsschritt anzuwenden ist, wobei die Verzögerung mit einem Ergebnis korrespondiert, das im Detektionsschritt erhalten wird.
15. Verfahren nach Anspruch 14, wobei der Schritt zur Verwendung (81) des Gray-Codes folgende Schritte enthält:
Wandeln (811) des Gray-Codes in einen Binärcode;
Verwenden (812) des Binärcodes, um ein Übertrag nach oben Signal und ein Übertrag nach unten Signal zu erzeugen; und
Bezugnehmen auf ein Ergebnis, das im Detektionsschritt (9) erhalten wird, um ein Übertragsignal aus dem Übertrag nach oben Signal und dem Übertrag nach unten Signal zu erzeugen, um den Gray-Code zu aktualisieren.
16. Verfahren nach Anspruch 15, ferner mit einem Schritt zur externen Ausgabe (1011, 2011) von Daten in Antwort auf den zweiten internen Takt.
17. Verfahren nach Anspruch 15, ferner mit einem Schritt zum externen Empfang (1001, 2001) von Daten in Antwort auf den zweiten internen Takt.
DE10136163A 2000-12-19 2001-07-25 Konfiguration zur Erzeugung eines Taktes mit einer Verzögerungsschaltung und ein Verfahren hierfür Ceased DE10136163A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000385020A JP4592179B2 (ja) 2000-12-19 2000-12-19 ディレイロックドループ、当該ディレイロックドループを含む半導体装置およびクロック同期により動作するシステムのための制御方法

Publications (1)

Publication Number Publication Date
DE10136163A1 true DE10136163A1 (de) 2002-07-11

Family

ID=18852364

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10136163A Ceased DE10136163A1 (de) 2000-12-19 2001-07-25 Konfiguration zur Erzeugung eines Taktes mit einer Verzögerungsschaltung und ein Verfahren hierfür

Country Status (4)

Country Link
US (1) US6727738B2 (de)
JP (1) JP4592179B2 (de)
KR (1) KR100516542B1 (de)
DE (1) DE10136163A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10130122B4 (de) * 2001-06-22 2006-01-19 Infineon Technologies Ag Verzögerungsregelkreis
US7079615B2 (en) * 2001-11-20 2006-07-18 Hewlett-Packard Development Company, L.P. Expanded comparator for control of digital delay lines in a delay locked loop or phase locked loop
KR100518226B1 (ko) * 2003-04-23 2005-10-04 주식회사 하이닉스반도체 Ddl 장치의 클락 분주기 및 그 클락 분주 방법
JP3879709B2 (ja) * 2003-06-13 2007-02-14 ソニー株式会社 遅延同期ループを用いた信号生成回路及び同信号生成回路を有する半導体装置
US7348821B2 (en) * 2004-09-22 2008-03-25 Intel Corporation Programmable high-resolution timing jitter injectors high-resolution timing jitter injectors
US7292080B2 (en) * 2005-08-25 2007-11-06 Infineon Technologies Ag Delay locked loop using a FIFO circuit to synchronize between blender and coarse delay control signals
US7864911B2 (en) * 2006-09-13 2011-01-04 Sony Corporation System and method for implementing a phase detector to support a data transmission procedure
KR100907928B1 (ko) 2007-06-13 2009-07-16 주식회사 하이닉스반도체 반도체 메모리 장치
KR100929653B1 (ko) * 2008-04-15 2009-12-03 주식회사 하이닉스반도체 레지스터 제어형 지연고정루프회로
US9614533B2 (en) 2015-06-19 2017-04-04 Intel Corporation Digital phase control with programmable tracking slope
KR20190068301A (ko) 2017-12-08 2019-06-18 삼성전자주식회사 지연 고정 루프를 포함하는 메모리 장치 및 메모리 장치의 동작 방법
US10438648B2 (en) * 2018-01-11 2019-10-08 Micron Technology, Inc. Apparatuses and methods for maintaining a duty cycle error counter
KR102569429B1 (ko) * 2018-05-24 2023-08-24 에스케이하이닉스 주식회사 동기 회로
US10976709B1 (en) * 2020-03-30 2021-04-13 Stmicroelectronics (Research & Development) Limited Latched gray code for ToF applications
CN118173141A (zh) * 2024-05-14 2024-06-11 电子科技大学 一种基于格雷码计数器的低功耗非易失存储器电路

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE6932808U (de) 1969-08-20 1972-03-16 Opel Adam Ag Sitz, insbesondere kraftfahrzeugsitz.
BR9305935A (pt) * 1992-12-23 1997-08-26 Comstream Corp Comutador de fase controlada digitalmente
JP2771464B2 (ja) * 1994-09-29 1998-07-02 日本電気アイシーマイコンシステム株式会社 ディジタルpll回路
US5796673A (en) 1994-10-06 1998-08-18 Mosaid Technologies Incorporated Delay locked loop implementation in a synchronous dynamic random access memory
JP3479389B2 (ja) * 1995-06-21 2003-12-15 株式会社日立製作所 データ処理システム及び半導体集積回路
US5552750A (en) * 1995-09-05 1996-09-03 Motorola, Inc. Method and apparatus for determining an instantaneous phase difference between two signals
US5805003A (en) * 1995-11-02 1998-09-08 Cypress Semiconductor Corp. Clock frequency synthesis using delay-locked loop
JP3564855B2 (ja) * 1996-02-29 2004-09-15 ソニー株式会社 リングオシレータ及びpll回路
US6125157A (en) 1997-02-06 2000-09-26 Rambus, Inc. Delay-locked loop circuitry for clock delay adjustment
JP3945894B2 (ja) * 1997-04-21 2007-07-18 富士通株式会社 半導体装置及び信号入力状態検出回路
US6247138B1 (en) 1997-06-12 2001-06-12 Fujitsu Limited Timing signal generating circuit, semiconductor integrated circuit device and semiconductor integrated circuit system to which the timing signal generating circuit is applied, and signal transmission system
JPH11122750A (ja) * 1997-10-13 1999-04-30 Yazaki Corp 電気接続箱の取付構造
KR100264077B1 (ko) * 1997-11-21 2000-08-16 김영환 반도체 소자의 클럭보상장치
US6100733A (en) 1998-06-09 2000-08-08 Siemens Aktiengesellschaft Clock latency compensation circuit for DDR timing
JP3196725B2 (ja) * 1998-06-09 2001-08-06 日本電気株式会社 位相比較回路
JP3763673B2 (ja) * 1998-06-11 2006-04-05 富士通株式会社 Dll回路
JP2000076853A (ja) * 1998-06-17 2000-03-14 Mitsubishi Electric Corp 同期型半導体記憶装置
US6137325A (en) * 1998-06-22 2000-10-24 Micron Technology, Inc. Device and methods in a delay locked loop for generating quadrature and other off-phase clocks with improved resolution
US6043694A (en) * 1998-06-24 2000-03-28 Siemens Aktiengesellschaft Lock arrangement for a calibrated DLL in DDR SDRAM applications
JP3439670B2 (ja) * 1998-10-15 2003-08-25 富士通株式会社 階層型dll回路を利用したタイミングクロック発生回路
JP3640816B2 (ja) * 1998-11-20 2005-04-20 富士通株式会社 半導体集積回路装置
JP2000163961A (ja) * 1998-11-26 2000-06-16 Mitsubishi Electric Corp 同期型半導体集積回路装置
JP4397076B2 (ja) * 1999-08-20 2010-01-13 株式会社ルネサステクノロジ 半導体装置

Also Published As

Publication number Publication date
US6727738B2 (en) 2004-04-27
JP2002185313A (ja) 2002-06-28
KR20020050079A (ko) 2002-06-26
US20020075047A1 (en) 2002-06-20
JP4592179B2 (ja) 2010-12-01
KR100516542B1 (ko) 2005-09-22

Similar Documents

Publication Publication Date Title
DE69926694T2 (de) Kalibrierte Verzögerungsregelschleife für DDR-SDRAM-Anwendungen
DE69833467T2 (de) Zeitgeberschaltung, Vorrichtung und System für integrierten Halbleiterschaltkreis unter deren Anwendung und Signalübertragungssystem
DE10023248B4 (de) Schaltung und Verfahren zur Taktsignalsynchronisation
DE10136163A1 (de) Konfiguration zur Erzeugung eines Taktes mit einer Verzögerungsschaltung und ein Verfahren hierfür
DE102006045254B4 (de) Verzögerungsregelschleife für Hochgeschwindigkeits-Halbleiterspeichervorrichtung
DE69838852T2 (de) Verfahren und vorrichtung zur kopplung von signalen zwischen zwei schaltungen, in verschiedenen taktbereichen arbeitend
DE10084993B3 (de) Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM)
DE10330796B4 (de) Registergesteuerter Delay Locked Loop mit Beschleunigungsmodus
DE10043650A1 (de) Takterzeugerschaltung und Halbleiterspeichervorrichtung
DE102008008194A1 (de) Speicherbauelement und Verfahren zum Betreiben eines Speicherbauelements
DE102006020857A1 (de) Integrierter Halbleiterspeicher zur Synchronisierung eines Signals mit einem Taktsignal
DE3137292A1 (de) Fifo-speicher und diesen verwendende verarbeitungseinheit
DE10126589A1 (de) Halbleiterspeichergerät zur Bereitstellung einer Adressenzugriffszeit und einer Datenzugriffszeit mit hoher Geschwindigkeit
DE102005027452A1 (de) Digitaler Tastverhältniskorrektor
DE102006030377A1 (de) Verzögerungsregelschleifenschaltung
DE10320794B3 (de) Vorrichtung und Verfahren zur Korrektur des Tastverhältnisses eines Taktsignals
DE102004031450B4 (de) Verzögerungsregelkreis-Vorrichtung
DE10326774B4 (de) Auf-Chip Erfassung der Systemoperationsfrequenz in einem DRAM, um DRAM-Operationen einzustellen
DE3883132T2 (de) Synchrone Halbleiterspeichervorrichtung.
DE10208715B4 (de) Latenz-Zeitschalter für ein S-DRAM
DE19749115C2 (de) Taktsignal-Phasenkomparator
DE19537342C2 (de) Synchronisationsschaltung
DE60032966T2 (de) Steuerungsschaltung mit einer Taktssteuerungseinheit
DE3788783T2 (de) Multiplexer für Taktsignale.
DE60220338T2 (de) Schaltung und Methode zur Erzeugung eines verzögerten internen Taktsignals

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection