DE112012002223T5 - Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne - Google Patents

Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne Download PDF

Info

Publication number
DE112012002223T5
DE112012002223T5 DE112012002223.8T DE112012002223T DE112012002223T5 DE 112012002223 T5 DE112012002223 T5 DE 112012002223T5 DE 112012002223 T DE112012002223 T DE 112012002223T DE 112012002223 T5 DE112012002223 T5 DE 112012002223T5
Authority
DE
Germany
Prior art keywords
clock domain
synchronization pulse
clock
synchronization
fill level
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.)
Withdrawn
Application number
DE112012002223.8T
Other languages
English (en)
Inventor
Thomas Bauernfeind
Stephan Henzler
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.)
Intel Deutschland GmbH
Original Assignee
Intel Mobile Communications GmbH
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 Intel Mobile Communications GmbH filed Critical Intel Mobile Communications GmbH
Publication of DE112012002223T5 publication Critical patent/DE112012002223T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/005Correction by an elastic buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/061Adapt frequency, i.e. clock frequency at one side is adapted to clock frequency, or average clock frequency, at the other side; Not pulse stuffing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/102Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Ausführungsformen der folgenden Erfindung stellen eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. Die Vorrichtung umfasst einen Rechner, einen FIFO-Speicher, einen Synchronisationspulsgenerator, einen Füllpegelinformationslieferanten und einen Rückkopplungsweg. Der Rechner ist mit dem Takt der ersten Taktdomäne getaktet und ist konfiguriert, um eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt. Der FIFO-Speicher ist konfiguriert, um einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu übernehmen und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls zu liefern. Der Synchronisationspulsgenerator ist mit dem Takt der zweiten Taktdomäne getaktet und ist konfiguriert, um den nachfolgenden Synchronisationspuls in der Weise zu erzeugen, dass sich der nachfolgende Synchronisationspuls an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben wird. Der Füllpegelinformationslieferant ist konfiguriert, eine Füllpegelinformation zu liefern, die einen Füllpegel des FIFO-Speichers beschreibt. Der Rückkopplungsweg ist konfiguriert zur Rückführung der Füllpegelinformation zum Rechner, der weiter konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.

