-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft die Spreizung eines Taktsignals.
-
Hintergrund
-
Taktsignale werden durchwegs in Computersystemen verwendet, um den korrekten Zeitablauf von Ereignissen in dem Computersystem zu ermöglichen. Wenn beispielsweise eine Sequenz aus Ereignissen in einer speziellen Reihenfolge auftreten oder gleichzeitig erfolgen muss, dann werden Taktsignale verwendet, um sicherzustellen, dass die Ereignisse mit dem korrekten Zeitablauf auftreten.
-
Ein Taktsignal mit einer konstanten Periode (oder „Zeitperiode”) ist geeignet für das Bereitstellen eines genauen Zeitmaßes in einem Computersystem. Das Zeitintervall zwischen aufeinander folgenden ansteigenden Flanken ist für ein Taktsignal mit konstanter (oder „gleichmäßiger”) Periode konstant. Im Frequenzbereich besitzt ein Taktsignal mit konstanter Periode bzw. zeitlichem Abstand eine schmale Spitze mit hoher Amplitude bei der Grundfrequenz, die dem Inversen der Periode des Taktsignals entspricht. Das Taktsignal besitzt auch eine Reihe von anderen schmalen Spitzenwerten mit kleinerer Amplitude als der Spitzenwert der Grundfrequenz, wobei diese Spitzen den Harmonischen des Taktsignals entsprechen. Wenn das Taktsignal eine konstante Periode besitzt, ist die Energie der Harmonischen innerhalb schmaler Bandbreitenbereiche enthalten und damit besitzen die Harmonischen eine relativ hohe spektrale Leistungsdichte (PSD) (die die Einheit von Leistung/Hz besitzt).
-
Die Frequenz des Taktsignals kann so festgelegt werden, dass in speziellen Frequenzbändern, die für andere Zwecke als Taktsignale gedacht sind, keine Störung hervorgerufen wird. Jedoch können die Harmonischen des Taktsignals in ein reserviertes Frequenzband fallen und innerhalb des reservierten Frequenzbandes eine Störung hervorrufen. Beispielsweise kann das Taktsignal innerhalb eines Gerätes verwendet werden, das unter Anwendung des Standards für globale Systeme für mobile Kommunikation (GSM) eine Kommunikation einrichtet. Gemäß dem GSM-Standard wird die Energie empfangender Signale innerhalb spezieller Frequenzkanäle (die typischerweise in der Größenordnung von 100 kHz an Bandbreite besitzen) gemessen, um in korrekter Weise die Empfangssignale zu empfangen und auszuwerten. Die Signale werden in dem Gerät über einen kabellosen Kanal empfangen und besitzen eine geringe Signalstärke, so dass sie sehr empfindlich für Störungen durch die Harmonischen des Taktsignals sind. Wenn eine zu starke Störung aus einer derartigen Harmonischen in einem speziellen Funkkanal vorhanden ist, wird die Empfindlichkeit des Empfängers für ein Funksignal in nicht akzeptabler Weise beeinträchtigt.
-
Wie im Stand der Technik bekannt ist, kann eine Phasenregelschleife (PLL) verwendet werden, um ein Taktsignal in einem Gerät bzw. einer Einrichtung zu erzeugen. In PLLs werden ein spannungsgesteuerter Oszillator (VCO) und ein Rückkopplungsmechanismus verwendet, um die Frequenz des erzeugten Taktsignals festzulegen. Spreizspektrumfrequenz-Ditherbildung (SSFD) ist ein Verfahren, in welchem die einem VCO zugeführte Spannung innerhalb einer PLL mit einem „Dither” belegt wird, d. h., geringfügig um die nominale Spannung variiert wird, die dem VCO zugeführt wird. Auf diese Weise besitzt das von der PLL erzeugte Taktsignal eine Periode, die geringfügig um die normale Taktperiode herum schwankt (oder einen „Dither”) aufweist. Obwohl diese Dither-Bildung die Genauigkeit des Taktsignals zur Verwendung bei der korrekten zeitlichen Steuerung von Ereignissen in einem Computersystem reduzieren kann, verbreitert bzw. spreizt die geringfügige Schwankung bzw. Dither-Bildung die Spitzenwerte des Taktsignals im Frequenzbereich. Dies bedeutet, dass die Spitzenintensität der Grundfrequenz und der Harmonischen des Taktsignals reduziert werden und die Spitzenwerte verbreiten sich über eine größere Frequenzbandbreite oder werden entsprechend gespreizt. Durch Verbreiterung bzw. Spreizung bzw. Aufweitung der Verteilung der Spitzenwerte über eine Bandbreite, die größer ist als die Bandbreite der Empfangskanäle in einer GSM-Einrichtung wird die PSD der Harmonischen des Taktsignals innerhalb jedes Empfangsbandes reduziert und daher kann die Wirkung der Störung, die sich aus den Harmonischen des Taktsignals ergibt, reduziert werden.
-
Überblick
-
Der Erfinder hat erkannt, dass es in einigen Situationen schwierig oder nachteilig sein kann, die dem VCO einer PLL zugeführte Spannung geringfügig zu variieren, um damit ein Taktsignal in einer Einrichtung zu erzeugen, um damit das Taktsignal zu spreizen bzw. zu verbreitern. Einige Blöcke in der Einrichtung erfordern ein sehr genaues Taktsignal, das keine nachteilige Störung hervorrufen sollte. Für derartige Blöcke wäre es vorteilhaft, einen relativ geringen Pegel an Spreizung des Taktsignals zu haben. Jedoch lassen gegebenenfalls gewisse andere Blöcke in der Einrichtung ein weniger genaues Taktsignal zu und können daher eine Funkstörung hervorrufen. Für diese anderen Blöcke wäre es vorteilhaft, einen relativ hohen Pegel an Spreizung bzw. Verbreiterung des Taktsignals zu haben. Bevor daher das Taktsignal einen speziellen Block in der Einrichtung zugeführt wird, wäre es vorteilhaft, in der Lage zu sein, die Spreizung des Taktsignals für diesen speziellen Block anzupassen. Ferner kann in einigen Computersystemen ein Taktsignalgenerator als ein separater Block eingerichtet werden und es kann schwierig sein, die dem VCO einer PLL des separaten Taktsignalgeneratorblocks zugeführte Spannung zu variieren, um das oben beschriebene SSFD-Verhalten zu erreichen. Ferner können einige Taktsignale aus einem Chip heraus angesteuert sein, beispielsweise ein Taktsignal für einen separaten synchronen DRAM-Chip. Typischer Weise erzeugen derartige „Chip-externe” Taktsignale wesentlich höhere Funkstörungen als Taktsignale, die lediglich innerhalb eines Chips bestehen.
-
Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Spreizen bzw. Verbreitern eines Taktsignals bereitgestellt, wobei das Verfahren umfasst: Empfangen des Taktsignals an einem Eingang einer variablen Verzögerungsleitung, wobei das Taktsignal durch einen Taktsignalgenerator erzeugt ist; für jede Flanke des Taktsignals Festlegen der Verzögerung, die durch die variable Verzögerungsleitung eingeführt wird, gemäß einem gespeicherten Verzögerungswert; für jede von mehreren aufeinander folgenden Flanken des Taktsignals entweder Erhöhen bzw. Inkrementieren oder Verringern bzw. Dekrementieren des gespeicherten Verzögerungswertes auf der Grundlage eines für diese Flanke zufällig erzeugten Wertes; und Ausgeben einer gespreizten bzw. verbreiterten Version des Taktsignals aus einem Ausgang der variablen Verzögerungsleitung, wobei jede Flanke der gespreizten Version des Taktsignals um die entsprechende Verzögerung verzögert ist, die für diese Flanke des Taktsignals festgelegt ist.
-
Das Verfahren ermöglicht eine Verbreiterung bzw. Spreizung eines Taktsignals, das bereits von einem Taktsignalgenerator erzeugt ist, wodurch eine gespreizte Version des Taktsignals ausgegeben wird. Auf diese Weise kann eine „reine” (d. h., ungespreizte) Version des Taktsignals einigen nachfolgenden Blöcken zugeführt werden, die das reine Taktsignal erfordern, während die gespreizte Version des Taktsignals einigen anderen nachfolgenden Blöcken zugeführt werden kann, die die gespreizte Version des Taktsignals erfordern. Ferner ermöglicht das Verfahren die Implementierung der Taktsignalspreizungsfunktion separat zu der Taktsignalerzeugungsfunktion. Dies verbessert die Flexibilität bei der Gestaltung einer Einrichtung ganz enorm, in der ein gespreiztes Taktsignal verwendet wird. Beispielsweise kann die Taktsignalspreizungsfunktion in einem Block eingerichtet werden, der zwischen dem Taktsignalgenerator und einem nachfolgenden Block eingefügt ist, von welchem aus eine entsprechende HF-Störung erzeugt wird (beispielsweise – ein Speichersteuerblock, der das Taktsignal „Chip-extern” einem externen synchronen DRAM-Chip zuleitet). Auf diese Weise kann das Taktsignal gespreizt bzw. verbreitert werden, bevor es dem nachfolgenden Block zugeführt wird, um damit die Amplitude der Harmonischen des Taktsignals zu verringern. Der Grad der Spreizung des Taktsignals kann so angepasst werden, dass dies für jeden speziellen nachfolgenden Block geeignet ist, indem mehrere Taktspreizungsblöcke vorgesehen werden, die unterschiedliche Pegel an Spreizung an das reine Taktsignal anwenden, bevor eine entsprechende gespreizte Version des Taktsignals den nachfolgenden Blöcken zugeführt wird.
-
Dadurch, dass die für Taktsignalflanken angewendete Verzögerung auf einem zufällig erzeugten Takt beruht (beispielsweise einer Zufallszahl) wird die PSD des Taktsignals bei höheren Harmonischen deutlich reduziert.
-
Die mehreren aufeinander folgenden Flanken können dabei jede Flanke des Taktsignals umfassen, so dass die durch die variable Verzögerungsleitung eingeführte Verzögerung für jede Flanke des Taktsignals geändert werden kann.
-
Das Verfahren kann ferner das zufällige Erzeugen des zufällig erzeugten Wertes für jede der mehreren aufeinander folgenden Flanken des Taktsignals umfassen. Alternativ kann das Verfahren ferner das zufällig Erzeugen des zufällig erzeugten Wertes für eine Gruppe der mehreren aufeinander folgenden Flanken des Taktsignals umfassen. In diesem alternativen Fall kann die Gruppe aus N der mehreren aufeinander folgenden Flanken des Taktsignals aufgebaut sein, wobei N größer als eins und kleiner als der Wert des gespeicherten Verzögerungswertes ist, der der maximalen Verzögerung der variablen Verzögerungsleitung entspricht. Beispielsweise kann der Wert des gespeicherten Verzögerungswertes, der der maximalen Verzögerung der variablen Verzögerungsleitung entspricht, zwanzig betragen und N kann sechs sein.
-
Der gespeicherte Verzögerungswert kann durch einen Integrierer gespeichert werden.
-
Vorzugsweise ist die Periode des Taktsignals, das am Eingang der variablen Verzögerungsleitung ansteht, größer als die Verzögerung, die durch die variable Verzögerungsleitung eingeführt wird.
-
In bevorzugten Ausführungsformen ist die Größe einer Änderung an der Verzögerung der variablen Verzögerungsleitung, die sich aus einer Vergrößerung bzw. Inkrementierung oder Verkleinerung bzw. Dekrementierung des gespeicherten Verzögerungswertes ergibt, nicht größer als 3% der Periode des Taktsignals, das an dem Eingang der variablen Verzögerungsleitung empfangen wird.
-
Das Verfahren kann ferner umfassen: Einstellen der Größe einer Änderung an der Verzögerung der variablen Verzögerungsleitung, wobei dies zu einer Vergrößerung oder Verkleinerung des gespeicherten Verzögerungswerts führt.
-
In bevorzugten Ausführungsformen wird für die mehreren aufeinander folgenden Flanken des Taktsignals, wenn der gespeicherte Verzögerungswert der maximalen Verzögerung der variablen Verzögerungsleitung entspricht, der gespeicherte Verzögerungswert unabhängig von dem zufällig erzeugten Wert verringert, und wenn der gespeicherte Verzögerungswert der minimalen Verzögerung der variablen Verzögerungsleitung entspricht, dann wird der gespeicherte Verzögerungswert unabhängig von dem zufällig erzeugten Wert erhöht.
-
Die variable Verzögerungsleitung und der gespeicherte Verzögerungswert können im digitalen Bereich eingerichtet werden. Alternativ können die variable Verzögerungsleitung und der gespeicherte Verzögerungswert im analogen Bereich eingerichtet sein.
-
Gemäß einem zweiten Aspekt der Erfindung wird eine Schaltung zum Spreizen eines Taktsignals bereitgestellt, wobei die Schaltung umfasst: (i) eine variable Verzögerungsleitung mit: einem Eingang zum Empfangen des Taktsignals, das von einem Taktsignalgenerator erzeugt ist; einer Einstelleinrichtung zum Einstellen bzw. Festlegen für jede Flanke des Taktsignals einer Verzögerung, die durch die variable Verzögerungsleitung eingeführt ist, wobei dies entsprechend einem gespeicherten Verzögerungswert erfolgt; und einen Ausgang zum Ausgeben einer gespreizten Version des Taktsignals, wobei jede Flanke der gespreizten Version des Taktsignals um die entsprechende Verzögerung verzögert ist, die für diese Flanke des Taktsignals festgelegt ist; und (ii) eine Speichereinrichtung zum Speichern des Verzögerungswertes, wobei die Schaltung so ausgebildet ist, dass für jede von mehreren aufeinander folgenden Flanken des Taktsignals der gespeicherte Verzögerungswert entweder vergrößert oder verkleinert wird auf der Grundlage eines zufällig erzeugten Wertes für diese Flanke.
-
Die Schaltung kann ferner eine Zufallszahlerzeugungseinrichtung aufweisen, um den zufällig erzeugten Wert für jede der mehreren aufeinander folgenden Flanken des Taktsignals zufällig zu erzeugen. Alternativ kann die Schaltung ferner eine Zufallswerterzeugungseinrichtung zum zufälligen Erzeugen des zufällig erzeugten Wertes für eine Gruppe der mehreren aufeinander folgenden Flanken des Taktsignals aufweisen. Die Zufallswerterzeugungseinrichtung kann einen Pseudozufallszahlgenerator umfassen, so dass der zufällig erzeugte Wert eine Pseudozufallszahl ist. Die Zufallswerterzeugungseinrichtung kann ein lineares Rückkopplungsschieberegister sein.
-
Die Speichereinrichtung kann ein Integrierer sein. Der Integrierer kann eine Sequenz aus Flip Flops aufweisen, um den Verzögerungswert als einen Thermometercode zu speichern.
-
Die variable Verzögerungsleitung kann eine Einstelleinrichtung aufweisen, um die Größe einer Änderung der Verzögerung der variablen Verzögerungsleitung einzustellen, wobei dies sich aus einer Vergrößerung oder Verkleinerung des gespeicherten Verzögerungswertes ergibt.
-
Die variable Verzögerungsleitung und die Speichereinrichtung können in dem digitalen Bereich eingerichtet sein. Alternativ können die variable Verzögerungsleitung und die Speichereinrichtung im analogen Bereich eingerichtet sein.
-
Gemäß einem dritten Aspekt der Erfindung wird eine Einrichtung bereitgestellt, die umfasst: einen Taktsignalgenerator; und eine Schaltung gemäß dem zweiten Aspekt der Erfindung. Die Einrichtung kann ferner einen Verarbeitungsblock aufweisen, der so ausgebildet ist, dass die gespreizte Version des Taktsignals, das von der variablen Verzögerungsleitung ausgegeben wird, zum Verwenden als ein Taktsignal in dem Verarbeitungsblock empfangen wird.
-
Kurze Beschreibung der Zeichnungen
-
Für ein besseres Verständnis der vorliegenden Erfindung und zum Aufzeigen, wie diese in die Praxis umgesetzt werden kann, wird nunmehr beispielhaft auf die folgenden Zeichnungen verwiesen, in denen:
-
1 eine schematische Ansicht einer Einrichtung gemäß einer bevorzugten Ausführungsform ist;
-
2 ein Flussdiagramm für einen Vorgang zum Spreizen bzw. Verbreitern eines Taktsignals gemäß einer bevorzugten Ausführungsform ist;
-
3 ein Schaltbild einer Schaltung ist, um ein Taktsignal gemäß einer Ausführungsform zu spreizen;
-
4 ein detailliertes Schaltbild eines Verzögerungselements gemäß einer Ausführungsform ist;
-
5 eine schematische Darstellung eines reinen Taktsignals und eines gespreizten Taktsignals gemäß einer bevorzugten Ausführungsform ist;
-
6a ein Graph ist, der ein erstes Taktsignalspektrum zeigt;
-
6b ein Graph ist, der ein zweites Taktsignalspektrum zeigt;
-
6c ein Graph ist, der ein drittes Taktsignalspektrum zeigt;
-
7a ein Graph ist, der ein viertes Taktsignalspektrum zeigt;
-
7b ein Graph ist, der ein fünftes Taktsignalspektrum zeigt;
-
8a ein Graph ist, der ein sechstes Taktsignalspektrum zeigt;
-
8b ein Graph ist, der ein siebtes Taktsignalspektrum zeigt;
-
8c ein Graph ist, der ein achtes Taktsignalspektrum zeigt;
-
8d ein Graph ist, der ein neuntes Taktsignalspektrum zeigt; und
-
8e ein Graph ist, der ein zehntes Taktsignalspektrum zeigt.
-
Detaillierte Beschreibung bevorzugter Ausführungsformen
-
Lediglich als Beispiele werden nunmehr bevorzugte Ausführungsformen der Erfindung beschrieben.
-
1 zeigt eine Einrichtung 100 gemäß einer bevorzugten Ausführungsform. Die Einrichtung 100 umfasst einen Taktsignalgenerator 102, einen Taktsignalspreizungsblock 104 und einen Verarbeitungsblock 106. Der Taktsignalspreizungsblock 104 umfasst eine programmierbare Verzögerungsleitung 108, einen Integrierer 110, einen Zufallszahlgenerator 112 und einen Teilerblock 114. Der Taktsignalgenerator 102 ist ausgebildet, ein Taktsignal zu erzeugen. Ein Ausgang des Taktsignalgenerators 102 ist mit einem Eingang der programmierbaren Verzögerungsleitung 108 verbunden. Ein Ausgang der programmierbaren Verzögerungsleitung 108 ist mit einem Takteingang des Verarbeitungsblocks 106 verbunden. Der Ausgang der programmierbaren Verzögerungsleitung 108 ist ferner mit einem Takteingang des Integrierers 110 über den Teilerblock 114 und mit einem Takteingang des Zufallszahlgenerators 112 verbunden. Ein Ausgang des Zufallszahlgenerators 112 ist mit einem Eingang des Integrierers 110 verbunden. Ein Ausgang des Integrierers 110 ist mit einem Steuereingang der programmierbaren Verzögerungsleitung 108 verbunden.
-
Die Funktion der Einrichtung 100 kann verwendet werden, um ein Taktsignal zu spreizen bzw. zu verbreitern, wie dies detaillierter mit Bezug zu dem Flussdiagramm beschrieben ist, das in 2 gezeigt ist. Im Schritt S202 erzeugt der Taktsignalgenerator 102 ein Taktsignal. Der Taktsignalgenerator 102 kann auf unterschiedliche Weisen eingerichtet sein, wie dies im Stand der Technik bekannt ist. Beispielsweise ist der Taktsignalgenerator 102 als eine PLL eingerichtet, wie dies zuvor beschrieben ist. Das von dem Taktsignalgenerator 102 erzeugte Taktsignal wird im Weiteren als das reine Taktsignal bezeichnet. Das reine Taktsignal, das von dem Taktsignalgenerator 102 erzeugt ist, besitzt eine im Wesentlichen konstante Periode und kann daher in Verarbeitungsblöcken (beispielsweise in USB-Verarbeitungsblöcken) in der Einrichtung 100 verwendet werden, die ein sehr genaues Taktsignal erfordern.
-
Das reine Taktsignal wird von dem Taktsignalgenerator 102 ausgegeben und dem Eingang der programmierbaren Verzögerungsleitung 108 zugeleitet. Ansteigende und abfallende Flanken des Taktsignals erreichen die programmierbare Verzögerungsleitung 108 und durchlaufen die programmierbare Verzögerungsleitung 108, wodurch das Taktsignal verzögert wird. Im Schritt S204 wird eine Flanke des Taktsignals an der programmierbaren Verzögerungsleitung 108 aus dem Taktsignalgenerator 102 empfangen.
-
Das Taktsignal wird verwendet, um den Zufallszahlgenerator 112 (über den Teilerblock 114) und den Integrierer 110 zu takten. Obwohl 1 zeigt, dass das von der programmierbaren Verzögerungsleitung 108 ausgegebene Taktsignal verwendet wird, um sowohl den Zufallsfallgenerator 112 als auch den Integrierer 110 zu takten, werden in anderen Ausführungsformen unterschiedliche Versionen des Taktsignals verwendet, um den Zufallszahlgenerator 112 bzw. den Integrierer 110 zu takten. Beispielsweise werden das reine Taktsignal oder ein Taktsignal von innerhalb der programmierbaren Verzögerungsleitung 108 verwendet, um den Integrierer 110 und/oder den Zufallszahlgenerator 112 zu takten.
-
Wenn der Zufallszahlgenerator 112 getaktet wird, erzeugt er im Schritt S206 eine Zufallszahl. Der Begriff „Zufallszahl”, wie er hierin verwendet ist, soll echte Zufallszahlen und auch Pseudozufallszahlen umfassen. Echte Zufallszahlen werden durch einen rein zufälligen Prozess erzeugt und können nicht vorhergesagt werden. Pseudozufallszahlen weisen eine statistische Zufälligkeit auf, obwohl diese durch einen vollständig deterministischen kausalen Prozess erzeugt werden. Zum Zwecke dieser Erfindung können Pseudozufallszahlen so verwendet werden, als ob sie reine Zufallszahlen wären, da es nicht von Belang ist, wie die Zufallszahlen erzeugt werden, sofern die Zufallszahlen eine statistische Zufälligkeit aufweisen. Da insbesondere Pseudozufallszahlen oft einfacher zu erzeugen sind als reine Zufallszahlen, ist in bevorzugten Ausführungsformen der Zufallszahlgenerator 112 ein Pseudozufallsgenerator. In einigen Ausführungsformen, wie dies nachfolgend beschrieben ist, ist der Zufallszahlgenerator 112 ein lineares Rückkopplungsschieberegister (LFSR), das eingerichtet wird, um Pseudozufallszahlen zu erzeugen und auszugeben.
-
Die Zufallszahl, die von dem Zufallszahlgenerator 112 ausgegeben wird, wird dem Integrierer 110 zugeleitet. Der Integrierer 110 speichert einen Verzögerungswert, der verwendet wird, um die Verzögerung der programmierbaren Verzögerungsleitung 108 festzulegen. Im Schritt S208 wird, wenn der Integrierer 110 getaktet wird, der von dem Integrierer 110 gespeicherte Verzögerungswert entweder erhöht oder erniedrigt. Wenn der Integrierer getaktet wird, ändert sich auf diese Weise der in dem Integrierer 110 gespeicherte Verzögerungswert entweder nach oben oder nach unten abhängig von der Zufallszahl, die von dem Zufallszahlgenerator 112 erzeugt wird. In der in 1 gezeigten Ausführungsform werden der Zufallszahlgenerator 112 und der Integrierer 110 bei jeder Flanke des Taktsignals getaktet bzw. angesteuert, wenn dieses von der programmierbaren Verzögerungsleitung 108 ausgegeben wird, so dass der in dem Integrierer 110 gespeicherte Verzögerungswert sich bei jeder Flanke des Taktsignals ändert. Die gesamte Verzögerung, die durch die programmierbare Verzögerungsleitung 108 eingeführt wird, kann kleiner sein als die Hälfte der Periode des Taktsignals, so dass jede Flanke die Verzögerungsleitung durchläuft und den Zufallszahlgenerator 112 und den Integrierer 110 taktet, bevor die nächste Flanke des Taktsignals an der programmierbaren Verzögerungsleitung 108 eintrifft.
-
Die Änderung des Verzögerungswertes zwischen allen Taktsignalflanken liefert vorteilhafter Weise eine bessere Spreizung des Taktsignals (im Vergleich zur Änderung des Verzögerungswertes mit einer geringeren Häufigkeit als bei jeder Taktsignalflanke). Idealer Weise würde sich zur Spreizung des Taktsignals in perfekter Weise die Verzögerung kontinuierlich ändern. Da jedoch das Taktsignal ein Rechtecksignal ist, ist es nach einer jeweils kurzen Übergangsphase die meiste Zeit entweder auf hohem Pegel oder niedrigem Pegel. Daher wird in bevorzugten Ausführungsformen eine kontinuierlich variierende Verzögerung nachgebildet, indem die Verzögerung in diskreten Schritten während jeder dieser Hoch/Tief-Perioden, d. h., für jede Taktsignalflanke, geändert wird. Wenn die Verzögerung bei abwechselnden Flanken des Taktsignals geändert würde, ergäbe sich eine deutliche Beeinträchtigung der Spreizwirkung auf das Taktsignal.
-
Der Betrag der Vergrößerung oder Verkleinerung des Verzögerungswertes ist vorzugsweise gleich, wann immer der Integrierer 110 getaktet wird.
-
Beispielsweise ist die Zufallszahl, die von dem Zufallszahlgenerator 112 erzeugt wird, entweder 0 oder 1 (mit einer gleichen Wahrscheinlichkeit) und wenn die an dem Integrierer 110 empfangene Zufallszahl gleich 1 ist, dann wird der von dem Integrierer 110 gespeicherte Verzögerungswert um 1 erhöht, und wenn die am Integrierer 110 empfangene Zufallszahl gleich 0 ist, dann wird der von dem Integrierer 110 gespeicherte Verzögerungswert um 1 verkleinert.
-
Wie in 1 gezeigt ist, ist der Integrierer 110 ein Doppelflanken-getriggerter Integrierer, was bedeutet, dass dieser an jeder Flanke des Taktsignals angesteuert bzw. getaktet wird. Dies bedeutet, dass der Integrierer 110 zweimal in einer Periode des Taktsignals getaktet bzw. angesteuert wird (d. h. sowohl an der ansteigenden als auch an der abfallenden Flanke). Auf diese Weise wird der von dem Integrierer 110 gespeicherte Verzögerungswert bei jeder Flanke des Taktsignals geändert.
-
Der von dem Integrierer 110 gespeicherte Verzögerungswert wird an die programmierbare Verzögerungsleitung 108 jedesmal dann ausgegeben, wenn der Integrierer 110 getaktet wird. Im Schritt S210 ist die Verzögerung der programmierbaren Verzögerungsleitung 108 gemäß dem in dem Integrierer 110 gespeicherten Verzögerungswert festgelegt. Beispielsweise kann die programmierbare Verzögerungsleitung 108 eine Anzahl an Verzögerungselementen enthalten, die jeweils geschaltet oder nicht geschaltet sind, um damit dem Taktsignal eine Verzögerung hinzuzufügen. Die Anzahl der Verzögerungselemente, die zur Verzögerung des Taktsignals in Reihe geschaltet sind, kann in Abhängigkeit von dem Verzögerungswert festgelegt werden, der von dem Integrierer 110 ausgegeben wird.
-
Im Schritt S212 wird die Flanke des Taktsignals, das an der programmierbaren Verzögerungsleitung 108 im Schritt S204 empfangen wird, aus der programmierbaren Verzögerungsleitung 108 ausgegeben. Die Flanke des Taktsignals ist entsprechend der im Schritt S210 festgelegten Verzögerung verzögert. Da unterschiedliche Flanken mit unterschiedlichen Beträgen in der programmierbaren Verzögerungsleitung 108 verzögert werden, fluktuiert die Zeitperiode des ausgegebenen Taktsignals und ist damit nicht konstant. In diesem Sinne ist das von der programmierbaren Verzögerungsleitung 108 ausgegebene Taktsignal ein gespreiztes bzw. verbreitertes Taktsignal. Das gespreizte Taktsignal wird dem Takteingang des Verarbeitungsblocks 106 zugeleitet und wird verwendet, um die Vorgänge des Verarbeitungsblocks 106 zu takten bzw. zeitlich zu steuern. Beispielsweise kann das gespreizte Taktsignal verwendet werden, um auf einen Speicherblock zuzugreifen. Der Speicherblock muss in der Lage sein, die Schwankungen in der Taktsignalfrequenz, die durch das Spreizen des Taktsignals hervorgerufen werden, zu tolerieren. In bevorzugten Ausführungsformen wird die Frequenz des Taktsignals um nicht mehr als ±6% aufgrund der Spreizung des Taktsignals geändert. Der Speicher (beispielsweise ein synchroner DRAM) muss in der Lage sein, mit einem Taktsignal mit einer Frequenz von 0,94F0 und 1,06F0 zu arbeiten, wobei F0 die Frequenz des reinen Taktsignals ist.
-
Der Begriff „Spreizung bzw. Verbreiterung”, wie er hierin verwendet wird, ist im Stand der Technik bekannt. Spreizung eines Taktsignals bedeutet die Einführung kleiner Schwankungen in der Frequenz (und daher der Periode) des Taktsignals derart, dass die Periode des Taktsignals nicht konstant ist. Die Größe der Schwankungen in der Periode des Taktsignals ist wesentlich kleiner (mindestens um eine Größenordnung kleiner) als die Periode des Taktsignals. In dem oben angegebenen Beispiel beträgt der Betrag der Schwankung der Periode des Taktsignals 6% der Periode des Taktsignals. 5 ist eine schematische Darstellung eines reinen Taktsignals und eines gespreizten Taktsignals. 5 zeigt den Wert (beispielsweise die Amplitude) der Taktsignale als Funktion der Zeit. Das reine Taktsignal besitzt eine Periode T und eine Grundfrequenzkomponente mit einer Frequenz F0 (wobei T = 1/F0). Man erkennt, dass das gespreizte Taktsignal eine Periode besitzt, die sich von jener des reinen Taktsignals um ΔT in dem in 5 gezeigten Beispiel unterscheidet. Obwohl 5 nicht maßstabsgetreu ist, ist es aus 5 ersichtlich, dass ΔT wesentlich kleiner ist als T. Das Verhältnis von ΔT / T muss klein gehalten werden (beispielsweise nicht größer als 0,06), so dass das gespreizte Taktsignal als Taktsignal geeignet ist. Wenn die Periode des gespreizten Taktsignals sich ausgeprägt ändern darf (beispielsweise um mehr als 6%), kann die Verwendung des gespreizten Taktsignals einen Taktsignalfehler im Zeitablauf und Störungen in nachfolgenden Verarbeitungsblöcken hervorrufen.
-
3 ist ein Schaltbild eines Taktsignalspreizungsblocks zum Spreizen bzw. Verbreitern eines Taktsignals gemäß einer Ausführungsform. Der Zufallszahlgenerator 112 ist als ein LFSR 302 eingerichtet. Insbesondere ist das in 3 gezeigte LFSR 302 ein LFSR-Sequenzgenerator mit einer Länge von 2047. Das LFSR enthält eine Gruppe aus elf Flip Flops und ein XNOR-Gatter, die angeordnet sind, wie dies im Stand der Technik bekannt ist und wie in 3 gezeigt ist. Der Taktsignalspreizungsblock enthält einen Doppelflanken getriggerten Integriererblock 304, einen Teilerblock 306 und eine Reihe aus Verzögerungselementen 3180 bis 31819, zwei Flip Flops 308 und 324, ein XNOR-Gatter 310, drei ODER-Gatter 312, 326 und 328, zwei XOR-Gatter 314 und 316 und zwei NICHT-Gatter 340 und 342. Jedes Verzögerungselement 318 umfasst mehrere Verzögerungskomponenten 320 und einen Multiplexer 322.
-
Das LFSR 302 ist ausgebildet, das von der programmierbaren Verzögerungsleitung über den Teilerblock 306 ausgegebene gespreizte Taktsignal zu empfangen. Der Teilerblock 306 ist ausgebildet, das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal um einen Faktor N zu teilen, bevor das geteilte Taktsignal an das LFSR 302 weitergeleitet wird. Das gespreizte Taktsignal ist Takteingängen der Flip Flops des LFSR 302 zugeleitet. Der Ausgang des LFSR 302 ist mit einem Dateneingang des Flip Flops 308 verbunden. Ein Ausgang des Flip Flops 308 ist mit einem ersten Eingang des XNOR-Gatters 310 verbunden. Das Flip Flop 308 ist so ausgebildet, dass es von dem gespreizten Taktsignal getaktet wird, das von der programmierbaren Verzögerungsleitung ausgegeben wird. Der Ausgang des LFSR 302 ist mit einem zweiten Eingang des XNOR-Gatters 310 verbunden. Ein Ausgang des XNOR-Gatters 310 (als „Rpulse” bezeichnet) ist mit einem ersten Eingang des ODER-Gatters 312 verbunden. Ein Ausgang des ODER-Gatters 312 ist mit einem ersten Eingang des XOR-Gattes 314 verbunden. Ein Ausgang des XOR-Gatters 314 ist mit einem ersten Eingang des XOR-Gatters 316 und auch mit der Leitung verbunden, die als „zu integrierender Wert B” bezeichnet ist. Ein Ausgang des XOR-Gatters 316 ist mit einem Dateneingang des Flip Flops 324 verbunden. Das Flip Flop 324 ist so angeordnet, dass es von dem von der programmierbaren Verzögerungsleitung ausgegebenen gespreizten Taktsignal getaktet wird. Der Ausgang des Flip Flops 324 ist mit der Leitung verbunden, die als „zu integrierender Wert A” bezeichnet ist. Der Ausgang des Flip Flops 324 ist ferner mit einem zweiten Eingang des XOR-Gatters 314 verbunden. Die Leitungen mit der Benennung „zu integrierender Wert A” und „zu integrierender Wert B” sind mit dem Integriererblock 304 verbunden.
-
Der Integriererblock 304 umfasst zwanzig Funktionseinheiten, die jeweils Multiplexer 330, 332 und 338 und zwei Flip Flops 334 und 336 enthalten. Die Multiplexer 330 sind durch den Wert auf der Leitung „zu integrierender Wert A” gesteuert. Die Multiplexer 332 sind durch den Wert der Leitung „zu integrierender Wert B” gesteuert. Die Multiplexer 338 sind durch den Wert des von der programmierbaren Verzögerungsleitung ausgegebenen Taktsignals gesteuert.
-
In der ersten Funktionseinheit (die mit dem Index „0” bezeichnet ist) ist der Multiplexer 3300 so angeordnet, dass er ein hochpegeliges Signal bei einem tiefpegeligen Dateneingang erhält. Das hochpegelige Signal kann auf 0,85 V gesetzt werden. Der hochpegelige Dateneingang des Multiplexer 3300 ist mit dem Ausgang des Flip Flops 3361 der nächsten Funktionseinheit des Integriererblocks 304 verbunden. Ein Ausgang des Multiplexers 3300 ist mit einem Dateneingang des Flip Flops 3340 und dem NICHT-Gatter 340 und mit einem tiefpegeligen Dateneingang des Multiplexers 3321 der nächsten Funktionseinheit verbunden. Das Flip Flop 3340 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal über einen Inverter getaktet. Der Ausgang des Flip Flops 3340 ist mit einem hochpegeligen Dateneingang des Multiplexers 3380 verbunden. Der Multiplexer 3320 ist so angeordnet, dass er ein hochpegeliges Signal bei tiefpegeligem Dateneingangssignal empfängt. Das hochpegelige Signal kann auf 0,85 V festgelegt sein. Das hochpegelige Dateneingangssignal des Multiplexers 3320 ist mit dem Ausgang des Multiplexers 3301 der nächsten Funktionseinheit des Integriererblocks 304 verbunden. Ein Ausgang des Multiplexers 3320 ist mit einem Dateneingang des Flip Flops 3360 verbunden. Das Flip Flop 3360 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal getaktet. Der Ausgang des Flip Flops 3360 ist mit einem tiefpegeligen Dateneingangssignal des Multiplexers 3380 und dem NICHT-Gatter 342 verbunden. Der Ausgang des Multiplexers 3380 wird verwendet, um das Verzögerungselement 3180 zu steuern, wie dies nachfolgend beschrieben ist.
-
In den dazwischen liegenden Funktionseinheiten (die mit den Indizes „1” bis „18” bezeichnet sind) ist der Multiplexer 330 so angeordnet, dass er das Ausgangssignal des Flip Flops 336 der vorhergehenden Funktionseinheit bei tiefpegeligem Dateneingangssignal empfängt. Das hochpegelige Dateneingangssignal des Multiplexers 330 ist mit dem Ausgang des Flip Flops 336 der nächsten Funktionseinheit des Integriererblocks 304 verbunden. Ein Ausgang des Multiplexers 330 ist mit einem Dateneingang des Flip Flops 334 der entsprechenden Funktionseinheit und mit dem hochpegeligen Dateneingang des Multiplexers 332 der vorhergehenden Funktionseinheit und mit einem tiefpegeligen Dateneingang des Multiplexers 332 der nächsten Funktionseinheit verbunden. Das Flip Flop 334 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal über einen Inverter getaktet. Der Ausgang des Flip Flops 334 ist mit einem hochpegeligen Dateneingang des Multiplexers 338 verbunden. Der Multiplexer 332 ist so angeordnet, dass er das Ausgangssignal des Multiplexers 330 der vorhergehenden Funktionseinheit bei tiefpegeligem Dateneingangssignal empfängt. Der hochpegelige Dateneingang des Multiplexers 332 ist mit dem Ausgang des Multiplexers 330 der nächsten Funktionseinheit des Integriererblocks 304 verbunden. Ein Ausgang des Multiplexers 332 ist mit einem Dateneingang des Flip Flops 336 verbunden. Das Flip Flop 336 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal getaktet. Der Ausgang des Flip Flops 336 ist mit einem tiefpegeligen Dateneingang des Multiplexers 338 verbunden. Der Ausgang des Multiplexers 338 wird verwendet, um das entsprechende Verzögerungselement 318 zu steuern, wie nachfolgend beschrieben ist.
-
In der letzten Funktionseinheit (die mit dem Index „19” bezeichnet ist) ist der Multiplexers 33019 so angeordnet, dass er das Ausgangssignal des Flip Flops 33618 der vorhergehenden Funktionseinheit bei tiefpegeligem Dateneingangssignal empfängt. Der hochpegelige Dateneingang des Multiplexers 33019 ist ausgebildet, ein tiefpegeliges Signal zu empfangen. Das tiefpegelige Signal kann auf 0 V festgelegt sein. Ein Ausgang des Multiplexers 33019 ist mit einem Dateneingang des Flip Flops 33419 und dem hochpegeligen Dateneingang des Multiplexers 33218 der vorhergehenden Funktionseinheit verbunden. Das Flip Flop 33419 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal über einen Inverter getaktet. Der Ausgang des Flip Flops 33419 ist mit einem hochpegeligen Dateneingang des Multiplexers 33819 verbunden. Der Multiplexer 33219 ist so ausgebildet, dass er das Ausgangssignal des Multiplexers 33018 der vorhergehenden Funktionseinheit bei tiefpegeligem Dateneingang empfängt. Der hochpegelige Dateneingang des Multiplexers 33219 ist ausgebildet, ein tiefpegeliges Signal zu empfangen. Das tiefpegelige Signal kann auf 0 V festgelegt sein. Ein Ausgang des Multiplexers 33219 ist mit einem Dateneingang des Flip Flops 33619 verbunden. Das Flip Flop 33619 ist durch das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal getaktet. Der Ausgang des Flip Flops 33619 ist mit einem tiefpegeligen Dateneingang des Multiplexers 33819 verbunden. Der Ausgang des Multiplexers 33819 wird verwendet, um das letzte Verzögerungselement 31819 wie nachfolgend beschrieben zu steuern.
-
Das reine Taktsignal aus dem Taktsignalgenerator 102 ist einem hochpegeligen Dateneingang des Multiplexers 3220 über die Verzögerungskomponenten 3200 zugeleitet und ist ebenfalls einem tiefpegeligen Dateneingang des Multiplexers 3220 über die Verzögerungskomponenten 3200 zugeleitet.
-
Für die Verzögerungselemente 3181 bis 31819 wird das Ausgangssignal des Multiplexers 322 des vorhergehenden Verzögerungselements 318 invertiert und anschließend einem hochpegeligen Dateneingang des Multiplexers 332 und einem Takteingang des Flip Flops 324 über die Verzögerungselemente 320 zugeleitet und wird ferner einem tiefpegeligen Dateneingang des Multiplexers 322 nicht über die Verzögerungskomponenten 320 zugeleitet. Der Ausgang des Multiplexers 32219 wird invertiert und dann als das gespreizte Taktsignal ausgegeben, das von der programmierbaren Verzögerungsleitung bereitgestellt wird. Die Multiplexer 322n sind durch die Ausgangssignale aus den entsprechenden Multiplexern 338n gesteuert.
-
Die Ausgangssignale der NICHT-Gatter 340 und 342 werden ersten Eingängen der ODER-Gatter 326 bzw. 328 zugeleitet. Das Ausgangssignal des Multiplexers 33019 ist dem zweiten Eingang des ODER-Gatters 328 zugeleitet und der Ausgang des Flip Flops 33619 ist mit dem zweiten Eingang des ODER-Gatters 326 verbunden. Der Ausgang des ODER-Gatters 326 ist mit einem zweiten Eingang des ODER-Gatters 312 verbunden. Der Ausgang des ODER-Gatters 328 ist mit einem zweiten Eingang des XOR-Gatters 316 verbunden.
-
Während des Betriebs arbeitet das LFSR 302 so, dass eine Pseudozufallszahl bereitgestellt wird. Die Funktionsweise des LFSR 302 ist im Stand der Technik bekannt und wird daher hierin nicht detailliert beschrieben. Die Pseudozufallszahl nimmt einen Wert von entweder 0 oder 1 an. Die Flip Flops 334 und 336 enthalten einen Thermometercode, von dem sichergestellt ist, dass er sich exakt um einen Schritt bei jeder Taktsignalflanke ändert, die durch die Verzögerungsleitung durchgeleitet wird. Ein „Thermometercode” bedeutet, dass eine gewisse Anzahl der Flip Flops 334 und 336 bei Beginn der Sequenz einen Wert 1 speichert und anschließend die verbleibenden Flip Flops 334 und 336 am Ende der Sequenz einen Wert 0 besitzen. Der Punkt in der Sequenz der Flip Flops 334 und 336, bei welchem der von dem Flip Flop gespeicherte Wert sich von 1 auf 0 ändert, repräsentiert den Verzögerungswert. Durch Speicherung des Verzögerungswerts in den Flip Flops 334 und 336 fungieren die Flip Flops 334 und 336 als der Doppelflanken getriggerte Integrierer 110.
-
Das reine Taktsignal trifft an dem ersten Verzögerungselement 3180 der programmierbaren Verzögerungsleitung ein und durchläuft die Verzögerungsleitung, um anschließend aus dem letzten Verzögerungselement 31819 ausgegeben zu werden. In jedem Verzögerungselement 318 wird das Taktsignal entweder mittels der Verzögerungskomponenten 320 verzögert oder durch die Verzögerungskomponenten 320 nicht verzögert. Ob das Taktsignal durch die Verzögerungskomponenten 320 verzögert wird, ist für jedes Verzögerungselement 318 in der Weise festgelegt, dass der Multiplexer 322 angesteuert wird, entweder das Taktsignal auszugeben, das durch die Verzögerungskomponenten 320 verzögert ist, oder das Taktsignal auszugeben, das durch die Verzögerungskomponenten 320 nicht verzögert ist. Der Multiplexer 322 wird entsprechend dem von dem Multiplexer 338 der zugehörigen Funktionseinheit des Integriererblocks 304 ausgegeben Wert eingestellt. Auf diese Weise kann der als ein Thermometercode in den Flip Flops 334 und 336 gespeicherte Verzögerungswert die Verzögerung festlegen, die auf das Taktsignal in der Verzögerungsleitung angewendet wird.
-
Obwohl in der zuvor beschriebenen bevorzugten Ausführungsform ein Thermometercode verwendet wird, können die Flip Flops 334 und 336 den Verzögerungswert in einer anderen Weise speichern, vorausgesetzt, dass der Verzögerungswert durch die Anzahl an Flip Flops 334 und 336 repräsentiert ist, die einen hochpegeligen Wert (unabhängig von der Position der Flip Flops innerhalb der Sequenz, die den hochpegeligen Wert speichern) speichern.
-
Die in 3 gezeigte Taktspreizungsschaltung ist so ausgebildet, dass sich der in den Flip Flops gespeicherte Thermometercode für jede Flanke des Taktsignals, das die Verzögerungsleitung durchläuft, ändert. Wenn die Werte an beiden Steuerleitungen, die als „zu integrierender Wert A” und „zu integrierender Wert B” bezeichnet sind, auf tiefem Pegel liegen (d. h., den Wert 0 besitzen), dann wird jede Flanke des Taktsignals durch die Verzögerungskomponenten 320 in einem weiteren zusätzlichen Verzögerungselement 318 verzögert im Vergleich zur Anzahl, mit der die vorhergehende Flanke des Taktsignals verzögert wurde. Dies liegt daran, dass die Multiplexer 330n und 332n die Ausgangssignale des Flip Flops 336n-1 und des Multiplexers 330n-1 der vorhergehenden Funktionseinheit entsprechend den Flip Flops 334n und 336n zuleiten, wenn die Werte der Leitungen von „zu integrierender Wert A” und „zu integrierender Wert B” auf tiefem Pegel liegen. Da die Flip Flops 334 und 336 einen Thermometercode enthalten, bedeutet dies, dass der Schaltpunkt des Thermometercodes zwischen den Flip Flops 334 und 336, die einen Wert von 1 und einen Wert von 0 speichern, sich um eine Funktionseinheit weiter entlang der Verzögerungsleitung bewegt (d. h., in 3 nach rechts).
-
Wenn die Werte in den beiden Steuerleitungen, die als „zu integrierender Wert A” und „zu integrierender Wert B” bezeichnet sind, auf hohem Pegel liegen (d. h., einen Wert von 1 besitzen), dann wird jede Flanke des Taktsignals von den Verzögerungskomponenten 320 mit einer Anzahl, die einer um eins verminderten Anzahl an Verzögerungselementen entspricht, im Vergleich zu der vorhergehenden Flanke des Taktsignals verzögert. Die liegt daran, dass die Multiplexer 326n, 330n und 332n die Ausgangssignale der Flip Flops 336n+1, und des Multiplexers 330n+1 der nächsten Funktionseinheit den Flip Flops 334n und 336n zuleiten, wenn die Werte der Leitungen „zu integrierender Wert A” und „zu integrierender Wert B” auf hohem Pegel liegen. Da die Flip Flops 334 und 336 einen Thermometercode speichern, bedeutet dies, dass sich der Schaltpunkt des Thermometercodes zwischen den Flip Flops 334 und 336, die einen Wert von 1 und einen Wert von 0 speichern, um eine Funktionseinheit rückwärts in der Verzögerungsleitung verschiebt (d. h., in 3 nach links).
-
Wenn die Werte auf den Steuerleitungen, die als „zu integrierender Wert A” und „zu integrierender Wert B” markiert sind, unterschiedlich zueinander sind (d. h., entweder 1 bzw. 0 oder 0 bzw. 1), dann wird die auf die Flanken des Taktsignals angewendete Verzögerung alternativ vergrößert oder verringert für jede Flanke des Taktsignals.
-
Da das von der programmierbaren Verzögerungsleitung ausgegebene Taktsignal dem LFSR-Block 302 über den Teilerblock 306 zugeleitet ist, wird der LFSR-Block 302 lediglich nach N eingehenden Taktplanken aktualisiert. Der Wert von N ist programmierbar bzw. einstellbar. N kann beispielsweise immer eine gerade Zahl sein. Auf diese Weise wird der mit „Rpulse” in 3 benannte Puls nach jeweils N Taktzyklen zufällig erzeugt (oder nicht erzeugt). Wenn der Puls erzeugt wird, dann wird die Richtung der Integration (d. h., Vergrößerung der Verzögerung oder Verringerung der Verzögerung) umgekehrt. Der Erfinder hat erkannt, dass es vorteilhaft ist, das den LFSR-Block 302 speisende Taktsignal herunterzuteilen, so dass die Richtung der Verzögerung sich lediglich jeweils nach N Flanken des Taktsignals ändert (oder nicht ändert). Für eine 20-stufige Verzögerungsleitung (wie sie etwa in 3 gezeigt ist) funktioniert ein Wert von N = 6 (was bedeutet, nach 6 Flanken oder 3 Taktperioden). Jedoch ist es bei diesem Schema wichtig, die Richtung der Integration zu invertieren, sobald die Verzögerung ihren maximalen oder minimalen Wert erreicht. Das Festlegen von N auf einen zu kleinen Wert erzeugt mit einer zu großen Wahrscheinlichkeit entsprechend Muster mit den gleichen Harmonischen wie das reine Taktsignal. Das Festlegen von N auf einen zu hohen Wert ruft Änderungen in dem Integrationswert derart hervor, dass dieser zu stark geregelt ist, indem das Ende der minimalen oder maximalen Grenze der programmierbaren Verzögerungsleitung erreicht wird.
-
Wenn die Ausgangssignale der Flip Flops 3340 und 3360 der ersten Funktionseinheit Null sind, dann ist die durch die Verzögerungsleitung ausgeübte Verzögerung minimal. In dieser Situation sind die den NICHT-Gattern 340 und 342 zugeleiteten Werte auf tiefem Pegel, so dass die Ausgangssignale der NICHT-Gatter, die den ODER-Gattern 236 und 238 zugeleitet sind, auf hohem Pegel liegen. Wenn die Ausgangssignale der Flip Flops 33419 und 33619 der letzten Funktionseinheit auf eins liegen, ist die auf die Verzögerungsleitungen ausgeübte Verzögerung maximal. In dieser Situation liegen die den zweiten Eingängen der ODER-Gatter 326 und 328 zugeleiteten Werte auf hohem Pegel. Dies verursacht, dass die Signale in den Leitungen „zu integrierender Wert A” und „zu integrierender Wert B” invertiert werden. Auf diese Weise zeigt das minimale/maximale Verzögerungssignal an, dass die Integration in der aktuellen Richtung nicht länger fortzusetzen ist, da die Verzögerungsleitung ihren minimalen oder maximalen Verzögerungswert erreicht hat.
-
Jede identische Stufe (oder Verzögerungselement 318) der Verzögerungsleitung ist invertierend. Jede Stufe verzögert ansteigende und abfallende Flanken um näherungsweise gleiche Beträge. Wie zuvor beschrieben ist, speichern die Flip Flops 334 und 336 in der Verzögerungsleitung einen Thermometercode, der in jedem Falle sich um exakt einen Schritt für jede Taktflanke ändert, die die Verzögerungsleitung durchläuft. Aufgrund des LFSR 302 sind die Änderungen pseudozufällig mit Ausnahme der Situation, in der der Code seine Extremalwerte erreicht. In diesem Falle wird erzwungen, dass sich die Änderung von dem Extremalwert entfernt. Die Verzögerungsleitung muss ausreichend lang sein, um die Wirkung dieses nicht zufälligen Verhaltens auf die Rauschspreizung zu kompensieren. Es wurde herausgefunden, dass 20 Verzögerungsstufen (wie in 3 gezeigt ist), ausreichend sind, um die fünfte und siebte Harmonische des Speichertaktsignals um 10 bis 15 dB zu unterdrücken. Höhere Harmonische werden effizienter aufgespreizt.
-
Alle in 3 gezeigten Flip Flops werden asynchron auf „0” bei Rücksetzung durch Einschaltung gesetzt, bevor das Taktsignal (clkin) zum Starten der Verzögerungsleitung angewendet wird. Die Periode des Taktsignals kann kleiner als die gesamte (maximale) Verzögerung der Verzögerungsleitung sein. Die Verzögerungselemente 318, die gezeigt sind, besitzen eine Verzögerung von 100 ps, aber die Verzögerung der Verzögerungselemente kann bis zu 150 ps betragen. Wie in 3 gezeigt ist, wird eine festgelegte Versorgungsspannung von 0,85 V an den Taktspreizungsblock angelegt. Wie zuvor beschrieben ist, wird, sobald eine Taktsignalflanke die Verzögerungsleitung durchläuft, die nächste Flanke zufällig um einen Schritt mehr oder um einen Schritt weniger verzögert, wodurch die auf jede Flanke des Taktsignals ausgeübte Verzögerung entweder erhöht bzw. inkrementiert oder verringert bzw. dekrementiert wird. Ein Schritt ist gleich der Verzögerung der Verzögerungskomponenten 320 in jedem der Verzögerungselemente 318. Somit ist die maximale Verzerrung des Tastgrades bzw. des Tastverhältnisses gleich einem Verzögerungsschritt. Die Schrittgröße sollte ungefähr 3% der Zykluszeit nicht übersteigen. Auf diese Weise wird die Verzerrung bzw. Veränderung des Tastverhältnisses auf einem kleinen Pegel gehalten und auch der Jitter der Frequenz des Taktsignals wird auf einem kleinen Pegel gehalten. Dies ist hilfreich, um sicherzustellen, dass das gespreizte Taktsignal in korrekter Weise als ein Taktsignal dienen kann.
-
Die Periode des gespreizten Taktsignals ändert sich zufällig zwischen drei Werten: Die ursprüngliche Zykluszeit T, T + 2 Verzögerungsschritte und T – 2 Verzögerungsschritte. Wenn daher die Größe des Verzögerungsschritts 3% der Zykluszeit beträgt, dann variieren einzelne Zykluszeiten (d. h., Perioden des gespreizten Taktsignals) um bis zu 6%. Der Verarbeitungsblock 106 (beispielsweise ein synchroner DRAM), der das gespreizte Taktsignal empfängt, muss in der Lage sein, mit diesem geringfügig schnelleren Taktsignal und mit diesem geringfügig langsameren Taktsignal zu arbeiten.
-
Der hierin beschriebene Taktspreizungsblock ist am Ausgang eines Taktsignalgenerators 102 (beispielsweise an dem Ausgang eines Speicherblockteilers zum Erzeugen eines Taktsignals zum Zugreifen auf einen Speicher) anzuordnen. Der Taktspreizungsblock wird von einer festgelegten (0,85 V) VDD-Versorgungsleitung gespeist und nicht von einer Kernversorgungsspannung (VDD) der Einrichtung. Anders als bei konventionellen Einrichtungen von SSFD, wie dies zuvor beschrieben ist, übt der hierin beschriebene Taktspreizungsblock keine Steuerung an dem Taktsignalgenerator aus (beispielsweise an der PLL des Taktsignalgenerators). Stattdessen arbeitet der Taktspreizungsblock als eine kontinuierliche Variierung der Verzögerungsleitung, die effektiv die Taktfrequenz pseudozufällig zwischen zwei Frequenzen nahe an der Eingangsfrequenz (beispielsweise zwischen 0,94F0 und 1,06F0, wie dies zuvor beschrieben ist) hin und her schaltet. Um eine Änderung der Frequenz zu bewirken, ist es notwendig, die Verzögerung kontinuierlich und linear zu vergrößern und zu verkleinern. In der Verzögerungsschaltung fallen Änderungen an der Verzögerung nicht mit Taktsignalflanken zusammen (um „Glitches” bzw. kurze Signalstörungen zu vermeiden). Die Gesamtverzögerung ändert sich stets um einen Verzögerungsschritt bei jeder Taktsignalflanke, die die Schaltung durchläuft. Der Ausgang des LFSR 302 bestimmt in pseudozufälliger Weise, ob die Verzögerung erhöht oder verringert wird. Wenn sich die Verzögerung an ihrem minimalen oder maximalen Einstellwert befindet, dann wird die Verzögerung erhöht oder entsprechend verringert unabhängig von dem LFSR. Es ist eine minimale Anzahl an Verzögerungsstufen (beispielsweise 20) erforderlich, um die spektralen Wirkungen dieser Einschränkung zu umgehen.
-
4 ist ein detailliertes Schaltbild eines der Verzögerungselemente 318. In bevorzugten Ausführungsformen wird jedes der Verzögerungselemente 318 in der in 4 gezeigten Weise eingerichtet. 4 zeigt, dass die Verzögerungskomponenten 320 unter Anwendung eines ersten Multiplexers 402, eines zweiten Multiplexers 404, einer ersten Gruppe aus Invertern 406a und 406b und einer zweiten Gruppe aus Invertern 408a bis 408d eingerichtet werden. Der tiefpegelige Dateneingang des ersten Multiplexers 402 ist mit dem Ausgangssignal des Multiplexers 322 des vorhergehenden Verzögerungselements verbunden. Das hochpegelige Dateneingangssignal des ersten Multiplexers 402 ist mit dem Ausgangssignal des Multiplexers 322 des vorhergehenden Verzögerungselements über den Inverter 406a und 406b verbunden, die in Reihe angeordnet sind. Der Ausgang des ersten Multiplexers 402 ist invertierend und mit einem Eingang für ein tiefpegeliges Datensignal des zweiten Multiplexers 404 verbunden. Das invertierte Ausgangssignal des ersten Multiplexers 402 ist einem hochpegeligen Dateneingang des zweiten Multiplexers 404 über die Inverter 408a bis 408d, die in Reihe angeordnet sind, zugeleitet. Der Ausgang des zweiten Multiplexers 404 wird invertiert und dem hochpegeligen Dateneingang des Multiplexers 322 zugeleitet.
-
Die Steuereingänge der Multiplexer 402 und 404 werden statisch gesteuert, so dass diese sich während des Betriebs des Taktspreizungsblocks nicht ändern. Die Steuereingänge werden so festgelegt, dass sie für alle Verzögerungselemente 318 gleich sind, so dass die von jedem der Verzögerungselemente 318 hervorgerufene Verzögerung gleich ist. Die Inverter 406a, 406b und 408a bis 408d ergeben eine Verzögerung an dem Signal, das sie durchläuft. Jeder Inverter führt die gleiche Verzögerung ein. Die Größe der Verzögerung, die durch jedes Verzögerungselement 318 hervorgerufen wird, kann eingestellt werden, indem die Multiplexer 402 und 404 entsprechend festgelegt werden. Beispielsweise führt das Festlegen der Steuereingangssignale, die beiden Multiplexer 402 und 404 zugeleitet werden, auf einen tiefpegeligen Wert dazu, dass keine Verzögerung auf das Taktsignal durch die Verzögerungskomponenten 320 ausgeübt wird. Das Festlegen des Steuereingangsignals, das dem Multiplexer 402 zugeleitet wird, auf einen hohen Wert und das Festlegen des Steuereingangsignals, das dem Multiplexer 404 zugeleitet wird, auf einen tiefpegeligen Wert führen dazu, dass die Verzögerungskomponenten 320 das Taktsignal mit zwei der Inverter (406a und 406b aber nicht 408a bis 408d) verzögern. Das Festlegen des Steuereingangsignals, das dem Multiplexer 402 zugeleitet ist, auf einen tiefpegeligen Wert und das Festlegen des Steuereingangsignals, das dem Multiplexer 404 zugeleitet wird, auf einen hochpegeligen Wert führen dazu, dass die Verzögerungskomponenten 320 das Taktsignal mit vier von den Invertern (408a bis 408d aber nicht 406a und 406b) verzögern. Das Festlegen der Steuereingangssignale, die beiden Multiplexern 402 und 404 zugeleitet werden, auf einen hohen Wert führt dazu, dass die Verzögerungskomponenten 320 das Taktsignal mit allen sechs Invertern (406a, 406b und 408a bis 408d) verzögern. Man erkennt daher, dass durch das Festlegen der Werte der Steuereingangssignale für die Multiplexer 402 und 404 die Größe der Schritte (d. h., die Ikremente und Dekremente bzw. Erhöhungen und Verkleinerungen der Verzögerung), die durch die Verzögerungsleitung auf das Taktsignal angewendet wird, eingestellt werden kann. Der Fachmann erkennt, dass die Anhebung der Größe der Schritte zu einer größeren Spreizung des Taktsignals führt, aber auch den Jitter und die Verzerrung des Tastverhältnisses des gespreizten Taktsignals vergrößert. Daher kann der Verzögerungsschritt so eingestellt werden, dass ein Kompromiss zwischen dem Betrag der erforderlichen Spreizung und der Größe des Takt-Jitters und der Tastverhältnisverzerrung, die von dem Verarbeitungsblock 106 toleriert werden können, in welchem das gespreizte Taktsignal anzuwenden ist, gefunden wird.
-
6a bis 8e zeigen Graphen von Taktsignalspektren in diversen unterschiedlichen Situationen. 6a zeigt das Spektrum des reinen Taktsignals, das von dem Taktsignalgenerator 102 erzeugt ist. Man erkennt, dass die Spitzenwerte in dem Spektrum schmal sind und eine hohe Stärke bzw. Intensität besitzen. Insbesondere erkennt man, dass die dritte, fünfte und siebte Harmonische eine maximale Intensität über –20 dB besitzen. Wie in 6a hervorgehoben ist, fällt die siebte Harmonische eines 133 MHz-Taktsignals in die Bandbreite des EGSM900-Bandes, das zur Übertragung von Signalen gemäß dem GSM-Standard verwendet wird. Daher führt die siebte Harmonische des reinen Taktsignals mit 133 MHz, das in 6a gezeigt ist, zu einem hohen Grad an Störung in dem EGSM900-Band.
-
6b zeigt das Spektrum eines gespreizten Taktsignals, das unter Verwendung des 20-stufigen Taktspreizungsblocks, der in 3 gezeigt ist, gespreizt ist, wenn die Verzögerungskomponenten jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 6 einführen. Durch den Vergleich der 6a und 6b ist unmittelbar ersichtlich, dass die Spitzenwerte der Harmonischen des Taktsignals gespreizt sind (d. h., dass sie über eine breitere Bandbreite verteilt oder gespreizt sind bzw. diese abdecken) und eine geringere Spitzenintensität besitzen. Insbesondere ist die Intensität der siebten Harmonischen des gespreizten Taktsignals, das in 6b gezeigt ist, ungefähr 10 dB kleiner als die Intensität der siebten Harmonischen des reinen Taktsignals. Daher ist die Störung in dem EGSM900-Band, die durch die siebte Harmonische des gespreizten Taktsignals, das in 6 gezeigt ist, hervorgerufen wird, geringer als jene Störung, die durch die siebte Harmonische des reinen Taktsignals hervorgerufen wird.
-
6c zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung des in 3 gezeigten 20-stufigen Taktspreizungsblocks gespreizt ist, wenn die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 100 ps mit N = 6 einführen. Die Vergrößerung der Verzögerung in jeder Stufe in der Verzögerungsleitung vergrößert die Spreizung des Taktsignals. Wie man durch den Vergleich der 6b und 6c erkennt, sind die Spitzenwertbereiche der Harmonischen des Taktsignals breiter und besitzen eine geringere Spitzenintensität, wenn die Verzögerung der Verzögerungskomponenten 320 100 ps in Vergleich zu der Situation ist, in der die Verzögerung der Verzögerungskomponenten 320 50 ps beträgt. Diese zusätzliche Spreizung bedeutet, dass eine noch geringere Störung in den GSM-Bändern, etwa dem zuvor beschriebenen EGSM900-Band, auftritt. Man erkennt tatsächlich, dass die Intensität des siebten Harmonischen des in 6c gezeigten gespreizten Taktsignals ungefähr 20 dB geringer ist als die Intensität der siebten Harmonischen des reinen Taktsignals. Wie zuvor beschrieben ist, geht diese zusätzliche Spreizung zu Lasten eines erhöhten Jitters und einer größeren Tastverhältnisverzerrung des Taktsignals.
-
7a und 7b zeigen, wie das Spektrum des gespreizten Taktsignals sich mit der Anzahl an Verzögerungselementen 318 in der Verzögerungsleitung ändert. 7a zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 6 einführen. 7a stimmt daher mit 6b überein. 7b zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 40-stufigen Taktspreizungsblocks, der in 3 gezeigt ist, gespreizt ist, wobei die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 6 einführen. Man erkennt, dass die 40-stufige Verzögerungsleitung zu einem gespreizten Taktsignal wird, das Harmonische mit geringerer maximaler Intensität als bei Verwendung einer 20-stufigen Verzögerungsleitung besitzt. Jedoch erhöht sich bei Verlängerung der Verzögerungsleitung die Komplexität des Taktspreizungsblocks, so dass es vorteilhaft sein kann, die Anzahl an Verzögerungselementen gering zu halten (beispielsweise bei 20 Elementen). Ferner ist bei zunehmender Länge der Verzögerungsleitung die Gesamtverzögerung der Verzögerungsleitung größer, und da die gesamte Verzögerung der Verzögerungsleitung kleiner sein soll als die Periode des Taktsignals, ist es daher vorteilhaft, die Gesamtverzögerung der Verzögerungsleitung gering zu halten. Dies erlaubt es, dass der Taktspreizungsblock auch für Taktsignale mit höherer Frequenz angewendet wird.
-
8a bis 8e zeigen, wie das Spektrum des gespreizten Taktsignals sich bei Änderung des Wertes von N in dem Teilerblock 306 ändert. 8a zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 50 ps bei N = 1 ergeben. 8b zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponenten jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 4 ergeben. 8c zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 6 einführen. 8d zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponente jedes Verzögerungselements eine Verzögerung von 50 ps mit N = 10 einführen. 8e zeigt das Spektrum eines gespreizten Taktsignals, das unter Anwendung eines 20-stufigen Taktspreizungsblocks gespreizt ist, wobei die Verzögerungskomponenten jedes Verzögerungselements eine Verzögerung von 50 ps mit N = ∞ einführen. Man erkennt aus den 8a bis 8e, dass eine generelle Tendenz vorhanden ist, dass mit zunehmendem N sich die Spitzenwertbereiche des Spektrums verbreitern, d. h., in einem größeren Maße gespreizt sind bzw. sich ausbreiten.
-
Der hierin beschriebene Taktspreizungsblock ist insbesondere geeignet in Einrichtungen, die über ein kabelloses Netzwerk (beispielsweise ein GSM-Netzwerk) in Verbindung stehen, um die durch die Harmonischen des Taktsignals hervorgerufene Störung zu reduzieren. Andere Verfahren zum Reduzieren von Störung, die durch Harmonische des Taktsignals hervorgerufen wird, können nicht in einfacher Weise in der Größe abwärts skaliert werden, jedoch ist der hierin beschriebene Taktspreizungsblock in einfacher Weise in kleinen Geräten, etwa Mobiltelefonen, einzurichten, in denen die Komponenten in dem Gerät sehr nahe beieinander liegen. Da ferner der hierin beschriebene Taktspreizungsblock unabhängig von dem Taktsignalgenerator ist, kann der Block in bestehenden Geräten als separater Block hinzugefügt werden (oder als zusätzliche Komponente der Benutzeroberfläche bzw. „Widget”), um damit die Störung (oder das „Rauschen”) zu verringern, die sich aus den Harmonischen des Taktsignals ergibt. Beispielsweise kann sich die aus den Harmonischen des Taktsignals ergebende Störung um 10 dB reduziert werden, indem der Taktspreizungsblock in der Einrichtung hinzugefügt wird. Es können mehrere Taktspreizungsblöcke in einem Gerät eingerichtet werden, um das reine Taktsignal um unterschiedliche Beträge für unterschiedliche Zwecke in dem Gerät zu spreizen.
-
In den zuvor beschriebenen bevorzugten Ausführungsformen wird der Integrierer 110 bei jeder Flanke des Taktsignals getaktet, so dass die Verzögerung der Verzögerungsleitung sich bei jeder Flanke des Taktsignals ändert. In alternativen Ausführungsformen kann jedoch der Integrierer 110 weniger häufig getaktet werden. Wenn jedoch der Integrierer 110 bei abwechselnden Flanken (d. h., bei jeder zweiten Flanke) des Taktsignals getaktet wird, so dass die Verzögerung der Verzögerungsleitung sich für abwechselnde Flanken des Taktsignals ändert, kann dies zusätzliche Störkomponenten in das gespreizte Taktsignal einführen und kann das Tastverhältnis des gespreizten Taktsignals ungünstig beeinflussen.
-
In den zuvor beschriebenen bevorzugten Ausführungsformen wird der Integrierer 110 (der unter Verwendung der Flip Flops 324 in 3 eingerichtet ist) verwendet, um den Verzögerungswert zu speichern. In anderen Ausführungsformen kann der Verzögerungswert in anderer Weise gespeichert werden, wobei ein Integrierer nicht verwendet wird. Beispielsweise kann ein Register in dem Gerät 100 verwendet werden, um den Verzögerungswert zu speichern.
-
In den zuvor beschriebenen bevorzugten Ausführungsformen arbeitet der Taktspreizungsblock im digitalen Bereich. Auf diese Weise gibt der Zufallszahlgenerator 112 entweder eine 1 oder eine 0 aus, die verwendet werden, um den Verzögerungswert, der in dem Integrierer 100 gespeichert ist, zu erhöhen oder zu verringern, um damit die Anzahl an Verzögerungselementen festzulegen, die in der Verzögerungsleitung 108 auf das Taktsignal angewendet wird. In alternativen Ausführungsformen arbeitet der Taktspreizungsblock im analogen Bereich. In diesen alternativen Ausführungsformen kann der Zufallszahlgenerator eine Zufallszahl ausgeben, die nicht auf 0 oder 1 beschränkt ist und stattdessen beispielsweise einen analogen Wert zwischen 0 und 1 annehmen kann. Der in dem Integrierer 110 gespeicherte Verzögerungswert kann als ein analoger Wert gespeichert und entsprechend der analogen Zufallszahl variieren werden. Der analoge Zufallswert kann dann angewendet werden, um die Verzögerung der Verzögerungsleitung in analoger Weise zu variieren. Beispielsweise kann die Verzögerungsleitung eine Verzögerung auf das Taktsignal auf der Grundlage eines Spannungswerts anwenden, der der Verzögerungsleitung zugeleitet ist. Durch Variieren des Spannungswertes entsprechend dem Verzögerungswert, der in dem Integrierer 110 gespeichert ist, kann die durch die Verzögerungsleitung an das Taktsignal angewendete Verzögerung in analoger Weise variiert werden.
-
Obwohl diese Erfindung insbesondere mit Bezug zu bevorzugten Ausführungsformen gezeigt und beschrieben ist, erkennt der Fachmann, dass diverse Änderungen in Form und Detail durchgeführt werden können, ohne von dem Schutzbereich der Erfindung, wie sie durch die angefügten Patentansprüche definiert ist, abzuweichen.