-
ALLGEMEINER STAND DER TECHNIK
-
Verzögerungsschleifen (DLLs, Delay Locked Loops) sind für die Erzeugung phasenverzögerter Taktsignale ausgelegt, die in Prozess-, Spannungs- und Temperaturvariationen (PVT) relativ stabil sind.
-
DLLs umfassen analoge DLLs und digitale DLLs.
-
Konventionelle digitale DLLs können möglicherweise einen niedrigeren Stromverbrauch haben, auf Niederspannungsgeräten eingesetzt werden und im Vergleich zu konventionellen analogen DLLs eine größere Portabilität für Prozesse zur Wiederverwendung aufweisen.
-
Analoge DLLs können eine genauere Steuerung von Taktverzögerung für Phasen und somit im Vergleich zu konventionellen digitalen DLLs eine größere Auflösung bieten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm einer digital gesteuerten Verzögerungsleitung, umfassend feingranulare Verzögerungselemente und grobgranulare Verzögerungselemente sowie eine digitale Steuerung zum Steuern der Verzögerungsleitung in fein- und grobgranularen Inkrementen.
-
2 ist ein Blockdiagramm der digital gesteuerten Verzögerungsleitung in 1, wobei die feingranularen Verzögerungselemente als feingranulare Verzögerungsleitung und die grobgranularen Verzögerungselemente als grobgranulare Verzögerungsleitung implementiert werden, um eine Ausgabe der feingranularen Verzögerungsleitung zu empfangen.
-
3 ist eine Darstellung eines Beispiels, in dem eine Verzögerung eines grobgranularen Verzögerungselements im Wesentlichen gleich einer kombinierten Verzögerung von 8 feingranularen Verzögerungselementen ist.
-
4 ist eine Darstellung von Beispielzuständen der digital gesteuerten Verzögerungsleitung von 1 zur Erläuterung einer inkrementellen Zunahme der Verzögerung.
-
5 ist eine Darstellung von Zuständen der digital gesteuerten Verzögerungsleitung von 1 zur Erläuterung einer inkrementellen Abnahme der Verzögerung.
-
6 ist ein Blockdiagramm der feingranularen Verzögerungselemente, die als Switch-gesteuerte Kondensatoren implementiert sind.
-
7 ist ein Blockdiagramm von grobgranularen Verzögerungselementen, die als hintereinander geschaltete Puffer mit Switch-gesteuerten Ausgaben implementiert sind.
-
8 ist ein Logikschaltbild von grobgranularen Verzögerungselementen, wobei jedes davon einen invertierenden Puffer und einen Multiplexer umfasst.
-
9 ist ein Blockdiagramm einer Verzögerungsschleife (DLL) umfassend die digital gesteuerte Verzögerungsleitungssteuerung von 2 und ferner umfassend einen Phasendetektor und einen ersten Schaltkreis für die Feinverzögerung zum Verschieben der vorgegebenen Verzögerung der Verzögerungsleitung.
-
10 ist ein Blockdiagramm einer beispielhaften Implementierung des ersten Schaltkreises für die Feinverzögerung.
-
11 ist ein Blockdiagramm der digitalen Steuerung umfassend erste und zweite Zähler zum Steuern der Verzögerungsleitung basierend auf Phasendifferenzen, wobei die ersten und zweiten Zähler einen Teil der ersten Kalibrierungsschleife zum Kalibrieren der Verzögerungsleitung bezüglich einer Periode eines Referenztaktsignals bilden.
-
12 ist ein Blockdiagramm der digitalen Steuerung wie in 11 dargestellt, ferner umfassend eine konzeptionelle Darstellung einer zweiten Kalibrierungsschleife 1202 zum Kalibrieren eines fein-zu-grob-Konvertierungsfaktors, der als ein Ausführungsschwellenwert des ersten Zählers angewendet werden kann.
-
13 ist ein Blockdiagramm einer beispielhaften Implementierung der zweiten Kalibrierungsschleife umfassend einen dritten Zähler zum Inkrementieren und/oder Dekrementieren des fein-zu-grob-Konvertierungsfaktors.
-
14 ist ein Blockdiagramm eines Systems, umfassend eine Master DLL mit einer digital steuerbaren Verzögerungsleitung wie im vorliegenden Text beschriebenen.
-
15 ist ein Ablaufdiagramm eines Verfahrens zum Kalibrieren der Anzahl von feingranularen Verzögerungselementen, P, für die eine kombinierte Verzögerung im Wesentlichen einer Verzögerung eines der grobgranularen Verzögerungselemente entspricht.
-
16 ist ein Ablaufdiagramm eines Verfahrens zum Kalibrieren der Anzahl von feingranularen Verzögerungselementen, n, und einer Anzahl von grobgranularen Verzögerungselementen, m, für die eine kombinierte Verzögerung einer Periode eines Referenztaktsignals entspricht.
-
In den Zeichnungen kennzeichnen die ganz links aufgeführten Ziffern einer Referenznummer die Zeichnung, in der die Referenznummer erstmalig aufgeführt wird.
-
DETAILLIERTE BESCHREIBUNG
-
In vorliegendem Text sind digital steuerbare Verzögerungsleitungen mit fein- und grobgranularen Verzögerungselemente sowie Verfahren und ein System zum Anpassen von Verzögerungen in relativ feingranularen Inkrementen offenbart.
-
1 ist ein Blockdiagramm einer digital gesteuerten Verzögerungsleitung 102 und einer digitalen Steuerung 104 zur Steuerung der Verzögerungsleitung 102. Die Steuerung 104 kann die Verzögerungsleitung 102 steuern, um eine phasenverzögerte Version eines Referenztaktsignals 106 auszugeben, die hier als verzögertes Referenzaktsignal 108 dargestellt ist.
-
Die Verzögerungsleitung 102 umfasst mehrere erste und zweite Verzögerungselemente, wobei eine kombinierter Verzögerung einer Mehrzahl der ersten Verzögerungselemente im Wesentlichen einer Verzögerung von jedem der zweiten Verzögerungselemente entspricht.
-
Zur anschaulichen Darstellung werden die ersten Verzögerungselemente im vorliegenden Text als feingranulare Verzögerungselemente bezeichnet, und die zweiten Verzögerungselemente werden als grobgranulare Verzögerungselemente bezeichnet. Die Begriffe „fein” und „grob” werden im vorliegenden Text relativ verwendet. Weder die ersten noch die zweiten Verzögerungselemente sind auf eine bestimmte Länge oder einen bestimmten Bereich einer Verzögerung beschränkt.
-
In 1 sind die ersten und zweiten Verzögerungselemente jeweils als feingranulare Verzögerungselemente 110 und grobgranulare Verzögerungselemente 112 dargestellt.
-
Feingranulare Verzögerungselemente 110 und grobgranulare Verzögerungselemente 112 können als entsprechende Verzögerungsleitungen implementiert werden, wie im Folgenden mit Bezug auf 2 beschrieben.
-
2 ist ein Blockdiagramm der Verzögerungsleitung 102, wobei feingranulare Verzögerungselemente 110 als ein Pilot-Schaltkreis für Feinverzögerung 210 implementiert sind, und grobgranulare Verzögerungselemente 112 sind als grobverzögerte Verzögerungsleitung 212 implementiert sind.
-
Die grobgranulare Verzögerungsleitung 212 kann eine Anordnung von relativ grobgranularen Verzögerungselementen oder Zellen umfassen, die mit Puffer und Multiplex-Logik implementiert sind.
-
Feingranulare Verzögerungselemente 110 können eine Anordnung von Switch-gesteuerten Kondensatoren umfassen, von denen jeder selektiv mit einem Knoten verbunden werden kann, um eine ohmsche/kapazitive(RC-)Belastung zum Knoten hinzuzufügen. Wenn ein Kondensator zwischengeschaltet wird, verzögert die entsprechende RC-Belastung die Anstiegs- und Abfallzeiten eines Referenztaktsignals am Knoten durch einen inkrementellen Betrag, der ein Bruchteil der Verzögerung eines grobgranularen Verzögerungselements 112 ist. Die inkrementelle Verzögerung kann eine Auflösung der digitalen Verzögerungsleitung 102 definieren, die es der Verzögerungsleitung 102 ermöglicht, mindestens innerhalb einer Auflösung einer analogen Verzögerungsleitung eingestellt zu werden.
-
In 2 ist ein Pilot-Schaltkreis für Feinverzögerung 210 implementiert, um das Referenztaktsignal 106 zum empfangen und einen Feinverzögerungs-Pilot 202 auszugeben, und eine grobgranulare Verzögerungsleitung 212 ist implementiert, um einen Feinverzögerungs-Pilot 202 zu empfangen und das verzögerte Referenztaktsignal 108 auszugeben. Die digital gesteuerte Verzögerungsleitung 102 ist jedoch nicht auf das Beispiel in 2 beschränkt.
-
In 1 und/oder 2 kann die digitale Steuerung 104 implementiert sein, um die Verzögerungsleitung 102 in relativ feinen Schritten anzupassen. Für jedes Inkrement oder Dekrement kann ein untergeordneter Satz von einem oder mehreren feingranularen Verzögerungselementen 110 aktiviert oder deaktiviert werden oder zu der Verzögerungsleitung 102 hinzugefügt bzw. davon abgezogen werden. Wenn eine Anzahl von aktivierten feingranularen Verzögerungselementen 110 der Verzögerung eines grobgranularen Verzögerungselements 112 entspricht, kann die Anzahl von feingranularen Verzögerungselementen 110 anstelle eines grobgranularen Verzögerungselements 112 aus- oder zwischengeschaltet werden.
-
Die Steuerung 104 kann einen ersten Zähler zum Steuern der Anzahl von aktivierten feingranularen Verzögerungselementen 110 umfassen. Wenn eine Entscheidung zur Vergrößerung der Verzögerung getroffen wird, kann der erste Zähler inkrementiert werden und ein feingranulares Verzögerungselement 110 kann aktiviert oder zur Verzögerungsleitung 102 hinzugefügt werden. Wenn ein zunehmendes Inkrement gleich der Verzögerung eines grobgranularen Verzögerungselements 112 ist, kann ein grobgranulares Verzögerungselement 112 hinzugefügt oder aktiviert werden und der Zähler kann zurückgesetzt werden. Wenn jedoch ein zunehmendes Dekrement gleich der Verzögerung eines grobgranularen Verzögerungselements 112 ist, kann ein grobgranulares Verzögerungselement 112 entfernt oder deaktiviert werden, und der Zähler kann auf einen Wert von 1 inkrementiert werden, der kleiner als das Äquivalent eines grobgranularen Verzögerungselements 112 ist.
-
Die Steuerung 104 kann implementiert werden, um feingranulare Verzögerungselemente 110 und grobgranulare Verzögerungselemente 112 mit entsprechenden Werten n und m zu steuern.
-
Die Steuerung 104 kann implementiert werden, um n und m mit Stellenschreibweise zu steuern, wobei n und m den am wenigsten und am meisten signifikanten Positionen entsprechen, und wobei eine Basiszahl durch die Anzahl der feingranularen Verzögerungselemente 110 definiert ist, für die eine kombinierte Verzögerung im Wesentlichen gleich der Verzögerung eines grobgranularen Verzögerungselements 112 ist. Die Basiszahl wird hier auch als fein-zu-grob-Konvertierungsfaktor oder einfach als Konvertierungsfaktor bezeichnet.
-
Als ein Beispiel, in dem die Verzögerung eines grobgranularen Verzögerungselements 112 im Wesentlichen gleich der kombinierten Verzögerung von 8 feingranularen Verzögerungselementen 110 ist, ist der Konvertierungsfaktor gleich 8.
-
Der erste Zähler kann konfigurierbar sein, um eine Ausführung für verschiedene Konvertierungsfaktoren zu signalisieren, wie z. B. 4, 5, 6, 7 und/oder 8, ohne darauf beschränkt zu sein.
-
Die Steuerung 104 kann implementiert werden, um den Konvertierungsfaktor basierend auf der gemessenen Verzögerung für eines oder mehrere feingranulare Verzögerungselemente 110 und eines oder mehrere grobgranulare Verzögerungselemente 112 zu kalibrieren, und um den ersten Zähler basierend auf der Kalibrierung zu konfigurieren. Die Kalibrierung des Konvertierungsfaktors und die Konfigurierung des Zählers kann die Gewährleistung der Präzision für Prozess-, Spannungs- und Temperaturvariationen (PVT) unterstützen.
-
Beispielhafte Darstellungen von inkrementellen Anpassungen der Verzögerung werden in 3 angegeben.
-
3 ist eine Darstellung eines Beispiels, in dem eine kombinierte Verzögerung von 8 feingranularen Verzögerungselementen 110 im Wesentlichen gleich der Verzögerung eines grobgranularen Verzögerungselements 112 ist.
-
4 und 5 basieren auf dem Beispiel in 3. Die hier offenbarten Verfahren und Systeme sind jedoch nicht auf diese Beispiele beschränkt.
-
4 ist eine Darstellung der Zustände 402, 404 und 406 der Verzögerungsleitung 102, um eine inkrementelle Zunahme der Verzögerung darzustellen.
-
In Zustand 402 sind 7 feingranulare Verzögerungselemente 110 und 4 grobgranulare Verzögerungselemente 112 aktiviert, entsprechend n = 7 und m = 4.
-
In Zustand 408 kann bestimmt werden, die Verzögerung zu inkrementieren. Dies kann erreicht werden, indem ein weiteres feingranulares Verzögerungselement 110 aktiviert wird, wie in Zustand 404 dargestellt, wobei n = 8 und m = 4.
-
Alternativ dazu kann das Inkrement erreicht werden, indem ein weiteres grobgranulares Verzögerungselement 112 aktiviert wird und 7 feingranulare Verzögerungselemente 110 deaktiviert werden, wie in Zustand 406 dargestellt, wobei n = 0 und m = 5.
-
5 ist eine Darstellung der Zustände 402, 404 und 406 der Verzögerungsleitung 102, um eine inkrementelle Abnahme der Verzögerung darzustellen.
-
In Zustand 502 sind 1 feingranulares Verzögerungselement 110 und 5 grobgranulare Verzögerungselemente 112 aktiviert, entsprechend n = 1 und m = 5.
-
In Zustand 508 kann bestimmt werden, die Verzögerung zu dekrementieren. Dies kann erreicht werden, indem ein weiteres feingranulares Verzögerungselement 110 deaktiviert wird, wie in Zustand 504 dargestellt, wobei n = 0 und m = 5.
-
Alternativ dazu kann das Inkrement erreicht werden, indem ein grobgranulares Verzögerungselement 112 deaktiviert wird und 7 feingranulare Verzögerungselemente 110 aktiviert werden, wie in Zustand 506 dargestellt, wobei n = 8 und m = 4.
-
In beiden Zuständen 504 und 506 kann ein nachfolgendes Dekrement ausgeführt werden, indem n = 7 und m = 4 gesetzt wird.
-
6 ist ein Blockdiagramm einer Beispielimplementierung für einen Pilot-Schaltkreis für Feinverzögerung 210, wobei feingranulare Verzögerungselemente 110 Switch-gesteuerte Kondensatorschaltkreise 110-1 bis 110-i umfasst.
-
Switch-gesteuerte Kondensatorschaltkreise 110-1 bis 110-i können jeweils einzeln steuerbar sein, um mit einem Knoten 602 verbunden zu werden.
-
Switch-gesteuerte Kondensatorschaltkreise 110-1 bis 110-i können jeweils eine relativ kleine ohmsche/kapazitive (RC-)Belastung zu Knoten 602 hinzufügen. Ein ohmscher Teil der RC-Belastungen kann durch Eingangs-Pufferschaltkreise 610 erzeugt werden. Alternativ oder zusätzlich dazu können Widerstände in Switch-gesteuerten Kondensatorschaltkreisen 110-1 bis 110-i vorgesehen sein.
-
Wenn das Referenztaktsignal 106 auf einen Eingangsknoten 604 angewendet wird, übermittelt jede aktivierte RC-Belastung eine relativ kleine Verzögerung auf die Anstiegs- und Abfallzeiten des Referenztaktsignals 106, um eine phasenverzögerte Version des Referenztaktsignals 106 als Pilot für Feinverzögerung 202 an einem Ausgangsknoten 608 zu erzeugen.
-
In 6 ist die Steuerung der Switch-gesteuerten Kondensatorschaltkreise 110-1 bis 110-i dargestellt, wobei die i Steuerungen 612 jeweils selektiv einen entsprechenden der Switch-gesteuerten Kondensatorschaltkreise 110-1 bis 110-i hinzufügen oder entfernen.
-
Der Pilot-Schaltkreis für die Feinverzögerung 210 kann einen Decoder 614 umfassen, um die i Steuerungen 612 basierend auf dem Wert von n erzeugen.
-
Der Pilot-Schaltkreis für die Feinverzögerung 210 kann Ausgangs-Pufferschaltkreise umfassen, die hier als ein Ausgabepuffer 612 dargestellt sind. Der Ausgabepuffer 612 kann zur Isolierung des Pilot-Schaltkreises für die Feinverzögerung von einer nachfolgenden Belastung dienen, wie z. B. von einer grobgranularen Verzögerungsleitung 212.
-
In 6 stimmen die durch jedes der feingranularen Verzögerungselemente 212-1 bis 212-j erzeugten Verzögerungen im Wesentlichen überein, und entsprechen im Wesentlichen allen logischen Logikschaltkreisen, die zur Verzögerung für einen Pilot-Schaltkreis für die Feinverzögerung 210 beitragen, der mit den feingranularen Verzögerungselementen 110 enthalten ist. Wie im Folgenden beschrieben, gleicht die Verzögerungsleitung 102 im Wesentlichen Prozess-, Spannungs- und Temperaturvariationen (PVT) aus, die feingranulare Verzögerungselemente 110 betreffen.
-
7 ist ein Blockdiagramm einer beispielhaften Implementierung einer grobgranularen Verzögerungsleitung 212, wobei grobgranulare Verzögerungselemente 112 Puffer 212-1 bis 212-j und entsprechende Switch-gesteuerte Ausgaben 702-1 bis 702-j enthalten. Die grobgranulare Verzögerungsleitung 212 kann einen Decoder 704 zum Aktivieren einer der j Switch-Steuerungen 706 umfassen, um selektiv eine Ausgabe 702 für einen der Puffer 212-1 bis 212-j als verzögertes Referenztaktsignal 108 zu erzeugen.
-
Die grobgranulare Verzögerungsleitung 212 kann einen Puffer 708 umfassen, um eine Belastung für die Ausgabe 702-j zu erzeugen, die ähnlich den Belastungen der Ausgaben 702-1 bis 702-(j-1) ist.
-
In 7 stimmen die durch jedes der grobgranularen Verzögerungselemente 212-1 bis 212-j erzeugten Verzögerungen im Wesentlichen überein, und entsprechen im Wesentlichen allen Logikschaltkreisen, die zur Verzögerung einer Ausgabe zu einer grobgranularen Verzögerungsleitung 212 beitragen, die mit den grobgranularen Verzögerungselementen 112 enthalten ist. Wie im Folgenden beschrieben, gleicht die Verzögerungsleitung 102 im Wesentlichen PVT-Variationen aus, die grobgranulare Verzögerungselemente 112 betreffen.
-
8 ist ein Logikschaltbild einer beispielhaften Implementierung der grobgranularen Verzögerungsleitung 212, wobei die grobgranularen Verzögerungselemente 112 Puffer 212-1 bis 212-k enthalten.
-
In 8 umfassen die Puffer 212-1 bis 212-k jeweils einen invertierenden Puffer 802 und einen invertierenden 2:1-Multiplexer 804, und die grobgranulare Verzögerungsleitung 212 umfasst einen Decoder 806 zur selektiven Steuerung der Multiplexer 804 basierend auf einem Wert von m.
-
Im Beispiel von 8 gibt der Decoder 806 eine Logik 1 auf einen der Multiplexer 804 aus, basierend auf dem Wert von m, und gibt eine Logik 0 auf die verbleibenden Multiplexer 804 aus.
-
In einem ersten Beispiel geben m = 1 und der Decoder 806 eine Logik 1 an den Multiplexer 804-1 und eine Logik 0 an die Multiplexer 804-2 bis 804-k aus. Dadurch wird der Multiplexer 804-1 veranlasst, die Ausgabe des invertierenden Puffers 802-1 als verzögertes Referenztaktsignal 108 zu invertieren. In diesem Beispiel wird der Pilot-Schaltkreis für die Feinverzögerung 202 zwei Mal invertiert, und hat daher dieselbe Polung wie der Pilot für Feinverzögerung 202, und ist um einen invertierenden Puffer 802 und einen Multiplexer 804 phasenverzögert.
-
Ausgaben von Multiplexer 804-2 bis 804-k werden nicht verwendet, wenn m = 1.
-
In einem zweiten Beispiel geben m = 2 und der Decoder 806 eine Logik 1 an den Multiplexer 804-2 und eine Logik 0 an die verbleibenden Multiplexer 804-1 und 804-3 bis 804-k aus. Dadurch wird Multiplexer 804-2 veranlasst, die Ausgabe des invertierenden Puffers 802-1 zu invertieren, und Multiplexer 804-1 veranlasst, die Ausgabe von Multiplexer 804-2 als verzögertes Referenztaktsignal 108 zu invertieren und auszugeben. In diesem Beispiel wird der Pilot-Schaltkreis für Feinverzögerung 202 vier Mal invertiert, und hat daher dieselbe Polung wie der Pilot für Feinverzögerung 202, und ist um zwei invertierende Puffer 802 und zwei Multiplexer 804 phasenverzögert.
-
Ausgaben von Multiplexer 804-3 bis 804-k werden nicht verwendet, wenn m = 2.
-
In einem dritten Beispiel geben m = 3 und der Decoder 806 eine Logik 1 an den Multiplexer 804-3 und eine Logik 0 an die verbleibenden Multiplexer 804-1, 804-2 und 804-4 bis 804-k aus. Dadurch wird Multiplexer 804-3 veranlasst, die Ausgabe des invertierenden Puffers 802-2 zu invertieren, und Multiplexer 804-2 veranlasst, die Ausgabe des Multiplexer 804-3 zu invertieren und auszugeben, und Multiplexer 804-1 veranlasst, die Ausgabe von Multiplexer 804-2 als verzögertes Referenztaktsignal 108 zu invertieren und auszugeben. In diesem Beispiel wird der Pilot-Schaltkreis für Feinverzögerung 202 sechs Mal invertiert, und hat daher dieselbe Polung wie der Pilot für Feinverzögerung 202, und ist um drei invertierende Puffer 802 und drei Multiplexer 804 phasenverzögert.
-
Ausgaben von Multiplexer 804-4 bis 804-k werden nicht verwendet, wenn m = 3.
-
Basierend auf der Beschreibung im vorliegenden Dokument können Durchschnittsfachleute den Betrieb der Verzögerungselemente 112-1 bis 112-k für andere Werte von m verstehen.
-
In 8 stimmen die durch jedes der grobgranularen Verzögerungselemente 212-1 bis 212-k erzeugten Verzögerungen im Wesentlichen überein, und entsprechen im Wesentlichen allen logischen Logikschaltkreisen, die zur Verzögerung einer Ausgabe zu einer grobgranularen Verzögerungsleitung 212 beitragen, die mit den grobgranularen Verzögerungselementen 112 enthalten ist. Wie im Folgenden beschrieben, gleicht die Verzögerungsleitung 102 im Wesentlichen PVT-Variationen aus, die grobgranulare Verzögerungselemente 112 betreffen.
-
Feingranulare Verzögerungselemente 110 können jeweils implementiert werden, um eine Verzögerung von ungefähr 1/8 der Verzögerung eines der zweiten Verzögerungselemente erzeugen, die in Reaktion auf PVT-Variationen zwischen ungefähr 1/5 bis 1/10 variieren.
-
Feingranulare Verzögerungselemente 110 können jeweils mit einer Verzögerung von beispielsweise weniger als ungefähr 20 Picosekunden (ps) implementiert werden, die aufgrund von PVT-Variationen zwischen ungefähr 8 ps und 15 ps variieren. Die Verzögerung der feingranularen Verzögerungselemente 110 ist jedoch nicht auf diese Beispiele beschränkt.
-
Grobgranulare Verzögerungselemente 112 können jeweils mit einer Verzögerung von beispielsweise ungefähr 130 Picosekunden (ps) implementiert werden, die aufgrund von PVT-Variationen Änderungen unterliegen.
-
Die Verzögerung der feingranularen Verzögerungselemente 110 und grobgranularen Verzögerungselemente 112 sind nicht auf die hier angegebenen Beispiele beschränkt.
-
Die Verzögerungsleitung 102 kann kalibriert werden, um Änderungen der Verzögerung auszugleichen.
-
Die digital gesteuerte Verzögerungsleitung 102 und die digitale Steuerung 104 können, wie in einem der bisherigen Beispielen beschrieben, als digitale Verzögerungsschleife (DLL) implementiert werden. Eine im vorliegenden Text offenbarte DLL kann als eine Master DLL implementiert werden, um die Verzögerungsleitung 102 zu kalibrieren. Eine wie im vorliegenden Text offenbarte DLL kann als eine Slave DLL implementiert werden, um die Verzögerungsleitung 102 basierend auf Kalibrierungsparametern zu betreiben, die von einer Master DLL erzeugt werden, die eine ähnlich implementierte Verzögerungsleitung aufweist.
-
9 ist ein Blockdiagramm einer digitalen DLL 900 umfassend die digital gesteuerte Verzögerungsleitung 102 und eine digitale Steuerung 104, wie in 2 dargestellt, und ferner umfassend einen Phasendetektor 902. In 9, wird ein verzögertes Referenztaktsignal 108 als ein Feedback-Referenztaktsignal 908 dargestellt, und der Phasendetektor 902 ist implementiert, um eine Anweisung 904 einer Phasendifferenz zwischen dem Referenztaktsignal 106 und dem Feedback-Referenztaktsignal 908 zu erzeugen.
-
Der Phasendetektor 902 kann zum Generieren einer Anweisung 904 basierend auf Ankunftszeiten des Referenztaktsignals 106 und des Feedback-Referenztaktsignals 908 implementiert werden, die auf ansteigenden und/oder absteigenden Grenzen der Taktsignale basieren.
-
Der Phasendetektor 902 kann implementiert werden, um die Anweisung 904 als einen von zwei Zuständen zu erzeugen. Ein erster Zustand, hier als „oben” dargestellt kann dem Referenztaktsignal 106 entsprechen, das vor dem verzögerten Referenztaktsignal 108 ist, und kann verwendet werden, um eine Notwendigkeit für die Zunahme der Verzögerung der Verzögerungsleitung 102 anzugeben. Ein zweiter Zustand, hier als „unten” dargestellt kann dem Referenztaktsignal 106 entsprechen, das nach dem verzögerten Referenztaktsignal 108 ist, und kann verwendet werden, um eine Notwendigkeit für die Abnahme der Verzögerung der Verzögerungsleitung 102 anzugeben.
-
Die digitale Steuerung 104 kann implementiert werden, um n und m anzupassen, sodass sie sich im Wesentlich an einer ansteigenden Grenze des Referenztaktsignals 106 ausrichten, wobei eine ansteigende Grenze des Feedback-Referenztaktsignals 908 von einem vorhergehenden Zyklus des Referenztaktsignals 106 erzeugt wird. Bei einer derartigen Ausrichtung repräsentieren oder entsprechen n und m einer Periode des Referenztaktsignals 106 und können als eine Slave-Verzögerungsleitung ausgegeben werden, wie in einem oder mehreren der folgenden Beispiele beschrieben.
-
Eine Auflösung der Anweisung 904 kann als Verzögerung eines feingranularen Verzögerungselements 110 definiert werden, anstatt als Verzögerung eines grobgranularen Verzögerungselements 112 wie es bei konventionellen digitalen DLLs der Fall ist. Eine Verzögerung eines feingranularen Verzögerungselements 110 kann einer Auflösung einer analogen DLL entsprechen oder besser sein.
-
Der Pilot-Schaltkreis für Feinverzögerung 210 kann einen vorgegebenen Widerstand und eine vorgegebene Kapazität umfassen, die eine Verzögerung an das Referenztaktsignal 106 übermittelt, auch wenn keine der feingranularen Verzögerungselemente 110 mit dem Knoten 602 verbunden sind. Der vorgegebene Widerstand und die Kapazität können durch Eingangs-Pufferschaltkreise 610, Ausgangs-Pufferschaltkreise 612 und/oder andere Schaltkreise erzeugt werden.
-
Die DLL 900 kann einen ersten Schaltkreis für die Feinverzögerung 906 umfassen, um einen derartigen vorgegebenen Widerstand bzw. eine Kapazität des Pilot-Schaltkreises für die Feinverzögerung 210 aufzuheben oder auszugleichen. Der erste Schaltkreis für die Feinverzögerung 906 kann einen Schaltkreis umfassen, der ähnlich dem Schaltkreis eines Pilot-Schaltkreises für die Feinverzögerung 210 ist, wie im Folgenden mit Bezug auf 10 beschrieben.
-
10 ist ein Blockdiagramm einer beispielhaften Implementierung des ersten Schaltkreises für die Feinverzögerung 906 umfassend Pufferschaltkreise 910 und 912, die jeweils ähnlich oder identisch mit dem Eingangs-Pufferschaltkreis 610 und dem Ausgangs-Pufferschaltkreis 612 des Pilot-Schaltkreises für die Feinverzögerung 102 in 6. Der erste Schaltkreis für die Feinverzögerung 906 kann Switch-Schaltkreise 914-1 bis 914-i umfassen, die jeweils Switch-Schaltkreise umfassen können, die ähnlich oder identisch mit Switch-Schaltkreisen von Switch-gesteuerten Kondensatorschaltkreisen 110-1 bis 110-i in 6 sind.
-
Ähnlichkeiten zwischen dem ersten Schaltkreis für die Feinverzögerung 906 und dem Pilot-Schaltkreis für die Feinverzögerung 102 können die Gewährleistung der PVT-Variationen unterstützen.
-
11 ist ein Blockdiagramm einer digitalen Steuerung 104 umfassend einen Zähler 1104 zum Inkrementieren und Dekrementieren basierend auf der Phasendifferenzanweisung 904 in 9.
-
Die digitale Steuerung 104 kann ein Entscheidungsmodul 1102 zur Auswertung der Phasendifferenzanweisung 904 im Zeitverlauf umfassen, die eine Integrationsfunktion umfassen kann. Die digitale Steuerung 104 kann implementiert werden, um den Zähler 1104 basierend auf der Auswertung selektiv zu inkrementieren und dekrementieren.
-
Alternativ dazu kann der Zähler 1104 implementiert werden, um in direkter Reaktion auf „oben”- und „unten”-Anweisungen der Phasendifferenzanweisung 904 zu inkrementieren und dekrementieren.
-
Die Steuerung 104 kann eine asynchrone Zustandsmaschine und eine Zustandsmaschine (Finite State Machine, FSM) umfassen.
-
Der Zähler 1104 kann implementiert werden, um eine Ausführungsanweisung 1106 auszugeben, wenn ein Schwellenwert erreicht wird. Der Zählerschwellenwert kann dem Konvertierungsfaktor zwischen den feingranularen Verzögerungselementen 110 und den grobgranularen Verzögerungselementen 112 entsprechen.
-
Der Zähler 1004 kann konfigurierbar sein, um eine Ausführungsanweisung 1006 an einem der mehreren auswählbaren Schwellenwerten zu erzeugen, wie z. B. mehrere Konvertierungsfaktoren einzurichten, die ohne Einschränkung jeden der Werte 4, 5, 6, 7 oder 8 umfassen können. Die Ausführungsanweisung 1106 kann in Reaktion auf Änderungen am Konvertierungsfaktor aufgrund von PVT-Variationen neu konfiguriert werden.
-
Die digitale Steuerung 104 kann einen zweiten Zähler 1108 umfassen, um basierend auf Ausführungsanweisungen 1106 zu inkrementieren und dekrementieren.
-
Die digitale Steuerung 104 kann implementiert werden, um die Anzahl der aktivierten oder ausgewählten feingranularen Verzögerungselemente 110, n, basierend auf Zähler 1104 zu steuern, und um die Anzahl der aktivierten oder ausgewählten grobgranularen Verzögerungselemente 112, m, basierend auf Zähler 1108 zu steuern.
-
Der Zähler 1104 kann einen 3-Bit variablen Zähler umfassen, und Zähler 1108 kann einen 6-Bit-Zähler umfassen, wie in 11 dargestellt. Die Zähler 1104 und 1108 sind jedoch nicht auf das Beispiel in 11 beschränkt.
-
In 9 und 11 werden eine Kombination aus der digital gesteuerten Verzögerungsleitung 102, Phasendetektor 902, die Zähler 1104 und 1108 sowie das Entscheidungsmodul 1002 im vorliegenden Dokument als erste Kalibrierungsschleife oder als bestimmte Werte von n und m bezeichnet, die einem Zyklus des Referenztaktsignals 106 entsprechen.
-
Eine DLL kann eine zweite Kalibrierungsschleife umfassen, um einen fein-zu-grob-Konvertierungsfaktor, P, basierend auf gemessenen Verzögerungen von einem oder mehreren feingranularen Verzögerungselementen 110 und einem oder mehreren grobgranularen Verzögerungselementen 112 zu bestimmen, wie im Folgenden mit Bezug auf 12 und 13 beschrieben.
-
12 ist ein Blockdiagramm der digitalen Steuerung 104 wie in 11 beschrieben, ferner umfassend eine konzeptionelle Darstellung einer zweiten Kalibrierungsschleife 1202 zum Bestimmen des fein-zu-grob-Konvertierungsfaktors, P, wie in 1204 dargestellt. Der Konvertierungsfaktor P kann zum Konfigurieren des Ausführungsschwellenwerts für den Zähler 1104 verwendet werden.
-
13 ist ein Blockdiagramm einer beispielhaften Implementierung der zweiten Kalibrierungsschleife 1202, umfassend einen Zähler 1302 zum Inkrementieren und/oder Dekrementieren eines Werts für den fein-zu-grob-Konvertierungsfaktor P. Der Zähler 1302 kann dem Zähler 1104 in 11 entsprechen oder als anderer Zähler implementiert werden.
-
Während der Kalibrierung eines fein-zu-grob-Konvertierungsfaktors P, wird das Referenztaktsignal 106 dem Pilot-Schaltkreis für die Feinverzögerung 210 bereitgestellt, um ein Feedback-Referenztaktsignal 1304 für den Phasendetektor 902 zu erzeugen. Das Referenztaktsignal 106 wird auch dem ersten Schaltkreis für die Feinverzögerung 906 und der grobgranularen Verzögerungsleitung 212 bereitgestellt, um ein Referenztaktsignal 1306 für den Phasendetektor 902 zu erzeugen.
-
Zudem kann m während der Kalibrierung des fein-zu-grob-Konvertierungsfaktors P auf 1 gesetzt werden, P kann auf Null vorbelegt werden, und der Phasendetektor 902 kann P anpassen, damit sich dieser im Wesentlich an einer ansteigenden Grenze des Referenztaktsignals 1304 ausrichtet, wobei eine ansteigende Grenze des Feedback-Referenztaktsignals 1302 von einem vorhergehenden Zyklus des Referenztaktsignals 106 erzeugt wird. Bei einer derartigen Ausrichtung repräsentiert oder entspricht P einer Anzahl von feingranularen Verzögerungselementen 110, für die eine kombinierte Verzögerung im Wesentlichen einer Verzögerung eines feingranularen Verzögerungselements 112 entspricht.
-
Die kalibrierten Werte n, m, und/oder P können für eine oder mehrere Slave-Verzögerungsleitungen bereitgestellt werden, wie im Folgenden mit Bezug auf 14 beschrieben.
-
14 ist ein Blockdiagramm des Systems 1400, das ein Prozessor-basiertes System umfasst.
-
Das System 1400 kann die Untersysteme 1402 und 1404 umfassen, die jeweils ohne Einschränkung einem integrierten Schaltkreis, einem integrierten Schaltkreis-Die oder -Chip, einer Platine, einem physischen Gerät eines Computersystems und/oder einem Bestandteil davon entsprechen.
-
Das Untersystem 1402 kann ein Funktionssystem 1406 umfassen, das eine integrierte Schaltkreislogik und/oder einen Prozessor umfassen kann. Das Untersystem 1402 kann ferner eine Eingang/Ausgangs-(E/A)Schnittstelle 1408 umfassen, die als Schnittstelle zwischen dem Funktionssystem 1406 und dem Untersystem 1404 dient.
-
Das Untersystem 1404 kann beispielsweise einen Dynamic Random Access Memory (DRAM) und einen asynchronen DRAM umfassen.
-
Das Untersystem 1404 kann implementiert werden, um Daten 1410 und ein zugehöriges Strobe-Taktsignal 1412 zu übertragen. Datenübertragungen der übertragenen Daten 1410 können an ansteigenden und absteigenden Grenzen des Strobe-Taktsignals 1412 auftreten, die als Double Data Rate (DDR) bezeichnet werden.
-
Die E/A-Schnittstelle 1408 kann einen Empfänger 1414 zum Abtasten von Daten 1410 umfassen. Der Takt des Empfängers 1414 kann gesteuert werden, damit die Daten 1410 zwischen Datenübertragungen abgetastet werden, die als Zentrum oder Auge der Daten 1410 bezeichnet werden. Der Takt des Empfängers 1414 kann als digitale Slave DLL 1416 wie im Folgenden beschrieben gesteuert werden.
-
Die E/A-Schnittstelle 1408 kann einen Transmitter 1418 zum Übertragen von Daten 1420 an ein Untersystem 1404 als Daten 1422 umfassen. Der Takt des Transmitters 1418 kann gesteuert werden, sodass ein Auge der Daten 1422 im Wesentlichen bei Übertragungen eines Übertragungstaktsignals 1424 zentriert ist, damit das Untersystem 1404 die übertragenen Daten 1422 basierend auf einem Übertragungstaktsignal 1424 abtasten kann. Der Takt des Transmitters 1418 kann als digitale Slave DLL 1426 wie im Folgenden beschrieben gesteuert werden.
-
Die E/A-Schnittstelle 1408 kann einen Taktsignalgenerator 1428 zum Erzeugen des Referenztaktsignals 106 von einem Systemtaktsignal 1430 umfassen.
-
Die E/A-Schnittstelle 1408 kann eine digitale Master DLL 1432 umfassen, um Werte von n, m und P für eine Periode des Referenztaktsignals 106 zu kalibrieren, wie in einem der in diesem Dokument aufgeführten Beispielen. Slave DLLs 1416 und 1426 können implementiert werden, um entsprechende Taktsignale 1415 und 1425 basierend auf den Werten von n, m und P und entsprechende Phasensteuerungen 1417 und 1427 zu erzeugen.
-
Die digitalen Slave DLLs 1416 und 1426 können implementiert werden, um aktualisierte Werte von n, m und P der digitalen Master DLL 1432 fortlaufend oder zeitweise zu empfangen, die periodisch oder geplant sein können. Aktualisierte Werte von n, m und P können synchron oder asynchron erzeugt werden.
-
Die digitale Master DLL 1432 kann implementiert werden, um fortlaufend ausgeführt zu werden, und kann zwischen der Kalibrierung von n und m sowie der Kalibrierung von P wechseln.
-
Alternativ dazu kann die digitale Master DLL 1432 zeitweise aktiviert werden, um P, n und m zu kalibrieren, und kann andernfalls deaktiviert werden.
-
Wenn die digitale Master DLL 1432 fortlaufend betrieben wird, kann sie ungefähr 1/30 der Energie einer analogen Master DLL mit einer ähnlichen Auflösung verbrauchen und kann sogar weniger Energie verbrauchen, wenn sie zeitweise betrieben wird.
-
Die digitale Master DLL 1432 kann einen Zeitnehmerschaltkreis umfassen, um interne Taktsignale basierend auf einem Plan ein- und auszuschalten. Wen die internen Taktsignale aus sind, können kalibrierte Werte von n, m und P in Zählerregistern behalten werden, und der Strom durch die digitale DLL kann fast Kriechstrom sein.
-
Der Zeitnehmer kann implementiert werden, um die internen Taktsignale mit einem Zeitverhältnis für An/Aus von bis zu 100%, 50%, 25%, 10%, 1% oder weniger zu steuern. Beispielsweise kann der Zeitnehmer implementiert sein, um interne Taktsignale für eine Periode von 5 Millionstelsekunden auszuschalten, und die internen Taktsignale für eine Periode von 50 Nanosekunden einzuschalten.
-
Die digitale Master DLL 1432 kann implementiert werden, um ungefähr 200.000 Aktualisierungen pro Sekunde durchzuführen.
-
Verfahren für die Kalibrierung einer digital steuerbaren Verzögerungsleitung, wie im vorliegenden Dokument offenbart, werden im Folgenden mit Bezug auf 15 und 16 beschrieben.
-
15 ist ein Ablaufdiagramm eines Verfahrens 1500 zum Kalibrieren der Anzahl von ersten Verzögerungselementen, P, für die eine kombinierte Verzögerung im Wesentlichen einer Verzögerung eines der zweiten Verzögerungselemente entspricht.
-
Bei 1502 wird ein erstes Referenztaktsignal mit einem der zweiten Verzögerungselemente zum Generieren eines zweiten Referenztaktsignals verzögert.
-
Bei 1504 wird das erste Referenztaktsignal mit P ersten Verzögerungselementen zum Generieren eines Feedback-Taktsignals verzögert.
-
Bei 1506 werden Phasen des zweiten Referenztaktsignals und des Feedback-Taktsignals verglichen. Der Vergleich kann die Untersuchung von Zustandsübergängen umfassen, wie z. B. ansteigende oder absteigende Grenzen, und kann das Ermitteln eines zuerst Ankommenden basierend auf Zustandsübergängen umfassen.
-
Bei 1508, wenn das Feedback-Taktsignal vor dem zweiten Referenztaktsignal ist, fährt die Verarbeitung bei 1510 fort, wobei P inkrementiert wird, um die Verzögerung der Verzögerungsleitung zu erhöhen.
-
Wenn das Feedback-Taktsignal nach dem zweiten Referenztaktsignal bei 1508 ist, fährt die Verarbeitung bei 1512 fort, wobei P dekrementiert wird, um die Verzögerung der Verzögerungsleitung zu reduzieren.
-
Die Kalibrierung von P kann wie bei 1516 dargestellt fortfahren. Die Kalibrierung von P kann für eine Zeitperiode fortfahren, bei der es sich um eine vorab bestimmte Zeitperiode handeln kann.
-
Wenn die Kalibrierung von P bei 1514 endet, kann P zur Kalibrierung von n und m verwendet werden, wie im Folgenden mit Bezug auf 16 beschrieben.
-
16 ist ein Ablaufdiagramm eines Verfahrens 1600 zum Kalibrieren der Anzahl von ersten Verzögerungselementen, n, und der Anzahl von zweiten Verzögerungselementen, m, für die eine kombinierte Verzögerung einer Periode eines Referenztaktsignals entspricht.
-
Bei 1602 kann n mit Null vorbelegt werden, und m kann mit einer nicht-negativen Ganzzahl {0, 1, 2, ...} vorbelegt werden.
-
Bei 1604, wird ein Referenztaktsignal mit n feingranularen Verzögerungselementen und m grobgranularen Verzögerungselementen verzögert, um ein Feedback-Taktsignal zu erzeugen.
-
Bei 1606 werden Phasen des Referenztaktsignals und des Feedback-Taktsignals verglichen. Der Vergleich kann die Untersuchung von Zustandsübergängen umfassen, wie z. B. ansteigende oder absteigende Grenzen, und kann das Ermitteln eines zuerst Ankommenden basierend auf Zustandsübergängen umfassen.
-
Der Vergleich kann den Vergleich der führenden Grenze des Feedback-Taktsignals mit der führenden Grenze des nachfolgenden Zyklus des Referenztaktsignal umfassen, um n und m relativ zu einer Periode des Referenztaktsignals zu berechnen.
-
Bei 1608, wenn das Feedback-Taktsignal vor dem Referenztaktsignal ist, fährt die Verarbeitung bei 1610 fort, um die Verzögerung der Verzögerungsleitung zu erhöhen.
-
Bei 1610, wenn n kleiner als P-l ist, wird n bei 1610 inkrementiert.
-
Wenn n bei 1610 gleich P-l ist, wird m inkrementiert und n bei 1614 auf Null zurückgesetzt.
-
Kehren wir zu 1608 zurück, wenn das Feedback-Taktsignal nach dem Referenztaktsignal ist, fährt die Verarbeitung bei 1616 fort, um die Verzögerung der Verzögerungsleitung zu verringern.
-
Bei 1616, wenn n größer als 0 ist, wird n bei 1618 dekrementiert.
-
Wenn n bei 1616 gleich 0 ist, wird m dekrementiert und n bei 1620 auf P-I gesetzt.
-
Die Kalibrierung von n und m kann wie bei 1624 dargestellt fortfahren. Die Kalibrierung von n und m kann für eine Zeitperiode fortfahren, bei der es sich um eine vorab bestimmte Zeitperiode handeln kann.
-
Wenn die Kalibrierung von n und m bei 1622 endet, können die kalibrierten Werte von P, n und m bei 1626 ausgegeben werden, wie z. B. bei einer Slave-Verzögerungsleitung.
-
Eine oder mehrere der im vorliegenden Dokument offenbarten Funktionen kann in Hardware, Software, Firmware und Kombinationen davon implementiert werden, einschließlich diskrete und integrierte Schaltkreislogik, anwendungsspezifische integrierte Schaltkreislogik (ASIC) und Microcontroller, und können als Teil eines domainspezifischen integrierten Schaltkreispaketes und/oder einer Kombination von integrierten Schaltkreispaketen implementiert werden.
-
Die Verfahren und Systeme sind in diesem Dokument mithilfe von funktionellen Basiskomponenten offenbart, die die Funktionen, Eigenschaften und Beziehungen davon darstellen. Mindestens ein paar der Einschränkungen dieser funktionellen Basiskomponenten wurden im vorliegenden Dokument willkürlich zur Erläuterung definiert. Alternative Einschränkungen können definiert werden, solange die angegebenen Funktionen und Beziehungen davon angemessen ausgeführt werden können.
-
Während verschiedene Ausführungsformen im vorliegenden Dokument offenbart sind, versteht es sich, dass diese als Beispiel und nicht als Einschränkung dargestellt werden. Dem Fachmann wird klar sein, dass hier verschiedene Änderungen in Form und Detail vorgenommen werden können, ohne vom Geist und Geltungsbereich der hier offenbarten Verfahren und Systeme abzuweichen. Daher sollten auch die Breite und der Geltungsbereich der Ansprüche nicht durch eine der hier angegebenen Beispielausführungen eingeschränkt werden