Description

  • Gebiet
  • Ausführungsformen der vorliegenden Erfindung betreffen eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne. Einige Ausführungsformen der vorliegenden Erfindung betreffen einen FIFO (FIFO = First-In-First-Out) basierten Synchronisationsmechanismus für fraktionale Abtastratenwandler (FSRC).
  • Hintergrund
  • Eine Synchronisation von zwei Taktdomänen für einen Datenhandover wird in einer Vielzahl von Anwendungen verwendet, wie beispielsweise in Abtastratenwandlern (SRC) und in fraktionalen Abtastratenwandlern (FSRC).
  • Abriss
  • Ausführungsform der vorliegenden Erfindung stellen eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. Die Vorrichtung umfasst einen Rechner, einen first-in-first-out (FIFO) Speicher, einen Synchronisationspulsgenerator, einen Füllpegelinformationslieferanten und einen Rückkopplungsweg. Der Rechner ist mit dem Takt der ersten Taktdomäne getaktet und ist konfiguriert, eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt. Der FIFO-Speicher ist konfiguriert, um einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu übernehmen und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Reaktion auf einen momentanen Synchronisationspuls zu liefern. Der Synchronisationspulsgenerator ist mit dem Takt der zweiten Taktdomäne getaktet und ist konfiguriert, um den nachfolgenden Synchronisationspuls zu erzeugen, sodass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformationen beschrieben ist. Der Füllpegelinformationslieferant ist konfiguriert, um eine Füllpegelinformation bereitzustellen, die einen Füllpegel des FIFO-Speichers beschreibt. Der Rückkopplungsweg ist für eine Rückkopplung der Füllpegelinformation zum Rechner konfiguriert, der weiter konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  • Einige Ausführungsformen der vorliegenden Erfindung stellen eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. Die Vorrichtung umfasst einen Rechner, einen FIFO-Speicher, einen Synchronisationspulsgenerator, einen Füllpegelinformationslieferanten und einen Rückkopplungsweg. Der Rechner ist mit dem Takt der ersten Taktdomäne getaktet und ist konfiguriert, um eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt. Der FIFO-Speicher ist konfiguriert, um die Synchronisationspulszyklusdauerinformation, einen Eingabewiederladewert und einen Eingabeinkrementierwert in Synchronisation mit der ersten Taktdomäne zu übernehmen und die Synchronisationspulszyklusdauerinformation, einen Ausgabewiederladewert und einen Ausgabeinkrementierwert in Synchronisation mit der zweiten Taktdomäne und in Reaktion auf einen momentanen Synchronisationspuls zu liefern. Der Synchronisationspulsgenerator ist mit dem Takt der zweiten Taktdomäne getaktet und ist konfiguriert, um die Synchronisationspulszyklusdauerinformationen vom FIFO-Speicher zu empfangen und den nachfolgenden Synchronisationspuls so zu erzeugen, dass der nachfolgende Synchronisationspuls sich an der temporalen Position befindet, die durch die Synchronisationspulszyklusdauerinformationen beschrieben ist. Der Füllpegelinformationslieferant ist konfiguriert, eine Füllpegelinformation zu liefern, die einen Füllpegel des FIFO-Speichers beschreiben. Der Rückkopplungsweg ist konfiguriert, um die Füllpegelinformation zum Rechner zurückzuführen, der weiter konfiguriert ist, um die Synchronisationspulszyklusdauerinformationen basierend auf der Füllpegelinformation einzustellen.
  • Weitere Ausführungsformen der vorliegenden Erfindung stellen ein Verfahren zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. In einem ersten Schritt wird eine Synchronisationspulszyklusdauerinformation, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt, in der ersten Taktdomäne bereitgestellt. In einem zweiten Schritt wird ein Eingabedatenwert in Synchronisation mit der ersten Taktdomäne übernommen und wird ein Ausgabedatenwert in Synchronisation mit der zweiten Taktdomäne und in Reaktion auf einen momentanen Synchronisationspuls, mit einem FIFO-Speicher bereitgestellt. In einem dritten Schritt wird der Synchronisationspuls in der zweiten Taktdomäne so erzeugt, dass sich der Synchronisationspuls bei einer zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist. In einem vierten Schritt wird eine Füllpegelinformation, die einen Füllpegel des ersten FIFO-Speichers beschreibt, bereitgestellt. In einem fünften Schritt wird die Füllpegelinformation zur ersten Taktdomäne zurückgeführt, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  • Ein Aspekt der vorliegenden Offenbarung stellt eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. Die Vorrichtung weist einen Speicher auf, der von der ersten Taktdomäne und von der zweiten Taktdomäne verwendet wird, wobei jede Adresse des Speichers mit zumindest einem Datenwort und einem Gültigkeitswort verknüpft ist, das eine Gültigkeitszeit des zumindest einen Datenworts beschreibt. Die Vorrichtung ist konfiguriert, um das Gültigkeitswort basierend auf einem Füllpegel des Speichers zu bestimmen.
  • Kurzbeschreibung der Zeichnungen
  • Ausführungsform der vorliegenden Erfindung werden hierin unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • 1 zeigt ein Blockdiagramm einer Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 zeigt ein Blockdiagramm der Vorrichtung zur Synchronisation des Datenhandovers zwischen der ersten Taktdomäne und der zweiten Taktdomäne, die in der 1 gezeigt ist, die weiter einen ersten Datenprozessor an einen zweiten Datenprozessor aufweist.
  • 3 zeigt ein Blockdiagramm einer Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer Taktdomäne niedriger Frequenz und einer Taktdomäne hoher Frequenz gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 zeigt ein Blockdiagramm einer Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 zeigt in einem Diagramm beispielhafte Zeitplanungen der ersten Taktdomäne und der zweiten Taktdomäne der in 3 und 4 gezeigten Vorrichtung.
  • 6 zeigt ein Blockdiagramm eines Speicherlayouts des FIFO-Speichers gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 zeigt ein Blockdiagramm der Vorrichtung zur Synchronisation des Datenhandovers zwischen der ersten Taktdomäne und der zweiten Taktdomäne, die in 4 gezeigt ist, wobei der Rechner weiter einen Controller aufweist.
  • 8 zeigt ein Blockdiagramm des FIFO-Speichers, des Wiederladezählers 111 und des Füllpegelinformationslieferanten 112 gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9 zeigt ein Blockdiagramm des Füllpegelinformationslieferanten gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 10 zeigt ein Ablaufdiagramm eines Verfahrens zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 11 ein schematisches Blockdiagramm einer Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß eines Aspekts der vorliegenden Offenbarung.
  • Gleiche oder äquivalente Elemente oder Elemente mit gleichen oder äquivalenten Funktionalitäten sind in der folgenden Beschreibung durch gleiche oder äquivalente Bezugszeichen bezeichnet.
  • Detaillierte Beschreibung
  • In der folgenden Beschreibung wird eine Vielzahl von Einzelheiten dargelegt, um eine umfassendere Erläuterung von Ausführungsformen der vorliegenden Erfindung darzulegen. Jedoch ist für den Fachmann erkennbar, dass Ausführungsformen der vorliegenden Erfindung ohne diese speziellen Einzelheiten praktiziert werden können. Bei anderen Beispielen sind bereits bekannte Strukturen und Vorrichtungen in der Form eines Blockdiagramms und nicht in Einzelheiten gezeigt, um eine Verschleierung von Ausführungsformen der vorliegenden Erfindung zu vermeiden. Zusätzlich können Merkmale verschiedener Ausführungsformen, die im nachfolgenden beschrieben werden, miteinander kombiniert werden, sofern nicht speziell etwas anderes angegeben ist.
  • 1 zeigt ein Blockdiagramm einer Vorrichtung 100 zur Synchronisierung eines Datenhandovers zwischen einer ersten Taktdomäne 102 und einer zweiten Taktdomäne 104 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Vorrichtung 100 umfasst einen Rechner 106, einen FIFO-Speicher 108, einen Synchronisationspulsgenerator 110, einen Füllpegelinformationslieferanten 112 und einen Rückkopplungsweg 114. Der Rechner 106 wird mit dem Takt clk1 der ersten Taktdomäne 102 getaktet und ist konfiguriert, um eine Synchronisationspulszyklusdauerinformation 116 zu liefern, die eine zeitliche Position von Synchronisationspulsen 118_n bei einem Takt clk2 der zweiten Taktdomäne 104 beschreibt. Der FIFO-Speicher 108 ist konfiguriert, um ein Eingangsdatenwert in Synchronisation mit dem Takt clk1 der ersten Taktdomäne 102 zu übernehmen und einen Ausgangsdatenwert 122 in Synchronisation mit dem Takt clk2 der zweiten Taktdomäne 104 und in Reaktion auf einen momentanen Synchronisationspuls 118_n (n = 1) zu liefern. Der Synchronisationspulsgenerator 110 ist mit dem Takt clk2 der zweiten Taktdomäne 104 getaktet und ist konfiguriert, um den nachfolgenden Synchronisationspuls 118_n (n = 2) zu erzeugen, so dass der nachfolgende Synchronisationspuls 118_n (n = 2) sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation 116 beschrieben ist. Der Füllpegelinformationslieferant 112 ist konfiguriert, um eine Füllpegelinformation 124 zu liefern, die einen Füllpegel des FIFO-Speichers 108 beschreibt. Der Rückkopplungsweg 114 ist konfiguriert, um die Füllpegelinformation 124 zum Rechner 106 zurück zu führen, der weiter konfiguriert ist, um die Synchronisationspulszyklusdauerinformation 116 basierend auf der Füllpegelinformation 124 einzustellen.
  • Bei Ausführungsformen ist der Datenhandover zwischen der ersten Taktdomäne 102 und der zweiten Taktdomäne 104 durch den FIFO-Speicher 108 realisiert, z. B. durch einen asynchronen FIFO-Speicher, der mit dem Takt clk1 der ersten Taktdomäne 102 getaktet ist und dem Takt clk2 der zweiten Taktdomäne 104, wobei der Takt clk2 der zweiten Taktdomäne 104 gleich oder größer ist als der Takt clk1 der ersten Taktdomäne 102 oder umgekehrt. Darüber hinaus ist der FIFO-Speicher 108 konfiguriert, um den Ausgangsdatenwert 122 (nur) in Antwort auf Synchronisationspulse 118_n zu liefern, um einen synchronisierten Datenhandover zwischen der ersten Taktdomäne 102 und der zweiten Taktdomäne 104 zu realisieren.
  • Diese Synchronisationspulse 118_n werden durch den Synchronisationspulsgenerator 110 an der zeitlichen Position erzeugt, die durch die Synchronisationspulszyklusdauerinformation 116 beschrieben ist. Da der Synchronisationspulsgenerator 110 mit dem Takt clk2 der zweiten Taktdomäne 104 getaktet ist, können die Synchronisationspulse 118_n nur bei Takten (z. B. ansteigenden oder fallenden Taktflanken) der zweiten Taktdomäne 104 erzeugt werden. Somit befinden sich die Synchronisationspulse 118_n bei speziellen Takten (z. B. speziellen ansteigenden oder fallenden Taktflanken) der zweiten Taktdomäne 104, wobei die speziellen Takte durch die Synchronisationspulszyklusdauerinformation 116 definiert sind.
  • Durch Rückkopplung der Füllpegelinformation 114 zum Rechner 106 kann die Synchronisationspulszyklusdauerinformation 116 so eingestellt werden, dass der Füllpegel des ersten FIFO-Speichers 108 in einem vorbestimmten Bereich gehalten wird, wodurch ein synchronisierter Datenhandover mit einer fast konstanten Latenz bereitgestellt wird.
  • Beispielsweise kann der FIFO-Speicher 108 eine Mehrzahl von Speicherzellen aufweisen, wobei der Füllpegel des FIFO-Speichers 108 innerhalb eines vorbestimmten Bereichs gehalten wird, der durch einen Bereich von plus/minus einer oder zwei Speicherzelle(n) gehalten wird, d. h. der Füllpegel des FIFO-Speichers 108 kann (nur) in dem Bereich von plus/minus einer oder zwei Speicherzelle(n) variieren, wodurch ein Über- oder Unterlauf des FIFO-Speichers 108 vermieden wird und somit ein Datenhandover mit einer fast konstanten Latenz bereitgestellt wird (siehe 6).
  • Mit anderen Worten ist die Vorrichtung 100 in der Lage, einen konstanten (oder nahezu konstanten) Füllpegel des FIFO-Speichers 108 und somit eine konstante (oder nahezu konstante) Latenz des Datensynchronisationsmechanismus zu liefern. Darüber hinaus kann die Synchronisation auch in dem Fall von Änderungen des Taktes clk1 (oder der Taktfrequenz f1) der ersten Taktdomäne 102 oder des Taktes clk2 (oder der Taktfrequenz f2) der zweiten Taktdomäne 104 aufrechterhalten werden. Darüber hinaus ermöglicht die Vorrichtung 100 die Implementierung von fraktionalen Abtastratenwandlern (FSRC) mit einem Interpolationsverhältnis, das größer oder gleich 1 ist (f2/f1 ≥ 1).
  • 2 zeigt ein Blockdiagramm der Vorrichtung 100 zur Synchronisation des Datenhandovers zwischen der ersten Taktdomäne 102 und der zweiten Taktdomäne 104, die in 1 gezeigt ist, weiter aufweisend einen ersten Datenprozessor 126 und einen zweiten Datenprozessor 128. Der erste Datenprozessor 126 ist mit dem Takt clk1 der ersten Taktdomäne 102 getaktet und ist konfiguriert, um eine Eingangsinformation 130 so zu verarbeiten, dass der Eingangsdatenwert 120 in Synchronisation mit der ersten Taktdomäne 102 für den FIFO-Speicher 108 geliefert wird. Der zweite Datenprozessor 128 ist mit dem Takt clk2 der zweiten Taktdomäne 104 getaktet und ist konfiguriert, um den Ausgangsdatenwert 122 in Synchronisation mit der zweiten Taktdomäne 104 und in Antwort auf den momentanen Synchronisationspuls 118_n (n = 1) vom FIFO-Speicher 108 zu empfangen, und den Ausgangsdatenwert 122 zu bearbeiten, so dass eine Ausgangsinformation 132 in Synchronisation mit dem Takt clk2 der zweiten Taktdomäne 104 bereitgestellt wird.
  • Bei einigen Ausführungsformen kann der erste Datenprozessor 126 als eine Datenquelle bezeichnet werden, während der zweite Datenprozessor 128 als eine Datensenke bezeichnet werden kann, da der erste Datenprozessor 126 den Eingangsdatenwert 120 für den FIFO-Speicher 108 liefert und der zweite Datenprozessor 128 den Ausgangsdatenwert 122 vom FIFO-Speicher 108 empfängt.
  • Im Folgenden werden unter Bezugnahme auf eine beispielhafte Ausführungsform Eigenschaften der Vorrichtung 100 zur Synchronisation eines Datenhandovers zwischen der ersten Taktdomäne 102 und der zweiten Taktdomäne 104 beschrieben. Mit anderen Worten werden im Folgenden ein Synchronisationsmechanismus für Signalverarbeitungsblöcke, die einen Datenhandover zwischen zwei verschiedenen Taktdomänen beinhalten, beschrieben, wobei die Taktfrequenz f1 der ersten Taktdomäne 102 (Datenquelle) niedriger ist als die Taktfrequenz f2 der zweiten Taktdomäne 104 (Datensenke). Somit kann nachfolgend in einer Ausführungsform die erste Taktdomäne 102 als eine Taktdomäne niedrigerer Frequenz bezeichnet werden, während die zweite Taktdomäne 104 als eine Taktdomäne hoher Frequenz bezeichnet werden kann. Somit kann das Verhältnis der Taktfrequenzen (f1/f2) beliebig und/oder größer als eins sein. Darüber hinaus kann die Wiederladerate von Daten in der Taktdomäne mit hoher Frequenz 128 (Datensenke) im Mittel dieselbe Rate aufweisen, wie die Taktfrequenz der Taktdomäne 102 mit niedriger Frequenz (Datenquelle). Selbstverständlich können Merkmale der folgenden Beschreibung auch auf die Vorrichtung 100 zur Synchronisation des Datenhandovers zwischen der ersten Taktdomäne 102 und der zweiten Taktdomäne 104 angewandt werden, die in 1 und 2 gezeigt ist.
  • Darüber hinaus kann der Synchronisationspuls 118_n als ein Wiederladesignal oder Wiederladepuls bezeichnet werden, da der zweite Datenprozessor 128 konfiguriert sein kann, um den Datenausgabewert 122 in Antwort auf einen Synchronisationspuls 118_n zu empfangen oder mit anderen Worten wieder zu laden.
  • 3 zeigt ein Blockdiagramm einer Vorrichtung 100 zur Synchronisation eines Datenhandover zwischen einer ersten (oder niederfrequenten) Taktdomäne 102 und einer zweiten (oder hochfrequenten) Taktdomäne 104 gemäß einer Ausführungsform der vorliegenden Erfindung. Mit anderen Worten zeigt 3 die Struktur eines Signalverarbeitungssystems mit einem synchronisierten Datenhandover.
  • Die Vorrichtung 100 umfasst eine Datenquelle 126, eine Datensenke 128 und eine Synchronisationsstufe 140, wobei der FIFO-Speicher 108, der Synchronisationspulsgenerator 110 und der Füllpegelinformationslieferant 112, die in 1 und 2 gezeigt sind, in der Synchronisationsstufe 140 implementiert sein können.
  • Alternativ können der FIFO-Speicher 108 und der Füllpegelinformationslieferant 112 in der Synchronisationsstufe 140 implementiert sein, wobei der Rechner 106 in der Datenquelle 126 und der Synchronisationspulsgenerator 110 in der Datensenke 128 implementiert ist. In diesem Fall kann die Datenquelle 126 konfiguriert sein, um den Eingangsdatenwert 120 in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne 102 für die Synchronisationsstufe 140 zu liefern, wobei die Datensenke 128 konfiguriert sein kann, um den Ausgangsdatenwert 122 von der Synchronisationsstufe 140 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 und in Antwort auf einen momentanen Synchronisationspuls 118_n (n = 1) zu empfangen. Darüber hinaus kann die Datenquelle 126 konfiguriert sein, um ein write-enable-Signal 142 für die Synchronisationsstufe 140 zu liefern, wobei die Datensenke 128, die den Synchronisationspulsgenerator 110 aufweist, konfiguriert sein kann, um die Synchronisationspulse 118_n (oder read-enable-Signale) für die Synchronisationsstufe 140 zu liefern.
  • Die Vorrichtung 100 gemäß dem Konzept der vorliegenden Erfindung funktioniert selbst dann, wenn das Verhältnis zwischen der Taktfrequenz der ersten (oder hochfrequenten) Taktdomäne 104 und der Taktfrequenz der zweiten (oder niederfrequenten) Taktdomäne (fhigh/flow) klein wird, z. B. größer als oder gleich eins, zwei oder drei. Darüber hinaus kann selbst in dem Fall von fraktionalen Frequenzverhältnissen (fhigh/flow) und/oder einem modulierten (zeitlich variierenden) Takt clkhigh der zweiten (oder hochfrequenten) Taktdomäne 104 der Synchronisationspuls 118_n (oder Datenwiederladesignal der Datensenke) richtig mit dem Takt clklow der ersten (oder niederfrequenten) Taktdomäne 102 synchronisiert sein. Dadurch kann sichergestellt werden, dass der Ausgangsdatenwert 122 nicht an den zweiten Datenprozessor 128 geliefert wird, bevor ein neuer Dateneingangswert 120 durch den ersten Datenprozessor 126 geliefert wird, oder in anderen Worten, dass das erneute Laden von Daten in der Datensenke 128 nicht erfolgt bevor neue Wiederladewerte durch die Datenquelle 126 geliefert werden. Zusätzlich ist die Vorrichtung 100, die in 3 gezeigt ist, dazu geeignet, einen Datenhandover von der Datenquelle 126 zur Datensenke 128 mit einer konstanten (oder nahezu) konstanten Latenz bereitzustellen.
  • Im Gegensatz zu bekannten Lösungen, bei welchen einfach ein asynchroner FIFO-Speicher 108 (oder Speicher) zur Synchronisation verwendet wird, umfasst die Vorrichtung 100 gemäß dem Konzept der vorliegenden Erfindung eine Synchronisationsstufe 140 mit einem Rechner 106, einem FIFO-Speicher 108, einem Synchronisationspulsgenerator 110 und einem Füllpegelinformationslieferanten 112. Die Vorrichtung 100 ist dazu geeignet eine konstante (oder nahezu konstante) Synchronisationslatenz oder in anderen Worten einen Datenhandover zwischen der ersten (oder niederfrequenten) Taktdomäne 102 und der zweiten (oder hochfrequenten) Taktdomäne 104 mit einer konstanten (oder nahezu konstanten) Latenz bereitzustellen. Somit kann die Latenz nicht vom Füllpegel des FIFO-Speichers 108 und somit nicht vom Beginn der Synchronisation abhängen. Darüber hinaus ist in geschlossenen Schleifensystemen, wie beispielsweise PLLs (PLL = Phasenregelkreis) eine konstante Latenz wünschenswert, um eine definierte Schleifenantwort zu erhalten. Selbst wenn die Leserate der Daten am Datensenkenport sich von der Schreibrate am Datenquellenport des FIFO-Speichers 108 unterscheidet, wird der Füllpegel des FIFO-Speichers 108 nicht wegdriften, d. h. wird sich die Latenz des Signalbearbeitungsblocks nicht ändern. Somit wird ein Unter- oder Überlaufen des FIFO-Speichers 108 selbst im Fall einer langfristigen Ratenfehlanpassung vermieden.
  • 4 zeigt ein Blockdiagramm einer Vorrichtung 100 zur Synchronisation eines Datenhandovers zwischen einer ersten (oder niederfrequenten) Taktdomäne 102 und einer zweiten (oder hochfrequenten) Taktdomäne 104 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Vorrichtung 100 umfasst einen Rechner 106, einen FIFO-Speicher 108, einen Wiederladezähler 111, eine Datenquelle 126 und eine Datensenke 128.
  • Bei einigen Ausführungsformen umfasst der Rechner 106 einen numerisch gesteuerten Oszillator 107 (NCO). Darüber hinaus umfasst der Wiederladezähler 111 den Synchronisationspulsgenerator 110, der in 1 und 2 gezeigt ist. Darüber hinaus weist bei einer Ausführungsform der FIFO-Speicher 108 einen asynchronen FIFO-Speicher auf. Zusätzlich weist der FIFO-Speicher den Füllpegelinformationslieferanten 112 auf, der in 1 und 2 gezeigt ist.
  • Wie in 4 gezeigt ist, ist in einer Ausführungsform der FIFO-Speicher 108 konfiguriert, um die Synchronisationspulszyklusdauerinformation 116 in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne 102 zu übernehmen und die Synchronisationspulszyklusdauerinformation 116 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 und in Reaktion auf einen momentanen Synchronisationspuls 118_n (n = 1) zu liefern. Der Synchronisationspulsgenerator 110 ist konfiguriert, um die Synchronisationspulszyklusdauerinformation 116 vom FIFO-Speicher 108 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 und in Reaktion auf einen momentanen Synchronisationspuls 118_n (n = 1) zu empfangen.
  • Darüber hinaus ist der Rechner 106 konfiguriert, um die Synchronisationspulszyklusdauerinformation 116 zu liefern, so dass die Synchronisationspulszyklusdauerinformation 116 eine Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne zwischen dem momentanen Synchronisationspuls 118_n (n = 1) und dem nachfolgenden Synchronisationspuls 118_n (n = 2) darstellt. Mit anderen Worten kann die Synchronisationspulszyklusdauerinformation 116 die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne zwischen nachfolgenden Synchronisationspulsen (z. B. 118_n (n = 1) und 118_n (n = 2)) und somit die Dauer der Synchronisationspulses 118_n definieren. Darüber hinaus kann der Rechner 106 konfiguriert werden, um die zeitliche Position des nachfolgenden Synchronisationspulses 118_n (n = 2) durch Erhöhen oder Verringern der Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 einzustellen, um einen vorbestimmten Füllpegel des FIFO-Speichers 108 beizubehalten.
  • Bei einigen Ausführungsformen ist der FIFO-Speicher 108 konfiguriert, um die Synchronisationspulszyklusdauerinformation 116 und die Eingangsdaten 120 in einen Taktzyklus der ersten (oder niederfrequenten) Taktdomäne 102 zu übernehmen und die Synchronisationspulszyklusdauerinformation 116 und den Ausgangsdatenwert 122 in einem Taktzyklus der zweiten (oder hochfrequenten) Taktdomäne 104 bereit zu stellen. In diesem Fall kann die Synchronisationspulszyklusdauerinformation 116 die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 104 beschreiben, für die der Ausgangsdatenwert 122 gültig ist.
  • Gemäß dem Konzept der vorliegenden Erfindung wird in einer Ausführungsform der Füllpegel des FIFO-Speichers 108 in den numerisch gesteuerten Oszillator 107 zurückgeführt. Der numerisch gesteuerte Oszillator 107 berechnet die Gültigkeit jedes Eingangsdatenwertes 120 (oder FIFO Eintrags) hinsichtlich der Taktanzahl in der zweiten (oder hochfrequenten) Taktdomäne 116 oder in anderen Worten hinsichtlich der Taktzyklen des zweiten (oder hochfrequenten) Taktsignals (fhigh). Die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 (Gültigkeitswert) wird zusammen mit dem Eingangsdatenwert 120 (aktuelle Daten) im FIFO-Speicher 108 gespeichert. Wenn eine FIFO-Speicherzelle gelesen wird, wird die Anzahl von Takten in der hochfrequenten Taktdomäne 116 (Gültigkeitswert) in den Wiederladezähler 111 geladen, der bei jedem Zyklus der zweiten (oder hochfrequenten) Taktdomäne um einen vorbestimmten Wert, z. B. eins, dekrementiert wird. Bei einem Zählerunterlauf läuft die Gültigkeit des Ausgangsdatenwertes 122 (momentane Daten) aus und der nächste Ausgangsdatenwert 122 wird aus dem FIFO-Speicher 108 gelesen. Natürlich sind alternativ Implementierungen des Wiederladezählers 111 möglich, z. B. bei welchen der Zählerwert inkrementiert wird.
  • Die Vorrichtung 100 gemäß dem Konzept der vorliegenden Erfindung ermöglicht es, dass das System einen konstanten (oder nahezu konstanten) Füllpegel des FIFO-Speichers 108 beibehalten kann und somit eine konstante (oder nahezu konstante) Latenz des Datensynchronisationsmechanismus. Zusätzlich wird durch Verwendung der Vorrichtung 100 die Synchronisation auch in dem Fall von Änderungen der Lese- und/oder Schreibrate des FIFO-Speichers 108 aufrechterhalten.
  • Darüber hinaus ermöglicht die Vorrichtung 100 die Implementierung von (fraktionalen) Abtastratenwandlern (FSRC) mit einem Interpolationsverhältnis, das größer oder gleich eins ist (fhigh/flow ≥ 1). Dies ist aufgrund der Trennung von Datenschreibzugriffen der Datenquelle 126 und Datenlesezugriffen der Datensenke 128 im Adressraum des FIFO-Speichers 108 und nicht durch eine Trennung hinsichtlich der Zeit möglich.
  • Bei einigen Ausführungsformen wird der Füllpegel des FIFO-Speichers 108 für einen Datenhandover zwischen der ersten (oder niederfrequenten) Taktdomäne 102 und der zweiten (oder hochfrequenten) Taktdomäne 104 durch eine Steuerungsschleife gesteuert, die den numerisch gesteuerten Oszillator 107 aufweist (siehe 7). Folglich ist der numerisch gesteuerte Oszillator konfiguriert, um die Füllpegelinformation 124, die den tatsächlichen Füllpegel des FIFO-Speichers 108 beschreibt, als ein Rückkopplungssignal zu verwenden und einen Korrekturwert des numerisch gesteuerten Oszillators 107, der für jeden Eingangsdatenwert 120 eingegeben wird, zu berechnen, der in den FIFO-Speicher 108 gestellt wird. Bei diesem Korrekturwert wird der Füllpegel des FIFO-Speichers 108 indirekt durch Änderung der Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 und somit eines Mittelwertes des Wiederladezählers 111 und ein entsprechendes Ändern der FIFO-Speicher-108-Leserate gesteuert.
  • Dies kann während der Start-Phase der Vorrichtung 100 (oder der Verarbeitungsblöcke) notwendig sein, um einen bestimmten Füllpegel des FIFO-Speichers 108 beizubehalten. Wenn die Taktrate der ersten (oder niederfrequenten) Taktdomäne 102 oder die Taktrate der zweiten (oder hochfrequenten) Taktdomäne 104 eine (vorübergehende oder permanente) Frequenzabweichung aufweist, kann dieser Mechanismus (oder Steuerungsschleife) dazu verwendet werden, um das Frequenzverhältnis (fhigh/flow) im numerisch gesteuerten Oszillator 107 zu korrigieren. Somit kann die Vorrichtung 100 bei Anwendungen verwendet werden, bei welchen das erneute Laden von niederfrequenten Daten bei der hohen Rate kontinuierlich mit der gemittelten niederen Datenrate ausgeführt wird (z. B. ein fraktionaler Abtastprobenratenwandler mit integriertem Ausgang).
  • Darüber hinaus kann die Vorrichtung gemäß dem Konzept der vorliegenden Erfindung selbst dann implementiert werden, wenn das Verhältnis zwischen der Taktfrequenz der ersten (oder niederfrequenten) Taktdomäne 102 (Datensenkenfrequenz) und die Taktfrequenz der zweiten (oder hochfrequenten) Taktdomäne 104 (Datenquellenfrequenz) niedrig wird, z. B. größer oder gleich eins, zwei oder drei, wie es für fraktionale Abtastratenwandler erforderlich ist, die in Breitbandpolarmodulatoren verwendet werden, wie beispielsweise LTE 20 (LTE = Long Term Evolution). Selbst wenn das Frequenzverhältnis (fhigh/flow) niedrig wird, z. B. nahe an eins, gibt es einen ausreichenden Freiraum für den Synchronisationspuls 118_n, der zeitlich nicht zwischen zwei Taktflanken, z. B. ansteigenden oder fallenden Taktflanken, der ersten (oder niederfrequenten) Taktdomäne 102 positioniert werden muss, wie es aus der nachfolgenden Diskussion deutlich werden wird.
  • 5 zeigt ein Diagramm beispielhafter Timings der ersten (oder niederfrequenten) Taktdomäne 102 und der zweiten (oder hochfrequenten) Taktdomäne 104 der in den 3 und 4 gezeigten Vorrichtung 100. In 5 sind von oben nach unten die Timings 134 des Taktes clklow der ersten (oder niederfrequenten) Taktdomäne 102, die Timings 136 des Taktes clkhigh der zweiten (oder hochfrequenten) Taktdomäne 104 und die Timings 138 des Synchronisationspulses 118_n (n = 1) bis 118_n (n = 11) gezeigt. In 5 ist die erste (oder niederfrequente) Taktdomäne beispielhaft mit einer Taktfrequenz von 312 MHz getaktet, wobei die zweite (oder hochfrequente) Taktdomäne 104 beispielhaft mit einer Taktfrequenz von 700 MHz getaktet ist. Natürlich ist die folgende Beschreibung auch auf andere Taktfrequenzen der ersten Taktdomäne 102 und/oder der zweiten Taktdomäne 104 anwendbar.
  • Im Gegensatz zu bekannten Lösungen, bei welchen der Synchronisationspuls 118_n (oder der Wiederladepuls) mit einem ausreichenden Freiraum zwischen zwei Taktflanken, z. B. ansteigenden oder fallenden Taktflanken, der ersten (oder niederfrequenten) Taktdomäne 102 platziert werden muss, um Setup- und/oder Halte-Verletzungen beim Datentransfer von der ersten (oder niederfrequenten) Taktdomäne 102 zur zweiten (oder hochfrequenten) Taktdomäne 104 zu vermeiden, ermöglicht die Vorrichtung 100 einen setup- und halte-verletzungsfreien Datentransfer selbst für Frequenzverhältnisse (fhigh/flow) von weniger als drei. Darüber hinaus wird bei dem Abtasten der Position des Synchronisationspulses 118_n (oder Wiederladepulses) keine Unsicherheit eingebracht. Zusätzlich wird ein Jitter des Synchronisationspulses 118_n (oder Wiederladepulses) vermieden, der ansonsten durch Ganzzahl-Delta-Sigmamodulierte Zählwert-zyklen des Wiederladezählers eingeführt werden könnte. Darüber hinaus wird, selbst wenn der Takt der zweiten (oder hochfrequenten) Taktdomäne 104 moduliert ist, wie es der Fall bei PLLs in polaren Modulatoren (PLL = Phase Locked Loop) ist, keine Unsicherheit eingebracht.
  • Die Vorrichtung 100 gemäß dem Konzept der vorliegenden Erfindung ist für die Implementierung von beispielsweise fraktionalen Abtastratenwandlern in Breitbandpolarmodulatoren vorteilhaft. Diese Modulatoren benötigen fraktionale Abtastratenumwandler für eine Interpolation von AM (AM = Amplitudenmodulator) und PM (PM = Phasenmodulator) Signalen von einer Signalrate von mehreren 100 MHz (z. B. 312 MHz, wie in 5 dargestellt) zur modulierten RF Frequenz (RF = Radiofrequenz) im GHz Bereich, z. B. 1 GHz, 10 GHz oder 100 GHz.
  • Die erforderliche Tiefe des Synchronisations-FIFO-Speichers 108 kann von dem maximalen Timing-Jitter der Synchronisationspulse 118_n (oder Wiederladesignale) abhängen. Der Timing-Jitter der Synchronisationspulse 118_n (oder Wiederladesignale) kann von den Modulationsdaten und der Sequenz von Taktanzahlen in der zweiten (oder hochfrequenten) Taktdomäne 116 (oder Wiederladezählsequenz des numerisch gesteuerten Oszillators 107) abhängen. Dadurch muss sichergestellt werden, dass es keinen Zugriff auf dieselbe Speicherzelle (Speicherposition) des FIFO-Speichers 108 zur selben Zeit gibt. Somit kann der FIFO-Speicher 108 eine Tiefe von wenigstens 4 Speicherzellen (oder Registern) aufweisen. Eine Speicherzelle (oder Register) für den Schreibzugriff und eine Speicherzelle (oder Register) für den Lesezugriff und eine Speicherzelle (oder Register) vor und hinter der Leseadresse als Schutz für einen unbeabsichtigten Lese- und/oder Schreibzugriff auf dieselbe Speicherzelle (oder Register).
  • 6 zeigt ein Blockdiagramm eines Speicherlayouts des FIFO-Speichers 108 gemäß einer Ausführungsform der vorliegenden Erfindung. Der FIFO-Speicher 108 weist eine Mehrzahl von Speicherzellen 140_0 bis 140_3 auf, wobei der FIFO-Speicher 108 konfiguriert ist, den Eingangsdatenwert 120 in eine Speicherzelle (z. B. 140_0) der Vielzahl von Speicherzellen 140_0 bis 140_3 zu übernehmen, die durch einen Schreibzeigerwert 142 angezeigt wird, und wobei der FIFO-Speicher 108 konfiguriert ist, den Ausgangsdatenwert 122 von einer anderen Speicherzelle (z. B. 140_2) der Mehrzahl von Speicherzellen 140_0 bis 140_3, zu liefern, die durch einen Lesezeigerwert 144 angezeigt ist.
  • Wie in 6 gezeigt ist, kann der Füllpegel des FIFO-Speichers 108 im Bereich 146 über plus/minus eine Speicherzelle (z. B. 140_1 bis 140_3) variieren. Mit anderen Worten können die Änderungen der Leseadresse, die durch den Lesezeigerwert 144 angezeigt wird (im Verhältnis zur Schreibadresse, die durch den Schreibezeigerwert 142 angezeigt wird) im Bereich von plus/minus einer Speicherzelle (z. B. 140_1 bis 140_3) aufgrund des Timing-Jitters des Synchronisationspulses 118_n (oder Wiederladesignals) variieren. Dadurch kann ein Über- oder Unterlauf des FIFO-Speichers 108 vermieden werden, und somit ein Datenhandover zwischen der ersten (oder niederfrequenten) Taktdomäne 102 und der zweiten (oder hochfrequenten) Taktdomäne 104 mit einer fast konstanten Latenz gewährleistet werden.
  • Bei einigen Ausführungsformen kann der FIFO-Speicher 108 eine Tiefe von zumindest vier (Speicherzellen) aufgrund der Notwendigkeit von zwei Schutzspeicherzellen (Speicheradressen) aufweisen. Dadurch wird ein mittlerer Füllpegel des FIFO-Speichers 108 zwei betragen. Daher wird die Verzögerung (oder Latenz), die durch den Synchronisation-FIFO-Speicher 108 eingeführt wird, im Mittel zwei Taktperioden der ersten (oder niederfrequenten) Taktdomäne 102 betragen.
  • 7 zeigt ein Blockdiagramm der Vorrichtung 100 zur Synchronisation des Datenhandovers zwischen der ersten (oder niederfrequenten) Taktdomäne 102 und der zweiten (oder hochfrequenten) Taktdomäne 104, die in 4 gezeigt ist, wobei der Rechner 106 weiter einen Controller 150 aufweist. Mit anderen Worten zeigt 7 die Struktur des vollständigen, auf dem FIFO-Speicher 108 basierten fraktionalen Abtastratenumwandlers mit Rückkopplung des Füllpegels zum numerisch gesteuerten Oszillator 107.
  • Bei einer Ausführungsform ist der Controller 150 konfiguriert, um die Synchronisationspulszyklusdauerinformation 116 zu regulieren, um die Füllpegelinformation 124 in Richtung einer vorbestimmten Zielfüllpegelinformation zu bringen. Beispielsweise stellt die Synchronisationspulszyklusdauerinformation 116 eine Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 dar, wobei der Controller 150 konfiguriert ist, um die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 zu regeln, so dass der Füllpegel des FIFO-Speichers 108 innerhalb eines vorbestimmten Bereichs gehalten wird, wodurch ein Datenhandover mit einer fast konstanten Latenz bereitgestellt wird.
  • Darüber hinaus ist in einer Ausführungsform der Rechner 106 dazu konfiguriert, einen Ausgangswert 152 des Controllers 150 mit einem Frequenzverhältniswert 154 zu kombinieren, der ein Frequenzverhältnis zwischen der Taktfrequenz der zweiten (oder hochfrequenten) Taktdomäne 104 und der Taktfrequenz der ersten (oder niederfrequenten) Taktdomäne 102 beschreibt, um die Synchronisationspulszyklusdauerinformation 116 zu erhalten. Mit anderen Worten ist der Controller 152 konfiguriert, um den Frequenzverhältniswert 154, der das Verhältnis zwischen der Frequenz der zweiten (oder hochfrequenten) Taktdomäne 104 und der Frequenz der ersten (oder niederfrequenten) Taktdomäne 102 beschreibt, der in den numerisch gesteuerten Oszillator 107 zugeführt wird, zu korrigieren. Dabei kann der Frequenzverhältniswert 154 einen ganzzahligen und/oder fraktionalen Teil aufweisen.
  • Beispielsweise kann der Frequenzverhältniswert 154, der in den numerisch gesteuerten Oszillator 107 zugeführt wird, durch Addieren eines Ausgangswertes 152 des Controllers 150 zum Frequenzverhältniswert 154 mittels eines ersten Addierers 156 erhöht oder verringert werden. Zusätzlich kann ein Modulationsdatenwert 160, der die Modulationsdaten beschreibt, zum Frequenzverhältniswert 154, der in den numerisch gesteuerten Oszillator 107 zugeführt wird, mithilfe eines zweiten Addierers 162 addiert werden. Darüber hinaus kann der zweite Addierer 162 mit einem Ausgang eines Multiplexers 164 gekoppelt werden, der konfiguriert ist, um an seinem Ausgang basierend auf einem binären Steuerungssignal entweder den Modulationsdatenwert 160, der an seinem ersten Eingang vorliegt, oder einen Referenzwert (z. B. null), der an seinem zweiten Eingang vorliegt, zu liefern.
  • Zusätzlich kann der Rechner 106 eine Rückkopplungssteuerungsschleife 170 aufweisen. Die Rückkopplungssteuerungsschleife 170 kann den Controller 150, einen ersten Addierer 172, einen Eingang 174 für einen gewünschten Füllpegel des FIFO-Speichers 108 und einen Eingang 176 für die Füllpegelinformation 124 aufweisen. Die Füllpegelinformation 124, die am Eingang 176 vorliegt, wird von der gewünschten Füllpegelinformation abgezogen, die am Eingang 174 vorliegt, und wird in den Controller 150 mittels des ersten Addierers 172 zugeführt.
  • Der Füllpegel des FIFO-Speichers 108 wird durch die Anzahl von Takten in der Hochfrequenztaktdomäne 116 (Zählwert) für die Erzeugung der Synchronisationspulse 118_n (Wiederladesignale) gesteuert. Die Anzahl von Takten in der Hochfrequenztaktdomäne 116 (Zählwert) wird im numerisch gesteuerten Oszillator 107 erzeugt, der mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 getaktet ist, oder mit anderen Worten, der auf dem Niederfrequenztakt betrieben wird. Somit ist eine Rückkopplung der Füllpegelinformation zur ersten (oder niederfrequenten) Taktdomäne 102 notwendig. Der tatsächliche Füllpegel des FIFO-Speichers 108 wird im Rückkopplungscontroller 150 verarbeitet, der im numerisch gesteuerten Oszillator 107 implementiert sein kann, und korrigiert zeitlich den Frequenzverhältniswert 154, um den gewünschten Füllpegel des FIFO-Speichers 108 einzurichten. Im regulären Betrieb ist die Rückkopplungssteuerungsschleife 170 des Füllpegels nur aktiv, wenn das Frequenzverhältnis (fhigh/flow) gestört ist. Es ist möglich, die Steuerungsschleife 170 auszuschalten oder eine Tiefenzone für die Füllpegelinformation 124 (oder Rückkopplungswert) zu definieren, wenn keine Steuerungsaktion stattfindet. Dadurch wird die Wechselwirkung des Rückkopplungscontrollers 150 minimieren.
  • 8 zeigt ein Blockdiagramm des FIFO-Speichers 108, des Wiederladezählers 111 und des Füllpegelinformationslieferanten 112 gemäß einer Ausführungsform der vorliegenden Erfindung. Mit anderen Worten zeigt 8 eine mögliche Implementierung des FIFO-Speichers 108 und der Wiedersignal 118_n-Erzeugung.
  • Der FIFO-Speicher 108 umfasst eine Mehrzahl von Speicherzellen 140_0 bis 140_3, wobei der FIFO-Speicher 108 konfiguriert ist, den Eingangsdatenwert 120 in eine Speicherzelle der Mehrzahl von Speicherzellen 140_0 bis 140_3, die durch einen Schreibzeigerwert 142 bezeichnet sind, zu übernehmen oder zu empfangen, und wobei der FIFO-Speicher 108 konfiguriert ist, den Ausgangsdatenwert 122 von einer anderen Speicherzelle der Mehrzahl von Speicherzellen 140_0 bis 140_3, die durch einen Lesezeigerwert 144 bezeichnet sind, zu liefern. Im Beispiel aus 8 umfasst der FIFO-Speicher 108 vier Speicherzellen 140_0 bis 140_3. Natürlich kann der FIFO-Speicher 108 mehr als vier Speicherzellen aufweisen.
  • Wie in 8 gezeigt ist, kann der Eingangsdatenwert 120 bei einigen Ausführungsformen einen Eingangswiederladewert 120_1 und einen Eingangsinkrementwert 120_2 aufweisen. In diesem Fall ist der erste Datenprozessor 126 (Datenquelle) konfiguriert, die Eingangsinformation 130 so zu verarbeiten, dass der Eingangswiederladewert 120_1 und der Eingangsinkrementwert 120_2 in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne für den FIFO-Speicher 108 bereitgestellt werden. Der FIFO-Speicher 108 kann konfiguriert sein, um beispielsweise in einem Taktzyklus der ersten (oder niederfrequenten) Taktdomäne 102 den Eingangswiederladewert 120_1, den Eingangsinkrementwert 120_2 und die Synchronisationspulszyklusdauerinformation 116 zu übernehmen und einen Ausgangswiederladewert 122_1, einen Ausgangsinkrementwert 122_2 und die Synchronisationspulszyklusdauerinformation 116 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 und in Antwort auf einen momentanen Synchronisationspuls 118_n (n = 1) zu liefern. Darüber hinaus ist der zweite Datenprozessor 128 (Datensenke) dazu konfiguriert, um den Ausgangswiederladewert 122_1 und den Ausgangsinkrementwert 122_2 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 und in Antwort auf einen momentanen Synchronisationspuls 118_n (n = 1) vom FIFO-Speicher 108 zu empfangen und den Ausgangswiederladewert 122_1 und den Ausgangsinkrementwert 122_2 so zu bearbeiten, dass eine Ausgangsinformation 132 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne geliefert wird.
  • Beispielsweise kann der zweite Datenprozessor 128 (Datensenke) einen Integrator aufweisen, der konfiguriert ist, um den Ausgangswiederladewert 122_1 als Ausgangsinformation 132 in Antwort auf den momentanen Synchronisationspuls 118_n (n = 1) (oder Wiederladesignal) zu liefern und die vorherige Ausgangsinformation durch den Ausgangsinkrementwert 122_2 bei jedem nachfolgenden Takt der zweiten (oder hochfrequenten) Taktdomäne 104 zu inkrementieren.
  • Wie in 8 gezeigt ist, kann bei einigen Ausführungsformen der Schreibzeigerwert 142 durch einen ersten Grauzähler 180 erzeugt werden, der mit dem Takt clklow der ersten (oder niederfrequenten) Taktdomäne 102 getaktet ist. Der Grauzähler 180 kann konfiguriert sein, um in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne 102 zu zählen und ein grau-kodiertes Zählerlesen als Schreibzeigerwert 142 zu liefern. Beispielsweise ist der erste Grauzähler 180, wenn der FIFO-Speicher 108 vier Speicherzellen aufweist, konfiguriert, um von null auf drei unter Verwendung des Graukodes in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne 102 zu zählen und das Zählen, nachdem er von null auf drei gezählt hat, neu zu starten.
  • Darüber hinaus weist der erste Grauzähler 180 bei einer Ausführungsform einen Eingang für ein write-enable-Signal auf, wobei der erste Grauzähler 180 konfiguriert ist, um in Synchronisation mit der ersten (oder niederfrequenten) Taktdomäne 102 basierend auf dem write-enable-Signal 180 zu zählen. Darüber hinaus kann der erste Grauzähler 180 einen Eingang für ein Rücksetzsignal 182 aufweisen, wobei der erste Grauzähler 180 konfiguriert ist, um sein Lesen des Zählers auf einen Ausgangswert in Abhängigkeit von dem Rücksetzsignal 182 zurückzusetzen.
  • Bei einer Ausführungsform ist der Ausgang des ersten Grauzählers 180 mit einem Demultiplexer 184 gekoppelt, der konfiguriert ist, um eine einer Mehrzahl von Signalleitungen 186_0 bis 186_3 an seinem Ausgang basierend auf dem Schreibzählerwert 142, der an seinem Eingang vorliegt, zu aktivieren. Dadurch wird jede Signalleitung der Mehrzahl von Signalleitungen 186_0 bis 186_3 mit einer Speicherzelle der Mehrzahl von Speicherzellen 140_0 bis 140_3 des FIFO-Speichers 108 gekoppelt. Darüber hinaus ist jede Signalleitung 186_0 bis 186_3 mit der entsprechenden Speicherzelle der Vielzahl von Speicherzellen 140_0 bis 140_3 mittels eines oder-Blocks 188 gekoppelt, so dass die entsprechende Signalleitung 186_0 bis 186_3 basierend auf dem write-enable-Signal 180 aktiviert wird, das mit dem oder-Block 188 gekoppelt ist.
  • Der FIFO-Speicher 108 kann einen zweiten Grauzähler 190 aufweisen. Der Ausgang des zweiten Grauzählers 190 ist mit einem Multiplexer 200 gekoppelt, der konfiguriert ist, um an seinen Ausgang, basierend auf dem Lesezeigerwert 144, der an seinem Steuerungsanschluss vorliegt, den Ausgangswiederladewert 122_1, den Ausgangsinkrementwert 122_2 und die Synchronisationspulszyklusdauerinformation 116, die in einer Speicherzelle der Mehrzahl von Speicherzellen 140_0 bis 140_3 des FIFO-Speichers 108 gespeichert ist, bereitzustellen.
  • Die Vorrichtung 100 kann einen Zähler 202 aufweisen, der mit dem Takt clkhigh der zweiten (oder hochfrequenten) Taktdomäne getaktet und konfiguriert ist, um die Takte in der zweiten (oder hochfrequenten) Taktdomäne 104 zu zählen und ein Zähler-Lesen 204 bereitzustellen. Dadurch ist der Synchronisationspulsgenerator 110 konfiguriert, um den nachfolgenden Erzeugungspuls 118_n (n = 2) basierend auf dem Zähler-Lesen 204 zu erzeugen, so dass der nachfolgende Synchronisationspuls 118_n (n = 2) sich an der zeitlichen Position befindet, die durch die Anzahl von Takten in der zweiten Taktdomäne beschrieben ist, die durch die Synchronisationspulszyklusdauerinformation 116 repräsentiert wird, wobei das Zähler-Lesen 204 in Reaktion auf die Erzeugung des nachfolgenden Synchronisationspulses 118_n (n = 2) auf einen Ausgangswert gesetzt wird.
  • Darüber hinaus ist bei einer Ausführungsform die Vorrichtung 100 dazu konfiguriert, in Antwort auf den momentanen Synchronisationspuls 118_n (n = 1), das Zähler-Lesen 204 auf die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 104 zu setzen, die durch die Synchronisationstaktzyklusdauerinformation 116 repräsentiert wird, und das Zähler-Lesen 204 von dem eingestellten Zähler-Lesen in Synchronisation mit dem Takt der zweiten (oder hochfrequenten) Taktdomäne 104 herabzuzählen. Dadurch ist der Synchronisationspulsgenerator 110 konfiguriert, um das Zähler-Lesen 204 mit einer vordefinierten Zahl zu vergleichen und den nachfolgenden Synchronisationspuls 118_n (n = 2) zu erzeugen, wenn die vordefinierte Zahl gleich dem Zähler-Lesen 204 ist.
  • Beispielsweise kann der Zähler 202 einen Multiplexer 204, ein Register 206 und einen Addierer 208 aufweisen. Man beachte, dass die oben aufgelisteten Blöcke des Zählers 202 mit dem Takt clkhigh der zweiten (oder hochfrequenten) Taktdomäne 104 getaktet sind.
  • Ein Ausgang des Registers 206 zum Abtasten des Zähler-Lesens 204 kann mit dem Addierer 208 gekoppelt sein. Der Addierer 208 kann konfiguriert sein, einen vordefinierten Wert, z. B. eins, zum abgetasteten Zähler-Lesen hinzuzufügen. Ein Ausgang des Addierers 208 und der Eingang 210 für die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 sind mit Eingängen des Multiplexers 204 gekoppelt. Der Multiplexer 204 ist konfiguriert, um an seinem Ausgang die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 in Antwort auf einen Synchronisationspuls 118_n und ansonsten das inkrementierte Zähler-Lesen zu liefern. Der Ausgang des Multiplexers 204 ist mit einem Eingang des Registers 206 zum Abtasten des Zähler-Lesens 205 in Synchronisation mit der zweiten (oder hochfrequenten) Taktdomäne 104 gekoppelt.
  • Bei einer Ausführungsform umfasst der Synchronisationspulsgenerator 110 einen Komparator 210, der konfiguriert ist, um das Zähler-lesen 205 mit der vordefinierten Zahl zu vergleichen und den nachfolgenden Synchronisationspuls 118_n (n = 2) zu erzeugen, wenn die vordefinierte Zahl gleich dem Zähler-Lesen 204 ist. Alternativ kann der Synchronisationspulsgenerator 110 einen Komparator 210 und ein Register 212 aufweisen. In diesem Fall ist der Komparator 210 konfiguriert, um das Zähler-Lesen 204 mit der vordefinierten Zahl (z. B. null) zu vergleichen und den nachfolgenden Synchronisationspuls 118_n (n = 2) zu erzeugen, wenn die vordefinierte Zahl gleich dem Zähler-Lesen 204 ist, wobei das Register 212 konfiguriert ist, um den nachfolgenden Synchronisationspuls 118_n (n = 2) durch einen hochfrequenten Taktzyklus zu verzögern.
  • Wie in der Ausführungsform von 8 gezeigt sind, sind der Synchronisationspulsgenerator 110 und der Zähler 202 im Wiederladezähler 111 implementiert. Zusätzlich umfasst der Wiederladezähler 111 ein Register 214 zum Abtasten eines Rücksetzsignals 216 und eines Oder-Blocks 218. Ein Ausgang des Registers 214 ist mit einem Rücksetzeingang 194 des zweiten Grauzählers 190 und mit einem Eingang des Oder-Blocks 218 gekoppelt. Ein zweiter Eingang des Oder-Blocks 218 ist mit dem Ausgang des Registers 212 des Synchronisationspulsgenerators 110 gekoppelt. Der Ausgang des Oder-Blocks 218 ist mit einem Steuerungsanschluss des Multiplexers 204 des Zählers 202 derart gekoppelt, dass der Multiplexer 204 des Zählers 202 konfiguriert ist, um an seinem Ausgang die Anzahl von Takten in der zweiten (oder hochfrequenten) Taktdomäne 116 in Antwort auf einen Synchronisationspuls 118_n oder in Antwort auf das Rücksetzsignal 216 zu liefern, das durch das Register 214 des Wiederladezählers 111 abgetastet wird.
  • 9 zeigt ein Blockdiagramm des Füllpegelinformationslieferanten 112 gemäß einer Ausführungsform der vorliegenden Erfindung. Mit anderen Worten zeigt 9 eine Implementierung des FIFO-Speicher-108-Füllpegeldetektors.
  • Der Füllpegelinformationslieferant 112 kann ein erstes Register 230 zum Abtasten des Schreibzeigerwertes 142 und ein zweites Register 232 zum Abtasten des Lesezeigerwertes 144 aufweisen. Dadurch ist der Füllpegelinformationslieferant 112 in einer derartigen Ausführungsform konfiguriert, um den abgetasteten Schreibzeigerwert 234 und den abgetasteten Lesezeigerwert 236 zu kombinieren, um einen Füllpegelwert 238 zu erhalten, der den Füllpegel des FIFO-Speichers 108 beschreibt und um die Füllpegelinformation 124 zu liefern, so dass die Füllpegelinformation den Füllpegelwert 238 darstellt.
  • Alternativ weist der Füllpegelinformationslieferant 112 eine erste Synchronisationszelle 238, die das erste Register 230 und ein drittes Register 240 aufweist, und eine zweite Synchronisationszelle 242 auf, die das zweite Register 232 und ein viertes Register 244 aufweist. Das erste und das dritte Register 230 und 240 der ersten Synchronisationszelle 238 und das zweite und vierte Register 232 und 244 der zweiten Synchronisationszelle 242 sind mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 getaktet. In diesem Fall ist die zweite Synchronisationszelle 242 konfiguriert, um den Lesezeigerwert 144 von der zweiten (oder hochfrequenten) Taktdomäne 104 in die erste (oder niederfrequente) Taktdomäne 102 zu synchronisieren, wodurch der Lesezeigerwert 144 um zwei Zyklen der ersten (oder niederfrequenten) Taktdomäne 102 verzögert wird. Die erste Synchronisationszelle 238 kann den Schreibzeigerwert 142 auch um zwei Taktzyklen der ersten (oder niederfrequenten) Taktdomäne 102 verzögern.
  • Darüber hinaus weist bei einer Ausführungsform der Füllpegelinformationslieferant 112 einen ersten Grau-In-Binär-Wandler 246 und einen zweiten Grau-In-Binär-Wandler 248 auf. Der erste Grau-In-Binär-Wandler 246 ist konfiguriert, um den abgetasteten graukodierten Schreibzeigerwert 234 in einen binärkodierten Schreibzeigerwert 250 umzuwandeln, wobei der zweite Grau-In-Binär-Wandler 248 konfiguriert ist, um den abgetasteten graukodierten Lesezeigerwert 236 in einen binärkodierten Lesezeigerwert 252 umzuwandeln.
  • Die breite des binärkodierten Schreibzeigerwertes 250 und des binärkodierten Lesezeigerwertes 252 hängt von der Anzahl von Speicherzellen des FIFO-Speichers 108 ab. In dem Fall eines FIFO-Speichers 108 mit vier Speicherzellen 140_0 bis 140_3 können der binärkodierte Schreibzeigerwert 250 und der binärkodierte Lesezeigerwert 252 eine Breite von zwei Bits aufweisen.
  • Darüber hinaus kann der binärkodierte Lesezeigerwert 252 von dem binärkodierten Schreibzeigerwert 250 mittels eines Addierers 254 subtrahiert werden, wodurch am Ausgang des Addierers 254 der Füllpegelwert 238 bereitgestellt wird. Der Füllpegelwert 238 kann auch eine Breite von zwei Bits aufweisen.
  • Darüber hinaus kann der Füllpegelinformationslieferant 112 weiter konfiguriert sein, um eine Mehrzahl von Füllpegelwerten 238 zu summieren oder zu mitteln, um einen summierten oder gemittelten Füllpegelwert 276 zu erhalten, der einen mittleren Füllpegel des FIFO-Speichers 108 beschreibt, und um die Füllpegelinformation so bereitzustellen, dass die Füllpegelinformation den summierten oder gemittelten Füllpegelwert 276 darstellt.
  • Beispielsweise können, wie in 9 gezeigt ist, vier aufeinander folgende Füllpegelwerte 238 gemittelt werden, um die Synchronisation der Füllpegelinformation 124 in die erste (oder niederfrequente) Taktdomäne 102 zu vereinfachen. Dieses Mitteln ist ausreichend, um den Füllpegel des FIFO-Speichers 108 zu verfolgen, da (im Allgemeinen) die Frequenzabweichungen im Vergleich zur Lese-/Schreibrate des FIFO-Speichers 108 gering sind. Somit wird sich der Füllpegel nicht rasch ändern. Um eine Mehrzahl von Füllpegelwerten 238 zu summieren, kann der Füllpegelinformationslieferant 112 weiter ein fünftes Register 260, ein sechstes Register 262, ein siebtes Register 264, einen zweiten Addierer 266, einen Multiplexer 268 und einen Zähler 270 aufweisen. Der Zähler 270, z. B. ein 2-Bit-Zähler, kann konfiguriert sein, um in Synchronisation mit dem Takt der ersten (oder niederfrequenten) Taktdomäne zu zählen und einen Zähler-Lesewert 272 zu liefern, der das momentane Zähler-Lesen beschreibt. Darüber hinaus ist der Zähler 270 konfiguriert, um ein Steuerungssignal 174 bereitzustellen, wenn das Zähler-Lesen gleich einer vordefinierten Zahl ist (z. B. vier). Das fünfte Register 260 ist konfiguriert, um den Füllpegelwert 238 abzutasten (z. B. mit einer Breite von zwei Bit) der an seinem Eingang in Synchronisation mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 vorliegt. Darüber hinaus ist ein Ausgang des fünften Registers 260 mit einem ersten Eingang des Multiplexers 268 und einem ersten Eingang des Addierers 266 gekoppelt, wobei der zweite Eingang des Multiplexers 268 mit einem Ausgang des Addierers 266 gekoppelt ist. Dadurch ist der Addierer 266 konfiguriert, um zum Füllpegelwert 238, der durch das fünfte Register 260 abgetastet wurde, eine vorherige Summe von Füllpegelwerten 278, die an seinem zweiten Eingang vorhanden sind, zu addieren, um eine momentane Summe von Füllpegelwerten zu erhalten. Der Multiplexer 268 ist konfiguriert, um an seinem Ausgang basierend auf dem Steuerungssignal 274 entweder den Füllpegelwert 238 als momentane Summe von Füllpegelwerten oder die momentane Summe von Füllpegelwerten, die durch den Addierer geliefert wird, bereitzustellen. Der Ausgang des Multiplexers 268 ist mit einem Eingang des sechsten Registers 262 gekoppelt, das konfiguriert ist, um die momentane Summe von Füllpegelwerten (z. B. mit einer Breite von vier Bits) in Synchronisation mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 abzutasten. Ein Ausgang des sechsten Registers 262 ist mit einem Eingang des siebten Registers 264 und dem zweiten Eingang des Addierers 266 gekoppelt. Das siebte Register 264 ist konfiguriert, um die momentane Summe von Füllpegelwerten 278, die an seinem Eingang vorhanden ist, in Synchronisation mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 und in Antwort auf das Steuerungssignal 274, das von dem Zähler 270 geliefert wird, wieder abzutasten und die wieder abgetastete momentane Summe von Füllpegelwerten als summierten Füllpegelwert 276 zu liefern. Der summierte Füllpegelwert 276 und der Zähler-Lesewert 272, der vom Zähler 270 geliefert wird, werden zum Rechner 106 durch den Rückkopplungsweg 114 als Füllpegelinformation 124 zurückgeführt. Man beachte, dass die oben aufgelisteten und in 9 gezeigten Blöcke mit dem Takt der ersten (oder niederfrequenten) Taktdomäne 102 getaktet sein können.
  • 10 zeigt ein Flussdiagramm eines Verfahrens zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß einer Ausführungsform der vorliegenden Erfindung. Während die nachfolgende Beschreibung das Verfahren als eine Reihe von Schritten beschreibt, können zahlreiche Schritte in einer anderen Reihenfolge oder gleichzeitig miteinander durchgeführt werden. Zusätzlich müssen nicht alle Schritte notwendig sein, um die vorliegende Erfindung zu erfüllen. In einem ersten Schritt 300 wird eine Synchronisationspulszyklusdauerinformation, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt, in der ersten Taktdomäne bereitgestellt. In einem zweiten Schritt 302 wird ein Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne übernommen und es wird ein Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls mit einem FIFO-Speicher bereitgestellt. In einem dritten Schritt 304 wird der Synchronisationspuls in der zweiten Taktdomäne erzeugt, so dass der Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben wird. In einem vierten Schritt 306 wird eine Füllpegelinformation, die einen Füllpegel des FIFO-Speichers beschreibt, in der zweiten Taktdomäne geliefert. In einem fünften Schritt 308 wird die Füllpegelinformation zur ersten Taktdomäne zurückgeführt, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  • Bei einigen Ausführungsformen kann die Synchronisationspulszyklusdauerinformation in der Weise bereitgestellt werden, dass die Synchronisationspulszyklusdauerinformation in der Form eines kodierten numerischen Werts eine Anzahl von Takten in der zweiten Taktdomäne darstellt.
  • Darüber hinaus kann das Verfahren zum Synchronisieren eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne weiter den Schritt eines Zählens der Takte in der zweiten Taktdomäne und eines Bereitstellens eines Zählerlesens aufweisen, wobei der Synchronisationspuls basierend auf dem Zählerlesen erzeugt wird, sodass eine zeitliche Position des Synchronisationspulses basierend auf der Synchronisationspulszyklusdauerinformation eingestellt wird, und wobei das Zählerlesen in Reaktion auf eine Erzeugung des Synchronisationspulses auf einen Anfangswert gesetzt wird.
  • Zusätzlich kann das Verfahren zum Synchronisieren eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne weiter die Schritte eines Verarbeitens einer Eingangsinformation in der Weise, dass der Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne für den FIFO-Speicher bereitgestellt wird, eines Empfangens des Ausgangsdatenwertes in Synchronisation mit der zweiten Taktdomäne und in Reaktion auf den Synchronisationspuls von dem FIFO-Speicher und eines Verarbeitens des Ausgangdatenwertes in der Weise, dass eine Ausgangsinformation in Synchronisation mit der zweiten Taktdomäne geliefert wird, aufweisen.
  • Weitere Ausführungsformen der vorliegenden Erfindung stellen eine Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne bereit. Die Vorrichtung umfasst ein Mittel zum Berechnen, ein Mittel für ein FIFO-Speichern, ein Mittel zum Erzeugen von Synchronisationspulsen und ein Mittel zum Bereitstellen einer Füllpegelinformation. Das Mittel zum Berechnen wird mit dem Takt der ersten Taktdomäne getaktet und ist konfiguriert, um eine Synchronisationspulszyklusdauerinformation bereitzustellen, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt. Das Mittel zum FIFO-Speichern ist konfiguriert, um einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu übernehmen und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Reaktion auf einen momentanen Synchronisationspuls zu liefern. Das Mittel zum Erzeugen von Synchronisationspulsen ist mit dem Takt der zweiten Taktdomäne getaktet und ist konfiguriert, um den nachfolgenden Synchronisationspuls in der Weise zu erzeugen, dass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist. Das Mittel zur Bereitstellung einer Füllpegelinformation ist konfiguriert, um eine Füllpegelinformation bereitzustellen, die einen Füllpegel des FIFO-Speichers beschreibt. Das Mittel zum Rückkoppeln ist konfiguriert, um die Füllpegelinformation zum Rechner zurück zu führen. Dadurch ist das Mittel zur Berechnung konfiguriert, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  • 11 zeigt ein schematisches Blockdiagramm einer Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne gemäß einem Aspekt der vorliegenden Offenbarung.
  • Die Vorrichtung 1100 ist konfiguriert, um einen Datenhandover zwischen einer ersten Taktdomäne 1102 und einer zweiten Taktdomäne 1104 zu synchronisieren. Die Vorrichtung 1100 umfasst einen Rechner 1106 (der gleich dem Rechner 106 sein kann), einen FIFO-Speicher 1108 (der gleich dem FIFO-Speicher 108 sein kann), einen Synchronisationspulsgenerator 1110 (der gleich dem Synchronisationspulsgenerator 110 sein kann), einen Füllpegelinformationslieferanten 1112 (der gleich dem Füllpegelinformationslieferanten 112 sein kann) und einem Rückkopplungsweg 1114 (der gleich dem Rückkopplungsweg 114 sein kann). Darüber hinaus umfasst die Vorrichtung 1110 auch einen Phaseninformationslieferanten 1115.
  • Die Vorrichtung 1110 ist konfiguriert, um einen Eingangsdatenwert 1120 (oder eine Folge von Eingangsdatenwerten 1120) zu empfangen und einen Ausgangsdatenwert 1122 (oder eine Folge von Ausgangdatenwerten 1122) zu liefern. Darüber hinaus empfängt die Vorrichtung 1110 ein erstes Taktsignal clk1 und ein zweites Taktsignal clk2.
  • Der FIFO-Speicher 1108 empfängt die Eingangsdatenwerte 1120, wobei das erste Taktsignal clk1 beispielsweise ein Timing bestimmen kann, zu dem die Eingangsdatenwerte 1120 in den FIFO-Speicher eingegeben werden. Darüber hinaus kann das zweite Taktsignal clk2 beispielsweise in Kombination mit einem Synchronisationspuls ein Timing bestimmen, gemäß dem Ausgangsdatenwerte 1122 aus dem FIFO-Speicher 1108 gelesen werden.
  • Der Synchronisationspulsgenerator 1110, der typischerweise auf der Basis des zweiten Taktsignales clk2 betrieben wird, ist konfiguriert, um einen Synchronisationspuls zu liefern, der eine Zeit bestimmt, zu der ein Ausgangsdatenwert 1122 aus dem FIFO-Speicher 1108 gelesen wird, oder eine Zeit, zu der ein Ausgangsdatenwert 1122, der vom FIFO-Speicher 1108 geliefert wird, in eine Schaltung übernommen wird, die basierend auf dem zweiten Taktsignal clk2 betrieben wird. Der Synchronisationspulsgenerator 1110 empfängt eine Synchronisationspulszyklusdauerinformation 1116, die als ein Gültigkeitswort betrachtet werden kann, vom Rechner 1106. Die Synchronisationspulszyklusdauerinformation 1116 kann beispielsweise einen Zeitintervall zwischen Zeiten beschrieben, bei welchem nachfolgende Ausgangsdatenwerte 1122 vom FIFO-Speicher 1108 in eine Schaltung übernommen werden, die basierend auf dem zweiten Taktsignal clk2 betrieben wird. Entsprechend trägt die Synchronisationspulszyklusdauerinformation 1116 Information über die Gültigkeitszeit eines Datenworts (oder einer Mehrzahl von Datenworten), der bzw. die in dem FIFO-Speicher gespeichert sind. Beispielsweise kann die Synchronisationspulszyklusdauerinformation 1116 derart sein, dass ein Gültigkeitswort eine Gültigkeitszeit zumindest eines Datenwortes beschreibt, wobei jede Adresse des FIFO-Speichers 1108 mit zumindest einem Datenwort assoziiert ist. Entsprechend kann es eine Verbindung zwischen einem Gültigkeitsdatenwort (der Synchronisationspulszyklusdauerinformation) und einem oder mehreren Datenworten geben, die im FIFO-Speicher 1108 gespeichert sind.
  • Der Rechner 1106 kann beispielsweise mehrere Eingangsinformationselemente verwenden, um die Synchronisationspulszyklusdauerinformation 1116 zu bestimmen (d. h. die Gültigkeitsworte). Beispielsweise kann der Rechner 1106 eine Füllpegelinformation 1114 vom Füllpegelinformationslieferanten 1112 empfangen, wobei die Füllpegelinformation 1114 einen Füllpegel des FIFO-Speichers 1108 beschreibt. Dem entsprechend liefert der Rechner 1106, der vorzugsweise auf der Basis des ersten Taktsignals clk1 betrieben wird, die Synchronisationspulszyklusdauerinformation in der Weise, dass der Füllpegel des FIFO-Speichers 1108 in einer vorbestimmten Grenze gehalten wird oder zu einem Zielfüllpegelwert gebracht wird. Darüber hinaus kann der Rechner 1106 konfiguriert sein, um eine Phaseninformation 1117 vom Phaseninformationslieferanten 1115 zu erhalten, wobei die Phaseninformation 1117 beispielsweise eine Phasenbeziehung zwischen den Synchronisationspuls 1127, der vom Synchronisationspulsgenerator 1110 geliefert wird, und dem ersten Taktsignal clk1 (d. h. dem Takt der ersten Taktdomäne 1102) beschreiben kann. Mit anderen Worten kann die Phaseninformation 1117 von Phaseninformationslieferanten 1115 zum Rechner 1106 zurückgeführt werden und der Rechner 1106 kann konfiguriert sein, um die Synchronisationspulszyklusdauerinformation (die als eine Synchronisationspulstiminginformation betrachtet werden kann) basierend auf der Phaseninformation 1117, die durch den Rückkopplungsweg geliefert wird, einzustellen.
  • Dementsprechend kann der Rechner 1106 sowohl den Füllpegel des FIFO-Speichers 1108 und eine Phasenbeziehung zwischen dem Synchronisationspuls 1127 und dem ersten Taktsignal clk1 berücksichtigen, um die Synchronisationspulszyklusdauerinformation 1116 bereitzustellen. Somit wird das Zeitintervall zwischen Zeiten, bei welchen Ausgangsdatenwerte zur Schaltung der zweiten Taktdomäne 1104 vom FIFO-Speicher 1108 (d. h. die Gültigkeitszeit der Datenwerte) übernommen werden, eingestellt oder dynamisch eingestellt (in der Art einer Rückkopplung), um sowohl einen gewünschten Füllpegel des FIFO-Speichers 1108 beizubehalten als auch die gewünschte Phasenbeziehung zwischen dem Synchronisationspulssignal 1127 (das beispielsweise einen Takeover eines Ausgangsdatenwertes 1122 vom FIFO-Speicher 1108 zu einer Schaltung Triggern kann, die basierend auf dem zweiten Taktsignal clk2 betrieben wird) und dem ersten Taktsignal clk1 zu erhalten.
  • Gemäß einem Aspekt der vorliegenden Offenbarung, kann der Synchronisationspulsgenerator 1110 effizient angewandt werden, um die Phaseninformation 1117 zu liefern. Beispielsweise kann die Phaseninformation 1117 auf einem Zählwert basieren (oder diesem gleich sein), der von einem Zähler des Synchronisationspulsgenerators 1110 zu einem Zeitpunkt einer Flanke (oder zu einer Zeit, die durch eine Flanke bestimmt ist) des ersten Taktsignals clk1 erreicht wird. Darüber hinaus kann durch die Synchronisationspulszyklusdauerinformation eine Periodizität (beispielsweise ein Wiederladewert, der auf den Zähler angewandt wird, wenn eine gewisser minimaler Zählwert oder ein maximaler Zählwert vom Zähler erreicht wird) bestimmt werden.
  • Somit kann die Vorrichtung 1100 eine Synchronisation zwischen der ersten Taktdomäne 1102 und der zweiten Taktdomäne 1104 erreichen, so dass ein Unterlauf oder ein Überlauf des FIFO-Speichers 1108 vermieden wird und so dass das Timing des Synchronisationspulses 1127 an das Timing des ersten Taktsignals clk1 gut angepasst ist, so dass beispielsweise Verletzungen der Setup-und-Halte-Zeiten oder dergleichen vermieden werden.
  • Es ist zu beachten, dass die Funktionalität der Schaltung 1100 selbstverständlich über einen breiten Bereich modifiziert werden kann. Beispielsweise kann bei einigen Ausführungsformen der Datentransfer auch von der zweiten Taktdomäne zur ersten Taktdomäne stattfinden. Alternativ ist ein bidirektionaler Datenfluss ebenfalls möglich.
  • Darüber hinaus kann selbstverständlich das hierin mit Bezug zu anderen Ausführungsformen beschriebene Konzept in der Vorrichtung 1100 implementiert werden.
  • Auch sind verschiedene Konzepte einer Erzeugung der Füllpegelinformation 1114 und der Phaseninformation 1117 verwendbar, solange ein korrektes Timing ohne Unterläufe oder Überläufe des FIFO-Speichers 1108 und ohne andere Timingverletzungen erreicht wird.
  • Die Synchronisationspulszyklusdauerinformation, die als ein Gültigkeitswort betrachtet werden kann, kann mit einem oder mehreren Datenworten des FIFO-Puffers auf verschiedene Arten assoziiert sein. Beispielsweise kann in einigen Implementierungen die Synchronisationspulszyklusdauerinformation im FIFO-Speicher 1108 gespeichert sein. Alternativ kann jedoch die Synchronisationspulszyklusdauerinformation zwischen der ersten Taktdomäne und der zweiten Taktdomäne getrennt vom FIFO-Speicher 1108 ausgetauscht werden, wobei es jedoch bevorzugt ist, eine Assoziation zwischen einer Speicheradresse des FIFO-Puffers 1108 und einer entsprechenden Synchronisationspulszyklusdauerinformation 1116 zu haben.
  • Obwohl einige Aspekte im Kontext einer Vorrichtung beschrieben wurden, ist es verständlich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog stellen Aspekte, die im Kontext eines Verfahrensschritts beschrieben wurden auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle Verfahrensschritte können durch eine (oder unter Verwendung einer) Hardwarevorrichtung, wie beispielsweise einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung ausgeführt werden. Bei einigen Ausführungsformen können ein oder mehrere der wichtigsten Verfahrensschritte durch eine derartige Vorrichtung ausgeführt werden.
  • Abhängig von bestimmten Implementierungserfordernissen können Ausführungsformen der Erfindung als Hardware oder Software implementiert sein. Die Implementierung kann durch Verwendung eines digitalen Speichermediums, wie beispielsweise einer Floppydisk, einer DVD, einer Blu-Ray, einer CD, eines ROMs, eines PROMs, eines EPROMs, eines EEPROMs oder eines Flashspeichers ausgeführt werden, die elektronisch lesbare Steuerungssignale darauf gespeichert aufweisen, die mit einem programmierbaren Computersystem kooperieren (oder dazu geeignet sind zu kooperieren), so dass das entsprechende Verfahren ausgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Einige Ausführungsformen gemäß der Erfindung umfassen einen Datenträger mit elektronisch lesbaren Steuerungssignalen, die dazu geeignet sind mit einem programmierbaren Computersystem zu kooperieren, so dass eines der Verfahren, die hierin beschrieben wurden, ausgeführt wird.
  • Allgemein können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode ausführbar ist, um eines der Verfahren auszuführen, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsformen umfassen das Computerprogramm zur Durchführung eines der hierin beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist eine Ausführungsform des erfindungsgemäßen Verfahrens daher ein Computerprogramm mit einem Programmcode zur Durchführung eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem Computer läuft.
  • Eine weitere Ausführungsform der erfindungsgemäßen Verfahren ist daher ein Datenträger (oder ein digitales Speichermedium, oder ein computerlesbares Medium), das darauf aufgezeichnet das Computerprogramm zur Durchführung eines der hierin beschriebenen Verfahren aufweist. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise materiell und/oder nicht flüchtig.
  • Eine weitere Ausführungsform des erfindungsgemäßen Verfahrens ist daher ein Datenstrom oder eine Folge von Signalen, die das Computerprogramm darstellen, um eines der hierin beschriebenen Verfahren durchzuführen. Der Datenstrom oder die Folge von Signalen kann beispielsweise konfiguriert sein, um über eine Datenkommunikationsverbindung, wie beispielsweise über das Internet, übertragen zu werden.
  • Eine weitere Ausführungsform umfasst ein Verarbeitungsmittel, beispielsweise einen Computer, oder eine programmierbare Logikvorrichtung, die konfiguriert oder eingerichtet ist, um eines der hierin beschriebenen Verfahren auszuführen.
  • Eine weitere Ausführungsform umfasst einen Computer, der darauf installiert das Computerprogramm zur Durchführung eines der hierin beschriebenen Verfahren aufweist.
  • Eine weitere Ausführungsform gemäß der Erfindung umfasst eine Vorrichtung oder ein System, dass konfiguriert ist, um (beispielsweise elektronisch oder optisch) ein Computerprogramm zur Durchführung eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Der Empfänger kann beispielsweise ein Computer, eine mobile Vorrichtung, eine Speichervorrichtung oder dergleichen sein. Die Vorrichtung oder System kann beispielsweise einen Fileserver zur Übertragung des Computerprogramms zum Empfänger aufweisen.
  • Bei einigen Ausführungsformen kann eine programmierbare Logikvorrichtung (beispielsweise ein programmierbares Gatterfeld) verwendet werde, um einige oder alle Funktionalitäten der hierin beschriebenen Verfahren auszuführen. Bei einigen Ausführungsformen kann ein programmierbares Gatterfeld mit einem Mikroprozessor kooperieren, um eines der hierin beschriebenen Verfahren auszuführen. Im Allgemeinen werden die Verfahren vorzugsweise durch eine beliebige Hardwarevorrichtung ausgeführt.
  • Die oben beschriebenen Ausführungsformen sind lediglich veranschaulichend für die Prinzipien der vorliegenden Erfindung. Es ist verständlich, dass Modifizierungen und Änderungen der Anordnungen und der Einzelheiten, die hierin beschrieben wurden, für Fachleute ersichtlich sind. Es wird beabsichtigt, dass Beschränkungen nur durch den Umfang der beigefügten Patenansprüche und nicht durch die speziellen Einzelheiten, die im Wege der Beschreibung und Erläuterung der Ausführungsformen hierin dargelegt wurden, erfolgen.

