[go: up one dir, main page]

DE102013222669B4 - Ein variationstoleranter periodischer Synchronisator - Google Patents

Ein variationstoleranter periodischer Synchronisator Download PDF

Info

Publication number
DE102013222669B4
DE102013222669B4 DE102013222669.1A DE102013222669A DE102013222669B4 DE 102013222669 B4 DE102013222669 B4 DE 102013222669B4 DE 102013222669 A DE102013222669 A DE 102013222669A DE 102013222669 B4 DE102013222669 B4 DE 102013222669B4
Authority
DE
Germany
Prior art keywords
phase
clock signal
period
clk
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013222669.1A
Other languages
English (en)
Other versions
DE102013222669A1 (de
Inventor
William J. Dally
Stephen G. Tell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013222669A1 publication Critical patent/DE102013222669A1/de
Application granted granted Critical
Publication of DE102013222669B4 publication Critical patent/DE102013222669B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

Ein Verfahren aufweisend:
Erhalten eines Phasenwertes, der eine Phase eines zweiten Taktsignals relativ zu einem ersten Taktsignal repräsentiert, wobei die Frequenz mindestens eines des ersten Taktsignals und des zweiten Taktsignals zeitlich variiert;
Erhalten eines Periodenwertes, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert; und Berechnen, basierend auf dem Phasenwert und dem Periodenwert, eines extrapolierten Phasenwertes des zweiten Taktsignals relativ zu dem ersten Taktsignal entsprechend einem nächsten Übergang des ersten Taktsignals, wobei der extrapolierte Phasenwert von den gegenwärtigen Werten des Phasenwertes und des Periodenwertes extrapoliert wird.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Schaltkreise und spezifischer auf Synchronisierungsschaltkreise für Taktdomains mit zeitlich variablen Taktfrequenzen.
  • HINTERGRUND
  • Viele digitale Systeme haben mehrere Taktdomains. Folglich müssen Signale synchronisiert werden, wenn sie sich von einer Taktdomain zu einer anderen bewegen, um Metastabilität und Synchronisationsfehler zu vermeiden. Falls die zwei Takte feste Frequenzen haben, ist das Phasenverhältnis zwischen den zwei Takten periodisch, an der Schwebungsfrequenz der zwei Takte. Durch Nutzen des Vorteils dieses periodischen Phasenverhältnisses kann ein periodischer Synchronisator einfacher sein, geringere Latenz und eine geringere Wahrscheinlichkeit des Ausfalls haben als ein Synchronisator, der kreuzende Taktdomains handhaben muss, wobei zumindest ein der Takte bei einer variablen Frequenz arbeitet.
  • Aus der Druckschrift US 2012/0303996 A1 ist ein Verfahren zum Synchronisieren einer Datenübergabe zwischen einer ersten Niederfrequenz-Taktdomäne und einer zweiten Hochfrequenz-Taktdomäne bekannt, wobei ein Synchronisationsimpulsgenerator mit dem Takt der zweiten Taktdomäne getaktet ist und derart konfiguriert, dass er Informationen über die Zyklusdauer eines Synchronisationsimpulses empfängt, welche eine zeitliche Position eines Synchronisationsimpulses bei einem Takt der zweiten Taktdomäne beschreiben, und einen Synchronisationsimpuls dergestalt erzeugt, dass der Synchronisationsimpuls sich an der zeitlichen Position befindet, die durch die Informationen über die Zyklusdauer des Synchronisationsimpulses beschrieben ist, wobei die Zyklusdauer des Synchronisationsimpulses aufgrund der Phaseninformationen angepasst und ein geteiltes Taktsignal zur Verfügung gestellt wird, das eine Frequenz gleich einer halben Frequenz des Taktes der ersten Taktdomäne aufweist, und wobei das Frequenzverhältnis der Taktfrequenz der Niederfrequenz-Taktdomäne und der Taktfrequenz der Hochfrequenz-Taktdomäne aus einer rationalen Zahl besteht.
  • Wenn zumindest eine der Taktdomains bei einer variablen Frequenz arbeitet, ist das Entwerfen des Synchronisators komplizierter. Typisch werden Signale, die zwischen Taktdomains passieren, mit einem periodischen Takt unter Verwendung von asynchronen Zuerst-Hinein-Zuerst-Hinaus-Schaltungen (FIFOs) synchronisiert. Ein wesentlicher Flächenaufwand tritt für den FIFO-Speicher auf. Die FIFOs fügen auch mehrere Zyklen von Verzögerung hinzu, da die Graycodierten Eingangs- und Ausgangszeiger des FIFO durch mehrere Flip-Flops synchronisiert werden müssen, um die Signale querüber Taktdomains zuverlässig zu übermitteln.
  • Es besteht folglich ein Bedürfnis nach verbesserten Techniken zur Synchronisierung von Taktdomains. Insbesondere besteht ein Bedarf nach solchen Synchronisierungstechniken für Taktdomains mit zeitlich variablen Taktfrequenzen, die zumindest einige der oben genannten Nachteile lindern oder beheben.
  • ZUSAMMENFASSUNG
  • Ein Verfahren und ein System zur variationstoleranten Synchronisierung werden bereitgestellt. Ein Phasenwert, der eine Phase eines zweiten Taktsignals relativ zu einem ersten Taktsignal repräsentiert, und ein Periodenwert, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert, werden erhalten. Ein extrapolierter Phasenwert des zweiten Taktsignals relativ zu dem ersten Taktsignal entsprechend einem nächsten Übergang des ersten Taktsignals wird basierend auf dem Phasenwert und dem Periodenwert berechnet.
  • Figurenliste
    • Die 1A stellt ein Flussdiagramm von einem Verfahren zur Lokalisierung einer Flankenindikation innerhalb einer Sequenz von Taktsignalsamples dar, gemäß einer Ausführungsform.
    • Die 1B stellt ein Flussdiagramm von einem Verfahren zur Verwendung der Flankenindikation zum Detektieren einer Phase dar, gemäß einer Ausführungsform.
    • Die 2A stellt einen Phasendetektor mit hoher Auflösung dar, gemäß einer Ausführungsform.
    • Die 2B stellt eine Taktverzögerungseinheit von 2A dar, gemäß einer Ausführungsform.
    • Die 2C stellt eine Taktsampleeinheit von 2A dar, gemäß einer Ausführungsform.
    • Die 2D stellt eine Flankendetektionseinheit von 2A dar, gemäß einer Ausführungsform.
    • Die 2E stellt eine Phaseneinheit von 2A dar, gemäß einer Ausführungsform.
    • Die 2F stellt eine Periodeneinheit von 2A dar, gemäß einer Ausführungsform.
    • Die 3A stellt Wellenformen von zwei Taktsignalen dar, gemäß einer Ausführungsform.
    • Die 3B stellt andere Wellenformen von zwei Taktsignalen dar, gemäß einer Ausführungsform.
    • Die 4 stellt ein Flussdiagramm von einem Verfahren zur Bestimmung einer Phase und einer Periode dar, gemäß einer Ausführungsform.
    • Die 5A stellt einen weiteren Phasendetektor mit hoher Auflösung dar, gemäß einer Ausführungsform.
    • Die 5B stellt eine open-loop Taktverzögerungseinheit von 5A dar, gemäß einer Ausführungsform.
    • Die 5C stellt eine Taktsampleeinheit von 5A dar, gemäß einer Ausführungsform.
    • Die 5D stellt eine Periodenberechnungseinheit von 5A dar, gemäß einer Ausführungsform.
    • Die 5E stellt eine Phaseneinheit von 5A dar, gemäß einer Ausführungsform.
    • Die 5F stellt eine Periodeneinheit von 5A dar, gemäß einer Ausführungsform.
    • 5G stellt ein weiteres Flussdiagramm von einem Verfahren zur Bestimmung einer Phase und einer Periode dar, gemäß einer Ausführungsform.
    • Die 6A stellt einen beispielhaften integrierten Schaltkreis dar, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen.
    • Die 6B stellt ein Flussdiagramm von einem Verfahren zur Synchronisierung von Signalen dar, gemäß einer Ausführungsform.
    • Die 6C stellt Wellenformen von zwei Taktsignalen dar, gemäß einer Ausführungsform.
    • Die 6D stellt andere Wellenformen von zwei Taktsignalen dar, gemäß einer Ausführungsform.
    • Die 7A stellt einen variationstoleranten periodischen Synchronisator dar, gemäß einer Ausführungsform.
    • Die 7B stellt die Registrierte-Signale-Einheit von 7A dar, gemäß einer Ausführungsform.
    • Die 7C stellt ein weiteres Flussdiagramm von einem Verfahren zur Synchronisierung von Signalen dar, gemäß einer Ausführungsform.
    • Die 8 stellt ein beispielhaftes System dar, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen.
  • DETAILLIERTE BESCHREIBUNG
  • Prozessoren, die in Smartphones, Tablets, Laptops und anderen mobilen Geräten verwendet werden, reduzieren gelegentlich die Versorgungsspannung, die für einen oder mehrere integrierten Schaltkreisvorrichtungen bereitgestellt wird, um den Energieverbrauch zu reduzieren und um die Zeit zwischen Aufladungen einer Batterie zu verlängern. Die integrierten Schaltkreisvorrichtungen mögen auch die Levels der Versorgungsspannung an verschiedene Schaltkreise innerhalb der Vorrichtung basierend auf verschiedenen Betriebsmodi variieren. Versorgungsspannungen mögen sich auch verändern aufgrund von Transienten in dem Versorgungsstrom, der von einem Bauteil gezogen wird. Während ein Level der Versorgungsspannung reduziert ist, mögen jegliche Taktsignale, die von dem jeweiligen Level der Versorgungsspannung abhängig sind, bei einer niedrigeren Frequenz arbeiten. Wenn der Level der Versorgungsspannung ansteigt, steigt die Frequenz des Taktsignals auch an. Da die Taktfrequenzen als eine Funktion von den Levels der Versorgungsspannung variieren mögen, kann nicht auf konventionellen Synchronisierungstechniken, die sich auf ein festes Verhältnis zwischen verschiedenen Taktdomains verlassen, gesetzt werden, um Signale zwischen Taktdomains zu übertragen, wenn zumindest einer der Takte eine variable Frequenz hat.
  • Auch wenn Taktfrequenzen als Reaktion auf variierende Levels der Versorgungsspannung variieren mögen, mögen die hierin beschriebenen Techniken auch in Situationen eingesetzt werden, für welche die Taktfrequenzen aus anderen Gründen variieren. Die Taktfrequenzen mögen zum Beispiel mit variierenden Temperaturen variieren oder Sie mögen als Folge von Programmierung variieren.
  • Was der vorliegenden Beschreibung anbelangt ist eine erste Taktdomain eine Taktdomain von einer jeden Art von System, aus welchem ein Signal gesampelt werden mag. Die erste Taktdomain könnte zum Beispiel eine Taktdomain von einer zentralen Verarbeitungseinheit (CPU), einer Grafikverarbeitungseinheit (GPU), einer Speichersteuerung und/oder eines jeden anderen Systems mit einer Taktdomain sein. Die erste Taktdomain mag ein erstes Taktsignal aufweisen, das eine bestimmte Frequenz hat oder eine Frequenz hat, die variieren mag. Eine zweite Taktdomain mag ein zweites Taktsignal aufweisen, das eine bestimmte Frequenz hat oder eine Frequenz hat, die variieren mag. Signale, die von der zweiten Domain an die erste Domain übertragen werden, werden zu der ersten Taktdomain synchronisiert.
  • Statt einen konventionellen Synchronisator zu verwenden, der Signale zwischen Taktdomains unter Verwendung asynchroner Zuerst-Hinein-Zuerst-Hinaus Puffer (FIFOs) weitergeben, mag ein Synchronisator mit niedriger Latenz entworfen werden, der die relative Phase zwischen den Taktdomains verwendet. Angenommen, dass das erste Taktsignal sich in einer empfangenden Taktdomain befindet und das zweite Taktsignal sich in einer sendenden Taktdomain befindet, wird die relative Phase verwendet zum Bestimmen, wann Signale in der sendenden Taktdomain in der empfangenden Taktdomain gesampelt werden mögen. Ein Phasendetektor mit hoher Auflösung, welcher hierin weiter beschrieben wird, mag konfiguriert sein zum Verfolgen von Frequenztransienten und zum Erzeugen der relativen Phase und Periode zwischen den zwei Taktdomains, wenn das eine oder beide Taktsignale variierende Frequenzen haben. Der Phasendetektor mit hoher Auflösung verwendet das erste Taktsignal, das der lokale oder empfangende Takt (clkr) ist, und akzeptiert das zweite Taktsignal von der sendenden Taktdomain (clkt). Der Phasendetektor mit hoher Auflösung gibt zwei Signale aus, die folgendes enkodieren: einen Phasenwert (Phase) und einen Periodenwert (Periode). Der Wert von Phase repräsentiert die Zeit, in clkr-Einheitsintervallen (UI), von dem letzten Übergang auf clkt bis zu dem letzten Übergang auf clkr. Der Wert von Periode repräsentiert die Zeit, in clkr-UI, zwischen den zwei letzten Übergängen auf clkt.
  • Die 1A stellt ein Flussdiagramm von einem Verfahren 100 zur Lokalisierung einer Flankenindikation innerhalb einer Sequenz von Taktsignalsamples dar, gemäß einer Ausführungsform. Bei Schritt 105 wird ein Satz von verzögerten Versionen des ersten Taktsignals erzeugt. Jede verzögerte Version des ersten Taktsignals ist eine unterschiedliche Phase des ersten Taktsignals. Bei Schritt 110 wird das zweite Taktsignal unter Verwendung des Satzes von verzögerten Versionen des ersten Taktsignals gesampelt, um eine Sequenz von Samples in der ersten Taktdomain zu erzeugen. Dann, bei Schritt 115, wird zumindest eine Flankenindikation innerhalb der Sequenz von Samples lokalisiert. Die Flankenindikation ist ein ansteigender oder abfallender Übergang eines Samples der Sequenz von Samples. Die zumindest eine Flankenindikation mag zum Berechnen des Phasenwertes und des Periodenwertes verwendet werden.
  • Die 1B stellt ein Flussdiagramm von einem Verfahren 130 zur Verwendung der Flankenindikation zum Detektieren einer Phase dar, gemäß einer Ausführungsform. Die Schritte 105, 110 und 115 werden durchgeführt, um zumindest eine Flankenindikation bereitzustellen. Bei Schritt 120 wird die neueste Flankenindikation verarbeitet, um einen Phasenwert zu berechnen, der eine Phase des zweiten Taktsignals relativ zu dem ersten Taktsignal repräsentiert. Bei Schritt 125 werden die zwei neuesten Flankenindikationen verarbeitet, um einen Periodenwert zu berechnen, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert.
  • Die 2A stellt einen Phasendetektor 200 mit hoher Auflösung dar, gemäß einer Ausführungsform. Der Phasendetektor 200 mit hoher Auflösung weist eine Taktverzögerungseinheit 210, eine Taktsampleeinheit 220, eine Flankendetektionseinheit 230, eine Phaseneinheit 240 und eine Periodeneinheit 250 auf. Der Phasendetektor 200 mit hoher Auflösung erhält ein erstes Taktsignal, Clk 201, und ein zweites Taktsignal, Clk 202, und erzeugt zwei Werte, eine Phase 203 und eine Periode 204. Die Werte der Phase 203 und Periode 204 werden jeweils mit Multi-Bit-Signalen enkodiert. Der Wert der Phase 203 repräsentiert eine Phase des zweiten Takts relativ zu dem ersten Takt. Der Wert der Periode 204 repräsentiert eine relative Periode zwischen dem zweiten Takt und dem ersten Takt. Zumindest einer von dem ersten Takt und dem zweiten Takt mag über Zeit variieren. Der Phasendetektor 200 mit hoher Auflösung ist dafür konzipiert, die Phase und Periode kontinuierlich zu messen, während die Frequenz des ersten Taktes und/oder des zweiten Taktes variiert.
  • Die 2B stellt die Taktverzögerungseinheit 210 von 2A dar, gemäß einer Ausführungsform. Eine Reihe von N Verzögerungselementen 211 erzeugen N unterschiedliche gleichmäßig beabstandete Taktphasen, verzögerte Versionen des Clk 201, spezifisch Clk_d0, Clk_d1, Clk_d2, Clk_d3, ... Clk_dN. Ein Phasenkomparator 215 konfiguriert die Verzögerung, mit welcher die Verzögerungselemente 211 die jeweilige Eingabesignale (Clk 201 und verzögerte Versionen von Clk 201) verzögern, um sicherzustellen, dass die Taktphasen sich über eine Periode des Clk 201 erstrecken, das heißt so dass Clk 201 = Clk_d0 die gleiche Phase wie Clk_dN hat. Da der Phasenkomparator 215 die Verzögerung steuert, die von den Verzögerungselementen 211 eingeführt wird, ist die Taktverzögerungseinheit 210 ein closed-loop Verzögerungsschaltkreis. Die Auflösung des Phasendetektors 200 mit hoher Auflösung mag erhöht werden durch Erhöhen der Anzahl von verzögerten Versionen von Clk 201, die von der Takterzeugungseinheit 210 erzeugt werden. In einer alternativen Ausführungsform mag der Phasenkomparator 215 ausgelassen sein und die Taktverzögerungsreihe mag in einer open-loopmäßigen Art und Weise betrieben werden.
  • Die 2C stellt die Taktsampleeinheit 220 von 2A dar, gemäß einer Ausführungsform. Die Taktsampleeinheit 220 weist eine Mehrzahl von Flip-Flops 222 und eine entsprechende Mehrzahl von Synchronisatoren 224 auf. Die Taktsampleeinheit 220 erhält die von der Takterzeugungseinheit 210 erzeugten verzögerten Versionen von Clk 201 und erzeugt eine Sequenz von Samples von dem zweiten Taktsignal, Clk 202, in der Domain von Clk 201. Jede verzögerte Version vom Clk 201, Clk_d0, Clk_d1, ... Clk_dN wird zum Sampeln des Clk 202 verwendet, wobei die Sequenz von Samples 225 an den Ausgängen der Flip-Flops 222 produziert wird. Die Samples 225 werden dann erneut getimt (engl. „retimed“) (um die Samples 225 mit Clk 201 auszurichten) und synchronisiert (weil der Clk 202 ein asynchrones Signal ist) von den Synchronisatoren 224, um die Sequenz von Samples von Clk 202, Clk_s0, Clk_s1, Clk_s2, Clk_s3, ... Clk_sN zu produzieren. Die Synchronisatoren 224 weisen typisch einen oder mehrere Flip-Flops auf, eine Menge, die groß genug ist, um eine niedrige Wahrscheinlichkeit von Synchronisationsverfehlen zu erreichen. Zum Beispiel ergeben 4 oder 5 Flip-Flops in Reihe eine Wahrscheinlichkeit des Verfehlens von weniger als 10-40.
  • Die 2D stellt die Flankendetektionseinheit 230 von 2A dar, gemäß einer Ausführungsform. Die Flankendetektionseinheit 230 weist ein Array von UND-Gattern 231, eine Flankenidentifikationseinheit 232 und eine Mehrzahl von Encodern 234 auf. Die Flankendetektionseinheit 230 erhält die von der Taktsampleeinheit 220 produzierte Sequenz von Samples Clk_s0, Clk_s1, ... Clk_sN. Die Sequenz von Samples Clk_s0, Clk_s1, ... Clk_sN wird zu einem Array von UND-Gattern 231 eingegeben, um Flankenindikationen zu lokalisieren, zum Beispiel ansteigende Übergänge innerhalb der Sequenz von Samples. Mit anderen Worten detektiert das Array von UND-Gattern 231 ansteigende Flanken des zweiten Taktsignals Clk 202, das von dem ersten Taktsignal Clk 201 gesampelt worden ist. In einer Ausführungsform mag die Flankendetektionseinheit 230 zum Lokalisieren von Flankenindikationen konfiguriert sein, die abfallende oder sowohl abfallende als auch ansteigende Übergänge sind.
  • Ein oder mehrere Bits der Übergangssignale 233, ti, = Clk_si & ~Clk_si-1 sind wahr, wenn eine ansteigende Flanke des Clk 202 zwischen verzögerten Versionen des Clk 201 aufgetreten ist, Clk_di-1 und Clk_di, wobei i sich von 0 bis N erstreckt. Wenn zum Beispiel eine ansteigende Flanke des Clk 202 zwischen Clk_d3 und Clk_d4 auftritt und eine abfallende Flanke des Clk 202 zwischen Clk_d7 und Clk_d8 auftritt, dann sind die Clk_si-Signale 000011110 und die Übergangssignale 233 enkodieren den Wert 000010000 für i von 0 bis N=8. Die Übergangssignale 233, ti, werden zu einer Flankenidentifikationseinheit 232 eingegeben, die (beginnend von tN) das erste Bit, das wahr ist, und das zweite Bit, das wahr ist, in der Sequenz von Übergangssignalen findet - wenn irgendeines der Bits wahr ist. Eine One-Hot-Enkodierung des ersten Bits, das wahr ist, und des zweiten Bits, das wahr ist, wird auf den Signalen First_oh und Second_oh ausgegeben, welche dann durch die Encoder 234 in die m=log2(N)-Bit binäre Signale First 235 und Second 237 enkodiert werden. Die Übergangssignale 233 und/oder die Signale First_oh und Second_oh mögen als Flankenindikationen erachtet werden. Die Werte von First 235 und Second 237 werden als Signale enkodiert und geben die Positionen der Flankenindikationen als eine Anzahl von Bitpositionen von tN an, wo die erste und zweite Übergänge jeweils aufgetreten sind. Wenn zum Beispiel die Übergangssignale 233 den Wert 000100010 enkodieren, sind die Werte von First_oh und Second_oh jeweils 000000010 und 000100000. In diesem Falle sind die Werte von First 235 und Second 237 jeweils 1/8 und 5/8. Da es in diesem Beispiel acht Bitpositionen gibt, gibt eine in Position i detektierte Flanke eine Flanke an, die i/8 eines Zyklus vor der neusten Flanke des Clk 201 aufgetreten ist. Signale enkodieren die Werte First_v 236 und Second_v 238, die auch von den Encodern 234 produziert werden, um anzugeben, ob jeweils ein erster und zweiter Übergang gefunden wurden.
  • Die 2E stellt die Phaseneinheit 240 von 2A dar, gemäß einer Ausführungsform. Die Phaseneinheit 240 erhält die Werte von First 235 und First_v 236 von der Flankendetektionseinheit 230 und erzeugt den Wert der Phase 203. Die Phaseneinheit 240 weist ein Phasenregister 244, einen Inkrementierer 242 und einen Multiplexer 246 auf. Falls ein Übergang detektiert wird, zum Beispiel First_v 236 aktiviert (engl. „asserted“) ist (wahr ist) und First 235 gleich dem Wert der Phase ist. First 235 ist ein Maß (in Einheiten von Zeit) von der ansteigenden Flanke des Clk 201 bis zu dem neuesten Übergang des Clk 202. Wenn First_v 236 aktiviert ist, wählt der Multiplexer 246 den Wert First 235 als die Ausgabe, nächste Phase. Falls kein Übergang detektiert wird, First_v 236 ist zum Beispiel nicht aktiviert und der Multiplexer 246 wählt die inkrementierte Phase 245 als die nächste Phase aus. Der Wert der inkrementierten Phase 245 wird von dem Inkrementierer 242 berechnet als die Phase 203 inkrementiert mit ONE. Die Konstante. ONE repräsentiert eine Periode des Clk 201. In dem vorhergehenden Beispiel - in welchem der Wert Phase 203 in Achteln einer UI repräsentiert ist, hat die Konstante ONE den binären Wert 01000 - repräsentierend 8/8.
  • Der Wert von Next_Phase (nächste Phase) wird zu dem Phasenregister 244 eingegeben, das das Signal Phase 203 ausgibt. Der folgende Verilog mag übersetzt werden, um zumindest einen Teil der Logik zu erzeugen, die in der Phaseneinheit 240 gezeigt ist, insbesondere um eine Eingabe (Next_Phase) für das Phasenregister 244 bereitzustellen: assign next_phase = first_v ? first : phase + ' ONE ;
    Figure DE102013222669B4_0001
  • Die 2F stellt die Periodeneinheit 250 von 2A dar, gemäß einer Ausführungsform. Die Periodeneinheit 250 weist ein Periodenregister 254, einen Subtrahierer 252 und zwei Multiplexer 256 und 258 auf. Die Periodeneinheit 250 erhält First 235, First_v 236, Second 237 und Second_v 238 von der Flankendetektionseinheit 230 und die inkrementierte Phase 245 von der Phaseneinheit 240 und erzeugt das Ausgangssignal Periode 204. Falls kein Übergang detektiert wird, zum Beispiel sind weder First_v 236 noch Second_v 238 aktiviert, wird Next_Period (nächste Periode) (und Periode 204) nicht geändert. Anderenfalls, wenn zwei Übergänge detektiert werden, zum Beispiel sind sowohl First_v 236 als auch Second_v 238 aktiviert, wird Next_Period berechnet durch Subtrahieren First 235 von der Phase des vorhergehenden Übergangs, Second 237. Falls nur ein Übergang detektiert wird, zum Beispiel ist First_v 236 aktiviert, wird Next_Period berechnet durch Subtrahieren First 235 von der Phase des vorhergehenden Übergangs, die inkrementierte Phase 245. Mit anderen Worten wird die gegenwärtige Phase, First 235, von der Phase des letzten Übergangs subtrahiert - entweder Second 237, wenn ein zweiter Übergang in der gleichen Periode des Clk 201 detektiert ist, oder anderenfalls die inkrementierte Phase 245.
  • Wenn ein zweiter Übergang detektiert wird, wird ein erster Übergang auch detektiert. Wenn Second_v 238 aktiviert ist, wählt der Multiplexer 256 den Wert Second 237 als die Eingabe zu dem Subtrahierer 252 aus. Wenn kein zweiter Übergang detektiert wird, wählt der Multiplexer 256 die inkrementierte Phase 245 als die Eingabe zu dem Subtrahierer 252 aus. Der Subtrahierer subtrahiert den Wert First 235 von der Eingabe, um eine Ausgabe zu erzeugen. Wenn ein erster Übergang detektiert wird, wählt der Multiplexer 258 die Ausgabe des Subtrahierers 252 als die nächste Periode aus. Anderenfalls wählt der multiplexer 258 die Ausgabe von dem Periodenregister 254 als die nächste Periode aus und der Wert Periode 204 ist unverändert.
  • Der folgende Verilog mag übersetzt werden, um zumindest einen Teil der Logik zu erzeugen, die in der Periodeneinheit 250 gezeigt ist, insbesondere um eine Eingabe (Next_Period) für das Periodenregister 254 bereitzustellen: assign next_period = first_v ?   ( second_v ? second  :   ( phase + ' ONE ) ) first ) : period ;
    Figure DE102013222669B4_0002
  • Der Wert Next_Period wird zu dem Periodenregister 254 eingegeben, welches das Signal Period 204 ausgibt.
  • In einer Ausführungsform, wenn Clk 201 1 GHz ist und die Verzögerungselemente 211 über Prozess-Spannung-Temperatur-Variationen (PVT) auf 62,5 ns getrimmt werden können, N = 16 und m = 4 und die Konstante ONE ist gleich 010000. Wenn der Wert von N eine Zweierpotenz ist, werden die von der Flankendetektionseinheit 230 durchgeführten Berechnungen simplifiziert. Die Phase 203 und Periode 204 sind in einer Festkommanotation mit m Bits rechts des binären Kommas repräsentiert. Das Phasenregister 244 und Periodenregister 254 müssen eine ausreichende Anzahl von Bits enthalten, um die größtmögliche Periode von Clk 202 enkodieren zu können. Wenn zum Beispiel der langsamst mögliche Clk 202 eine Periode hat, die fünfmal so lang ist wie die Periode des Clk 201, dann werden drei Bits links des binären Kommas benötigt.
  • Aufgrund der zum Re-Timing und zur Synchronisierung benötigte Verzögerung geben die Werte von Phase 203 und Periode 204 die Phase und Periode des Clk 201 eine feste Anzahl von Zyklen des Clk 201 in der Vergangenheit wieder. Wenn zum Beispiel die Synchronisatoren 224 eine Verzögerung von vier Zyklen haben und eine Re-Timing-Verzögerung von einem Zyklus von den Flip-Flops 222 eingeführt wird, repräsentieren die Werte Phase 203 und Period 204 den Zustand des Clk 202 fünf Zyklen des Clk 201 zurück in die Vergangenheit. Ein schnelles Synchronisator-Design, das die Periode 204 (und eventuell Ableitungen der Periode 204) verwendet, um die Phase des Clk 202 auf dem nächsten Zyklus von Clk 201 vorherzusagen, sagt sechs Zyklen des Clk 201 vorher.
  • Die 3A stellt Wellenformen von zwei Taktsignalen, Clk 201 und Clk 202 dar, gemäß einer Ausführungsform. Die Frequenz des zweiten Taktes, Clk 202, ist schneller als die Frequenz des ersten Taktes, Clk 201. Signale werden aus einer zweiten Taktdomain, die dem Takt Clk 202 entspricht, zu einer ersten Taktdomain übertragen, die dem Takt Clk 201 entspricht. Die Periode 302 des Clk 202 ist, wie gezeigt, kürzer als die Periode 301 des Clk 201. Folglich sollte von der Flankendetektionseinheit 230 zumindest ein Flankenindikation für den Clk 202 innerhalb jeder Taktperiode 301 detektiert werden. Wie gezeigt, treten zwei Flanken des Clk 202 innerhalb der Periode 301 auf. An der neusten Flanke 305 des Taktes 201 wird der Wert First 235 entsprechend einer ersten Flankenindikation innerhalb der Periode 301 von der Flankendetektionseinheit 230 berechnet. An der neusten Flanke 305 des Taktes 201 wird auch der Wert Second 237 entsprechend einer zweiten Flankenindikation innerhalb der Periode 301 von der Flankendetektionseinheit 230 berechnet.
  • In einer Ausführungsform ist die Flankendetektionseinheit 230 konfiguriert zum Berechnen eines dritten Wertes, der einer dritten Flankenindikation entspricht. Der dritte Wert mag verwendet werden, um eine Steigung der relativen Periode zu berechnen, wenn zumindest einer von Clk 201 und Clk 202 sich sanft verändert. Die Steigung mag von einer Synchronisierungseinheit verwendet werden, um einen präziseren Wert der zukünftigen Phase und der zukünftigen Periode vorherzusagen. Das Vorhersagen der Werte von Phase 203 und Periode 204 um einen oder mehrere Takte im Voraus ist nützlich, da die gegenwärtige Phase 203 und Periode 204 wegen der Latenz des Phasendetektors 200 mit hoher Auflösung für mehrere Taktzyklen des Clk 201 zurück in der Vergangenheit gültig sind.
  • Die 3B stellt ein weiteres Beispiel von Wellenformen der zwei Taktsignale, Clk 201 und Clk 202 dar, gemäß einer Ausführungsform. Die Frequenz des sendenden Taktes, Clk 202, ist langsamer als die Frequenz des empfangenden Taktes, Clk 201. Die Periode 312 des Clk 202 ist, wie gezeigt, länger als die Periode 311 des Clk 201. Während einiger Perioden des Clk 201 mag eine Flankenindikation für den Takt 202 folglich nicht von der Flankendetektionseinheit 230 detektiert werden.
  • An einer ältesten Flanke 323 wird der Wert First 310, der einer ersten Flankenindikation am Anfang der Periode 272 entspricht, von der Flankendetektionseinheit lokalisiert, und der Wert First 235-B wird von der Flankendetektionseinheit 230 berechnet. Nehme an, dass der Wert First 235-B in diesem Beispiel gleich 7 Einheiten von der Verzögerung 211 ist. Folglich wird die nächste Phase von der Phaseneinheit 240 auf 7 gesetzt und die nächste Periode wird als die Differenz zwischen Phase 203, die mit N = 16 summiert wird, und First 310 berechnet. Die Phase 203 und Periode 204 werden an der Taktflanke 324 aktualisiert. An einer nächsten Flanke 324 wird keine Flankenindikation von der Flankendetektionseinheit 230 detektiert und die nächste Phase wird von der Phaseneinheit 240 aktualisiert als die Phase 203, die mit N = 16 erhöht wird, so dass die Phase 203 auf 7 + 16 = 23 aktualisiert wird. Die Periode 204 wird nicht geändert.
  • An einer neusten Flanke 325 wird der Wert First 235-A, der einer anderen ersten Flankenindikation am Ende der Periode 312 entspricht, von der Flankendetektionseinheit 230 lokalisiert und der Wert First 235-A wird von der Flankendetektionseinheit 230 berechnet. Nehme in diesem Beispiel an, dass dieser zusätzlicher Wert First 235-A gleich 6 Einheiten von der Verzögerung 211 ist. Folglich wird die nächste Phase von der Phaseneinheit 240 auf 6 gesetzt und die nächste Periode wird als die Differenz zwischen Phase 203, die mit N = 16 summiert wird, und First 235-A berechnet, das heißt 23 + 16 - 6 = 33. Die Phase 203 und Periode 204 werden an der Taktflanke 325 aktualisiert.
  • Die 4 stellt ein Flussdiagramm von einem Verfahren 400 zur Bestimmung der Phase 203 und Periode 204 dar, gemäß einer Ausführungsform. Bei Schritt 405 wird ein Satz von verzögerten Versionen des Clk 201 von der Taktverzögerungseinheit 210 erzeugt. Bei Schritt 410 wird der Clk 202 von der Taktsampleeinheit 220 unter Verwendung des Satzes von verzögerten Versionen des Clk 201 gesampelt, um die Sequenz von Samples 225 in der Domain des Clk 201 zu produzieren. Dann, bei Schritt 415, lokalisiert die Flankendetektionseinheit 230 jegliche Flanken, zum Beispiel ansteigende, abfallende oder ansteigende und abfallende, innerhalb der Sequenz von Samples 225.
  • Bei Schritt 420 bestimmt die Phaseneinheit 240, ob eine erste Flankenindikation von der Flankendetektionseinheit 230 detektiert wurde, und, wenn nicht, wird die Phase 203 bei Schritt 425 aktualisiert zu der Phase 203 mit einer Periode des Clk 201 erhöht, zum Beispiel Phase + ONE. Wenn keine erste Flankenindikation von der Flankendetektionseinheit 230 detektiert wird, wird die Periode 204 nicht geändert. Anderenfalls, wenn eine erste Flankenindikation detektiert wird, setzt die Phaseneinheit 240 bei Schritt 430 die Phase 203 gleich dem von der Flankendetektionseinheit 230 erzeugten Signal First 235. Bei Schritt 435 bestimmt die Periodeneinheit 250, ob eine zweite Flankenindikation von der Flankendetektionseinheit 230 detektiert wurde, und, wenn dies der Fall ist, dann setzt die Periodeneinheit 250 bei Schritt 440 die Periode 204 gleich der Differenz zwischen dem Signal Second 237 und dem Signal First 235. Anderenfalls aktualisiert die Periodeneinheit 250 bei Schritt 445 die Periode 204 zu der Differenz zwischen der Summe der Phase 203 und einer Periode des Clk 201 und dem Signal First 235.
  • Die 5A stellt einen Phasendetektor 500 mit hoher Auflösung dar, gemäß einer Ausführungsform. Der Phasendetektor 500 mit hoher Auflösung wiest eine open-loop Taktverzögerungseinheit 510, die Taktsampleeinheit 220, eine Taktsampleeinheit 520, die Flankendetektionseinheit 230, eine Periodenberechnungseinheit 530, eine Phaseneinheit 540 und eine Periodeneinheit 550 auf. Der Phasendetektor 500 mit hoher Auflösung erhält einen ersten Takt, Clk 201, und einen zweiten Takt, Clk 202, und erzeugt zwei Werte, eine Phase 503 und eine Periode 504.
  • Die 5B stellt die open-loop Taktverzögerungseinheit 510 von 5A dar, gemäß einer Ausführungsform. Die open-loop Taktverzögerungseinheit 510 ersetzt die Taktverzögerungseinheit 210 in dem Phasendetektor 500 mit hoher Auflösung in Vergleich mit dem Phasendetektor 200 mit hoher Auflösung. Eine Reihe von N Verzögerungselementen 511 erzeugt N Taktphasen, zum Beispiel verzögerte Versionen des Clk 201, spezifisch Clk_d0, Clk_d1, Clk_d2, Clk_d3, ... Clk_dN. Anders als bei der Taktverzögerungseinheit 210 erstrecken sich die N Taktphasen nicht notwendigerweise über exakt einen Taktzyklus, da die open-loop Taktverzögerungseinheit 520 keinen Phasenkomparator 215 aufweist, um den Betrag zu steuern, mit welchem jede der Verzögerungselemente 511 den Clk 201 verzögert, um die verzögerte Versionen des Clk 201 zu erzeugen. Die Anzahl der Verzögerungselemente 511 sollte groß genug sein, so dass zumindest eine Periode des Clk 201 gesampelt wird.
  • Die 5C stellt die Taktsampleeinheit 520 von 5A dar, gemäß einer Ausführungsform. Die Taktsampleeinheit 520 weist eine Mehrzahl von Flip-Flops 522 auf. Die Taktsampleeinheit 520 erhält die von der Takterzeugungseinheit 210 erzeugten verzögerten Versionen von Clk 201 und produziert eine Sequenz von Samples von dem ersten Taktsignal, Clk 201. Das Sampeln des ersten Taktsignals wird durchgeführt, um die Periode des Clk 201 in Einheiten der Verzögerung zu berechnen, die von einer Verzögerungselement 511 eingeführt wird. Jede Taktphase Clk_d0, Clk_d1, ... Clk_dN wird zum Sampeln des Clk 201 verwendet, wobei die Sequenz von ersten Taktsamples an den Ausgängen der Flip-Flops 522 produziert wird, zum Beispiel Clk_p1, Clk_p2, Clk_p3, ... Clk_pN.
  • Die 5D stellt die Periodenberechnungseinheit 530 von 5A dar, gemäß einer Ausführungsform. Die Periodenberechnungseinheit 530 weist ein Array von UND-Gattern 531, eine Flankenidentifikationseinheit 532 und einen Encoder 534 auf. Die Periodenberechnungseinheit 530 erhält die Sequenz von ersten Taktsamples Clk_p1, Clk_p2, ... Clk_pN, die von der Taktsampleeinheit 520 produziert ist. Die Sequenz von ersten Taktsamples Clk_pl, Clk_p2, ... Clk_pN wird zu dem Array von UND-Gattern 531 eingegeben, um ansteigende Übergänge, zum Beispiel Flanken, innerhalb der Sequenz von ersten Taktsamples zu lokalisieren. Mit anderen Worten detektieren die UND-Gattern 531 ansteigende Flanken des ersten Taktsignals 201, das von den verzögerten Versionen des ersten Taktsignals 201 gesampelt ist. Die UND-Gatter 531 erzeugen Übergangssignale 533, die zum Berechnen der Periode von Clk 201 verwendet werden mögen. Die UND-Gatter 531, die zumindest eins von Clk_p1 und Clk_p2 erhalten, mögen von der Flankenidentifikationseinheit 532 ignoriert werden, um sicherzustellen, dass metastabile Signale nicht gesampelt werden. In einer Ausführungsform mag die Periodenberechnungseinheit 530 zum Lokalisieren von abfallenden Übergängen oder von sowohl abfallenden als auch ansteigenden Übergängen konfiguriert sein.
  • Ein oder mehrere Bits von den Übergangssignalen 533, ti = Clk_pi & ~Clk_pi-1 sind wahr, wenn eine ansteigende Flanke des Clk 201 zwischen verzögerten Versionen des Clk 201 aufgetreten ist, Clk_di-1 und Clk_di, wobei i sich von 0 bis N erstreckt. Die Übergangssignale 533, ti, werden zu der Flankenidentifikationseinheit 532 eingegeben, die die erste Eins (wobei Eins ein Bit ist, das Wahr ist) in der Sequenz von Übergangssignalen 533 findet. Die binäre Encodierung von der Position, an welcher die erste Flanke detektiert wird, ist rperiod 535 - die Periode von Clk 301 in Einheiten der Verzögerung einer Verzögerung 511.
  • Die 5E stellt die Phaseneinheit 540 von 5A dar, gemäß einer Ausführungsform. Die Phaseneinheit 540 weist ein Phasenregister 544, einen Addierer 542, einen Multiplexer 546 und einen Phasenteiler 548 auf. Die Phaseneinheit 540 erhält First 235 und First_v 236 von der Flankendetektionseinheit 230 und rperiod 535 von der Periodenberechnungseinheit 530 und erzeugt das Ausgangssignal Phase 503. Der Wert rperiod 535 wird in der Phaseneinheit 540 anstelle der Konstante ONE in der Phaseneinheit 240 verwendet. Der Wert von Phase, der von der Phaseneinheit 540 produziert wird, wird auch durch rperiod 535 zur Verwendung von einem schnellen periodischen Synchronisator geteilt.
  • First 235 ist ein Maß (in Einheiten von Zeit) von der ansteigenden Flanke des Clk 201 bis zu dem neuesten Übergang des Clk 202. Falls ein Übergang detektiert wird, zum Beispiel wenn First_v 236 aktiviert ist, gibt First 235 den Phasenwert. Wenn First_v 236 aktiviert ist, wählt der Multiplexer 546 den Wert First 235 als die Ausgabe, nächste Phase. Falls keinen Übergang detektiert wird, zum Beispiel wenn First_v 236 nicht aktiviert ist, wählt der Multiplexer 546 die inkrementierte Phase 545 als die nächste Phase aus. Der Wert der inkrementierten Phase 545 wird von dem Addierer 542 berechnet als die prä-Teiler-Phase (engl. „pre-divider Phase“) 543 inkrementiert mit rperiod 535.
  • Der Wert Next_Phase wird zu dem Phasenregister 544 eingegeben, das den Wert der prä-Teiler-Phase 543 ausgibt. Der folgende Verilog mag übersetzt werden, um zumindest einen Teil der Logik zu erzeugen, die in der Phaseneinheit 540 gezeigt ist, insbesondere um eine Eingabe (Next_Phase) zu dem Phasenregister 544 bereitzustellen: assign next_phase = first_v ? first : predivider_phase + rperiod ;
    Figure DE102013222669B4_0003
  • Die Ausgabe des Phasenregisters 544, zum Beispiel prä-Teiler-Phase 353, wird innerhalb des Phasenteilers 548 durch rperiod 535 geteilt, um den Wert Phase 503 zu produzieren.
  • Die 5F stellt die Periodeneinheit 550 von 5A dar, gemäß einer Ausführungsform. Die Periodeneinheit 550 weist ein Periodenregister 554, einen Subtrahierer 557, Multiplexer 556, Multiplexer 558 und einen Teiler 552 auf. Die Periodeneinheit 550 erhält First 235, First_v 236, Second 237 und Second_v 238 von der Flankendetektionseinheit 230, rperiod 535 von der Periodenberechnungseinheit 530 und die inkrementierte Phase 545 von der Phaseneinheit 540 und erzeugt das Ausgangssignal Periode 504.
  • Falls kein Übergang detektiert wird, zum Beispiel sind weder First_v 236 noch Second_v 238 aktiviert, wird Next_Period (und Periode 504) nicht geändert. Anderenfalls, falls zwei Übergänge detektiert werden, zum Beispiel sind sowohl First_v 236 als auch Second_v 238 aktiviert, wird Next_Period berechnet durch Subtrahieren First 235 von der Phase des vorhergehenden Übergangs, Second 237. Falls nur ein Übergang detektiert wird, zum Beispiel ist First_v 236 aktiviert, wird Next_Period berechnet durch Subtrahieren First 235 von der Phase des vorhergehenden Übergangs, die inkrementierte Phase 545. Mit anderen Worten wird die gegenwärtige Phase, First 235, von der Phase des letzten Übergangs subtrahiert - entweder Second 237, wenn ein zweiter Übergang in der gleichen Periode des Clk 201 detektiert wird, oder anderenfalls der inkrementierten Phase 545. Die Anzahl der Bits für die Teiler 548 und 552 wird durch die Anzahl von Bits in reperiod 535 bestimmt, zum Beispiel 4 Bits, wenn N = 16. Bemerke, dass N jeglicher ganzzahlige Wert sein mag und dass N keine Zweierpotenz sein muss.
  • Wenn ein zweiter Übergang detektiert wird, wird ein erster Übergang auch detektiert. Wenn Second_v 238 aktiviert ist, wählt der Multiplexer 556 den Wert Second 237 als die Eingabe zu dem Subtrahierer 557 aus. Wenn kein zweiter Übergang detektiert wird, wählt der Multiplexer 556 die inkrementierte Phase 245 als die Eingabe zu dem Subtrahierer 557 aus. Der Subtrahierer subtrahiert den Wert First 235 von der Eingabe, um eine Ausgabe zu erzeugen. Wenn ein erster Übergang detektiert wird, wählt der Multiplexer 558 die Ausgabe des Subtrahierers 252 als die nächste Periode. Anderenfalls wählt der multiplexer 558 die Ausgabe von dem Periodenregister 554 als die nächste Periode aus und der Wert Period 504 ist unverändert.
  • Der folgende Verilog mag übersetzt werden, um zumindest einen Teil der Logik zu erzeugen, die in der Periodeneinheit 550 gezeigt ist, insbesondere um eine Eingabe (Next_Period) für das Periodenregister 554 bereitzustellen: assign next_period = first_v ?   ( ( second_v ? second  :   ( pre divider phase + rperiod ) ) first ) : period;
    Figure DE102013222669B4_0004
  • Der Wert Next_Period wird zu dem Periodenregister 554 eingegeben. Die Ausgabe von dem Periodenregister 554, zum Beispiel prä-Teiler-Periode, wird durch rperiod 535 innerhalb des Periodenteilers 552 geteilt, um den Wert Periode 504 zu produzieren.
  • Die 5G stellt ein weiteres Flussdiagramm von einem Verfahren 560 zur Bestimmung der Phase 503 und Periode 504 unter Verwendung des open-loop Phasendetektors 500 mit hoher Auflösung dar, gemäß einer Ausführungsform. Bei Schritt 565 wird ein Satz von verzögerten Versionen des Clk 201 von der open-loop Taktverzögerungseinheit 510 erzeugt. Bei Schritt 570 wird der Clk 202 von der Taktsampleeinheit 220 unter Verwendung des Satzes von verzögerten Versionen des Clk 201 gesampelt, um die Sequenz von Samples 225 in der Domain des Clk 201 zu produzieren. Dann, bei Schritt 575, lokalisiert die Flankendetektionseinheit 230 jegliche Flanken, zum Beispiel ansteigende, abfallende oder ansteigende und abfallende, innerhalb der Sequenz von Samples 225.
  • Bei Schritt 572 wird der Clk 201 unter Verwendung des Satzes von verzögerten Versionen des Clk 201 von der Taktsampleeinheit 520 gesampelt, um die Sequenz von ersten Taktsamples 525 in der Domain des Clk 201 zu produzieren. Dann bei Schritt 574 lokalisiert die Periodenberechnungseinheit 530 eine Flanke, zum Beispiel ansteigende, abfallende oder ansteigende und abfallende, innerhalb der Sequenz von ersten Taktsamples 525 und bestimmt den rperiod 535, zum Beispiel die Periode des Clk 201. Ein oder mehrere der Schritte 572 und 574 mögen parallel mit einem oder mehreren der Schritte 570 und 575 durchgeführt werden.
  • Bei Schritt 580 bestimmt die Phaseneinheit 540, ob eine erste Flankenindikation von der Flankendetektionseinheit 230 detektiert wurde, und, wenn nicht, wird die nächste Phase bei Schritt 585 als die Summe der prä-Teiler-Phase 543 erhöht durch eine Periode des Clk 201 (rperiod 535) berechnet. Die nächste Phase wird dann durch eine Periode des Clk 201 geteilt, um den Wert Phase 503 zu erzeugen, zum Beispiel (pre-divider_phase + rperiod) / reperiod. Wenn keine erste Flankenindikation von der Flankendetektionseinheit 230 detektiert wird, wird die Periode 504 nicht geändert. Anderenfalls, wenn eine erste Flankenindikation detektiert wird, setzt die Phaseneinheit 540 bei Schritt 590 die nächste Phase gleich dem von der Flankendetektionseinheit 230 erzeugten Signal First 235. Die nächste Phase wird dann durch rperiod 535 geteilt, um den Wert Phase 503 zu erzeugen. Bei Schritt 595 bestimmt die Periodeneinheit 550, ob eine zweite Flankenindikation von der Flankendetektionseinheit 230 detektiert wurde, und, wenn dies der Fall ist, dann setzt die Periodeneinheit 550 bei Schritt 598 die Periode 504 gleich der Differenz zwischen dem Wert Second 237 und dem Wert First 235 geteilt durch rperiod 535. Anderenfalls aktualisiert die Periodeneinheit 550 bei Schritt 598 die Periode 504 zu der Differenz zwischen der Summe der prä-Teiler-Phase 503 und einer Periode des Clk 201 (inkrementierter Phase 542) und dem Signal First 235 geteilt durch eine Periode des Clk 201 (das heißt rperiod 535).
  • Die 6A stellt eine beispielhafte integrierte Schaltkreisvorrichtung 650 dar, in welcher die verschiedene Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen. Die integrierte Schaltkreisvorrichtung 650 weist eine Logikeinheit 655, einen Synchronisator 660 und eine Logikeinheit 665 auf. Die Logikeinheit 655 erhält den Takt 202 und erzeugt Ausgaben, die synchron mit dem Takt 202 sind. Die Ausgaben werden von dem Synchronisator 660 erhalten und sie werden von der Taktdomain des Taktes 202 zu der Taktdomain des Taktes 201 unter Verwendung der Werte der Phase 203 und Periode 204, die von dem Phasendetektor mit hoher Auflösung 200 oder 500 berechnet wurden. Die übertragenen Ausgaben, die zu der Taktdomain des Taktes 201 synchronisiert sind, werden von der Logikeinheit 665 empfangen.
  • EIN VARIATONSTOLERANTER SYNCHRONISATOR
  • Wenn er mit den Werten Phase 203 und Periode 204 versorgt wird, mag ein variationstoleranter Synchronisator konfiguriert werden zum Synchronisieren von Signalen, die von einer zweiten Taktdomain, die dem ersten Taktsignal, Clk 202, entspricht, gesendet und in einer ersten Taktdomain, die dem zweiten Taktsignal, Clk 201, entspricht, empfangen wurden. Der variationstolerante Synchronisator kann schnelle Änderungen in den Taktperioden des ersten und/oder zweiten Taktsignals tolerieren - in Abhängigkeit einer maximalen Variation in Phase pro Zyklus des ersten Taktsignals relativ zu dem zweiten Taktsignal. Folglich kann der variationstolerante Synchronisator in integrierten Schaltkreisvorrichtungen verwendet werden, die sich spannungsverfolgender Taktgeneratoren (engl. „voltage-tracking clock generators) bedienen. Der variationstolerante Synchronisator mag auch Signale mit niedriger Latenz während Leistungszustandsübergänge (engl. „power state transitions“) synchronisieren, wenn das erste und/oder zweite Taktsignal Frequenz ändern kann bzw. können.
  • Der Phasendetektor mit hoher Auflösung 200 oder 500 mag, wie vorher beschrieben, konfiguriert sein zum Messen der nächsten Phase und der nächsten Periode vom Clk 202 und zum Aktualisieren der Werte von Phase 203 und Periode 204 am Ende jedes Zyklus vom Clk 201, zum Beispiel an der ansteigenden Flanke vom Clk 201. Die Phase gibt die Zeit von dem letzten Übergang des Clk 202 bis zu dem letzten Übergang des Clk 201 an. Die Periode ist die Zeit zwischen zwei Übergängen des Clk 202.
  • Um Synchronisierung mit niedriger Latenz durchzuführen, sampelt der variationstolerante Synchronisator die Signale, die synchronisiert werden sollen, bei verschiedenen Übergängen vom Clk 202. In einer Ausführungsform werden zwei Register verwendet, um „gerade“ und „ungerade“ Übergänge separat zu sampeln. Mit anderen Worten sampelt und speichert ein „gerades“ Register in jedem zweiten Zyklus vom Clk 202 die Signale, die synchronisiert werden sollen. Ein „ungerades“ Register sampelt und speichert auf den nicht geraden Zyklen (ungeraden Zyklen) vom Clk 202 die Signale, die synchronisiert werden sollen. Jeder Wert von Phase 203 ist mit einer Indikation davon assoziiert, ob die gemessene Phase einer geraden oder ungeraden Flanke vom Clk 202 entspricht. Wenn mehr als zwei Register die Signale, die synchronisiert werden sollen, sampeln und speichern, spezifiziert die Indikation die jeweiligen periodischen Übergänge, zum Beispiel erste Flanke, zweite Flanke, dritte Flanke etc. von dem Clk 202.
  • Aufgrund von Re-Timing- und Synchronisierungs-Verzögerungen geben die Werte von Phase 203 und Periode 204 den Zustand des Clk 202 D Zyklen vom Clk 201 in die Vergangenheit zurück wieder. Um eine Ausgabe von dem richtigen Register (gerade/ungerade oder erste/zweite/dritte Flanke etc.) auszuwählen, das die zu synchronisierende Signale sampelt, werden ein oder mehrere Werte der Phase 203 in den zukünftigen Zyklen des Clk 201 extrapoliert. Spezifischer wird die Phase 203 zu S = D + 1 Zyklen in der Zukunft von den gegenwärtigen Werte der Phase 203 und Periode 204 extrapoliert. Dazwischenliegende zukünftige Werte der Phase 203 werden auch extrapoliert, wenn D größer als null ist. Eine Reihe von Phasenwerten, die die extrapolierten Werte der Phase 203 enthält, wird durchsucht, um das Register zu identifizieren, das die zu synchronisierenden Signale sampelt und das jüngst beschriebene Register ist, das sicher auszuwählen ist, um synchronisierte Signale in der ersten Taktdomain zu erzeugen, die dem Clk 201 entspricht.
  • Um die Latenz zu reduzieren, die von den Signalen verursacht wird, die durch den variationstoleranten Synchronisator geschickt werden, wird die Flanke vom Clk 202, die kurz vor der nächsten Flanke vom Clk 201 auftritt, basierend auf der Reihe von Phasenwerten identifiziert. Die Flanke, die identifiziert wird, muss eine ausreichende Timingmarge (engl. „timing margin“) haben, so das die gesampelte Signale stabil sind. Das mit der identifizierten Flanke (gerade/ungerade oder erste/zweite/dritte Flanke) assoziierte Register, wird zur Ausgabe von dem variationstoleranten Synchronisator ausgewählt, um die synchronisierten Signale zu produzieren.
  • Die 6B stellt ein Flussdiagramm von einem Verfahren zur Synchronisierung von Signalen dar, gemäß einer Ausführungsform. Bei Schritt 605 wird ein Phasenwert, der eine Phase eines zweiten Taktsignals relativ zu einem ersten Taktsignal repräsentiert, von dem variationstoleranten Synchronisator erhalten. Bei Schritt 610 wird ein Periodenwert, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert, von dem variationstoleranten Synchronisator erhalten. Bei Schritt 615 wird ein extrapolierter Phasenwert des zweiten Taktsignals relativ zu dem ersten Taktsignal entsprechend einem nächsten Übergang des ersten Taktsignals basierend auf dem Phasenwert und dem Periodenwert berechnet.
  • Weitere illustrative Informationen in Bezug auf verschiedene optionale Architekturen und Merkmale von einem variationstoleranten Synchronisator werden jetzt dargelegt. Es sollte dringend beachtet werden, dass die folgenden Informationen zu illustrativen Zwecken dargelegt werden und in keiner Weise als einschränkend ausgelegt werden sollte. Jedes der folgenden Merkmale mag optional inkorporiert werden mit oder ohne Ausschließung anderer beschriebenen Merkmale.
  • Gegeben den Wert Phase 203 (phase) und den Wert Periode 204 (period) mögen extrapolierte Phasenwerte wie folgt berechnet werden: p i = p h a s e + S i * p e r i o d
    Figure DE102013222669B4_0005
    für i=0,X und S in UI. Wobei X ausgewählt ist, um sicherzustellen, dass zumindest ein extrapolierter Phasenwert größer als eins ist. Größer als eins heißt, dass der extrapolierte Phasenwert nach der gegenwärtigen Flanke vom Clk 201 auftritt, das heißt in der Zukunft. Jeder extrapolierte Phasenwert pi ist die Zeit vom Übergang i des Clk 202 bis zum nächsten Übergang vom Clk 201.
  • Die 6C stellt Wellenforme von zwei Taktsignalen, dem Clk 201 und dem Clk 202, dar, gemäß einer Ausführungsform. In dem Beispiel, das in der 6C gezeigt ist, ist die Frequenz vom Clk 201 gleich 1 GHz (1000 ps Periode) und die Frequenz vom Clk 202 ist gleich 621 MHz (1610 ps Periode). Der Wert Phase 203 ist eine 8 (vier Bits rechts des binären Kommas, Phase = 0,5). Der Wert Phase 203 ist mit einer Indikation einer geraden Flanke assoziiert. Der Wert Periode 204 ist gleich 26 (1,61 in Festkommaformat mit vier Bits rechts des binären Kommas). Die Werte Phase 203 und Periode 204 geben den Zustand des Clk 202 bei D = 3 Zyklen von Clk 201 zurück in der Vergangenheit wieder, so S = 4.
  • Wie in der 6C gezeigt, entspricht der Wert Phase 203, der zum Zeitpunkt t = 0 erhalten wird, dem Zustand des Clk 201 und des Clk 202 zum t = -4, vier Zyklen vom Clk 201 früher als t = 0. Zum t = 0 wählt der variationstolerante Synchronisator entweder das gerade oder das ungerade Register zum Sampeln der zu synchronisierende Signale aus. Wie früher erläutert, berechnet der variationstolerante Synchronisator erst extrapolierte Phasenwerte, um eine Reihe von extrapolierten Phasen basierend auf dem Wert der Phase 203 und dem Wert der Periode 204 zu erzeugen.
  • Eine ansteigende Flanke des Clk 202 trat zum Zeitpunkt t = -4 mitten im Empfängerauge auf, das heißt halbwegs zwischen zwei ansteigende Flanken des Clk 201. Angenommen, dass der Phasendetektor mit hoher Auflösung 200 oder 500 jeweils N = 16 Verzögerungselemente 211 oder 511 aufweist, ist der Wert der Periode 203 gleich 26, gemessen in Einheiten von 1/16-tel von der Periode des Clk 201 oder 1/16 UI. S in Einheiten von 1/16 UI ist 4*N, so S = 64/16 UI. Der variationstolerante Synchronisator berechnet dann eine Reihe von extrapolierten Phasenwerten pi in Einheiten von 1/16 UI als:
    • p0 = 8+64 = -72 (gerade)
    • p1 = 8+64-26 = -46 (ungerade)
    • p2 = 8+64-2*26 = -20 (gerade)
    • p3 = 8+64-3*26 = 6 (ungerade)
    • p4 = 8+64-4*26 = 32 (gerade)
  • Der variationstolerante Synchronisator durchsucht die Reihe von extrapolierten Phasenwerten, um die zwei extrapolierte Werte zu finden, die den Übergang des Clk 201 zum Zeitpunkt t = 0 überbrücken (engl. „straddle“). Die zwei extrapolierte Werte, die den Zeitpunkt t = 0 überbrücken, stellen das Timing von den zwei Übergängen des Clk 202 bereit, die am nächsten an dem nächsten Übergang des Clk 201 sind, der bei t = 0 stattfindet. Einer der Übergänge des Clk 202 ist eine gerade Flanke und der andere ist eine ungerade Flanke. Um die größtmögliche Timingmarge zu sichern, mag der variationstolerante Synchronisator zum Auswählen des extrapolierten Phasenwerts, der die größere Marge hat, konfiguriert sein. Alternativ, um Latenz zu minimieren, kann der Synchronisator zum Auswählen des kleinsten negativen extrapolierten Phasenwert konfiguriert sein, der eine adäquate Margin für sicheres Sampeln von Eingabesignalen in der mit dem Clk 202 assoziierten Taktdomain bereitstellt. Der kleinste negative Phasenwert ist der jüngste extrapolierte Phasenwert, der am nächsten an dem nächsten Übergang des Clk 201 ist
  • Wie in der 6C gezeigt, sind die zwei extrapolierte Phasenwerte, die die Flanke des Clk 201 bei t = 0 überbrücken, p2 = -20 (gerade) und p3 = 6 (ungerade). Mit anderen Worten tritt eine gerade Flanke des Clk 202 16/20 von einem Zyklus des Clk 201 vor der nächsten Flanke des Clk 201 (zum Zeitpunkt t = 0) auf und eine ungerade Flanke des Clk 202 tritt 6/16 von einem Zyklus des Clk 201 nach der nächsten Flanke des Clk 201 auf. Der variationstolerante Synchronisator ist dazu konfiguriert, den extrapolierten Phasenwert p2 = -20 als den sicheren extrapolierten Phasenwert zu identifizieren und das „gerade“ Register auszuwählen, das dem extrapolierten Phasenwert p2 entspricht. Auswählen des extrapolierten Phasenwertes p2 stellt 20/16 von einem Zyklus des Clk 201 bereit, das heißt 1375 ps Timingmarge. In einer Ausführungsform wird die minimale Timingmarge zu jeder extrapolierten Phase addiert, um Latenz zu reduzieren, und der variationstolerante Synchronisator ist dazu konfiguriert, den negativen extrapolierten Phasenwert auszuwählen, der am nächsten am t = 0 ist.
  • Falls die Periode vom Clk 201 und/oder vom Clk 202 während einer Spannungstransiente sanft variiert, mag die Genauigkeit der extrapolierten Werte durch Hinzufügen eines Terms zweiter Ordnung (engl. „second order term“) zu der extrapolierten Phasenwertgleichung verbessert werden. Der Term zweiter Ordnung berücksichtigt die Steigung von einer Reihe von Werten der Periode 204. Immer wenn der Wert der Periode 204 aktualisiert wird, mag ein Differenzwert, dperiod, für jeden aufeinanderfolgenden Wert der Periode 204 berechnet werden: dperiod = new_period old_period .
    Figure DE102013222669B4_0006
    ( dperiod = neue_periode alte_periode )
    Figure DE102013222669B4_0007
    Die Gleichung zur Berechnung extrapolierter Phasenwerte unter Verwendung des Terms zweiter Ordnung ist: p i = p h a s e + S i * p e r i o d i 2 * d p e r i o d
    Figure DE102013222669B4_0008
    Da die Werte der Periode 204 aber den Zustand vom Clk 201 und Clk 202 in der Vergangenheit wiedergeben, ist der Wert von dperiod auch verzögert und die extrapolierten Phasenwerte werden auch verzögert sein und die sich ändernde Periode nicht für D Zyklen des Clk 201 berücksichtigen.
  • Die 6D stellt andere Wellenforme der zwei Taktsignale, Clk 201 und Clk 202, dar, gemäß einer Ausführungsform. Zum Zeitpunkt t = -4 trat eine ansteigende Flanke vom Clk 202 mitten im Empfängerauge (engl. „receiver eye“) des Clk 201 auf, das heißt halbwegs zwischen zwei ansteigenden Flanken des Clk 201. Angenommen, dass der Phasendetektor mit hoher Auflösung 200 oder 500 16 Verzögerungselemente aufweist, ist der Wert der Periode 203 gleich 26/16 und dperiod wird als -2/3 berechnet. Der variationstolerante Synchronisator berechnet dann eine Reihe von extrapolierten Phasenwerten pi in Einheiten von einem 1/16-tel der Periode des Clk 201 als:
    • p0 = 8+64 = -72 (gerade)
    • p1 = 8+64-26+(2/3) = -47 (ungerade)
    • p2 = 8+64-2*26+4*(2/3) = -22 2/3 (gerade)
    • p3 = 8+64-3*26+9*(2/3) = 0 (ungerade)
    • p4 = 8+64-4*26+16*(2/3) = 21 1/3 (gerade)
  • Der variationstolerante Synchronisator durchsucht die Reihe von extrapolierten Phasenwerten, um die zwei extrapolierte Werte zu finden, die den Übergang des Clk 201 zum Zeitpunkt t = 0 überbrücken. Die zwei extrapolierten Werte, die den Zeitpunkt t = 0 überbrücken, stellen das Timing von den zwei Übergängen des Clk 202 bereit, die am nächsten an dem nächsten Übergang des Clk 201 sind. Einer der Übergänge des Clk 202 ist eine gerade Flanke und der andere ist eine ungerade Flanke. Um die größtmögliche Timingmarge zu sichern, mag der variationstolerante Synchronisator zum Auswählen des extrapolierten Phasenwerts, der die größere Marge hat, konfiguriert sein. Alternativ mag der variationstolerante Synchronisator zum Auswählen des kleinsten negativen extrapolierten Phasenwertes mit einer sicheren Marge konfiguriert sein.
  • Wie in der 6D gezeigt, sind die zwei extrapolierte Phasenwerte, die die Flanke des Clk 201 bei t = 0 überbrücken, p2 = -22 2/3 (gerade) und p3 = 0 (ungerade). Der variationstolerante Synchronisator ist dazu konfiguriert, den extrapolierten Phasenwert p2 = -22 2/3 als den sicheren extrapolierten Phasenwert zu identifizieren und das „gerade“ Register auszuwählen, das dem extrapolierten Phasenwert p2 entspricht. Die extrapolierte Phase p3 = 0 sollte nicht ausgewählt werden, da die Timingmarge gleich 0 ist und die Flanken vom Clk 201 und vom Clk 202 zusammenfallend sein mögen.
  • Das Worst-Case-Timing, was das Auswählen eines sicheren extrapolierten Phasenwertes anbelangt, tritt auf, wenn die geraden und ungeraden extrapolierten Phasenwerte äquidistant vom t = 0 (dem gegenwärtigen Übergang des Clk 201) sind, weil die Timingmarge gleich der Hälfte der Periode vom Clk 201 ist, Tt/2. Die Timingmarge muss die Fehler in den gemessenen Werten der Phase 203 und Periode 204 akkommodieren. Fehler in der Messung von dem Wert der Phase 203 weisen Quantisierungsfehler von ½ LSB (1/32 von der Periode des Clk 201 im vorhergehenden Beispiel) plus jeden systematischen Fehler in dem Phasendetektor mit hoher Auflösung 200 oder 500 auf. Fehler in der Messung von dem Wert der Periode 204 weisen Quantisierung plus systematischen Fehler multipliziert mit i auf. Der Maximale Wert von i ist Sft/fr, wobei ft und fr die jeweiligen Frequenzen vom Clk 202 und Clk 201. Die Timingmarge muss Fehler aufgrund Variationen von den Perioden vom Clk 201 und/oder vom Clk 202 aufgrund von Spannungstransienten, die über i Zyklen integriert werden, akkommodieren.
  • Nehme zum Beispiel an, dass der Messfehler von dem Wert der Phase 203 und von dem Wert der Periode 204 auf 1/32 von der Periode des Clk 201 (31 ps) begrenzt ist, dass die Periode des Clk 202 mindestens 1000 ps ist, dass imax = 6 und dass der Freihaltebereich (engl. „keepout region“) 50 ps weit ist. Der Freihaltebereich ist ein Schwellenwert von Zeit auf beiden Seiten von einer Flanke des Clk 201, während dessen einer extrapolierter Phasenwert nicht als sicher angesehen wird. Der Messfehler ist insgesamt 7*31 ps = 217 ps. Wenn der Messfehler und der Freihaltebereich von der Periode des Clk 202 subtrahiert wird, 1000 ps - 217 ps = 733 ps verbleiben, innerhalb deren eine Periodenvariation über 6 Zyklen toleriert werden muss. 733 ps über 6 Zyklen ergeben in Durchschnitt mehr als 120 ps/Zyklus, oder annehmend eine lineare Variation, einen Schwung von 0 ps/Zyklus am Anfang des Intervalls bis zu 240 ps/Zyklus am Ende des Intervalls.
  • Falls benötigt, mag die Timingmarge durch Verwenden mehrerer Register in dem Synchronisator erhöht werden. Statt Flanken in gerade und ungerade einzuteilen, mögen zum Beispiel drei Register verwendet werden, die Flanken als erste, zweite und dritte kennzeichnen. Verwenden von drei separaten Registern stellt einen vollen Zyklus des Clk 202 als Timingmarge bereit. Verwenden von zwei Registern ergibt eine Timingmarge von 1/2 einer Periode des Clk 202. Verwenden von drei Registern ergibt eine Timingmarge von einer Periode des Clk 202 und Verwenden von vier Registern ergibt eine Timingmarge von zwei Perioden des Clk 202. Der extrapolierte Phasenwert, der am nächsten an der gegenwärtigen Flanke des Clk 201 Flanke ist, ist der neueste extrapolierte Phasenwert und wenn der neueste extrapolierte Phasenwert die Timingmargeanforderung einhält, wird er als der sicheren extrapolierten Phasenwert angesehen. Das Register, das dem sicheren extrapolierten Phasenwert entsprich, wird zum Erzeugen der synchronisierten Signale ausgewählt.
  • Die 7A stellt einen variationstoleranten periodischen Synchronisator 700 dar, gemäß einer Ausführungsform. Der variationstolerante periodische Synchronisator 700 weist eine Registrierte-Signale-Einheit 710, eine Phasenreihe-Extrapolationseinheit 705 und eine Auswahleinheit 715 auf. Ein Phasendetektor mit hoher Auflösung 200 oder 500 mag an den variationstoleranten Synchronisator 700 gekoppelt sein, um den Wert der Phase 203 und den Wert der Periode 204 bereitzustellen. Der variationstolerante periodische Synchronisator 700 erhält die Eingabesignale 701, die zu dem Clk 202 synchronisiert sind, den Clk 201, den Clk 202, den Wert der Phase 203 und den Wert der Periode 204 und produziert die Ausgabesignale 711, die zu dem Clk 201 synchronisiert sind.
  • Die Registrierte-Signale-Einheit 710 erhält die Eingabesignale 701, die zu dem Clk 202 synchronisiert sind, sampelt die Eingabesignale 701 an verschiedenen Zyklen des Clk 202 (gerade/ungerade oder erste/zweite/dritte Flanken etc.) und speichert die gesampelten Eingabesignale für die verschiedenen Zyklen des Clk 202 in separaten Registern. Die Phasenreihe-Extrapolationseinheit 705 erhält die Werte der Phase 203 und der Periode 204 und berechnet eine Reihe von extrapolierten Phasenwerten, die zu der Auswahleinheit 715 bereitgestellt wird. Die Auswahleinheit 715 identifiziert einen sicheren extrapolierten Phasenwert aus der Reihe von extrapolierten Phasenwerten, der dem gegenwärtigen Übergang vom Clk 201 am nächsten ist, während sie eine adäquate Timingmarge bereitstellt.
  • Wenn ein sicherer extrapolierter Phasenwert nicht gefunden werden kann, gibt die Auswahleinheit 715 durch Negieren eines Freigabesignals (engl. „enable signal“) an, dass kein sicherer extrapolierter Phasenwert gefunden wurde, und Aktualisierung der Ausgabesignale 711 wird für den gegenwärtigen Zyklus des Clk 201 deaktiviert. Wenn ein sichererer extrapolierter Phasenwert von der Auswahleinheit 715 identifiziert wird, konfiguriert die Auswahleinheit 715 die Registrierte-Signale-Einheit 710 zum Auswählen des Registers, das dem sicheren extrapolierten Phasenwert entspricht, um die Ausgabesignale 711 zu erzeugen. Wenn eine adäquate Timingmarge für zumindest einen der extrapolierten Phasenwerte existiert, sollte das Freigabesignal aktiviert werden, so dass eine der separat registrierten Versionen der Eingabesignale 701 zur Ausgabe als die synchronisierte Ausgabesignale 711 ausgewählt wird. Zusammengefasst wählt der variationstolerante periodische Synchronisator 700 eine gesampelte Version der Eingabesignale 701, die dem sicheren extrapolierten Phasenwert entspricht, als die Ausgabesignale 711 aus, die zu dem Clk 201 synchronisiert sind.
  • Die 7B stellt die Registrierte-Signale-Einheit 710 von 7A dar, gemäß einer Ausführungsform. Die Registrierte-Signale-Einheit 710 erhält die Eingabesignale 701, den Clk 201, den Clk 202, eine Auswahl (select) 717 und eine Freigabe (enable) 718. Die Auswahl 717 und Freigabe 718 werden von der Auswahleinheit basierend auf der Reihe von extrapolierten Phasenwerten erzeugt. Ein gerades Register 702 sampelt die Eingabesignale 701 bei „geraden“ Übergängen des Clk 202 und ein ungerades Register 703 sampelt die Eingabesignale 701 bei „ungeraden“ Übergängen des Clk 202. Die Auswahl 717 wählt die Ausgabe von entweder dem geraden Register 702 oder dem ungeraden Register 703 aus. Wenn die Freigabe 718 aktiviert ist, wird die ausgewählte Ausgabe der Register 702 und 703 bei dem Übergang des Clk 201 gesampelt und von einem Register 708 als die Ausgabesignale 711 ausgegeben. Wenn die Freigabe 718 negiert ist, werden die Ausgabesignale 711 von dem Register 708 aufrechterhalten und nicht aktualisiert beim Übergang des Clk 201.
  • Die 7C stellt ein weiteres Flussdiagramm von einem Verfahren 750 zur Synchronisierung von Signalen dar, gemäß einer Ausführungsform. Bei Schritt 755 wird ein Wert einer Phase 203, der eine Phase eines zweiten Taktsignals, zum Beispiel des Clk 202, relativ zu einem ersten Taktsignal, dem Clk 201, repräsentiert, von dem variationstoleranten Synchronisator 700 erhalten. Bei Schritt 760 wird ein Wert einer Periode 204, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert, von dem variationstoleranten Synchronisator 700 erhalten. Bei Schritt 765 bestimmt der variationstolerante Synchronisator 700, ob die Periode 204 variiert, und, wenn dem so ist, wird eine Reihe von extrapolierten Phasenwerte berechnet unter Verwendung des Wertes der Phase 203, des Wertes der Periode 204 und des variierenden Periodenwertes, das heißt der Steigung des Wertes der Periode 204.
  • Falls der variationstolerante Synchronisator 700 beim Schritt 765 bestimmt, dass der Wert der Periode 204 nicht variiert, dann wird bei Schritt 775 eine Reihe von extrapolierten Phasenwerten, die einem nächsten Übergang des ersten Taktsignals entspricht, basierend auf dem Wert der Phase 203 und dem Wert der Periode 204 berechnet. Beachte, dass die Steigung des Wertes der Periode 204 für den Schritt 775 gleich null ist, so dass die Schritte 770 und 775 in einer Ausführungsform kombiniert werden mögen. Bei Schritt 780 bestimmt der variationstolerante Synchronisator 700 eine Timingmarge basierend auf dem Messfehler des Wertes der Phase 203 und des Wertes der Periode 204 sowie auf Fehlern aufgrund von Variationen des Wertes der Periode 204 wegen Spannungs- und/oder Stromtransienten.
  • Bei Schritt 785 identifiziert der variationstolerante Synchronisator 700, bei einem Übergang des ersten Taktes, basierend auf der Timingmarge einen neusten extrapolierten Phasenwert in der Reihe von extrapolierten Phasenwerten, der auch ein sicherer extrapolierter Phasenwert ist. Wenn der extrapolierte Phasenwert, der am nächsten an dem Übergang des Clk 201 ist, die Timingmarge nicht erfüllt, mag ein nächster extrapolierter Phasenwert, der die Timingmarge erfüllt, als der sichere extrapolierte Phasenwert ausgewählt werden. Bei Schritt 790 bestimmt der variationstolerante Synchronisator 700, ob ein sicherer extrapolierter Phasenwert identifiziert ist, und, wenn dem nicht so ist, hält der variationstolerante Synchronisator 700 bei Schritt 794 die gegenwärtigen Ausgabesignale 711 aufrecht. Anderenfalls wählt der variationstolerante Synchronisator 700 bei Schritt 792 die Signale aus, die von dem Register ausgegeben werden, das dem sicheren extrapolierten Phasenwert entspricht, um die Ausgabesignale 711 zu erzeugen.
  • Die 8 stellt ein beispielhaftes System 800 dar, in welchem die verschiedenen Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen von dem variationstoleranten Synchronisator 700 implementiert werden mögen. Wie gezeigt, wird ein System 800 bereitgestellt, das zumindest einen zentralen Prozessor 801 aufweist, der mit einem Kommunikationsbus 802 verbunden ist. Der Kommunikationsbus 802 mag unter Verwendung jedes geeigneten Protokolls implementiert sein, wie zum Beispiel PCI (Peripheral Component Interconnect), PCI-Express, AGP (Accelerated Graphichs Port), HyperTransport oder jede andere Bus- oder Punkt-zu-Punkt-Protokoll(e). Das System 800 weist auch einen Hauptspeicher 804 auf. Steuerungslogik (Software) und Daten sind in dem Hauptspeicher 804 gespeichert, der die Form eines Speichers mit direktem Zugriff (RAM) annehmen mag.
  • Das System 800 weist auch Eingabevorrichtungen 812, einen Grafikprozessor 806 und ein Display 808 auf, das heißt ein konventionelles CRT (Kathodenstrahlröhre), LCD (Flüssigkristalldisplay), LED (Licht emittierende Diode), Plasmadisplay oder ähnliches. Benutzereingaben mögen von den Eingabevorrichtungen 812 empfangen werden, zum Beispiel Tastatur, Maus, Touchpad, Mikrofon und ähnliches. In einer Ausführungsform mag der Grafikprozessor 806 eine Mehrzahl von Shader-Modulen (engl. „shader modules“), ein Rasterisierungsmodul (engl. „rasterization module“) etc. aufweisen. Jedes der vorhergehenden Module mag sich sogar auf einer einzigen Halbleiterplattform befinden, um eine Grafikverarbeitungseinheit (GPU) zu bilden.
  • In der vorliegenden Beschreibung mag eine einzige Halbleiterplattform auf einen alleinigen einheitlichen halbleiterbasierten integrierten Schaltkreis oder Chip verweisen. Es sollte beachtet werden, dass der Begriff einzige Halbleiterplattform auch auf Mehrchipmodule mit erhöhter Konnektivität, die Auf-dem-Chip-Operation (engl. „on-chip operation“) simuliert, verweisen mag und erhebliche Verbesserungen gegenüber der Verwendung einer konventionellen Implementierung mit zentralem Verarbeitungseinheit (CPU) und Bus erzielen mag. Die verschiedenen Module mögen selbstverständlich auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen gemäß den Wünschen des Benutzers angeordnet werden. Ein oder mehrere von den in der 8 gezeigten integrierten Schaltkreisen mögen den variationstoleranten Synchronisator 700 aufweisen, um Signale zwischen verschiedenen Taktdomains zu übermitteln.
  • Das System 800 mag auch einen sekundären Speicher 810 aufweisen. Der Sekundäre Speicher 810 weist zum Beispiel einen Festplattenlaufwerk und/oder einen entfernbaren Speicherlaufwerk (engl. „removable storage drive“), darstellend einen Floppy-Disk-Laufwerk, einen Magnetbandlaufwerk, einen Compact-Disk-Laufwerk, einen Digital-Versatile-Disk-(DVD)-Laufwerk, ein Aufnahmegerät, einen Universal-Serial-Bus-(USB)-Flashspeicher auf. Der entfernbare Speicherlaufwerk liest von und/oder schreibt zu einer entfernbaren Speichereinheit in einer wohlbekannten Art und Weise.
  • Computerprogramme oder Computersteuerungsalgorithmen mögen in dem Hauptspeicher 804 und/oder in dem sekundären Speicher 810 gespeichert sein. Solche Computerprogramme machen es, wenn sie ausgeführt werden, für das System 800 möglich, verschiedene Funktionen durchzuführen. Der Speicher 804, der Speicher 810 und/oder jeglicher andere Speicher sind mögliche Beispiele von computerlesbaren Medien.
  • In einer Ausführungsform mag die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren im Kontext des zentralen Prozessors 801, des Grafikprozessors 806, eines integrierten Schaltkreises (nicht gezeigt), der zu zumindest einen Teil der Fähigkeiten von sowohl dem Hostprozessor 801 als auch dem Grafikprozessor 806 aufweist, eines Chipsatzes (das heißt, eine Gruppe von integrierten Schaltkreisen, die zum Arbeiten konzipiert sind und als eine Einheit zum Ausführen verwandter Funktionen verkauft werden) und/oder übrigens auch irgendeines anderen integrierten Schaltkreises implementiert werden.
  • Die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren mögen aber auch in dem Kontext eines generellen bzw. allgemeinen Computersystems, eines Leiterplattensystems, eines Spielkonsolsystems, das für Unterhaltungszwecke dediziert ist, eines anwendungsspezifischen Systems und/oder jegliches anderen gewünschten Systems implementiert werden. Zum Beispiel, mag das System 800 die Form eines Desktopcomputers, eines Laptopcomputers, eines Servers, einer Arbeitsstation, Spielkonsolen, eingebettetes Systems und/oder jeglicher anderen Art von Logik annehmen. Das System 800 mag aber auch die Form verschiedener anderen Vorrichtungen annehmen, einschließlich einer persönlichen digitalen Assistenten-Vorrichtung (PDA), einer Mobiltelefon-Vorrichtung, eines Fernsehers etc., ohne auf diese begrenzt zu sein.
  • Das System 800 mag ferner, obwohl dies nicht gezeigt ist, an ein Netzwerk (zum Beispiel ein Telekommunikationsnetzwerk, ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein Weitverkehrsnetz (WAN), wie das Internetz, ein Peer-to-Peer-Netzwerk, ein Kabelnetzwerk oder ähnliches) zu Kommunikationszwecken gekoppelt sein.
  • Während verschiedene Ausführungsformen oben beschrieben worden sind, sollte es verstanden werden, dass diese nur beispielhaft und nicht einschränkend dargestellt worden sind. Folglich sollte die Weite und der Umfang einer bevorzugten Ausführungsform nicht von einer jeglichen der oben beschriebenen Ausführungsformen begrenzt werden, sondern nur in Übereinstimmung mit den nachfolgenden Ansprüchen und deren Äquivalenten definiert werden.

Claims (20)

  1. Ein Verfahren aufweisend: Erhalten eines Phasenwertes, der eine Phase eines zweiten Taktsignals relativ zu einem ersten Taktsignal repräsentiert, wobei die Frequenz mindestens eines des ersten Taktsignals und des zweiten Taktsignals zeitlich variiert; Erhalten eines Periodenwertes, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert; und Berechnen, basierend auf dem Phasenwert und dem Periodenwert, eines extrapolierten Phasenwertes des zweiten Taktsignals relativ zu dem ersten Taktsignal entsprechend einem nächsten Übergang des ersten Taktsignals, wobei der extrapolierte Phasenwert von den gegenwärtigen Werten des Phasenwertes und des Periodenwertes extrapoliert wird.
  2. Das Verfahren gemäß Anspruch 1, ferner aufweisend ein Berechnen, basierend auf dem Phasenwert und dem Periodenwert, eines oder mehrerer extrapolierten Phasenwerte, die nachfolgenden Übergängen des ersten Taktsignals entsprechen, um eine Reihe von extrapolierten Phasenwerten zu erzeugen, die den extrapolierten Phasenwert und die zusätzlichen extrapolierten Phasenwerte enthält.
  3. Das Verfahren gemäß Anspruch 2, wobei jeder extrapolierte Phasenwert in der Reihe von extrapolierten Phasenwerten mit einer Flankenindikation assoziiert ist, die einen periodischen Übergang des zweiten Taktsignals spezifiziert.
  4. Das Verfahren gemäß Anspruch 3, wobei die Flankenindikation ein Register eines Satzes von Registern spezifiziert, wobei jedes Register in dem Satz von Registern zum Sampeln eines Eingabesignals auf einem unterschiedlichen Übergang des zweiten Taktes konfiguriert ist.
  5. Das Verfahren gemäß Anspruch 4, wobei der Satz von Registern nur zwei Register aufweist und wobei ein erstes Register zum Sampeln des Eingabesignals für gerade Zyklen des zweiten Taktes konfiguriert ist und ein zweites Register zum Sampeln des Eingangssignals für ungerade Zyklen des zweiten Taktes konfiguriert ist.
  6. Das Verfahren gemäß Anspruch 4, wobei der Satz von Registern drei oder mehr Register aufweist, und wobei ein erstes Register zum Sampeln des Eingabesignals auf jedem ersten Zyklus des zweiten Taktes konfiguriert ist, ein zweites Register zum Sampeln des Eingabesignals auf jedem zweiten Zyklus des zweiten Taktes konfiguriert ist und ein drittes Register zum Sampeln des Eingabesignals auf jedem dritten Zyklus des zweiten Taktes konfiguriert ist.
  7. Das Verfahren gemäß Anspruch 1, ferner aufweisend ein Berechnen einer Steigung von dem Periodenwert über die Zeit.
  8. Das Verfahren gemäß Anspruch 7, wobei der extrapolierte Phasenwert des zweiten Taktsignals basierend auf der Steigung des Periodenwertes berechnet wird.
  9. Das Verfahren gemäß Anspruch 2, ferner aufweisend ein Identifizieren eines extrapolierten Phasenwertes in der Reihe von extrapolierten Phasenwerten, der am nächsten an dem nächsten Übergang des ersten Taktsignals ist, als ein neuester extrapolierter Phasenwert.
  10. Das Verfahren gemäß Anspruch 9, ferner aufweisend: Berechnen einer Timingmargebedingung; und Bestimmen, dass der letzte extrapolierte Phasenwert die Timingmargebedingung erfüllt und ein sicherer extrapolierter Phasenwert ist.
  11. Das Verfahren gemäß Anspruch 11, wobei eine Komponente der Timingmargebedingung ein Messfehler ist, der mit zumindest einem von dem Phasenwert und dem Periodenwert assoziiert ist.
  12. Das Verfahren gemäß Anspruch 10, wobei eine Komponente der Timingmargebedingung eine Variation von zumindest einem des ersten Taktsignals und des zweiten Taktsignals aufgrund von Spannungs- oder Stromtransienten ist.
  13. Das Verfahren gemäß Anspruch 9, ferner aufweisend: Berechnen einer Timingmargebedingung; Bestimmen, dass der letzte extrapolierter Phasenwert die Timingmargebedingung nicht erfüllt; Identifizieren eines anderen extrapolierten Phasenwertes in der Reihe von Werten, die die Timingmargebedingung erfüllen, als der sichere extrapolierte Phasenwert.
  14. Das Verfahren gemäß Anspruch 9, ferner aufweisend ein Auswählen einer gesampelten Version eines Eingabesignals, das dem zuletzt extrapolierten Phasenwert entspricht, als ein Ausgabesignal, das zu dem ersten Taktsignal synchronisiert wird.
  15. Das Verfahren gemäß Anspruch 1, wobei eine Frequenz des ersten Taktsignals über die Zeit variiert. 16. Das Verfahren gemäß Anspruch 1, wobei eine Frequenz des zweiten Taktsignals über die Zeit variiert.
  16. Ein integrierter Schaltkreis aufweisend: einen ersten Schaltkreis, der in einer ersten Taktdomain arbeitet, die einem ersten Taktsignal entspricht; einen zweiten Schaltkreis, der in einer zweiten Taktdomain arbeitet, die einem zweiten Taktsignal entspricht, wobei die Frequenz mindestens eines des ersten Taktsignals und des zweiten Taktsignals zeitlich variiert; und einen Phasendetektor, der konfiguriert ist zum: Erhalten eines Phasenwertes, der eine Phase eines zweiten Taktsignals relativ zu einem ersten Taktsignal repräsentiert; Erhalten eines Periodenwertes, der eine relative Periode zwischen dem zweiten Taktsignal und dem ersten Taktsignal repräsentiert; und Berechnen, basierend auf dem Phasenwert und dem Periodenwert, eines extrapolierten Phasenwertes des zweiten Taktsignals relativ zu dem ersten Taktsignal entsprechend einem nächsten Übergang des ersten Taktsignals, wobei der extrapolierte Phasenwert von den gegenwärtigen Werten des Phasenwertes und des Periodenwertes extrapoliert wird.
  17. Der integrierte Schaltkreis gemäß Anspruch 17, ferner aufweisend einen Phasendetektor, der zum Erzeugen des Phasenwertes konfiguriert ist.
  18. Der integrierte Schaltkreis gemäß Anspruch 18, wobei der Phasendetektor einen open-loop Verzögerungsschaltkreis aufweist, der konfiguriert ist zum Erzeugen eines Satzes von verzögerten Versionen des ersten Taktsignals.
  19. Der integrierte Schaltkreis gemäß Anspruch 18, wobei der Phasendetektor einen closed-loop Verzögerungsschleifeschaltkreis aufweist, der zum Erzeugen eines Satzes von verzögerten Versionen des ersten Taktsignals konfiguriert ist.
  20. Der integrierte Schaltkreis gemäß Anspruch 17, wobei die Synchronisierungseinheit ferner konfiguriert ist zum Berechnen, basierend auf dem Phasenwert und dem Periodenwert, eines oder mehrerer zusätzlicher extrapolierter Phasenwerte, die nachfolgenden Übergängen des ersten Taktsignals entsprechen, um eine Reihe von extrapolierten Phasenwerten einschließlich des extrapolierten Phasenwertes und der zusätzlichen extrapolierten Phasenwerte zu erzeugen.
DE102013222669.1A 2012-11-20 2013-11-07 Ein variationstoleranter periodischer Synchronisator Active DE102013222669B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/681,929 2012-11-20
US13/681,929 US8760204B2 (en) 2012-11-20 2012-11-20 Variation-tolerant periodic synchronizer

Publications (2)

Publication Number Publication Date
DE102013222669A1 DE102013222669A1 (de) 2014-06-12
DE102013222669B4 true DE102013222669B4 (de) 2019-03-21

Family

ID=50727382

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013222669.1A Active DE102013222669B4 (de) 2012-11-20 2013-11-07 Ein variationstoleranter periodischer Synchronisator

Country Status (4)

Country Link
US (1) US8760204B2 (de)
CN (1) CN103838296A (de)
DE (1) DE102013222669B4 (de)
TW (1) TWI494737B (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164134B2 (en) 2012-11-13 2015-10-20 Nvidia Corporation High-resolution phase detector
US8866511B2 (en) 2012-11-20 2014-10-21 Nvidia Corporation Matrix phase detector
US9471091B2 (en) 2012-11-28 2016-10-18 Nvidia Corporation Periodic synchronizer using a reduced timing margin to generate a speculative synchronized output signal that is either validated or recalled
US11128742B2 (en) 2019-03-08 2021-09-21 Microsemi Storage Solutions, Inc. Method for adapting a constant bit rate client signal into the path layer of a telecom signal
US10972084B1 (en) * 2019-12-12 2021-04-06 Microchip Technology Inc. Circuit and methods for transferring a phase value between circuits clocked by non-synchronous clock signals
US11323123B2 (en) 2019-12-20 2022-05-03 Microchip Technology Inc. Circuit to correct phase interpolator rollover integral non-linearity errors
US10917097B1 (en) 2019-12-24 2021-02-09 Microsemi Semiconductor Ulc Circuits and methods for transferring two differentially encoded client clock domains over a third carrier clock domain between integrated circuits
US11239933B2 (en) 2020-01-28 2022-02-01 Microsemi Semiconductor Ulc Systems and methods for transporting constant bit rate client signals over a packet transport network
TWI743791B (zh) * 2020-05-18 2021-10-21 瑞昱半導體股份有限公司 多晶片系統、晶片與時脈同步方法
US11424902B2 (en) 2020-07-22 2022-08-23 Microchip Technology Inc. System and method for synchronizing nodes in a network device
US11838111B2 (en) 2021-06-30 2023-12-05 Microchip Technology Inc. System and method for performing rate adaptation of constant bit rate (CBR) client data with a variable number of idle blocks for transmission over a metro transport network (MTN)
US12323334B2 (en) 2021-06-30 2025-06-03 Microchip Technology Inc. System and method for performing rate adaptation and multiplexing of constant bit rate (CBR) client data for transmission over a metro transport network (MTN)
US11916662B2 (en) 2021-06-30 2024-02-27 Microchip Technology Inc. System and method for performing rate adaptation of constant bit rate (CBR) client data with a fixed number of idle blocks for transmission over a metro transport network (MTN)
US11736065B2 (en) 2021-10-07 2023-08-22 Microchip Technology Inc. Method and apparatus for conveying clock-related information from a timing device
US11799626B2 (en) 2021-11-23 2023-10-24 Microchip Technology Inc. Method and apparatus for carrying constant bit rate (CBR) client signals
US12192079B2 (en) 2021-11-23 2025-01-07 Microchip Technology Inc. Method and apparatus for carrying constant bit rate (CBR) client signals using CBR carrier streams comprising frames

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303996A1 (en) 2011-05-23 2012-11-29 Infineon Technologies Ag Apparatus for synchronizing a data handover between a first clock domain and a second clock domain

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511100A (en) * 1993-12-13 1996-04-23 Motorola, Inc. Method and apparatus for performing frequency detection
KR100603687B1 (ko) * 1997-10-10 2006-07-20 람버스 인코포레이티드 최소의 대기시간으로 페일-세이프 재동기화를 위한 방법및 장치
US6194938B1 (en) * 1998-09-28 2001-02-27 Texas Instruments Incorporated Synchronous integrated clock circuit
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
CN101401055B (zh) * 2006-02-15 2012-04-18 克罗诺洛吉克有限公司 分布式同步和定时系统
US7804344B2 (en) * 2007-04-20 2010-09-28 Micron Technology, Inc. Periodic signal synchronization apparatus, systems, and methods

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303996A1 (en) 2011-05-23 2012-11-29 Infineon Technologies Ag Apparatus for synchronizing a data handover between a first clock domain and a second clock domain

Also Published As

Publication number Publication date
CN103838296A (zh) 2014-06-04
DE102013222669A1 (de) 2014-06-12
US20140139275A1 (en) 2014-05-22
TWI494737B (zh) 2015-08-01
US8760204B2 (en) 2014-06-24
TW201439713A (zh) 2014-10-16

Similar Documents

Publication Publication Date Title
DE102013222669B4 (de) Ein variationstoleranter periodischer Synchronisator
DE102013222682B4 (de) Spekulativer periodischer Synchronisierer
DE102013222369B4 (de) Ein Matrix-Phasendetektor
DE102013221028B4 (de) Hoch-Auflösung-Phasen-Detektor
DE102011089867B4 (de) Digitaler Phasenfrequenzdetektor, Verfahren zum Detektieren einer Phase und einer Frequenz eines Ausgabesignals und digitale Phasenregelschleife
DE102013221678B4 (de) System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne
US8050148B2 (en) Flash time stamp apparatus
DE102014119507A1 (de) Synchronisation eines datensignals
DE112013005833T5 (de) Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz
DE102014201326A1 (de) Verfahren und Vorrichtung zum Erzeugen von Taktsignalen durch Normalisieren von Tastcode zu Zeitintervallcode
DE102013114341B4 (de) Ein System, ein Verfahren und ein Computerprogrammprodukt zur automatischen Zwei-Phasen-Taktung
EP2620834A1 (de) Modulierter Taktsynchronisator
DE112020002809T5 (de) Einrichtung und verfahren zum aufrechterhalten stabiler taktung
DE102023201724A1 (de) Integration von thermischen sensoren für das systemtemperatur-management
DE112017004922T5 (de) Techniken für Zeitstempel mit geringem Stromverbrauch und hoher Genauigkeit
DE102013020610B4 (de) Ein Ansatz zur Taktfrequenzmodulation einer Taktquelle mit fester Frequenz
Salman et al. Pessimism reduction in static timing analysis using interdependent setup and hold times
Kinniment et al. Measuring deep metastability and its effect on synchronizer performance
US20110283131A1 (en) Computer-readable recording medium, method, and apparatus for calculating power consumption information
DE112023002821T5 (de) Zeitstempel an einer parallelen schnittstelle eines serdes, der eine phy mit einem physischen übertragungsmedium koppelt
Pedapudi et al. Design of phase measurement system using hybrid dual D-FIFO-FF synchronizer and PWM based duty cycle computation
Polzer et al. Refined metastability characterization using a time-to-digital converter
DE102020129577A1 (de) Konvergenter fifo-status-synchronisierer mit taktübergang
DE102017109192A1 (de) Schaltungsanordnung und Verfahren zum Ermitteln eines Versatzes zwischen zwei Signalflanken
DE102024121535A1 (de) Zeitstempelregelkreis

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELL, DE

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final