-
ALLGEMEINER STAND DER TECHNIK
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft das Erzeugen von Taktsignalen für Elektronikeinrichtungen und insbesondere das Erzeugen von Taktsignalen unter Verwendung von Phasenregelkreisen mit Ausgangsteilern.
-
Beschreibung der verwandten Technik
-
Ein typischer Taktgenerator verwendet einen Phasenregelkreis, der mit einem Referenzsignal von einer Quelle wie etwa einem Quarzoszillator versorgt wird, um Ausgangstaktsignale mit mit einer Zielanwendung übereinstimmenden Frequenzen zu erzeugen. Ein Teilerwert eines Rückkopplungsteilers in dem Phasenregelkreis kann die Frequenz eines durch den Taktgenerator gelieferten Ausgangstaktsignals bestimmen. Somit wird eine durch ein Referenztaktsignal an den Phasenregelkreis gelieferte Referenzfrequenz auf Basis des Teilerwerts multipliziert, um das synthetisierte Taktsignal zu erzeugen. Taktgeneratoren, die mehrere Ausgangstaktsignale synthetisieren, verwenden einen getrennten Phasenregelkreis für jedes unabhängig synthetisierte Taktsignal. Die getrennten Phasenregelkreise weisen geringfügig unterschiedliche Bandbreiten- und Schleifencharakteristika auf, die zu einer wechselnden Phasenbeziehung zwischen jeweils zwei unabhängig synthetisierten Taktsignalen führen. Spezifikationen für einige Anwendungen erfordern jedoch, dass die Frequenzen und Phasen von mehreren Ausgangstaktsignalen für eine beliebige Kombination von fraktionalen Teilerwerten synchron sind. Dementsprechend werden verbesserte Techniken zum Synthetisieren von Taktsignalen gewünscht.
-
KURZE DARSTELLUNG VON AUSFÜHRUNGSFORMEN DER ERFINDUNG
-
In mindestens einer Ausführungsform enthält ein Taktgenerator einen Schleifenfilter, der konfiguriert ist zum Erzeugen eines gefilterten Phasendifferenzsignals auf Basis eines Referenztaktsignals und eines Rückkopplungstaktsignals. Der Taktgenerator enthält einen ersten Ausgangsteiler, der konfiguriert ist zum Erzeugen eines ersten Ausgangstaktsignals als Reaktion auf ein Eingangstaktsignal und ein erstes Teilersteuersignal auf Basis des gefilterten Phasendifferenzsignals. Der erste Ausgangsteiler ist konfiguriert zum Erzeugen eines ersten Zeitcodes auf Basis eines Zählersignals und einer ersten Aktualisierung des ersten Ausgangstaktsignals als Antwort auf eine Aktualisierung des gefilterten Phasendifferenzsignals auf einen ersten Wert von einem zweiten Wert. Das Rückkopplungstaktsignal basiert auf dem ersten Ausgangstaktsignal. Der Taktgenerator enthält einen zweiten Ausgangsteiler, der konfiguriert ist zum Erzeugen eines zweiten Ausgangstaktsignals als Reaktion auf das Eingangstaktsignal, ein zweites Teilersteuersignal und ein Korrektursignal. Das zweite Teilersteuersignal basiert auf dem gefilterten Phasendifferenzsignal. Der zweite Ausgangsteiler ist konfiguriert zum Erzeugen eines zweiten Zeitcodes auf Basis des Zählersignals und einer zweiten Aktualisierung des zweiten Ausgangstaktsignals als Antwort auf die Aktualisierung des gefilterten Phasendifferenzsignals. Der Taktgenerator enthält eine Fehlerkorrekturschaltung, die konfiguriert ist zum Erzeugen des Korrektursignals auf Basis des ersten Zeitcodes, des zweiten Zeitcodes, des ersten Werts und des zweiten Werts.
-
In mindestens einer Ausführungsform beinhaltet ein Verfahren zum Betreiben eines Taktgenerators das Erzeugen eines gefilterten Phasendifferenzsignals auf Basis eines Referenztaktsignals und eines Rückkopplungstaktsignals. Das Verfahren beinhaltet das Erzeugen eines ersten Ausgangstaktsignals auf Basis eines ersten Teilersteuersignals und eines Eingangstaktsignals. Das erste Teilersteuersignal basiert auf dem gefilterten Phasendifferenzsignal. Das Rückkopplungstaktsignal basiert auf dem ersten Ausgangstaktsignal. Das Verfahren beinhaltet das Erzeugen eines ersten Zeitcodes auf Basis eines Zählersignals und einer ersten Aktualisierung des ersten Ausgangstaktsignals als Antwort auf eine Aktualisierung des gefilterten Phasendifferenzsignals auf einen ersten Wert von einem zweiten Wert. Das Verfahren beinhaltet das Erzeugen eines zweiten Ausgangstaktsignals auf Basis eines zweiten Teilersteuersignals, des Eingangstaktsignals und eines Fehlerkorrektursignals. Das zweite Teilersteuersignal basiert auf dem gefilterten Phasendifferenzsignal. Das Verfahren beinhaltet das Erzeugen eines zweiten Zeitcodes auf Basis des Zählersignals und einer zweiten Aktualisierung des zweiten Ausgangstaktsignals als Antwort auf die Aktualisierung des gefilterten Phasendifferenzsignals. Das Verfahren beinhaltet das Erzeugen des Fehlerkorrektursignals auf Basis des ersten Werts, des zweiten Werts, des ersten Zeitcodes und des zweiten Zeitcodes.
-
In mindestens einer Ausführungsform beinhaltet ein Verfahren zum Betreiben eines Taktprodukts als Antwort darauf, dass ein erster Teilerwert ein ganzzahliges Vielfaches eines zweiten Teilerwerts ist, das Konfigurieren eines mit einem ersten Phasenregelkreis kaskadierten ersten Ausgangsteilers und eines mit dem ersten Ausgangsteiler kaskadierten zweiten Ausgangsteilers. Das Verfahren beinhaltet als Antwort darauf, dass der erste Teilerwert ein nicht-ganzzahliges Vielfaches des zweiten Teilerwerts ist, das Konfigurieren des mit dem ersten Phasenregelkreis kaskadierten ersten Ausgangsteilers und das Liefern eines Rückkopplungssignals des ersten Phasenregelkreises und das Konfigurieren eines mit dem ersten Phasenregelkreis kaskadierten zweiten Ausgangsteilers parallel mit dem ersten Ausgangsteiler und als Reaktion auf ein Fehlerkorrektursignal auf Basis einer Differenz bei Antwortzeiten des ersten Ausgangsteilers und des zweiten Ausgangsteilers auf eine Änderung bei einem gefilterten Phasendifferenzsignal des ersten Phasenregelkreises.
-
Figurenliste
-
Die vorliegende Erfindung kann besser verstanden werden und ihre zahlreichen Aufgaben, Merkmale und Vorteile können dem Fachmann durch Bezugnahme auf die beiliegenden Zeichnungen offensichtlich gemacht werden.
- 1A veranschaulicht ein Funktionsblockdiagramm eines beispielhaften Taktprodukts.
- 2 veranschaulicht ein Funktionsblockdiagramm eines Taktgenerators einschließlich parallel gekoppelter Ausgangsteiler.
- 3 veranschaulicht ein Funktionsblockdiagramm eines beispielhaften interpolativen Ausgangsteilers.
- 4 veranschaulicht ein Funktionsblockdiagramm eines Taktgenerators einschließlich mehrerer Ausgangsteiler.
- 5 veranschaulicht ein Funktionsblockdiagramm eines Taktgenerators einschließlich pseudokaskadierter Ausgangsteiler mit Fehlerkorrektur in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
- 6 veranschaulicht ein Funktionsblockdiagramm eines beispielhaften Master-Ausgangsteilers des Taktgenerators von 5 in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
- 7 veranschaulicht ein Funktionsblockdiagramm eines beispielhaften Slave-Ausgangsteilers des Taktgenerators von 5 in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
- 8 veranschaulicht ein Zeitsteuerdiagramm einschließlich beispielhafter Wellenformen für den Taktgenerator von 5 in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
- 9 veranschaulicht einen beispielhaften Informations- und Steuerfluss für eine Konfiguration eines Taktprodukts in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
- 10 veranschaulicht ein Funktionsblockdiagramm einer Konfiguration eines Taktprodukts in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung.
-
Die Verwendung der gleichen Bezugssymbole in verschiedenen Zeichnungen zeigt ähnliche oder identische Elemente an.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Unter Bezugnahme auf 1 enthält eine Ausführungsform eines Taktprodukts 100 einen Controller 102 und einen Taktgenerator 104, die mindestens ein empfangenes Taktsignal (zum Beispiel CLKIN(P:1)) unter Verwendung eines Taktsignals REFCLK (zum Beispiel ein Taktsignal, erzeugt unter Verwendung eines Quarzoszillators einschließlich eines externen Quarzes, an einen XA/XB-Eingangsanschluss gekoppelt) überwacht und mindestens ein Ausgangstaktsignal CLKOUT(N:1) und mindestens ein Taktqualitätssignal liefert, wobei P und N ganze Zahlen größer als Null sind. Der Controller 102 liefert Konfigurationsinformationen an den Taktgenerator 104 unter Verwendung von Schnittstellensignalen CTL. Der Taktgenerator 104 liefert Taktqualitätsinformationen (zum Beispiel LOSXA-XB oder CLK_STATUS) an den Controller 102, der einen oder mehrere Alarmsignale (zum Beispiel CLK_FAULT) auf Basis der Taktqualitätsinformationen ausgibt.
-
Unter Bezugnahme auf 2 enthält der Taktgenerator 204 einen Phasenregelkreis 110, der verwendet wird, um ein Taktsignal CLKVCO zu erzeugen. In einer Ausführungsform empfängt der Phasenregelkreis 110 ein stabiles Taktsignal von einer stabilen Quelle, wie etwa einem Quarzoszillator 101, einem MEMS (microelectromechanical structure)-Oszillator oder einer anderen Quelle mit geringem Jitter. Der Phasenregelkreis 110 enthält einen Phasen-/Frequenzdetektor 112, der ein Phasendifferenzsignal auf Basis des stabilen Taktsignals und ein durch einen Rückkopplungsteiler 118 geliefertes Rückkopplungssignal erzeugt. Der Phasen-/ Frequenzdetektor 112 liefert das Phasendifferenzsignal über einen Schleifenfilter 114 an einen spannungsgesteuerten Oszillator [VCO - voltage controlled oscillator] 116. Der spannungsgesteuerte Oszillator 116 kann als ein Ringoszillator, ein LC-Oszillator oder eine andere geeignete Oszillatorstruktur implementiert werden.
-
In einer Ausführungsform des Taktgenerators 204 liefert der Phasenregelkreis 110 das Taktsignal CLKVCO an einen Ausgangsteiler. Obwohl der Ausgangsteiler von 2 ein interpolativer Ausgangsteiler ist, ist der Ausgangsteiler in anderen Ausführungsformen ein Ganzzahl-Frequenzteiler oder ein anderer frequenzteilender Mechanismus. Der interpolative Ausgangsteiler 166 ist konfiguriert als ein digital gesteuerter Oszillator, der auf ein gefiltertes Phasendifferenzsignal OL_OUT1 und auf den interpolativen Ausgangsteiler 168 reagiert, der konfiguriert ist als ein digital gesteuerter Oszillator, der auf ein gefiltertes Phasendifferenzsignal OL_OUT2 reagiert. Ein äußerer Phasenregelkreis 130 und ein äußerer Phasenregelkreis 132 erzeugen das gefilterte Phasendifferenzsignal OL_OUT1 beziehungsweise das gefilterte Phasendifferenzsignal OL_OUT2, die als unabhängige fraktionale Frequenzteilerverhältnisse für den interpolativen Ausgangsteiler 166 beziehungsweise den interpolativen Ausgangsteiler 168 verwendet werden. Verschiedene Bandbreiten und Schleifencharakteristika bewirken, dass das Ausgangstaktsignal CLKOUT1 und das Ausgangstaktsignal CLKOUT2 eine über der Zeit veränderliche Beziehung aufweisen.
-
3 veranschaulicht einen beispielhaften interpolativen Ausgangsteiler. Die digitale Schaltung 302 erzeugt digitale Steuersignale für einen analogen Abschnitt 304 des interpolativen Ausgangsteilers einschließlich eines Multi-Modulus-Teilers 306 und eines Phaseninterpolators 308 auf Basis eines Eingangsteiler-Steuercodes DIV. Die digitale Schaltung 302 erzeugt Sequenzen von entsprechenden digitalen Steuercodes DIVCODE und PICODE, die den Multi-Modulus-Teiler 306 beziehungsweise den Phaseninterpolator 308 ansteuern. Der Multi-Modulus-Teiler 306 zählt eine ganzzahlige Anzahl entsprechender Flanken des Taktsignals CLKVCO herunter, wie durch den digitalen Steuercode DIVCODE angezeigt, bevor er eine entsprechende Ausgangsflanke des frequenzgeteilten Taktsignals FDIVCLK erzeugt. Der Phaseninterpolator 308 interpoliert zwischen dem frequenzgeteilten Taktsignal FDIVCLK und einer oder mehreren verzögerten Versionen des frequenzgeteilten Taktsignals FDIVCLK (zum Beispiel einer oder mehrere gleichmäßig beabstandete Phasen des frequenzgeteilten Taktsignals FDIVCLK) auf Basis des digitalen Steuercodes PICODE, was dem Phasenfehler entspricht, unter Verwendung von Techniken, die in der Technik wohlbekannt sind. In mindestens einer Ausführungsform verzögert der Phaseninterpolator 308 das frequenzgeteilte Taktsignal FDIVCLK durch Wählen unter 256 gleichmäßig beabstandeten Phasen des frequenzgeteilten Taktsignals FDIVCLK.
-
4 veranschaulicht ein Funktionsblockdiagramm eines Taktgenerators einschließlich mehrerer parallel gekoppelter Ausgangsteiler. Obwohl 4 Ausgangsteiler veranschaulicht, die interpolative Ausgangsteiler sind, sind in anderen Ausführungsformen die Ausgangsteiler Ganzzahl-Frequenzteiler oder andere frequenzteilende Mechanismen. Mehrere Ausgangsteiler empfangen entsprechende Teilersteuersignale, die durch ein gefiltertes Phasendifferenzsignal eines Phasenregelkreises modulierte entsprechende Teilercodes sind. Beispielsweise werden der interpolative Ausgangsteiler 166 und der interpolative Ausgangsteiler 168 durch jeweilige Teilersteuersignale DIV1 und DIV2 auf Basis des gleichen gefilterten Phasendifferenzsignals OL OUT des äußeren Phasenregelkreises 430 angesteuert. Der interpolative Ausgangsteiler 166 ist als ein Master-Ausgangsteiler konfiguriert, der ein Ausgangstaktsignal CLKOUT1 erzeugt, das den Rückkopplungsteiler 140 des Phasenregelkreises 430 ansteuert. Der interpolative Ausgangsteiler 168 ist als ein Slave-Ausgangsteiler konfiguriert, der die Ausgangstaktsignale CLKOUT1 und CLKOUT2 erzeugt, angesteuert durch das gefilterte Phasendifferenzsignal OL_OUT, das auf Basis des durch den interpolativen Ausgangsteiler 166 gelieferten Rückkopplungssignals erzeugt wird. Ein Multiplizierer 232 und ein Multiplizierer 234 erzeugen Teilersteuersignale DIV1 bzw. DIV2 auf Basis des gefilterten Phasendifferenzsignals OL OUT und unabhängiger multiplikativer Codes M1/N1 beziehungsweise M2/N2.
-
Jeder Ausgangsteiler moduliert eine entsprechende interne Version des Taktsignals CLKVCO unter Verwendung eines entsprechenden Signals auf Basis des gefilterten Phasendifferenzsignals OL_OUT und eines entsprechenden Multiplizierercodes Mn/N (zum Beispiel M1/N1 beziehungsweise M2/N2, obwohl in einigen Ausführungsformen N1 = N2 = N). Da interpolative Ausgangsteiler arbeiten, indem sie eine frequenzgeteilte Taktflanke, erzeugt durch Herabzählen eines ganzzahligen Steuercodes DIVn, wie oben beschrieben, um ein fraktionales Ausmaß verzögern, akzeptiert der interpolative Ausgangsteiler 166 einen nächsten Wert des gefilterten Phasendifferenzsignals OL OUT zu einer anderen Zeit als der interpolative Ausgangsteiler 168 und Flanken der Ausgangstaktsignale CLKOUT1 und CLKOUT2 sind fehlausgerichtet. Somit werden die interpolativen Ausgangsteiler für eine kurze Zeit als Reaktion auf jede Änderung in dem Modulationswert (zum Beispiel gefiltertes Phasendifferenzsignal OL_OUT) nicht synchron sein. Im Allgemeinen weist das Taktsignal CLKVCO eine Frequenz auf, die viel schneller ist als die Aktualisierungsrate des gefilterten Phasendifferenzsignals OL OUT (zum Beispiel um mindestens eine Größenordnung). In einem Ausführungsbeispiel eines Taktgenerators weist das Taktsignal CLKVCO eine Frequenz von etwa 13 GHz auf und das gefilterte Phasendifferenzsignal OL_OUT aktualisiert mit einer Rate von etwa 1 MHz. Jedoch können andere Kombinationen von Frequenzen verwendet werden. Im Allgemeinen ist eine einzelne Phasenfehlausrichtung zwischen den Ausgangstaktflanken kleiner als die Granularität des Ausgangsteilers und ist in den Ausgangstaktsignalen nicht detektierbar. Jedoch bewirken einige Teilerwerte und Modulationswerte, dass diese Phasendifferenz in einer Richtung akkumuliert (zum Beispiel aufgrund einer großen Phasendifferenz als Reaktion auf ein Schalten des Referenztaktsignals), oder bewirken eine Zufallsphasenvariation.
-
Unter Bezugnahme auf 5, 6, 7 und 8 koppelt eine Technik, die eine Phasenfehlausrichtung von Ausgangstaktsignalen, erzeugt durch unabhängig gesteuerte Ausgangsteiler, reduziert, die Ausgangsteiler in einer pseudokaskadierten Konfiguration und enthält eine Fehlerkorrektur. Obwohl die 5, 6, 7 und 8 Ausgangsteiler veranschaulichen, die interpolative Ausgangsteiler sind, sind die Ausgangsteiler in anderen Ausführungsformen Ganzzahl-Frequenzteiler oder andere frequenzteilende Mechanismen. Ein Pseudokaskadenprozessor 170 erzeugt ein Fehlerkorrektursignal und liefert das Fehlerkorrektursignal an einen Slave-Ausgangsteiler. In einer Ausführungsform des Taktgenerators 504 erzeugt jeder Ausgangsteiler in der Pseudokaskadenkonfiguration ein digitales Zeitsignal, das einer Realisierung einer Aktualisierung des gefilterten Phasendifferenzsignals OL_OUT von einem aktuellen Wert zu einem nächsten Wert entspricht. Der Pseudokaskadenprozessor 170 erzeugt das Fehlerkorrektursignal auf Basis der digitalen Zeitsignale. Ein entsprechender Slave-Ausgangsteiler verwendet das Fehlerkorrektursignal zur Wiederausrichtung des Ausgangstaktsignals, zum Beispiel in einem Slave-Ausgangsteiler, vor einer nächsten Aktualisierung des gefilterten Phasendifferenzsignals OL OUT. Beispielsweise ist ein interpolativer Master-Ausgangsteiler 402 als ein Master-Ausgangsteiler konfiguriert, und ein interpolativer Slave-Ausgangsteiler 452 ist als ein Slave-Ausgangsteiler konfiguriert. Sowohl der interpolative Master-Ausgangsteiler 402 als auch der interpolative Slave-Ausgangsteiler 452 erzeugen entsprechende Zeitcodes (zum Beispiel TIMESTAMP1 und TIMESTAMP2) auf Basis eines Zählersignals (zum Beispiel eines Echtzeit-Taktsignals). Die Zeitcodes zeigen die Zeit an, zu der der entsprechende Ausgangsteiler das Erzeugen des Ausgangstaktsignals beginnt, auf Basis von entsprechenden aktualisierten digitalen Steuersignalen DIVCODEn und PICODEn als Reaktion auf ein aktualisiertes gefiltertes Phasendifferenzsignal OL_OUT. Der Slave-Ausgangsteiler verwendet das Fehlerkorrektursignal CORRECTION zur Ausrichtung der Phase des Ausgangstaktsignals CLKOUT2 auf das Ausgangstaktsignal CLKOUT1.
-
In mindestens einer Ausführungsform schaltet der Schleifenfilter 138 oder eine andere Schaltung das Steuersignal OUT_LOAD synchron mit einer Aktualisierung des gefilterten Phasendifferenzsignals OL_OUT um, um den Ausgangsteilern anzuzeigen, dass der Schleifenfilter 138 das gefilterte Phasendifferenzsignal OL_OUT aktualisiert hat. Eine Synchronisationsschaltung 404 erzeugt das Steuersignal OUT_LOAD_SYNCn, das auf das Ausgangstaktsignal CLKOUTn synchronisiert ist. Das Steuersignal OUT_LOAD_SYNCn löst eine digitale Schaltung 302 aus (zum Beispiel steuert Zustandselemente innerhalb der digitalen Schaltung 302) zum Aktualisieren gemäß dem neuen Wert von DIVn, der auf dem aktualisierten gefilterten Phasendifferenzsignal OL OUT basiert. Das heißt, die digitale Schaltung 302 aktualisiert entsprechende digitale Steuersignale DIVCODEn und PICODEn als Reaktion auf das Steuersignal OUT_LOAD_SYNCn.
-
In mindestens einer Ausführungsform empfängt eine Korrektursteuerung 454 des interpolativen Slave-Ausgangsteilers 452 einen digitalen Korrekturwert von dem Pseudokaskadenprozessor 170. Bei mindestens einer Ausführungsform liefert die Korrektursteuerung 454 diesen digitalen Korrekturwert an einen Addierer, der den digitalen Korrekturwert mit PICODE2 kombiniert, um das Ausgangstaktsignal CLKOUT2 auf das Ausgangstaktsignal CLKOUT1 auszurichten. Bei einer anderen Ausführungsform lädt die Korrektursteuerschaltung 454 den digitalen Korrekturwert CORRECTION in einen Zähler, der einen ganzzahligen Teil des digitalen Korrekturwerts auf null herunterzählt, während sie Steuersignale an eine 1-Bit-Addiererschaltung liefert, die das digitale Steuersignal PICODE2 entsprechend inkrementiert oder dekrementiert, um das Ausgangstaktsignal CLKOUT2 über mehrere Zyklen des Ausgangstaktsignals CLKOUT2 auf das Ausgangstaktsignal CLKOUT1 auszurichten. Ein etwaiger arithmetischer Überlauf löst ein entsprechendes Inkrement oder Dekrement zu dem digitalen Steuersignal DIVCODE2 aus. Außerdem speichert die Korrektursteuerung 454 einen fraktionalen Abschnitt des digitalen Korrekturwerts CORRECTION in einem Akkumulator mit ausreichender Präzision, um den Ausgang während einer ausreichenden Zeitdauer für die Zielanwendung ausgerichtet zu halten. Im Allgemeinen bestimmt die Präzision des Akkumulators den größtmöglichen Fehler über der Zeit. Wenn die Inhalte des Akkumulators einen ganzzahligen Wert erreichen, inkrementiert die digitale Schaltung 302 den Zähler und löscht oder reduziert die Inhalte des Akkumulators. In anderen Ausführungsformen implementieren andere Techniken die Korrektur, zum Beispiel implementiert eine Volladdiererschaltung die Korrektur durch Addieren des digitalen Korrekturwerts CORRECTION zu dem Steuersignal PICODE2.
-
In mindestens einer Ausführungsform eines interpolativen Ausgangsteilers ist die digitale Schaltung 302 ein Delta-Sigma-Modulator erster Ordnung, der die entsprechenden digitalen Steuersignale DIVCODEn und PICODEn erzeugt. In mindestens einer Ausführungsform weist die digitale Schaltung 302 eine Pipeline-Architektur auf. Ein Ausführungsbeispiel der digitalen Schaltung 302 enthält einen Delta-Sigma-Modulator erster Ordnung, der als ein Frequenzmodulator konfiguriert ist, der mit einem Phasenmodulator einschließlich mindestens einem Delta-Sigma-Modulator höherer Ordnung kaskadiert ist (zum Beispiel einem Delta-Sigma-Modulator dritter Ordnung), der das digitale Steuersignal DIVCODEn und PICODEn aktualisiert. Die Pipeline-Struktur der digitalen Schaltung 302 führt eine Verzögerung ein (das heißt einen oder mehrere Zyklen des Ausgangstaktsignals CLKOUTn) zwischen der digitalen Schaltung 302, die durch das Steuersignal OUT_LOAD_SYNCn zum Aktualisieren ausgelöst wird, und entsprechenden Aktualisierungen an digitalen Steuersignalen DIVCODEn und PICODEn. In einem Ausführungsbeispiel der digitalen Schaltung 302 beträgt diese Verzögerung mehrere Zyklen (von zum Beispiel zehn Zyklen des Ausgangstaktsignals CLKOUTn), nachdem das Steuersignal OUT_LOAD_SYNCn die digitale Schaltung 302 zum Aktualisieren umschaltet.
-
Die Wellenformen von 8 veranschaulichen den Betrieb des Taktgenerators 504 unter Verwendung von beispielhaften übertriebenen Werten. Es sei angenommen, dass Teilersteuersignale DIV1 und DIV2 eine Teilung um 100 beziehungsweise eine Teilung um 200 angeben. Das Steuersignal OUT_LOAD schaltet um, um eine Aktualisierung auf den Wert des gefilterten Phasendifferenzsignals OL_OUT anzuzeigen. Der interpolative Master-Ausgangsteiler 402 und der interpolative Slave-Ausgangsteiler 452 detektieren jeweils das Umschalten des Steuersignals OUT_LOAD an der entsprechenden steigenden Flanke von CLKOUT1 beziehungsweise CLKOUT2. Der interpolative Master-Ausgangsteiler 402 und der interpolative Slave-Ausgangsteiler 452 ändern entsprechende Steuersignale DIVCODEn und PICODEn nach einer Verzögerung von zehn Zyklen des entsprechenden Ausgangstaktsignals CLKOUTn durch die digitale Schaltung 302. Bei einem Echtzeit-Zählwert 8000 aktualisiert die digitale Schaltung 302 die Ausgangssteuersignale DIVCODE1 und PICODE1, und der interpolative Master-Ausgangsteiler 402 beginnt durch 101 zu teilen. Der Wert des Zeitcodes TIMESTAMP1 beträgt 8000, und eine Zeitstempel-Aktualisierungsschaltung 408 liefert den aktualisierten Wert des Zeitcodes TIMESTAMP1 an den Pseudokaskadenprozessor 170. Bei einem Echtzeit-Zählwert 9115 aktualisiert die digitale Schaltung 302 die Ausgangssteuersignale DIVCODE2 und PICODE2, und der interpolative Slave-Ausgangsteiler 452 beginnt durch 202 zu teilen. Der Wert des Zeitcodes TIMESTAMP2 beträgt 9115, und die Zeitstempel-Aktualisierungsschaltung 408 liefert den aktualisierten Zeitcode TIMESTAMP2 an den Pseudokaskadenprozessor 170.
-
In mindestens einer Ausführungsform bestimmt der Pseudokaskadenprozessor
170 den Korrekturwert auf Basis der Zeitdifferenz zwischen Änderungen an Steuersignalen DIVCODE
2 und PICODE
2 des interpolativen Slave-Ausgangsteilers
452 und Änderungen an Steuersignalen DIVCODE
1 und PICODE
1 des interpolativen Master-Ausgangsteilers
402 und eine entsprechende Änderung an dem gefilterten Phasendifferenzsignal OL_OUT:
Wenn die Differenz bei den Zeitstempeln
1115 Echtzeit-Taktzyklen beträgt und die Änderung an dem gefilterten Phasendifferenzsignal OL_OUT 0,01 beträgt, wie oben beschrieben, berechnet der Pseudokaskadenprozessor
170 den Wert des Korrektursignals CORRECTION als:
-
In einer Ausführungsform lädt die Korrektursteuerschaltung 454 den Korrekturwert in einen Zähler und implementiert eine Korrektur jeweils um ein niedrigstwertiges Bit. In einer Ausführungsform beträgt die Korrektur um ein niedrigstwertiges Bit weniger als eine Zeiteinheit, die 300 Femtosekunden ist. Die Korrektursteuerschaltung 454 lädt den fraktionalen Teil, 0,15, in einen Akkumulator. Der ganzzahlige Teil, 11, wird durch die Korrektursteuerschaltung 454 zum Abändern des Steuersignals PICODE2 um Eins verwendet, verteilt über 11 Zyklen. Während die Ausführungsbeispiele einen Master-Ausgangsteiler und einen Slave-Ausgangsteiler verwenden, kann außerdem eine beliebige ganzzahlige Zahl an Slave-Ausgangsteilern an einen Master-Ausgangsteiler gekoppelt werden für eine Synchronisation von entsprechenden Ausgangstaktsignalen mit dem durch den Master-Ausgangsteiler erzeugten Ausgangstaktsignal. Beispielsweise kann ein Master-Ausgangsteiler mit vier Slave-Ausgangsteilern pseudokaskadiert sein.
-
Die Pseudokaskadierte-Ausgangsteiler der Ausführungsformen der 5-8 erfüllen Jitter-Spezifikationen, selbst wenn die durch M1/N und M2/N implementierten Teilungsverhältnisse rationale, fraktional bezogene (das heißt nicht ganzzahlig bezogene) Verhältnisse sind. Die Pseudokaskadenverarbeitung korrigiert relativ kleine Phasenfehler, die über der Zeit akkumulieren, um einen Phasenfehler und einen verwandten Frequenzfehler zu eliminieren. Obwohl die zum Veranschaulichen des Betriebs der Phasenfehlerkorrektur in 8 verwendeten Werte unter einigen Umständen auftreten können (zum Beispiel ein Schalten des Taktsignals REFCLK 120), sind jene Werte nur beispielhaft, und andere tatsächliche Teilerwerte weisen eine fraktionale Beziehung auf und verursachen kleinere Änderungen an dem gefilterten Phasendifferenzsignal OL_OUT und Zeitstempeldifferenzen. Im normalen Betrieb verfolgt der Phasenregelkreis geringfügige Änderungen, zum Beispiel Änderungen zu dem Taktsignal REFCLK 120 und Änderungen am Quarzoszillator 101. Um jene geringfügigen Änderungen zu verfolgen, weist das gefilterte Phasendifferenzsignal OL OUT eine fraktionale Beziehung auf, die sich für die Zielanwendung eignet (zum Beispiel eine fraktionale Präzision von 10-12 für eine Verfolgung bei 1 × 106 Aktualisierungen pro Sekunde), und ein Ausgangsteiler weist eine Präzision auf, die für die Zielanwendung geeignet ist (zum Beispiel eine Präzision von 300 fs pro Teilung und Akkumulation des Rests bei 10-21 zur Verfolgung bei 1 × 106 Aktualisierungen pro Sekunde).
-
Unter Bezugnahme auf 9 und 10 konfiguriert in mindestens einer Ausführungsform ein Taktprodukt selektiv einen Taktgenerator gemäß für eine Zielanwendung gewählten Frequenzteilungswerten. Beim Implementieren von mehreren, mit ganzzahlbezogenen Teilerwerten konfigurierten interpolativen Ausgangsteilern kann der interpolative Ausgangsteiler mit einem Ganzzahl-Frequenzteiler (oder einem interpolativen Ausgangsteiler, der konfiguriert ist, eine Ganzzahl-Frequenzteilung durchzuführen) kaskadiert werden, wodurch ein vernachlässigbarer oder kein Phasenfehler in das Ausgangstaktsignal eingeführt wird und eine Pseudokaskadenverarbeitung nicht erforderlich ist. Deshalb konfiguriert ein selektiv konfigurierbares Taktprodukt einen oder mehrere Phasenregelkreise (einen Innenschleifen-Phasenregelkreis und einen Außenschleifen-Phasenregelkreis), um Ausgangsteiler 966 und 968 (zum Beispiel eine Kombination aus interpolativen Ausgangsteilern und Ganzzahl-Teilern) anzusteuern, und ermöglicht eine Fehlerkompensation auf Basis von gewählten Teilerwerten, die dazu bestimmt ist, Zielausgangs-Taktsignalfrequenzen zu erzielen.
-
Beispielsweise verwendet eine Zielanwendung Teilerwerte M2 und M1, die durch einen Controller in einem Taktprodukt empfangen werden (902). Der Controller bestimmt, ob M1 ein ganzzahliges Vielfaches von M2 ist (904). Falls M1 ein ganzzahliges Vielfaches von M2 ist, dann kaskadiert der Controller Ausgangsteiler (die ein interpolativer Ausgangsteiler oder ein Ganzzahl-Ausgangsteiler sein können) in Übereinstimmung mit der Konfiguration 1000 von 10 (906). Falls M1 kein ganzzahliges Vielfaches von M2 ist, dann konfiguriert der Controller einen interpolativen Master-Ausgangsteiler und einen interpolativen Slave-Ausgangsteiler in einer Pseudokaskadenkonfiguration in Übereinstimmung mit der Konfiguration von 5 (908).
-
Wenngleich beim Beschreiben von Ausführungsformen der Erfindung im Allgemeinen Schaltungen und physische Strukturen angenommen worden sind, wird durchaus erkannt, dass im modernen Halbleiterdesign und bei der modernen Halbleiterfabrikation physische Strukturen und Schaltungen in einer computerlesbaren deskriptiven Form für geeignete Verwendung in nachfolgenden Design-, Simulations-, Test- oder Fabrikationsstufen verkörpert sein können. Strukturen und Funktionalität, die in den beispielhaften Konfigurationen als diskrete Komponenten vorgestellt werden, können als eine kombinierte Struktur oder Komponente implementiert werden. Es werden verschiedene Ausführungsformen der Erfindung so in Betracht gezogen, dass sie Schaltungen, Systeme von Schaltungen, verwandte Verfahren und ein dingliches computerlesbares Medium mit Kodierungen darauf (zum Beispiel VHSIC-Hardware Description Language (VHDL), Verilog, GDSII-Daten, Electronic Design Interchange Format (EDIF) und/oder Gerger-Datei) von solchen Schaltungen, Systemen und Verfahren enthalten, alle wie hierin beschrieben und wie in den beigefügten Ansprüchen definiert. Außerdem können die computerlesbaren Medien Anweisungen sowie Daten speichern, die verwendet werden können, um die Erfindung zu implementieren. Die Anweisungen/Daten können sich auf Hardware, Software, Firmware oder Kombinationen davon beziehen.
-
Die Beschreibung der hierin dargestellten Erfindung ist veranschaulichend und soll nicht den Schutzbereich der Erfindung, wie in den folgenden Ansprüchen dargestellt, beschränken. Die Ausdrücke „erster“, „zweiter“, „dritter“ und so weiter, wie in den Ansprüchen verwendet, sollen, sofern nicht durch den Kontext anderweitig deutlich ist, zwischen verschiedenen Elementen in den Ansprüchen unterscheiden und sollen nicht anderweitig irgendeine Reihenfolge bei Zeit, Ort oder Qualität anzeigen oder implizieren. Variationen und Modifikationen der hierin offenbarten Ausführungsformen können auf Basis der hierin dargestellten Beschreibung vorgenommen werden, ohne von dem Schutzbereich der Erfindung, wie in den folgenden Ansprüchen dargelegt, abzuweichen.