Claims (35)

  1. Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wobei die Vorrichtung aufweist: Einen Rechner, der mit dem Takt der ersten Taktdomäne getaktet ist und konfiguriert ist, um eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt; Einen FIFO-Speicher, der konfiguriert ist, um einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu empfangen und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls zu liefern; Einen Synchronisationspulsgenerator, der mit dem Takt der zweiten Taktdomäne getaktet und konfiguriert ist, um den nachfolgenden Synchronisationspuls zu erzeugen, so dass sich der nachfolgende Synchronisationspuls an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben wird, einen Füllpegelinformationslieferanten, der konfiguriert ist, um eine Füllpegelinformation zu liefern, die einen Füllpegel des FIFO-Speichers beschreibt; einen Rückkopplungsweg, der konfiguriert ist, um die Füllpegelinformation zum Rechner zurückzuführen; wobei der Rechner konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  2. Vorrichtung nach Anspruch 1, wobei der FIFO-Speicher konfiguriert ist, um die Synchronisationspulszyklusdauerinformation in Synchronisation mit der ersten Taktdomäne zu empfangen und die Synchronisationspulszyklusdauerinformation in Synchronisation mit der zweiten Taktdomäne und in Antwort auf den momentanen Synchronisationspuls zu liefern.
  3. Vorrichtung nach Anspruch 2, wobei der Synchronisationspulsgenerator konfiguriert ist, um die Synchronisationspulszyklusdauerinformation vom FIFO-Speicher in Synchronisation mit der zweiten Taktdomäne und in Antwort auf den momentanen Synchronisationspuls zu empfangen.
  4. Vorrichtung nach Anspruch 1, wobei der Rechner konfiguriert ist, um die Synchronisationspulszyklusdauerinformation in der Weise zu liefern, dass die Synchronisationspulszyklusdauerinformation eine Anzahl von Takten in der zweiten Taktdomäne zwischen dem momentanen Synchronisationspuls und dem nachfolgenden Synchronisationspuls darstellt.
  5. Vorrichtung nach Anspruch 4, wobei der FIFO-Speicher konfiguriert ist, um die Synchronisationspulszyklusdauerinformation und die Eingangsdaten in einem Taktzyklus der ersten Taktdomäne zu empfangen und die Synchronisationspulszyklusdauerinformation und die Ausgangsdaten in einem Taktzyklus der zweiten Taktdomäne zu liefern; wobei die Synchronisationspulszyklusdauerinformation die Anzahl von Takten in der zweiten Taktdomäne beschreibt, für die die Ausgangsdaten gültig sind.
  6. Vorrichtung nach Anspruch 4, die des Weiteren einen Zähler aufweist, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um die Takte in der zweiten Taktdomäne zu zählen und ein Zähler-Lesen zu liefern; wobei der Synchronisationspulsgenerator konfiguriert ist, um den nachfolgenden Synchronisationspuls basierend auf dem Zähler-Lesen zu erzeugen, in der Weise, dass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Anzahl von Takten in der zweiten Taktdomäne beschrieben ist, die durch die Synchronisationspulszyklusdauerinformation dargestellt ist, und wobei das Zähler-Lesen auf einen Anfangswert in Antwort auf die Erzeugung des nachfolgenden Synchronisationspulses gesetzt wird.
  7. Vorrichtung nach Anspruch 6, wobei die Vorrichtung konfiguriert ist, um das Zählerlesen auf die Anzahl von Takten in der zweiten Taktdomäne zu setzen, die durch die Synchronisationspulszyklusdauerinformation dargestellt ist, in Antwort auf den momentanen Synchronisationspuls, und wobei der Zähler konfiguriert ist, um das Zähler-Lesen vom eingestellten Zähler-Lesen in Synchronisation mit dem Takt der zweiten Taktdomäne herabzuzählen; und wobei der Synchronisationspulsgenerator konfiguriert ist, um das Zähler-Lesen mit einer vordefinierten Zahl zu vergleichen und den nachfolgenden Synchronisationspuls zu erzeugen, wenn die vordefinierte Zahl gleich dem Zähler-lesen ist.
  8. Vorrichtung nach Anspruch 6, wobei der Zähler konfiguriert ist, um die Takte in der zweiten Taktdomäne von dem eingestellten Zähler-Lesen in Synchronisation mit dem Takt der zweiten Taktdomäne heraufzuzählen; und wobei der Synchronisationspulsgenerator konfiguriert ist, um das Zähler-Lesen mit der Anzahl von Takten in der zweiten Taktdomäne zu vergleichen, die durch die Synchronisationspulszyklusdauerinformation dargestellt ist, und den nachfolgenden Synchronisationspuls zu erzeugen, wenn das Zähler-Lesen gleich der Anzahl von Takten in der zweiten Taktdomäne ist, die durch die Synchronisationspulszyklusdauerinformation dargestellt ist.
  9. Vorrichtung nach Anspruch 1, wobei der FIFO-Speicher eine Mehrzahl von Speicherzellen aufweist, wobei der FIFO-Speicher konfiguriert ist, um den Eingangsdatenwert in einer Speicherzelle der Mehrzahl von Speicherzellen zu empfangen, die durch einen Schreibzeigerwert angezeigt ist, und wobei der FIFO-Speicher konfiguriert ist, um den Ausgangsdatenwert von einer anderen Speicherzelle der Mehrzahl von Speicherzellen, die durch einen Lesezeigerwert angezeigt ist, zu liefern; und wobei der Füllpegelinformationslieferant ein erstes Register zum Abtasten des Schreibzeigerwertes und ein zweites Register zum Abtasten des Lesezeigerwertes aufweist, wobei der Füllpegelinformationslieferant konfiguriert ist, um den abgetasteten Schreibzeigerwert und den abgetasteten Lesezeigerwert zu kombinieren, um einen Füllpegelwert zu erhalten, der den Füllpegel des FIFO-Speichers beschreibt und um die Füllpegelinformation zu liefern, so dass die Füllpegelinformation den Füllpegelwert darstellt.
  10. Vorrichtung nach Anspruch 9, wobei der Füllpegelinformationslieferant konfiguriert ist, um eine Mehrzahl von Füllpegelwerten zu summieren oder zu mitteln, um einen summierten oder gemittelten Füllpegelwert zu erhalten, der einen mittleren Füllpegel des FIFO-Speichers beschreibt, und um die Füllpegelinformation zu liefern, so dass die Füllpegelinformation den summierten oder gemittelten Füllpegelwert darstellt.
  11. Vorrichtung nach Anspruch 1, wobei der Takt der zweiten Taktdomäne moduliert ist, und wobei der Rechner konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf Modulationsdaten einzustellen, die die Modulation des Taktes der zweiten Taktdomäne beschreiben.
  12. Vorrichtung nach Anspruch 1, wobei Rechner einen Controller aufweist, der konfiguriert ist, um die Synchronisationspulszyklusdauerinformation zu regeln, um die Füllpegelinformation in Richtung einer vorbestimmten Zielfüllpegelinformation zu bringen.
  13. Vorrichtung nach Anspruch 12, wobei der Rechner konfiguriert ist, um einen Ausgangswert des Controllers mit einem Frequenzverhältniswert zu kombinieren, der ein Frequenzverhältnis zwischen einer Taktfrequenz der zweiten Taktdomäne und einer Taktfrequenz der ersten Taktdomäne beschreibt, um die Synchronisationspulszyklusdauerinformation zu erhalten.
  14. Vorrichtung nach Anspruch 1, welche des Weiteren aufweist: einen ersten Datenprozessor, der mit dem Takt der ersten Taktdomäne getaktet ist und konfiguriert ist, um eine Eingangsinformation in der Weise zu verarbeiten, dass der Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne für den FIFO-Speicher geliefert wird; und einen zweiten Datenprozessor, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um den Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf den Synchronisationspuls vom FIFO-Speicher zu empfangen und der weiter konfiguriert ist, um den Datenausgangswert in der Weise zu verarbeiten, dass eine Ausgangsinformation in Synchronisation mit der zweiten Taktdomäne bereitgestellt wird.
  15. Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wobei die Vorrichtung aufweist: einen Rechner, der mit dem Takt der ersten Taktdomäne getaktet ist und konfiguriert ist, um eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt; einen FIFO-Speicher, der konfiguriert ist, um die Synchronisationspulszyklusdauerinformation und einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu empfangen und die Synchronisationspulszyklusdauerinformation und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls zu liefern; einen Synchronisationspulsgenerator, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um die Synchronisationspulszyklusdauerinformation vom FIFO-Speicher zu empfangen und den nachfolgenden Synchronisationspuls in der Weise zu erzeugen, dass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist; einen Füllpegelinformationslieferanten, der konfiguriert ist, um eine Füllpegelinformation zu liefern, die einen Füllpegel des FIFO-Speichers beschreibt; einen Rückkopplungsweg, der konfiguriert ist, um die Füllpegelinformation zum Rechner zurückzuführen; wobei der Rechner konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  16. Vorrichtung nach Anspruch 14, wobei der Rechner konfiguriert ist, um die Synchronisationspulszyklusdauerinformation in der Weise zu liefern, dass die Synchronisationspulszyklusdauerinformation eine Anzahl von Takten in der zweiten Taktdomäne zwischen dem momentanen Synchronisationspuls und dem nachfolgenden Synchronisationspuls darstellt.
  17. Vorrichtung nach Anspruch 15, die des Weiteren einen Zähler aufweist, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um die Takte in der zweiten Taktdomäne zu zählen und ein Zähler-Lesen zu liefern; wobei der Synchronisationspulsgenerator konfiguriert ist, um den nachfolgenden Synchronisationspuls basierend auf dem Zähler-Lesen zu liefern, so dass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Anzahl von Takten in der zweiten Taktdomäne beschrieben ist, die durch die Synchronisationspulszyklusdauerinformation dargestellt ist, und wobei das Zähler-Lesen auf einen Anfangswert in Antwort auf die Erzeugung des nachfolgenden Synchronisationspulses gesetzt ist.
  18. Vorrichtung nach Anspruch 14, wobei der Rechner einen Controller aufweist, der konfiguriert ist, um die Synchronisationspulszyklusdauerinformation zu regeln, um die Füllpegelinformation in Richtung einer vorbestimmten Zielfüllpegelinformation zu bringen.
  19. Vorrichtung nach Anspruch 18, wobei der Rechner konfiguriert ist, um einen Ausgangswert des Controllers mit einem Frequenzverhältniswert zu kombinieren, der ein Frequenzverhältnis zwischen einer Taktfrequenz der zweiten Taktdomäne und einer Taktfrequenz der ersten Taktdomäne beschreibt, um die Synchronisationspulszyklusdauerinformation zu erhalten.
  20. Vorrichtung nach Anspruch 15, die des Weiteren aufweist: einen ersten Datenprozessor, der mit dem Takt der ersten Taktdomäne getaktet ist und konfiguriert ist, um eine Eingangsinformation in der Weise zu verarbeiten, dass der Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne für den FIFO-Speicher geliefert wird; und einen zweiten Datenprozessor, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um den Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf den Synchronisationspuls vom FIFO-Speicher zu erhalten, und weiter konfiguriert ist, um den Ausgangsdatenwert zu verarbeiten, so dass eine Ausgangsinformation in Synchronisation mit der zweiten Taktdomäne geliefert wird.
  21. Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wobei die Vorrichtung aufweist: Mittel zur Berechnung, die mit dem Takt der ersten Taktdomäne getaktet sind und konfiguriert sind, um eine Synchronisationspulszyklusdauerinformation zu liefern, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt; Mittel zum FIFO-Speichern, die konfiguriert sind, um einen Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne zu empfangen und einen Ausgangsdatenwert in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls zu liefern; Mittel zum Erzeugen von Synchronisationspulsen, die mit dem Takt der zweiten Taktdomäne getaktet sind und konfiguriert sind, um den nachfolgenden Synchronisationspuls in der Weise zu erzeugen, dass der nachfolgende Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist; Mittel zum Bereitstellen einer Füllpegelinformation, die konfiguriert sind, um eine Füllpegelinformation zu liefern, die einen Füllpegel des FIFO-Speichers beschreibt; und Mittel zur Rückkopplung der Füllpegelinformation zum Rechner; wobei das Mittel zur Berechnung konfiguriert ist, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  22. Verfahren zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wobei das Verfahren aufweist: Bereitstellen in der ersten Taktdomäne einer Synchronisationspulszyklusdauerinformation, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt; Empfangen eines Takeovers eines Eingangsdatenwertes in Synchronisation mit der ersten Taktdomäne und Bereitstellen eines Ausgangsdatenwertes in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls mit einem FIFO-Speicher; Erzeugen in der zweiten Taktdomäne des Synchronisationspulses, so dass der Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist; Bereitstellen in der zweiten Taktdomäne einer Füllpegelinformation, die einen Füllpegel des FIFO-Speichers beschreibt; und Rückkoppeln der Füllpegelinformation zur ersten Taktdomäne, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  23. Verfahren gemäß Anspruch 22, wobei die Synchronisationspulszyklusdauerinformation in der Weise bereitgestellt wird, dass die Synchronisationspulszyklusdauerinformation in der Form eines kodierten numerischen Wertes eine Anzahl von Takten in der zweiten Taktdomäne darstellt.
  24. Verfahren nach Anspruch 23, das des Weiteren ein Zählen der Takte der zweiten Taktdomäne und ein Bereitstellen eines Zähler-Lesens aufweist, wobei der Synchronisationspuls basierend auf dem Zähler-Lesen in der Weise erzeugt wird, dass eine zeitliche Position des Synchronisationspulses basierend auf der Synchronisationspulszyklusdauerinformation eingestellt wird, und wobei das Zähler-Lesen auf einen Ausgangswert in Antwort auf eine Erzeugung des Synchronisationspulses gesetzt wird.
  25. Verfahren nach Anspruch 22, das des Weiteren aufweist: Verarbeiten einer Eingangsinformation, so dass der Eingangsdatenwert in Synchronisation mit der ersten Taktdomäne für den FIFO-Speicher geliefert wird; Empfangen des Ausgangsdatenwertes in Synchronisation mit der zweiten Taktdomäne und in Antwort auf den Synchronisationspuls vom FIFO-Speicher; Verarbeiten des Ausgangsdatenwertes in der Weise, dass eine Ausgangsinformation in Synchronisation mit der zweiten Taktdomäne geliefert wird.
  26. Computerprogramm mit einem Programmcode, der auf einem nicht flüchtigen Speichermedium gespeichert ist, zur Durchführung eines Verfahrens zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wenn das Computerprogramm auf einem Computer oder einem Mikroprozessor läuft, wobei das Verfahren aufweist: Bereitstellen in der ersten Taktdomäne einer Synchronisationspulszyklusdauerinformation, die eine zeitliche Position von Synchronisationspulsen bei einem Takt der zweiten Taktdomäne beschreibt; Empfangen eines Eingangsdatenwertes in Synchronisation mit der ersten Taktdomäne und Bereitstellen eines Ausgangsdatenwertes in Synchronisation mit der zweiten Taktdomäne und in Antwort auf einen momentanen Synchronisationspuls mit einem FIFO-Speicher; Erzeugen in der zweiten Taktdomäne des Synchronisationspulses, so dass der Synchronisationspuls sich an der zeitlichen Position befindet, die durch die Synchronisationspulszyklusdauerinformation beschrieben ist; Bereitstellen in der zweiten Taktdomäne einer Füllpegelinformation, die einen Füllpegel des FIFO-Speichers beschreibt; Rückkoppeln der Füllpegelinformation zur ersten Taktdomäne, um die Synchronisationspulszyklusdauerinformation basierend auf der Füllpegelinformation einzustellen.
  27. Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne, wobei die Vorrichtung aufweist: Einen Speicher, der von der ersten Taktdomäne verwendet wird und von der zweiten Taktdomäne verwendet wird, wobei jede Adresse des Speichers mit zumindest einem Datenwort und einem Gültigkeitswort assoziiert ist, das eine Gültigkeitszeit des zumindest einen Datenworts beschreibt, wobei die Vorrichtung konfiguriert ist, um das Gültigkeitswort basierend auf einem Füllpegel des Speichers zu bestimmen.
  28. Vorrichtung nach Anspruch 27, wobei die Vorrichtung konfiguriert ist, um einen Schreibszugriffszeiger zu inkrementieren oder dekrementieren, wenn zumindest ein neues Datenwort, das einer aktuellen Adresse entspricht, geschrieben wurde.
  29. Vorrichtung nach Anspruch 27, wobei die Vorrichtung konfiguriert ist, um einen Datenzugriffszeiger zu inkrementieren oder dekrementieren, der beschreibt, wo zumindest ein Datenwort, das einer neuen Adresse entspricht, gelesen wird, wenn die Gültigkeitszeit eines zuvor gelesenen zumindest einen Datenworts abgelaufen ist.
  30. Vorrichtung nach Anspruch 27, wobei die Vorrichtung konfiguriert ist, um den Füllpegel auf der Basis eines Schreibzugriffszeigers und Lesezugriffszeigers zu berechnen.
  31. Vorrichtung nach Anspruch 27, wobei die Vorrichtung konfiguriert ist, um das Gültigkeitswort in der Weise zu berechnen, dass der Füllpegel innerhalb einer vordefinierten Grenze bleibt.
  32. Vorrichtung nach Anspruch 31, wobei die Grenze in der Weise gewählt ist, dass ein gleichzeitiges Lesen und Schreiben einer selben Adresse vermieden wird.
  33. Vorrichtung nach Anspruch 27, wobei die Vorrichtung eine Timerschaltung aufweist, die durch den ersten Takt oder den zweiten Takt betrieben wird, wobei die Timerschaltung konfiguriert ist, um das Gültigkeitswort vom Speicher zu empfangen, um eine Leseoperation zusammen mit einer Inkrementierung oder Dekrementierung eines Lesezugriffszeigers nach einer Zeitperiode zu initiieren, die von dem Gültigkeitswort abgeleitet wurde.
  34. Vorrichtung nach Anspruch 27, wobei die Vorrichtung aufweist: einen Rechner, der mit dem Takt der ersten Taktdomäne getaktet ist und konfiguriert ist, um eine Synchronisationspulstiminginformation zu liefern, die eine zeitliche Position eines Synchronisationspulses bei einem Takt der zweiten Taktdomäne beschreibt; einen Synchronisationspulsgenerator, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um den Synchronisationspuls in Abhängigkeit von der Synchronisationspulstiminginformation zu erzeugen; einen Phaseninformationslieferanten, der mit dem Takt der zweiten Taktdomäne getaktet ist und konfiguriert ist, um eine Phaseninformation zu liefern, die eine Phasenbeziehung zwischen dem Synchronisationspuls und dem Takt der ersten Taktdomäne beschreibt; und einen Rückkopplungsweg zum Zurückführen der Phaseninformation zum Rechner; wobei der Rechner konfiguriert ist, um die Synchronisationspulstiminginformation basierend auf der Phaseninformation einzustellen, die auf dem Rückkopplungsweg geliefert wird.
  35. Vorrichtung nach Anspruch 34, wobei die Vorrichtung konfiguriert ist, um den Speicher in Antwort auf den Synchronisationspuls zu lesen.
DE112012002223.8T 2011-05-23 2012-05-23 Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne Withdrawn DE112012002223T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USUS-13/113,730 2011-05-23
US13/113,730 US8918666B2 (en) 2011-05-23 2011-05-23 Apparatus for synchronizing a data handover between a first and second clock domain through FIFO buffering
PCT/EP2012/059631 WO2012160108A1 (en) 2011-05-23 2012-05-23 Apparatus for synchronizing a data handover between a first clock domain and a second clock domain

Publications (1)

Publication Number Publication Date
DE112012002223T5 true DE112012002223T5 (de) 2014-02-27

Family

ID=46125466

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002223.8T Withdrawn DE112012002223T5 (de) 2011-05-23 2012-05-23 Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne

Country Status (4)

Country Link
US (1) US8918666B2 (de)
CN (1) CN103650406B (de)
DE (1) DE112012002223T5 (de)
WO (1) WO2012160108A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11626153B2 (en) * 2021-06-07 2023-04-11 Omnivision Technologies, Inc. Low power static random-access memory

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971471B2 (en) * 2011-12-07 2015-03-03 Imagine Communications Corp. Predictable coding delay over communications networks
US9880961B2 (en) 2013-11-27 2018-01-30 Arm Limited Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
DE102013020954A1 (de) * 2013-12-12 2015-06-18 Northrop Grumman Litef Gmbh Verfahren und Vorrichtung zum Übertragen von Daten an asynchronen Übergängen zwischen Domänen mit unterschiedlichen Taktfrequenzen
DE102015110275A1 (de) * 2015-06-25 2016-12-29 Intel IP Corporation Vorrichtungen und Verfahren zum Verschieben eines digitalen Signals um eine Verschiebungszeit zum Bereitstellen eines verschobenen Signals
US9893877B2 (en) * 2016-01-15 2018-02-13 Analog Devices Global Circuits, systems, and methods for synchronization of sampling and sample rate setting
JP6432699B2 (ja) * 2016-01-25 2018-12-05 アイシン・エィ・ダブリュ株式会社 メモリコントローラ
US10168731B2 (en) * 2016-07-13 2019-01-01 Advanced Micro Devices, Inc. Managing frequency changes of clock signals across different clock domains
US20180270773A1 (en) * 2017-03-16 2018-09-20 Electronics And Telecommunications Research Institute Operation method of communication node in communication network
CN111797043B (zh) * 2019-04-08 2022-04-26 达发科技(苏州)有限公司 跨时脉域系统
CN110502066B (zh) * 2019-08-15 2021-03-02 Oppo广东移动通信有限公司 时钟切换装置、方法及电子设备
CN111026258B (zh) * 2019-12-10 2020-12-15 深圳云天励飞技术有限公司 处理器及降低电源纹波的方法
CN112540642B (zh) * 2020-11-27 2023-09-05 山东云海国创云计算装备产业创新中心有限公司 一种多时钟域处理方法、装置、设备和介质
WO2022155889A1 (zh) * 2021-01-22 2022-07-28 京东方科技集团股份有限公司 信号处理方法及装置、显示装置
US11888938B2 (en) * 2021-07-29 2024-01-30 Elasticflash, Inc. Systems and methods for optimizing distributed computing systems including server architectures and client drivers
US12019569B1 (en) * 2022-12-08 2024-06-25 Arm Limited First-in, first-out buffer

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313502A (en) * 1990-05-09 1994-05-17 Ant Nachrichtentechnik Gmbh Arrangement for imaging a useful signal from the frame of a first digital signal at a first bite rate into the frame of a second digital signal at a second bite rate
US5513224A (en) * 1993-09-16 1996-04-30 Codex, Corp. Fill level indicator for self-timed fifo
GB9720811D0 (en) * 1997-09-30 1997-12-03 Sgs Thomson Microelectronics Dual port buffer
US6396853B1 (en) * 1998-05-28 2002-05-28 Nortel Networks Limited Providing data services to telecommunications user terminals
DE10041772C2 (de) * 2000-08-25 2002-07-11 Infineon Technologies Ag Taktgenerator, insbesondere für USB-Geräte
EP1263161B1 (de) 2001-05-29 2005-12-14 Infineon Technologies AG Synchronisierschaltungsanordnung
US20020199124A1 (en) 2001-06-22 2002-12-26 Adkisson Richard W. System and method for synchronizing data transfer across a clock domain boundary
US20020196886A1 (en) 2001-06-22 2002-12-26 Adkisson Richard W. SYNC pulse compensation and regeneration in a clock synchronizer controller
US7187741B2 (en) 2001-10-31 2007-03-06 Nxp B.V. Clock domain crossing FIFO
US6650258B1 (en) 2002-08-06 2003-11-18 Analog Devices, Inc. Sample rate converter with rational numerator or denominator
US6864722B2 (en) * 2003-05-09 2005-03-08 Hewlett-Packard Development Company, L.P. Phase detector for a programmable clock synchronizer
US7480357B2 (en) 2003-05-10 2009-01-20 Hewlett-Packard Development Company, L.P. System and method for effectuating the transfer of data blocks across a clock boundary
US20050041691A1 (en) * 2003-07-28 2005-02-24 Eli Laufer Apparatus and methods for providing synchronous digital data transfer over an ethernet
US7315600B2 (en) 2004-03-30 2008-01-01 Arm Limited Asynchronous FIFO apparatus and method for passing data between a first clock domain and a second clock domain and a second clock domain of a data processing apparatus
CN100588120C (zh) 2004-06-29 2010-02-03 Nxp股份有限公司 无抖动采样率转换的设备和方法
US7119582B2 (en) 2004-07-23 2006-10-10 Hewlett-Packard Development Company, Lp. Phase detection in a sync pulse generator
US7436917B2 (en) 2004-07-29 2008-10-14 Hewlett-Packard Development Company, L.P. Controller for clock synchronizer
US20060023819A1 (en) 2004-07-29 2006-02-02 Adkisson Richard W Clock synchronizer
US7366943B1 (en) 2005-01-18 2008-04-29 Advanced Micro Devices, Inc. Low-latency synchronous-mode sync buffer circuitry having programmable margin
KR100674955B1 (ko) * 2005-02-07 2007-01-26 삼성전자주식회사 데이터 주파수에 따라 위상 옵셋을 조절하는 클럭 복원장치 및 방법
DE102005018858B4 (de) 2005-04-22 2009-09-10 Infineon Technologies Ag Digitales Filter und Verfahren zur Bestimmung seiner Koeffizienten
DE102008004857B4 (de) * 2008-01-17 2013-08-22 Entropic Communications, Inc. Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
US8271568B2 (en) 2008-08-29 2012-09-18 Infineon Technologies Ag Digital filter
DE102009008092B4 (de) 2009-02-09 2014-10-30 Atlas Elektronik Gmbh Verfahren und Vorrichtung zum Kompensieren von Abtastratenschwankungen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11626153B2 (en) * 2021-06-07 2023-04-11 Omnivision Technologies, Inc. Low power static random-access memory

Also Published As

Publication number Publication date
US8918666B2 (en) 2014-12-23
CN103650406A (zh) 2014-03-19
WO2012160108A1 (en) 2012-11-29
CN103650406B (zh) 2016-08-17
US20120303994A1 (en) 2012-11-29

Similar Documents

Publication Publication Date Title
DE112012002223T5 (de) Vorrichtung zur Synchronisation eines Datenhandovers zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne
DE112012002232B4 (de) Vorrichtung zum Synchronisieren einer Datenübergabe zwischen einer ersten Taktdomäne und einer zweiten Taktdomäne
DE19543882C2 (de) Normalfrequenzgenerator
KR102437238B1 (ko) 자동 테스트 시스템용 에지 생성기 기반 위상 고정 루프 기준 클록 생성기
DE102009052053B4 (de) Schaltung mit Mehrphasenoszillator
DE60313751T2 (de) Frequenzumsetzer und verfahren dazu
DE212017000244U1 (de) Systeme und Techniken zur Phasensynchronisation von lokalen Oszillatorpfaden in oszillatorbetriebenen Schaltungen
DE112005001426T5 (de) Testen von Radiofrequenzkommunikationsgeräten
DE102009039206A1 (de) Vorrichtung mit digital gesteuertem Oszillator
DE19849779C2 (de) Taktgenerator und Takterzeugungsverfahren, die in der Lage sind, eine Taktfrequenz ohne Erhöhen der Anzahl von Verzögerungselementen zu ändern
DE102008008050A1 (de) Auf digitaler Verzögerungsleitung basierender Frequenz-Synthesizer
DE102013111844A1 (de) Hochauflösende Steuerung für einen Multimodus-Schaltnetzwandler und hochauflösender Flankengenerator
DE102013102580B4 (de) Zufällige Spektrumspreizmodulation
DE102010042159A1 (de) Phasenverriegelung in volldigitalen Phasenregelschleifen
EP1554803A2 (de) Verfahren und vorrichtung zum erzeugen eines taktsignals mit vorbestimmten taktsignaleigenschaften
DE102006021821A1 (de) Einstellbarer Zeitakkumulator
DE102016106942B4 (de) Störungsfreie Code-Aktualisierung für einen digital gesteuerten Oszillator
EP1525662B1 (de) Digital gesteuerter oszillator
DE60211460T2 (de) Volldigitale Taktrückgewinnung mit Teiler mit gebrochenem Teilungsverhältnis
DE4143350C2 (de) Verfahren zur Steuerung der Taktung eines Impulsbursts
DE102013222471B4 (de) Erzeugung und verteilung einer synchronisierten zeitquelle
DE69936912T2 (de) System und verfahren zur erzeugung von einem echtzeitsignal
EP2130300A1 (de) Verfahren zur erzeugung einer taktfrequenz
DE102005051773B4 (de) Vermeidung von Steady-State Oszillationen bei der Erzeugung von Taktsignalen
DE69735714T2 (de) Anordnung und verfahren zur aufrechterhaltung der synchronisation und frequenzstabilisation in einem drahtlosen telekommunikationssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee