DE102013221678A1 - System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne - Google Patents

System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne Download PDF

Info

Publication number
DE102013221678A1
DE102013221678A1 DE201310221678 DE102013221678A DE102013221678A1 DE 102013221678 A1 DE102013221678 A1 DE 102013221678A1 DE 201310221678 DE201310221678 DE 201310221678 DE 102013221678 A DE102013221678 A DE 102013221678A DE 102013221678 A1 DE102013221678 A1 DE 102013221678A1
Authority
DE
Germany
Prior art keywords
clock domain
phase
signal
clock
estimate
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.)
Granted
Application number
DE201310221678
Other languages
English (en)
Inventor
Stephen G. Tell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/674,864 external-priority patent/US8964919B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013221678A1 publication Critical patent/DE102013221678A1/de
Granted legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

Verfahren, aufweisend: Berechnen einer Phasen-Schätzung einer ersten Takt-Domäne basierend auf einer relativen Frequenz-Schätzung zwischen einer zweiten Takt-Domäne und der ersten Takt-Domäne; Bestimmen, basierend auf der Phasen-Schätzung, einer ersten Zeit, während welcher ein Signal von der ersten Takt-Domäne derartig ungeändert ist, dass das Signal fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden; Erzeugen, während der ersten Zeit, eines ersten abgetasteten Signals in der zweiten Takt-Domäne; Berechnen einer aktualisierten Phasen-Schätzung; Bestimmen, basierend auf der aktualisierten Phasen-Schätzung, einer zweiten Zeit, während welcher sich das Signal von der ersten Takt-Domäne derart ändert, dass das Signal nicht fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden; und Halten, während der zweiten Zeit, des ersten abgetasteten Signals in der zweiten Takt-Domäne.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Signale, welche zwischen Takt-Domänen übertragen werden, und insbesondere Synchronisieren von Takt-Domänen.
  • HINTERGRUND
  • Viele digitale Systeme haben mehrere Takt-Domänen. Wenn sich Signale von einer Takt-Domäne zu einer anderen bewegen, müssen sie somit synchronisiert werden, um Meta-Stabilität und Synchronisations-Fehler zu vermeiden. Wenn zwei Takte fixe Frequenzen haben, ist die Phasenbeziehung zwischen den zwei Takten periodisch, bei der Schlagfrequenz der zwei Takte. Indem diese periodische Phasenbeziehung ausgenutzt wird, kann ein periodischer Synchronisierer einfacher sein, kann geringere Latenz haben und eine geringere Fehler-Wahrscheinlichkeit als ein Synchronisierer, welcher vollständig asynchrone Signale handhaben muss.
  • Unglücklicherweise weisen traditionelle periodische Synchronisierer verschiedene Beschränkungen auf. Zum Beispiel werden in den meisten existierenden Systemen Signale mit einem periodischen Takt unter Benutzung von erster-Hinein-erster-Heraus-(FIFOs) synchronisiert. Diese gehen einen signifikanten Flächen-Overhead für den FIFO-Speicher ein. Sie fügen auch einige Zyklen einer Verzögerung hinzu, da die Grau-kodierten Eingabe- und Ausgabe-Zeiger des FIFO durch mehrere Flipflops synchronisiert werden müssen, um sie über Takt-Domänen zu bewegen.
  • Es gibt somit einen Bedarf zum Adressieren dieser und/oder anderer Probleme, welche mit dem Stand der Technik assoziiert sind.
  • ZUSAMMENFASSUNG
  • Ein System und ein Verfahren sind zum Bestimmen einer Zeit zum sicheren Abtasten (sampling) eines Signals einer Takt-Domäne bereitgestellt. In einer Ausführungsform wird eine Phasen-Schätzung einer ersten Takt-Domäne basierend auf einer relativen Frequenz-Schätzung zwischen einer zweiten Takt-Domäne und der ersten Takt-Domäne berechnet, und, basierend auf der Phasen-Schätzung, wird eine erste Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, derart, dass das Signal in der Lage ist, mittels der zweiten Takt-Domäne abgetastet zu werden, bestimmt, um ein erstes abgetastetes Signal in der zweiten Takt-Domäne zu erzeugen. Zusätzlich wird eine aktualisierte Phasen-Schätzung berechnet und, basierend auf der aktualisierten Phasen-Schätzung, wird eine zweite Zeit, während welcher sich das Signal von der ersten Takt-Domäne ändert, derart, dass das Signal nicht in der Lage ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden, bestimmt. Während der zweiten Zeit wird das erste abgetastete Signal in der zweiten Takt-Domäne aufrechterhalten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 illustriert ein Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Frequenz-Schätzung in Übereinstimmung mit einer Ausführungsform.
  • 2 illustriert ein Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung in Übereinstimmung mit einer anderen Ausführungsform.
  • 3 illustriert einen vollständig digitalen periodischen Synchronisierer zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 4 illustriert einen Frequenz-Schätzer in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 5A illustriert einen Phasen-Detektor in Übereinstimmung mit einer anderen Ausführungsform.
  • 5B illustriert einen Phasen-Detektor für separate frühe und späte Detektion in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 5C illustriert einen vier-Probe-Phasen-Detektor in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 5D illustriert einen Phasen-Detektor-Kalibrierer in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 5E illustriert einen Phasen-Detektor zum Detektieren von geraden und ungeraden Phasen in Übereinstimmung mit einer anderen Ausführungsform.
  • 6 illustriert einen Phasen-Schätzer in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 7 illustriert einen Konflikt-Detektor in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 8 illustriert einen Energie-von-Hälfte-(power-of-halt)-Konflikt-Detektor in Übereinstimmung mit einer anderen Ausführungsform.
  • 9 illustriert einen Vorwärts-Synchronisierer in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 10 illustriert ein Synchronisierer-Zustands-Diagramm in Übereinstimmung mit der Operation des Vorwärts-Synchronisierers, welcher in 9 gezeigt ist.
  • 11 illustriert ein Zeitdiagramm der Operation des Vorwärts-Synchronisierers, welcher in 9 gezeigt ist.
  • 12 illustriert einen Synchronisierer mit einer Flusssteuerung in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 13 illustriert ein Zeitdiagramm der Operation des Synchronisierers mit Flusssteuerung, welche in 12 gezeigt ist.
  • 14 illustriert einen Phasen-Kreis, welcher gerade und ungerade Heraushalte-Bereiche (keep-out regions) und einen Bereich zeigt, in welchem das gerade Register ausgewählt ist, in Übereinstimmung mit einer anderen Ausführungsform.
  • 15 illustriert einen FIFO-Synchronisierer unter Benutzung eines geraden/ungeraden Vorwärts-Synchronisierers in Übereinstimmung mit einer anderen Ausführungsform.
  • 16 illustriert einen FIFO-Synchronisierer, wobei ein Halten von geraden und ungeraden Versionen von Kopf- und Schwanz-Zeigern (head and tail pointers) ferner eine FIFO-Latenz vermindert, in Übereinstimmung mit einer anderen Ausführungsform.
  • 17A–D illustrieren verschiedene Phasen-Zirkel in Übereinstimmung mit anderen Ausführungsformen.
  • 18 illustriert ein Beispiel-System, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorherigen Ausführungsformen implementiert werden kann.
  • 19A illustriert ein Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung, in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 19B illustriert einen Vorwärts-Synchronisierer in Übereinstimmung mit noch einer anderen Ausführungsform.
  • 19C illustriert ein Synchronisierer-Zustands-Diagramm in Übereinstimmung mit der Operation des Vorwärts-Synchronisierers, welcher in 19B gezeigt ist.
  • DETAILLIERTE BESCHREIBUNG
  • Tabelle 1 illustriert verschiedene Symbole und Signalnamen, welche in den Beschreibungen der Figuren hierin nachfolgend referenziert sind, zusätzlich zu beispielhaften Werten für zumindest einige solcher Symbole und Signalnamen. Tabelle 1
    Symbol Beschreibung Einheiten Typ
    A Fortschritt in dem Phasen-Schätzer, A = S + 1 Zyklen 5
    b Anteil-Bits in der Frequenz- und Phasen-Schätzung Bits 12
    C Obere Schranke auf dem Nenner D, C = ⌈1/2d⌉ 8
    d Halb-Breite von Phasen-Detektions-Bereich, d = td/ttcy UI 0,098
    D Nenner eines rationalen Anteils N/D.
    e Differenz von ”nahester” rationalem Anteil, f = N/D + e
    f Relative Anteils-Übertragungs-Takt-Frequenz, f = fT/fR mod 1. (Für Zwecke, gerade und ungerade Zyklen zu halten, halten wir f mod 2.) UI/Zyklus
    fg Führungsband-Frequenz (fg = g/A), die Frequenz, unterhalb welcher eine Detektion zumindest A-Zyklen vor einem Heraushalte-Ereignis auftreten wird UI/Zyklus 0,03
    fj Flacker-Frequenz
    fR Empfangs-Takt-(rclk)-Frequenz Hz 1e9
    fT Übermttlungs-Takt-(tclk)-Frequenz Hz 7,5e8
    g Führungsband zwischen Detektions- und Heraushalte-Bereichen, g = d – x UI 0,075
    k Schwellwert zum Eintreten in Plesiochronen-Modus, d. h. wir treten in den plesiochronen Modus ein, wenn |pu-pu| > k UI 0,50
    N Zähler eines rationalen Anteils N/D.
    ϕ Phase UI
    p geschätzte Phase UI
    S Synchronisierer-Verzögerung Zyklen 4
    td Verzögerungs-Zeit, welche in Phasen-Detektor benutzt wird ps 130
    tjh Schranke auf absolutem Wert von Hoch-Frequenz-Flackern (Flackern mit fj > fr/A). Spitze-zu-Spitze-Flackern ist zweimal dieser Wert. ps 30
    tjm Schranke auf absolutem Wert von Medium-FrequenzFlackern (Flackern mit fgfr < fj < fr/A) ps 10
    trcy Empfangs-Takt-(rclk)-Zyklus-Zeit ps 1000
    ttcy Übermittlungs-Takt-(tclk)-Zyklus-Zeit ps 1333
    tx Heraushalte-Zeit (tx = ts + th + tjh) ps 60
    x Halb-Breite von Heraushalte-Bereich (UI), x = tx/2ttcy UI 0.023
  • Zusätzlich sind Beispiele von solchen Ausführungsformen, welche hierin nachfolgend umfasst sind, in „The Even/Odd Synchronizer: A Fast, All-Digital, Periodic Synchronizer" von William J. Dally und Stephen G. Tell, Asynchronous Circuits and Systems, International Symposium, Seiten 75–84, 2010 IEEE Symposium an Asynchronous Circuits and Systems, 2010, beschrieben, was hiermit mittels Bezugnahme in seiner Gesamtheit inkorporiert ist.
  • 1 illustriert ein Verfahren 100 zum Bestimmen einer Zeit zum sicheren Abtasten (sampling) eines Signals einer Takt-Domäne unter Benutzung einer Frequenz-Schätzung in Übereinstimmung mit einer Ausführungsform. Wie in Operation 102 gezeigt ist, wird eine Frequenz-Schätzung (frequency estimate) einer ersten Takt-Domäne unter Benutzung eines Frequenz-Schätzers berechnet.
  • Mit Bezug auf die vorliegende Beschreibung kann die erste Takt-Domäne eine Takt-Domäne (z. B. ein Takt bzw. Uhr (clock) mit einer bestimmten Frequenz) irgendeines Typs von System umfassen, von welchem ein Signal abgetastet werden kann (sampled). Zum Beispiel kann die erste Takt-Domäne eine Takt-Domäne einer Zentral-Verarbeitungs-Einheit (CPU), einer Grafik-Verarbeitungs-Einheit (GPU), einer Speicher-Steuerung und/oder irgendeines anderen Systems mit einer Takt-Domäne umfassen.
  • Wie oben bemerkt ist, kann die erste Takt-Domäne den Takt des Systems umfassen. Ferner kann die Takt-Domäne bei einer bestimmten Frequenz operieren (z. B. Signale übertragen). Diesbezüglich kann die Frequenz-Schätzung der ersten Takt-Domäne eine Schätzung bzw. Abschätzung (z. B. Maß, etc.) der Frequenz des Taktes des Systems umfassen.
  • In einer Ausführungsform kann die Frequenz-Schätzung unter Benutzung eines Paares von b-Bit-Zählern berechnet werden. Zum Beispiel kann ein erster der Zähler (nachfolgend als der erste Zähler bezeichnet) mittels der ersten Takt-Domäne getaktet sein und kann Pulse des Taktes in der ersten Takt-Domäne zählen. Ferner kann ein zweiter der Zähler (nachfolgend als der zweite Zähler bezeichnet) Pulse eines Taktes in einer zweiten Takt-Domäne zählen, welche ein Signal von der ersten Takt-Domäne abzutasten wünscht, und kann mittels der zweiten Takt-Domäne getaktet sein. Es sollte bemerkt werden, dass die zweite Takt-Domäne eine Takt-Domäne eines Systems umfassen kann, mittels dessen das Signal der ersten Takt-Domäne abgetastet werden kann, und welches daher verschieden von dem System ist, welches mit der ersten Takt-Domäne assoziiert ist. Zum Beispiel kann die Frequenz der ersten Takt-Domäne verschieden von der Frequenz der zweiten Takt-Domäne sein.
  • Wenn der zweite Zähler seinen terminalen Zählerstand (terminal count) erreicht, kann der erste Zähler gestoppt werden. Auf diese Weise kann die Zeit, bei welcher der erste Zähler Pulse zählt, gleich sein der Zeit, welche von dem zweiten Zähler erfordert ist, um den terminalen Zählerstand zu erreichen. Der Zählerstand des ersten Zählers kann dann in einem Register aufgezeichnet werden. Solch ein erster Zählerstand kann die Frequenz-Schätzung der ersten Takt-Domäne anzeigen.
  • In einer anderen Ausführungsform kann die Frequenz-Schätzung ohne ein Messen der Frequenz jeder der ersten Takt-Domäne und der zweiten Takt-Domäne berechnet werden. In solch einer Ausführungsform können die erste Takt-Domäne und die zweite Takt-Domäne Frequenzen haben, welche um eine rationale Zahl differieren. Zum Beispiel kann die Frequenz der ersten Takt-Domäne gleich der Frequenz der zweiten Takt-Domäne multipliziert mit N/D sein, wobei N und D ganze Zahlen sind. Somit kann für ganze Zahlen N und D die Frequenz-Schätzung als N dividiert durch D berechnet werden (N/D).
  • Der Frequenz-Schätzer, welcher zum Berechnen der Frequenz-Schätzung benutzt wird, kann in einem Synchronisierer umfasst sein. Zum Beispiel kann der Synchronisierer zwischen dem System, welches mit der ersten Takt-Domäne assoziiert ist, und dem System, welches mit der zweiten Takt-Domäne assoziiert ist, zum Synchronisieren von Signalen zwischen der ersten Takt-Domäne und der zweiten Takt-Domäne implementiert sein (z. B. zum Synchronisieren des Abtastens des Signals mittels der zweiten Takt-Domäne von der ersten Takt-Domäne). Wie oben beschrieben ist, kann solch eine Synchronisierung basierend auf der berechneten Frequenz-Schätzung durchgeführt werden.
  • Wie in Operation 104 gezeigt ist, ist ferner eine Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, derart bestimmt, dass das Signal in der Lage ist, mittels einer zweiten Takt-Domäne unter Benutzung der Frequenz-Schätzung sicher abgetastet zu werden. Die Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, kann z. B. eine Phase der ersten Takt-Domäne umfassen, während welcher das Signal von der ersten Takt-Domäne unverändert ist (z. B. statisch, etc.). In einem anderen Beispiel kann die Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, irgendeine Zeitperiode außerhalb eines Detektions-Bereiches umfassen, welcher mit einer Takt-Kante der ersten Takt-Domäne assoziiert ist. Es kann z. B. bekannt sein, dass sich das Signal in Synchronisation mit den Kanten des Taktes der ersten Takt-Domäne ändert. Somit kann der Detektions-Bereich eine Kombination einer ersten Zeitperiode vor einer Takt-Kante der ersten Takt-Domäne und eine zweite Zeitperiode nach der Takt-Kante der ersten Takt-Domäne umfassen.
  • In einer Ausführungsform kann die Zeit, während welcher das Signal von der ersten Takt-Domäne unverändert ist, basierend auf einer Identifikation bestimmt werden, dass die erste Takt-Domäne und die zweite Takt-Domäne rational aufeinander bezogen sind bzw. rational voneinander abhängen (related). Die rationale Beziehung kann aus der Frequenz der ersten Takt-Domäne und der Frequenz der zweiten Takt-Domäne herrühren, welche beide von einer gemeinsamen Kristall-Referenz-Frequenz mittels Phasen-Regel-Kreisen (phase-locked-loops) (PLLs) erzeugt sind, welche eine Referenz-Frequenz herunterteilen und sie dann hochmultiplizieren.
  • In einer anderen Ausführungsform kann es, auf eine Identifikation hin, dass die erste Takt-Domäne und die zweite Takt-Domäne rational aufeinander bezogen sind, automatisch bestimmt sein, dass die Phase der ersten Takt-Domäne unverändert ist (und somit nicht detektiert werden kann) oder dass sie sich langsam ändert. Somit kann die Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, ohne notwendigerweise Benutzen einer Schätzung der Phase der ersten Takt-Domäne bestimmt werden (z. B. somit unter Benutzen nur der Frequenz-Schätzung der ersten Takt-Domäne).
  • Die Phase kann z. B. repräsentiert sein als P = a, b/D, wobei „a” ein ganzzahliger Teil, „b” ein Bruchteil-Anteil und „D” der Nenner einer rationalen relativen Frequenz ist. Auf diese Weise kann die Phase detektiert werden und eine obere (up) und eine untere (lp) Schranke können auf die Schranken des Detektions-Bereiches skaliert mit D initialisiert werden, wie oben beschrieben ist. In einer Ausführungsform kann eine erste Detektion die Phasen-Schranken (up und lp) initialisieren. Die D relativen Phasen können wiederholt besucht werden, wobei von zumindest einer von denen erwartet ist, zu einer Detektion zu führen (und somit einen möglichen Konflikt zu detektieren). Nach D + 1 Zyklen ohne Detektion kann bestimmt werden, dass alle D relativen Phasen zwischen den zwei Takten nicht zu Konflikten führen, so dass die Zeit, während ein Signal von der ersten Takt-Domäne unverändert ist, bestimmt werden kann, derart, dass das Signal in der Lage ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden.
  • 2 illustriert ein Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung in Übereinstimmung mit einer anderen Ausführungsform. Wie in Operation 202 gezeigt ist, wird eine Frequenz-Schätzung einer ersten Takt-Domäne unter Benutzung eines Frequenz-Schätzers berechnet. Mit Bezug auf die vorliegende Beschreibung kann die Frequenz-Schätzung in der Weise, wie sie mit Bezug auf Operation 102 von 1 beschrieben ist, berechnet werden.
  • Wie ferner in Operation 204 gezeigt ist, ist eine Phasen-Schätzung der ersten Takt-Domäne basierend auf der Frequenz-Schätzung unter Benutzung eines Phasen-Schätzers berechnet. In einer Ausführungsform kann eine Phase der ersten Takt-Domäne detektiert werden. Zum Beispiel können frühe und späte Proben bzw. Samples (samples) von der ersten Takt-Domäne relativ zu der zweiten Takt-Domäne sein.
  • Die frühen und späten Proben können Paare von Proben umfassen, wobei jedes Paar aus einer frühen Probe und einer späten Probe besteht. Ferner können die frühen und späten Proben von einem Signal sein, welches mit der ersten Takt-Domäne synchronisiert ist. Wenn ein Paar von frühen und späten Proben differiert, kann es bestimmt sein, dass ein Übergang während eines Detektions-Bereiches auftrat (z. B. Zeit), was zwischen der Zeit erfolgt, bei der die frühen und späten Proben genommen wurden. Auf diese Weise kann eine Phase der ersten Takt-Domäne detektiert werden.
  • In einer anderen Ausführungsform kann die Phasen-Schätzung basierend auf der Phasen-Detektion berechnet werden. Zum Beispiel kann eine b-Bit-laufende Schätzung (b-bit running estimate) der Phase der ersten Takt-Domäne relativ zu der zweiten Takt-Domäne aufrechterhalten werden. Die Phasen-Schätzung kann ein b-Bit-Anteil sein, welcher Werte zwischen Null und Eins um einen Einheitskreis repräsentiert. Ferner kann die Phasen-Schätzung zurückgesetzt werden, um anzuzeigen, dass es sicher ist, von der ersten Takt-Domäne jedes Mal abzutasten, wenn die Phase in der oben beschriebenen Weise detektiert ist.
  • In einer weiteren Ausführungsform sollte, auf eine Detektion hin, die Phase der ersten Takt-Domäne auf f(S + 1) gesetzt werden, wobei ein zusätzlicher Zyklus zu S hinzugefügt wird (die Verzögerung des Synchronisierers), um die Phasen-Schätzung vorherzusagen, ein Zyklus bevor sie erfolgt. Die Phase der ersten Takt-Domäne, welche oben beschrieben ist, kann auf f(S + 1) gesetzt werden, so dass die Phasen-Schätzung die Phase der ersten Takt-Domäne bei der nächsten ansteigenden Kante der zweiten Takt-Domäne vorhersagt. Zum Beispiel kann die Phasen-Schätzung die Phase innerhalb von geraden Zyklen und ungeraden Zyklen der ersten Takt-Domäne kodieren. Wenn die Phase nicht detektiert ist, kann die Phasen-Schätzung mittels der (bzw. um die) relativen Frequenz der ersten Takt-Domäne während jedes Zyklus der zweiten Takt-Domäne inkrementiert werden. Zu diesem Zweck kann eine laufende Phasen-Schätzung (running phase estimate) aufrechterhalten werden. Es sollte bemerkt werden, dass zusätzlich zu dem Frequenz-Detektor der Phasen-Detektor und der Phasen-Schätzer auch in einem Synchronisierer umfasst sein können. Zum Beispiel kann der Synchronisierer zwischen dem System, welches mit der ersten Takt-Domäne assoziiert ist, und dem System, welches mit der zweiten Takt-Domäne assoziiert ist, zum Synchronisieren von Signalen zwischen der ersten Takt-Domäne und der zweiten Takt-Domäne implementiert sein (z. B. zum Synchronisieren des Abtastens des Signals mittels der zweiten Takt-Domäne von der ersten Takt-Domäne). Wie oben beschrieben ist, kann solch eine Synchronisierung basierend auf der berechneten Phasen-Schätzung durchgeführt werden.
  • Wie in Operation 206 gezeigt ist, wird außerdem eine Zeit, während welcher ein Signal von der ersten Takt-Domäne unverändert ist, derart bestimmt, dass das Signal in der Lage ist, mittels einer zweiten Takt-Domäne unter Benutzung der Phasen-Schätzung sicher abgetastet zu werden. Wie oben bemerkt ist, kann die Phasen-Schätzung die Zeit anzeigen, während welcher es sicher ist, von der ersten Takt-Domäne abzutasten (d. h. wenn bekannt ist, dass das Signal von der ersten Takt-Domäne unverändert ist).
  • Zum Beispiel kann die Phasen-Schätzung die Phase der ersten Takt-Domäne bei der nächsten ansteigenden Kante der zweiten Takt-Domäne vorhersagen. Dies kann erlauben, dass eine verzögerte Version der Eingabe-Daten abgetastet wird, bevor die ansteigende Kante der zweiten Takt-Domäne eine direkte Eingabe abtastet, welche in der Heraushalte-Region übergeht (und sich somit ändern kann).
  • Illustrativere Information wird bezüglich verschiedener optionaler Architekturen und Merkmale ausgeführt, mit welchen das vorangehende Rahmenwerk implementiert werden kann oder nicht implementiert zu werden braucht, nach den Wünschen des Benutzers. Es sollte deutlich bemerkt werden, dass die folgende Information für illustrative Zwecke ausgeführt ist und nicht als in irgendeiner Weise begrenzend betrachtet werden sollte. Irgendwelche der folgenden Merkmale können optional mit oder ohne den Ausschluss von anderen beschriebenen Merkmalen inkorporiert werden.
  • 3 illustriert einen vollständig digitalen (all-digital) periodischen Synchronisierer 300 zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der vollständig-digitale periodische Synchronisierer 300 implementiert sein, um die Verfahren von 1 und/oder 2 auszuführen. Natürlich kann jedoch der vollständig-digitale periodische Synchronisierer 300 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Ein beliebiges periodisches Signal kann unter Benutzung von vollständig-digitalen Komponenten mittels eines Messens seiner Frequenz und Phase synchronisiert werden, und dann mittels eines Benutzens dieser Information, um zu bestimmen, wann es sicher ist, das Signal mit dem empfangenen Takt einfach abzutasten und wann ein direktes Abtasten unsicher ist und ein verzögerter Takt benutzt werden muss. Mittels eines Benutzens der Frequenz und der Phase kann eine Benutzung eines FIFO-Speichers vermieden werden. Zusätzlich kann eine Verzögerung einer Synchronisation vermindert werden (z. B. mittels eines Vermeidens eines Synchronisierens von Grau-kodierten Kopf- und Schwanz-Zeigern durch brachiale-Gewalt-Synchronisierer).
  • Wenn ein FIFO-Synchronisierer für Fluss-Steuerung benutzt ist, kann der Synchronisierer anstatt eines brachiale-Gewalt-Synchronisierers benutzt werden (unter Benutzung von mehreren Flip-Flops, welche in Serie verbunden sind), um die FIFO-Kopf- und Schwanz-Zeiger zu synchronisieren. Dies kann die Verzögerung des FIFO-Synchronisierers vermindern und Benutzung von Grau-Code-Zeigern eliminieren (was andernfalls ein Aufrechterhalten sowohl von Grau-Code und Binär-Zeigern erfordern kann).
  • Mit Bezug auf die vorliegende Ausführungsform kann ein hereinkommendes Signal, d, auf einen Übermittlungs-Takt (von einer Übermittlungs-Takt-Domäne), tclk, synchronisiert werden, welcher eine fixe Frequenz, fT, hat, welche kleiner ist als die Frequenz fR des Empfangs-Taktes, rclk (einer Empfangs-Takt-Domäne). Die hier beschriebenen Ausführungsformen funktionieren auch, wo fT größer ist als fR.
  • Wie gezeigt ist, benutzt ein Frequenz-Abschätzblock ein Paar von b-Bit-Zählern, um die Frequenz des Übermittlungs-Taktes zu messen. Der Frequenz-Abschätzblock gibt eine b-Bit relative Frequenz f = fT/fR mod 2f aus.
  • Ein Phasen-Detektionsblock zeichnet die letzte Zeit auf, zu der der Übermittlungs-Takt in einen Detektions-Bereich des Empfangs-Taktes eintrat. Ein Detekt-Signal (det) wird ausgegeben, wenn dies erfolgt. Weil das Detektions-Signal synchronisiert ist, spiegelt es die Phase des Übermittlungs-Taktes vor S Empfangs-Zyklen wieder. Es sollte bemerkt werden, dass mehrere Detektions-Bereiche und Signale eingesetzt werden können. Mit Bezug auf die vorliegende Ausführungsform wird jedoch ein Einzel-Bit-Detektions-Signal angenommen.
  • Ein Phasen-Abschätzungsblock hält eine laufende Schätzung der Phase und des Empfangs-Taktes. Er setzt die Phase, p, auf (S + 1)f jedes Mal, wenn eine Detektion empfangen ist, und inkrementiert die laufende Phase um f jeden Zyklus von rclk, für welchen es keine Detektion gibt.
  • Schließlich benutzt ein Konflikt-Detektionsblock die momentane Phasen-Schätzung um zu bestimmen, wann ein direktes Abtasten sicher ist oder wann verzögertes Abtasten erfordert ist. Wenn Phase, p, in einem Fenster nahe dem Gefahrpunkt ist, wird Konflikt-Signal c festgestellt bzw. behauptet (asserted), was einen Multiplexer darauf richtet, eine verzögerte Version der plesiochronen Eingabe abzutasten.
  • Der Synchronisierer-Datenpfad akzeptiert eine a-Bit-weite Eingabe d1, welche auf tclk synchronisiert ist. In der Figur ist d1 mittels Register F1, getaktet durch tclk, erzeugt. Optional muss bzw. braucht Register F1 nicht notwendiger Weise ein Teil des Synchronisierers 300 zu sein. Signal d1 kann jedoch direkt von einem Register mit keiner dazwischen kommenden Logik kommen, als eine andere Option. Latch L1 (oder ein Flip-Flop, nicht gezeigt) tastet Signal d1 auf der abfallenden Kante von rclk ab, um ein verzögertes Eingabe-Signal d2 zu erzeugen. Ein Multiplexer wählt die direkte Eingabe, d1, aus, wenn es keinen Konflikt gibt, und die verzögerte Eingabe, d2, wenn es einen Konflikt gibt. Das Ergebnis dieser Auswahl, dx, ist garantiert sicher zum Abtasten mittels Registers F2, welches eine Ausgabe, ds, erzeugt, welche synchron mit rclk ist.
  • Das Konflikt-Detektions-Fenster ist so gesetzt, dass Abtasten auf der ausgewählten Eingabe des Multiplexers sicher ist. Wenn c festgestellt ist und der Multiplexer d2 auswählt, ist das Abtasten von Signal d1 mittels Latch L1 auf der abfallenden Kante von rclk garantiert, sicher zu sein. Wenn c nicht festgestellt wird (asserted), dann ist Abtasten von d1 mittels Register F2 auf der ansteigenden Kante von rclk garantiert, sicher zu sein.
  • Der Synchronisierer 300 benutzt Latch L1, um Eingabe d1 um einen halben Zyklus zu verzögern (Abtasten auf der abfallenden Kante von clkR). Somit kann eine Phasen-Verzögerung von pD = 0,5 bereitgestellt sein. Als eine andere Option können Latches oder Register mit verschiedener Zeitgebung (timing) benutzt werden, um d1 um unterschiedliche Beträge zu verzögern. Als noch eine andere Option kann eine Verzögerungs-Leitung bzw. Linie (line) (z. B. eine gerade Anzahl von Invertern in Serie) benutzt werden, um Signal d1 um eine genügende Zeitmenge zu verschieben, um Abtasten mittels Registers F2 sicher zu machen. Diese Alternativen können andere Werte von pD ergeben.
  • 4 illustriert einen Frequenz-Schätzer 400 in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Frequenz-Schätzer 400 in dem Kontext der Funktionalität und Architektur von 13 implementiert sein. Natürlich kann jedoch der Frequenz-Schätzer 400 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Der Synchronisierer von 3 hängt davon ab, eine genaue Schätzung der Übermittlungs-Takt-Phase bei dem Ende jedes Empfangs-Takt-Zyklus zu haben. Diese Schätzung wird dadurch erzeugt, dass zuerst die relative Frequenz des Übermittlungs-Taktes (gezeigt in 3) gemessen wird und dann diese Frequenz-Schätzung benutzt wird, zusammen mit einem Phasen-Detektor (gezeigt in 5E), um eine Phasen-Schätzung zu erzeugen. Diese Phasen-Schätzung wird unter Benutzung von interner Arithmetik berechnet, um eine genaue Fehler-Schranke auf der Phase aufrechtzuerhalten.
  • Wie in 4 gezeigt ist, ist das Blockdiagramm 400 der Frequenz-Messeinheit bereitgestellt, welches ein Paar von Zählern benutzt, um f, die Frequenz des Übermittlungs-Taktes relativ zu dem Empfangs-Takt zu berechnen. Der Frequenz-Mess-Prozess ist durch ein Startsignal st, initiiert. Die ansteigende Kante von st setzt den Empfangs-Zähler (CR) zurück. Das Startsignal wird auch in die Übermittlungs-Takt-(tclk)-Domäne durch einen brachiale-Gewalt-Synchronisierer übergeben, was Signal stT erzeugt, welches benutzt wird, um den Übermittlungs-Zähler (CT) zurückzusetzen.
  • Wenn der Empfangs-Zähler einen terminalen Zählwert erreicht (z. B. einen Zählwert von 1023 für einen b = 10-Bit-Zähler) wird Signal tc behauptet bzw. festgestellt und wird in die tclk-Domäne synchronisiert. Dieses synchronisierte terminale-Zählzahl-Signal, tcT, stoppt den Übermittlungs-Zähler. Die Verzögerung von sp und tc-Synchronisierern sind ausgewogen, so dass die finale Zähl-Zahl aus CT die Anzahl von tclk-Zyklen widerspiegelt, welche während 2b Empfangs-Takten-(rclk)-Zyklen auftraten, d. h. die relative Frequenz des Übermittlers f = fT/fR. Das terminale Zählsignal wird zurück synchronisiert in die rclk-Domäne, um Signal tcTR zu erzeugen, was anzeigt, wann die Frequenz-Messung f bereit ist und ihr Erfassen in dem Ergebnis-Register (RR) ermöglicht.
  • Zähler CT erzeugt ein b + 1-Bit-Ergebnis, so dass f Modulo 2 erzeugt ist. Es ist eine Fixpunkt-Zahl mit einem Bit links von dem Binärpunkt und b Bits rechts davon. Die Übermittlungs-Frequenz-Schätzung Modulo 2 ist anstatt Modulo 1 berechnet, so dass der Phasen-Schätzer (unten mit Bezug auf 5E beschrieben) nachverfolgen kann, ob der Übermittler in einem ungeraden oder in einem geraden Takt-Zyklus ist.
  • Es gibt drei brachiale-Gewalt-Synchronisierer in dem Frequenz-Messblock von 4. Diese Synchronisierer sind nur einmal benutzt, nämlich, wenn Frequenz nach Zurücksetzen gemessen ist. Alle diese Synchronisierer sind entfernt (off) von dem kritischen Pfad, ihre Verzögerung kann so beliebig hoch gemacht werden, um eine beliebig geringe Wahrscheinlichkeit eines Synchronisations-Fehlers zu erreichen. Typischerweise reicht eine Verzögerung S von vier oder fünf Takt-Zyklen aus, um eine Fehler-Wahrscheinlichkeit von weniger als 10–40 zu ergeben.
  • Das Start-Signal und terminale-Zählzahl-Synchronisierer fügen jeweils einen Zyklus einer Ungewissheit in die Frequenz-Messung ein. Somit ist die Ausgabe des Frequenz-Messblocks auf ±1LSB genau, d. h. ±2–b.
  • 5A illustriert einen Phasen-Detektor 500 in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der Phasen-Detektor 500 in dem Zusammenhang der Funktionalität und Architektur von 14 implementiert werden. Zum Beispiel kann der Phasen-Detektor eine Komponente des Phasen-Schätzers, welcher oben beschrieben ist, umfassen. Natürlich kann jedoch der Phasen-Detektor 500 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt werden, dass die zuvor erwähnten Definitionen in der vorliegenden Beschreibung gelten können.
  • Wie gezeigt ist, arbeitet die Phasen-Detektions-Logik, welche mit Bezug auf den Phasen-Detektor 500 gezeigt ist, dadurch, dass frühe und späte Proben genommen werden, relativ zu rclk, eines Signales dT, welches mit tclk synchronisiert ist. Wenn die frühen und späten Proben differieren, ist bestimmt, dass ein Übergang während des Detektions-Bereiches erfolgte. Flip-Flop F1 erzeugt Signal dT, welches mit tclk synchronisiert ist, welches jeden Zyklus umschaltet. Signal dT ist früh abgetastet, relativ zu rclk, mittels Flip-Flop F3 und spät mittels Flip-Flop F2. Flip-Flop F2 ist mittels einer Version von rclk getaktet, welche um T1 verzögert ist, und tastet somit dT bei Zeit T1 nach der ansteigenden Kante von rclk ab. Das Ergebnis dieses späten Abtastens von dT ist Signal dL. Flip-Flop F3 verzögert Signal dT um Zeit T2 vor Abtasten dieses mit rclk. Die Wirkung ist dieselbe wie ein Abtasten von dT Zeit T2 vor rclk. Das Ergebnis dieses frühen Abtastens ist Signal de.
  • Signale dL und dE sind das Ergebnis eines Abtastens eines asynchronen Signals und können daher in einen metastabilen Zustand eintreten. Um Zeit zu erlauben, dass irgendwelche metastabilen Zustände sich beruhigen bzw. aussetzen (settle out), werden diese Signale durch brachiale-Gewalt-Synchronisierer S1 bzw. S2 passiert. Dies erzeugt verzögerte und synchronisierte Versionen der späten und frühen Signale: dLS und dES. Um eine ausreichend geringe Wahrscheinlichkeit eines Synchronisations-Fehlers zu erreichen, werden Signale dLS und dES um S (typischerweise 2–4) Zyklen von rclk von dL und dE verzögert. Flip-Flops F2 und F3 können als die erste Stufe von Synchronisierern S1 bzw. S2 angesehen werden oder diese Flip-Flops können ausgelassen werden und die Synchronisierer können direkt benutzt werden, um die frühen und späten Proben zu nehmen.
  • Exklusives-OR-Gate X1 detektiert, wenn es einen Unterschied zwischen dLS und dES gibt. Die Ausgabe dieses Gates, det, wenn wahr, signalisiert, dass vor S Zyklen Signal dT einen Übergang hatte, welcher in dem Fenster [–T2, T1] relativ zu dem Übergang von rclk auftrat. Auf diese Weise kann der Phasen-Detektor 500 detektieren, wann die Übermittlungs-Takt-Phase in dem Bereich [–T2/T, T1/T] ist, wobei T der Übermittlungs-Takt-Zyklus ist.
  • Verzögerungs-Linien T1 und T2 können durch Ketten von geraden Zahlen von Invertern realisiert sein. Diese Verzögerungen müssen groß genug gemacht werden, um das Heraushalte-Fenster von Register F2, tko = ts + th, plus ein Führungsband, g, auf jeder Seite dieses Heraushalte-Bereiches zu umfassen. Optional können für jede Verzögerungs-Linie 4 bis 8 Fan-out von einem (FO1)-Invertern benutzt werden.
  • Während nur ein einzelner Phasen-Detektor hier gezeigt ist, sollte es bemerkt werden, dass zwei Phasen-Detektoren benutzt werden können, einer auf der ansteigenden Kante von rclk und einer auf der abfallenden Kante von rclk. Die zwei Detektions-Signale können benutzt werden, die Phasen-Schätzung auf Null zurückzusetzen (plus (S + 1)f), wenn eine Detektion auf der ansteigenden Kante von rclk erfolgt, und auf 0,5 (plus (S + 1)f) auf der abfallenden Kante von rclk. Dies kann gegen einen metastabilen Zustand schützen, welcher von dem verzögerten Pfad abgetastet ist, wenn die Phase sehr langsam präzessiert.
  • Wie unten mit Bezug auf 5B–D beschrieben ist, kann der Phasen-Detektor 500 modifiziert werden, um mehrere Proben zum Bereitstellen einer genaueren Phasen-Messung zu benutzen, kann obere und untere Schranken auf der Phasen-Schätzung halten (z. B. Berechnen von Phase mit Intervall-Arithmetik) zum Erlauben einer präziseren Bestimmung, wann ein Takt in dem „Heraushalte”-Bereich eines anderen ist und kann automatisch kalibriert sein, um zu bestimmen, welcher Anteil des Zyklus detektiert wird.
  • 5B illustriert einen Phasen-Detektor 510 für separate frühe und späte Detektion, in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Phasen-Detektor 510 in dem Kontext der Funktionalität und Architektur von 14 implementiert sein. Natürlich kann jedoch der Phasen-Detektor 510 in irgendeiner gewünschten Umgebung implementiert sein.
  • Es sollte auch bemerkt sein, dass die zuvor erwähnten Detektionen während der vorliegenden Beschreibung gelten können.
  • Wie gezeigt ist, sind zwei Ausgaben erzeugt, einschließlich detE, was detektiert, wann bzw. wenn die Übermittlungs-Phase in dem Bereich von [–T2/T, 0] ist, und detL, was detektiert, wann die Phase in dem Bereich [0,T1/T] ist. Mittels eines Benutzens von detE und detL kann die Phasen-Schätzung, welche basierend auf einer detektierten Phase berechnet ist, genauer beschränkt sein.
  • 5C illustriert einen vier-Probe-Phasen-Detektor 520 in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der vier-Probe-Phasen-Detektor 520 in den Kontext der Funktionalität und Architektur von 14 implementiert sein. Natürlich kann jedoch der vier-Probe-Phasen-Detektor 520 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Wie gezeigt ist, können zusätzliche Verzögerungs-Linien bzw. Leitungen (lines) umfasst sein (im Hinblick auf den Phasen-Detektor 510 in 5B), um zusätzliche Detektions-Signale zu erzeugen. Es sollte bemerkt werden, dass die Zahl von zusätzlichen Verzögerungs-Linien, welche umfasst sein können, optional auf irgendeine gewünschte Zahl erweitert werden kann. Mittels eines Hinzufügens von Verzögerungs-Linien kann eine größere Genauigkeit der Phasen-Information bereitgestellt sein. Der vier-Probe-Phasen-Detektor 520 erzeugt detLL, wenn die Übermittlungs-Phase in [–2T2/T, –T2/T] ist, und erzeugt detEE, wenn die Phase in [T1/T, 2T1/T] ist.
  • Wenn die Phase detektiert ist, kann der ursprüngliche schnelle periodische Synchronisierer effektiv die Phasen-Schätzung auf Null setzen (zero) (z. B. die Phase auf (S + 1)f setzen, um die S Zyklen von Verzbgerungs-Snychronisierung der Phasen-Detektion zu berücksichtigen). Die Zeit, während welcher die Übermittlungs-Phase in dem Heraushalte-Bereich ist, kann dadurch genauer detektiert werden, dass obere und untere Schranken auf der Phasen-Schätzung gehalten werden (z. B. indem die Phasen-Schätzung unter Benutzung von Intervall-Arithmetik berechnet ist). Die Aktualisierungen an die Phasen-Schätzung können Schranken auf Frequenz benutzen. Da die zwei Synchronisierer in 4 jeweils nur einen Zyklus einer Ungewissheit einführen, ist die Frequenz mittels des Bereiches [f – 1, f + 1] beschränkt.
  • Tabelle 2 illustriert ein Beispiel eines Verilog-Codes, welcher zum Aktualisieren der oberen und der unteren Phasen-Schätzung (up bzw. lp) unter Benutzung des Phasen-Detektors 510 in 5B benutzt werden kann. Natürlich sollte jedoch bemerkt werden, dass der Code in Tabelle 2 nur für illustrative Zwecke ausgeführt ist, und daher nicht interpretiert werden sollte, in irgendeiner Weise zu beschränken. Tabelle 2
    Figure DE102013221678A1_0002
  • Der in Tabelle 2 gezeigte Code setzt die obere und untere Schranke auf die geeigneten Werte auf einer Phasen-Detektion und entwickelt sie dann über die Zeit unter Benutzung der Schranken auf Frequenz. Benutzen von oberen und unteren Schranken für Phasen-Schätzungen zeigt an, dass die Übermittlungs-Takt-Domäne in dem Heraushalte-Bereich ist, wenn diese Schranken den Führungs-zusammengebundenen (guard banded) Bereich [–c, c] überlappen. Dies kann z. B. auftreten, wenn entweder die obere oder untere Schranke in dem Heraushalte-Bereich ist, oder wenn die obere Schranke positiv ist und die untere Schranke negativ ist.
  • Der in Tabelle 3 gezeigte letzte Fall deckt die Situation ab, wo der Phasen-Bereich den gesamten Heraushalte-Bereich umfasst. Tabelle 3 illustriert ein Beispiel von Verilog-Code, welcher unter Benutzung von oberen und unteren Schranken für Phasen-Schätzungen implementiert werden kann, basierend auf Vorzeichen-behafteter Arithmetik (signed arithmetic). Es sollte natürlich bemerkt werden, dass der Code in Tabelle 3 nur für illustrative Zwecke ausgeführt ist und dass er nicht interpretiert werden sollte, in irgendeiner Weise zu begrenzen.
  • Tabelle 3
    • ko = ((up > –c) && (up < c))|((lp > –c) && (lp < c))|((up > 0) && (lp < 0));//signed
  • Tabelle 4 illustriert ein Beispiel von Verilog-Code, welcher zum Benutzen von oberen und unteren Schranken für Phasen-Schätzungen implementiert werden kann, basierend auf nicht mit Vorzeichen behafteter Arithmetik (unsigned arithmetic). Es sollte natürlich bemerkt werden, dass der Code in Tabelle 4 nur für illustrative Zwecke ausgeführt ist und er somit nicht interpretiert werden sollte, in irgendeiner Weise zu beschränken.
  • Tabelle 4
    • ko = (up > cneg)|(up < c)|(lp > cneg)|(lp < c)|(up < lp);//unsigned
  • Mit der nicht mit Vorzeichen versehenen Repräsentation, welche in Tabelle 4 gezeigt, inkrementiert die Phase von 0 zu einem Maximalwert (alle 1s) und cneg ist ein großer positiver Wert (nahezu alle 1s) entsprechend –c. Mit einem geraden/ungeraden Synchronisierer (unten beschrieben), können separate Heraushalte-gerade-(koe)- und Heraushalte-ungerade-(koo)-Signale in dieser Weise dadurch erzeugt werden, dass ko dadurch qualifiziert ist, ob der momentane Tx-Zyklus gerade oder ungerade ist.
  • Um ferner die tatsächliche Größe von T1/T, T2/T, etc. zu bestimmen, ist Prozess-Variation, welche T1 und T2 bestimmt, zusätzlich zu T, der Übermittler-Zyklus-Zeit, benutzt. Dies kann annehmen, dass der Synchronisierer in der Empfänger-Takt-Domäne ist. Wenn der Synchronisierer in der Übermittler-Takt-Domäne ist (z. B. eine Empfänger-Phase abschätzend), dann ist die Empfänger-Zyklus-Zeit.
  • Wenn die Übermittlungs- und Empfangs-Takte nicht rational aufeinander bezogen sind (rationally related), wird T1/T (und T2/T) dadurch gemessen, dass der Anteil von Übermittlungs-Zyklen detektiert wird, welche zu einer Detektion führen. Dies kann erreicht werden, während die Frequenz mittels eines Hinzufügens von zwei zusätzlichen Zählern gemessen wird. Wenn die zwei Takte nicht rational aufeinander bezogen sind, wird der Empfangs-Takt gleichmäßig den Übermittlungs-Takt abtasten und dieser Anteil kann auf T1/T (oder T2/T) konvergieren.
  • 5D illustriert einen Phasen-Detektor-Kalibrator 530 in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der Kalibrator 530 in dem Kontext der Funktionalität und Architektur von 15C implementiert sein. Der Phasen-Detektor-Kalibrator kann z. B. eine Komponente des Phasen-Detektors sein, welcher oben beschrieben ist. Natürlich kann jedoch der Kalibrator 530 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Wie gezeigt ist, misst der Kalibrator 530 das Detektions-Intervall d. Der Kalibrator 530 operiert dadurch, dass er die Zahl von tclk-Zyklen zählt, während welchen det(det = dete|deto) wahr ist, während den 2b tclk-Zyklen, die der Zähler CT2 braucht, seine terminale Zähl-Zahl zu erreichen. Dies ergibt 2d als ein b-Bit-Binäranteil. Wie die Frequenz-Schätzung hat diese Messung von d eine Genauigkeit von +/– 1 aufgrund der Ungewissheit der Synchronisierer-Verzögerungen. Gegeben diese Ungewissheit ist die Ausgabe von CD (ein Zähler) inkrementiert, um eine obere Schranke auf 2d zu geben (z. B. derart, dass die obere Schranke auf dem Detektions-Intervall, welches mit der Phasen-Schätzung assoziiert ist, bereitgestellt ist, um Synchronisierer-Verzögerungen zu kompensieren). Ein zusätzlicher Wert kann bei diesem Punkt (nicht gezeigt) hinzugefügt werden, um ein Führungsband bereitzustellen (z. B. eine Schranke auf d, welche Spannungs- und Temperatur-Variation und mittlere-Frequenz-Flackern berücksichtigt), wie oben beschrieben ist. Ein nach Rechtsverschieben dieser Zahl um eine Bit-Position ergibt d. Das Fertig-Signal zeigt an, wann die Messung von d vollendet ist.
  • Der Kalibrator 530 tastet tclk-Phase nur gleichmäßig ab, wenn die Takte nicht rational aufeinander bezogen sind. Wenn sie rational aufeinander bezogen sind, dann besucht der Empfangs-Takt wiederholt dieselben D (Nenner eines rationalen Verhältnisses) Punkte auf dem Einheits-Phasen-Kreis. Wenn D groß genug ist, ist dies ausreichend. Der Schätzungs-Fehler ist weniger als 1/D. Für kleines D kann der Phasen-Detektor unter Benutzung einer unabhängigen Frequenz-Quelle kalibriert werden – z. B. ein Ring-Oszillator- um den CD-Zähler zu treiben. Zu diesem Zweck kann der Kalibrator 530 erlauben, dass der Phasen-Detektor selbst kalibrierend ist.
  • 5E illustriert ein Phasen-Detektor 540 zum Detektieren von geraden und ungeraden Phasen in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der Phasen-Detektor 540 in dem Kontext der Funktionalität und Architektur von 5A5D implementiert sein. Natürlich kann jedoch der Phasen-Detektor 540 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Der Phasen-Detektor 540 detektiert, wann ein Übergang auf einem Übermittlungs-Datensignal in ein Fenster von ±td um die Empfangs-Takt-Kante fällt. Der Phasen-Detektor tastet das Übermittlungs-Signal „gerade” ab, welches jeden Zyklus umschaltet (toggles). Dieses Signal ist hoch während gerader tclk-Zyklen und niedrig während ungeraden tclk-Zyklen. Flip-Flop F2 tastet „gerade” mit rclk verzögert um td ab, was dL ergibt, eine Probe von „gerade” td nach der ansteigenden Kante von rclk, d. h. eine späte Probe. Eine frühe Probe, dE ist von F3 erzeugt, welches „gerade” verzögert um td abtastet.
  • Wenn eine Kante von „gerade” zwischen td vor rclk und td nach rclk auftritt, werden die von F3 und F2 abgetasteten Werte verschieden sein. Die frühen und späten Proben werden auf die Empfangs-Takt-Domäne mittels eines Paares von brachiale-Gewalt-Synchronisierern synchronisiert, welche die synchronisierten frühen und späten Proben dES bzw. dLS erzeugen. Unterschiede zwischen den synchronisierten frühen und späten Proben werden mittels eines Paars von AND-Gates detektiert. Wenn die frühe Probe hoch ist und die späte Probe niedrig ist, wird eine gerade Kante von tclk (eine, welche einen geraden Zyklus beendet) detektiert und „dete” ist festgestellt. Wenn die frühe Probe niedrig ist und die späte Probe hoch ist, wird eine ungerade Kante von tclk detektiert und „deto” festgestellt.
  • Es gibt zwei brachiale-Gewalt-Synchronisierer in dem Phasen-Detektor, welche jeden Zyklus von rclk operieren. Diese Synchronisierer sind jedoch, wie diejenigen in der Frequenz-Messeinheit, entfernt von dem kritischen Pfad (off the critical path), so dass ihre Verzögerung groß gemacht werden kann, um die Frequenz von Synchronisations-Fehler beliebig klein zu machen. Eine kombinierte Verzögerung, S, von 4 oder 5 Zyklen für den abtastenden Flip-Flop plus Synchronisierer ist typischerweise geeignet, um eine Fehler-Frequenz von weniger als 10–40 Hz aufrechtzuerhalten.
  • Um den Phasen-Schätzer zu initialisieren, wie unten beschrieben ist, wird der Wert von td beschränkt. Während es möglich ist, eine schlimmster-Fall-obere-Schranke auf td zu berechnen, kann eine genauere Phasen-Schätzung erzeugt werden, wenn der instantane Wert von td gemessen wird und dann ein Führungsband auf diese Messung addiert wird, um die Variation von td mit Temperatur und Spannung zu berücksichtigen.
  • 6 illustriert einen Phasen-Schätzer 600 in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Phasen-Schätzer 600 in dem Kontext der Funktionalität und Architektur von 15E implementiert sein. Natürlich kann jedoch der Phasen-Schätzer 600 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Wie gezeigt ist, arbeitet der Phasen-Schätzer 600 dadurch, dass er eine b = Bit laufende Schätzung der Phase von tclk relativ zu rclk hält. Diese Schätzung, p, ist ein b-Bit-Anteil, welcher Werte zwischen 0 und 1 um den Einheits-Kreis repräsentiert. Phasen-Schätzung p wird auf (S + 1)f jedes Mal zurückgesetzt, wenn die Phasen-Detektions-Logik det feststellt bzw. bestimmt, was anzeigt, dass sie einen Übergang von dT in dem Fenster [–T2, T1] detektiert hat. Wenn det nicht bestimmt ist bzw. festgestellt ist, wird die Phase um f, die relative Frequenz von tclk jeden Zyklus von rclk inkrementiert. Register pR hält die b-Bit-laufende-Phase p. Wenn det festgestellt ist, wird Phase p auf (S + 1)f zurückgesetzt, um widerzuspiegeln, dass die Phase vor S Zyklen Null war, vor der Verzögerung der Synchronisierer in der Phasen-Detektions-Logik. Wenn det niedrig ist, wird die Phasen-Schätzung dadurch aktualisiert, dass f zu der laufenden Summe jeden Zyklus hinzufügt wird.
  • Man bemerke, dass der Vorausschau-Faktor (look-ahead factor) A auf S + 1 gesetzt wird, so dass die laufende Phase p die Phase von tclk bei der nächsten ansteigenden Kante von rclk vorhersagt. Dies ermöglicht, dass der Multiplexer in 3 gesetzt wird, die verzögerte Version der Eingabedaten auszuwählen, bevor die ansteigende Kante von rclk eine direkte Eingabe abtastet, welche in dem Heraushalte-Bereich übergeht.
  • Die Genauigkeit der Phasen-Schätzung kann auf dem Fenster des Phasen-Detektors und der Genauigkeit der Frequenz-Schätzung basiert sein. Auf eine Detektion hin kann die Genauigkeit anfänglich gleich dem Fenster des Phasen-Detektors [–T2, T1] sein. In Antwort auf jeden Zyklus ohne eine Detektion kann der Fehler in der Frequenz-Schätzung ein volles LSB sein.
  • 7 illustriert einen Konflikt-Detektor 700 in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Konflikt-Detektor 700 in dem Kontext der Funktionalität und Architektur von 16 implementiert sein. Natürlich kann jedoch der Konflikt-Detektor 700 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Der Konflikt-Detektor 700 umfasst eine Ausführungsform der Treffer-Detektions-Logik. Der Konflikt-Detektor 700 vergleicht die laufende Schätzung der Phase p mit Grenzen pL und pH. Wenn p als eine nicht mit Vorzeichen behaftete Zahl interpretiert wird, wenn p < pL oder p > pH, dann wird die Ausgabe, c, festgestellt. Dies entspricht dem, dass die Phase in dem Bereich [pH, pL] ist (zum Beispiel ein Fenster um 0), wenn Phasen als Vorzeichen behaftete Zahlen interpretiert werden. Solch ein Fenster kann größer gesetzt werden als das Genauigkeits-Fenster [–N2–(b+1) – T2, N2–(b+1) + T1].
  • 8 illustriert einen Energie-von-Halbe-(power-of-half)-Konflikt-Detektor 800 in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der Energie-von-halbe-Konflikt-Detektor 800 in dem Kontext der Funktionalität und Architektur von 17 implementiert sein. Natürlich kann jedoch der Energie-von-halbe-Konflikt-Detektor 800 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Wenn die Grenzen pL und pH eingeschränkt sind, von der Form 2–I zu sein, kann eine einfachere Version der Treffer-Detektions-Logik, welche in 8 gezeigt ist, benutzt werden. Der Energie-von-halbe-Konflikt-Detektor 800 detektiert, wenn die signifikantesten i Bits von p entweder alle 0 oder alle 1 sind. Um z. B. zu detektieren, wenn p in dem Bereich [–1/8, 1/8] ist, kann bestimmt werden, wann die oberen 3 Bits von p alle 0 oder alle 1 sind. Als ein anderes Beispiel kann dadurch detektiert werden, dass p in dem Bereich [–1/4, 1/4] ist, dass detektiert wird, wenn die oberen 2 Bits von p alle 0 oder alle 1 sind.
  • Tabelle 5 illustriert Parameter, welche in dem Beispiel eines Betriebes des vollständig-digital-plesiochronen-Synchronisierers 300 in 3, beschrieben in Tabelle 6, benutzt werden können. Es sollte bemerkt werden, dass solche Parameter und Beispiel von Betrieb nur für illustrative Zwecke ausgeführt sind und dass sie nicht interpretiert werden sollten, in irgendeiner Weise zu beschränken. Tabelle 5
    F 0,467
    Heraushalte-Fenster [–0,01, 0,01]
    Detektions-Fenster [–0,05, 0,05]
    Konflikt-Fenster [–0,125, 0,125]
    S (Vorausschau-Zyklen) 4
  • In der unten gezeigten Tabelle 6 ist das Beispiel eines Betriebs gezeigt. Die erste Spalte spiegelt die Zyklus-Zahl wieder und die zweite Spalte zeigt die tatsächliche Phase von tclk relativ zu rclk. Die Det-gekennzeichnete Spalte zeigt an, wann die tatsächliche Phase innerhalb des Detektions-Fensters des Phasen-Detektors fällt. Die tatsächliche Ausgabe des Phasen-Detektors ist drei Zyklen später, wie in der Spalte widergespiegelt ist, welche mit Del gekennzeichnet ist. Wenn Del wahr ist, wird die Phase auf 4f = 0,868 gesetzt, was die tatsächliche Phase auf dem nächsten Zyklus vorhersagt. Die Spalte, welche als p gekennzeichnet ist, zeigt die tatsächliche Phase. Bei der anfänglichen Detektion ist sie vollständig genau, kann jedoch einen Fehler so groß wie das Detektions-Fenster bei nachfolgenden Detektionen haben. Die Spalte, welche c gekennzeichnet ist, zeigt, wann die abgeschätzte Phase innerhalb des Konflikt-Signals fällt, und daher ist c festgestellt. Man bemerke, dass dies den Konflikt einen Zyklus, bevor er tatsächlich erfolgt, vorhersagt. Schließlich zeigt die Spalte, welche als ko gekennzeichnet ist, wann die tatsächliche Takt-Phase innerhalb des Heraushalte-Fensters fällt. In dem einzelnen Fall, wo dies in der Tabelle erfolgt, ist es korrekt mittels c vorhergesagt, was auf dem vorherigen Zyklus bestimmt ist. Tabelle 6
    Zyklus Phase Det Del p c ko
    0 0,000 T T
    1 0,67
    2 0,934
    3 0,401 T 0,868
    4 0,868 0,335
    5 0,335 0,802
    6 0,802 0,269
    7 0,269 0,736
    8 0,736 0,203
    9 0,203 0,670
    10 0,670 0,137
    11 0,137 0,604
    12 0,604 0,071 T
    13 0,071 0,538
    14 0,538 0,005 T
    15 0,005 T 0,472 T
    16 0,472 0,939 T
    17 0,939 0,406
    18 0,406 T 0,868
    19 0,873 0,335
    20 0,340 0,802
    21 0,807 0,269
    22 0,274 0,736
    23 0,741 0,203
    24 0,208 0,670
    25 0,675 0,137
    26 0,142 0,604
    27 0,609 0,071 T
    28 0,076 0,538
    29 0,543 0,005 T
    30 0,010 T 0,472
    31 0,477 0,939 T
  • Das Folgende präsentiert eine Analyse von Genauigkeit des vollständig-digital-plesiochronen Synchronisierers 300 in 3. Die relativen Größen des Heraushalte-Fensters, des Detektions-Fensters und des Konflikt-Fensters bestimmen die Präzision b, welche für die Frequenz- und Phasen-Schätzung erfordert ist. Sei d die Größe des Detektions-Fensters, g sei das Führungsband zwischen dem Detektions-Fenster und dem Heraushalte-Fenster, und c sei die Größe des Konflikt-Fensters. In dem Beispiel oben ist d 0,10, g ist 0,04 und c ist 0,25.
  • Wenn eine genaue Phasen-Schätzung bestimmt ist, garantiert das System klarerweise eine sichere Synchronisation. Bei der Abtast-Zeit ist die Übermittlungs-Phase bekannt, zu sein ϕ ∊ [lp, up], und wenn lp ∊ [x, 1 + x), ist das gerade Register sicher abzutasten. Wenn die System-Parameter b und d geeignet gewählt sind, garantiert das System auch eine sichere Synchronisierung, in dem plesiochronen Modus, wenn eine genaue Phasen-Schätzung nicht bekannt ist, weil es lange genug gewesen ist, seit einer Detektion für lp und up, um einen Schwellwert k zu divergieren. In diesem plesiochronen Fall kann es gezeigt werden, dass die Frequenz in einem Bereich sein wird, wo eine Phasen-Detektion ausreichend weit im Voraus eines Heraushalte-Ereignisses für den Synchronisierer erfolgen wird, um ein korrektes Abtasten zu garantieren.
  • Man betrachte die folgenden Fälle für f:
    Für f < g/S (das Führungsband) wird es eine Detektion vor einem Fehler geben. In diesem Fall wird sich die Phase langsam genug in den Detektions-Bereich bewegen, dass eine Detektion S Zyklen, bevor die Phase in das Heraushalte-Fenster eintritt, erfolgen wird, was uns Zeit gibt, die Detektion zu synchronisieren, die Phasen-Schätzung zu aktualisieren, und das Konflikt-Signal zu festzustellen, bevor ein tatsächlicher Konflikt erfolgt.
  • Für g/S ≤ f < d wird es eine Detektion alle N = 1/f Zyklen geben, zumindest jedes Mal sobald die Phase um den Einheits-Kreis rotiert. Solange wie 2–b < gck/S, wird es eine Detektion geben, bevor zu viel Fehler in der Phasen-Schätzung akkumuliert ist. (Hier k = 0,25 ist ein Faktor, um zusätzliche Präzision hinzuzufügen). Zum Beispiel haben wir für die Zahl unseres Beispiels gck/S = (0,04)(0,25)(0,25)/4 = 0,000625, und b = 11 Bit ist eine ausreichende Präzision.
  • Für f ≥ d ist f als ein rationaler Anteil mit einem beschränkten Nenner plus einem Fehler-Ausdruck repräsentiert, f = N/D ± e, wobei D ≤ C = [1/d]. Wie unten gezeigt ist, garantieren die Eigenschaften von Folgen von Anteilen mit beschränkten Nennern, genannt Farey-Folgen, dass eDC < 1. In diesem Fall kann es ein wiederholendes Muster von D Punkten um den Phasen-Zirkel geben, was sich um De jede D-Zyklus-Periode verschiebt. Dies ergibt dieselben zwei Fälle wie für f < d.
  • Wenn De < g/S, ist die Phasen-Verschiebung jede Periode klein genug, dass es eine Detektion vor dem Fehler gibt, dasselbe wie wenn f < g/S.
  • Wenn g/S ≤ De < d, dann wird eine Detektion jede 1/(D2e) Zyklen erfolgen, so wenn 2–b< gck/S, wird es eine Detektion geben, bevor wir zu viele Fehler akkumulieren. Das Erfordernis an b ist hier genau dasselbe wie in dem Fall g/S ≤ f < d oben.
  • Wir müssen zeigen, dass für f > d > 1/C wir immer f als f = N/D ± e repräsentieren können, mit D ≤ C und eDC < 1. Man betrachte die Farey-Folge F(C), die Folge von rationalen Zahlen zwischen 0 und 1 mit Nennern D ≤ C. Für zwei angrenzende Zahlen von dieser Menge, p/q, r/s, wird es immer der Fall sein, dass r/s = (ps + 1)/qs, wobei q, s <= C und (ps + 1) = qr. Dann ist der Abstand zwischen zwei angrenzenden rationalen Zahlen p/q und r/s 1/qs. Wir allozieren Werte von f zwischen p/q und p/q + 1/q(s + q) bis p/q und Zahlen von r/s – 1/s(s + q) bis r/s. Dann wissen wir e = 1/q(s + q), eDC = (1/q(s + q))qC = C/(s + g) < 1, weil s + q > C aufgrund der Eigenschaften der Farey-Folgen.
  • Eine Abhängigkeit zwischen Synchronisierer-Parametern diktiert, dass sie in der Ordnung pD, d, c und dann b zu wählen sind. Der Wert der Phasen-Verzögerung pD setzt eine Zahl von Beschränkungen an die anderen Parameter. Ein Setzen von pD = 0,5 wie in dem Beispiel oben gibt eine maximale Flexibilität zu Lasten eines leichten Anstiegs in der mittleren Verzögerung des Synchronisierers. Verzögerung kann dadurch vermindert werden, dass pD auf einen kleineren Wert, sagen wir 0,1, gesetzt wird. Dies kann jedoch sehr enge Beschränkungen auf die übrigen Parameter auferlegen. Welcher Wert auch immer für pD gewählt wird, der Phasen-Detektor kann implementiert werden, um zu detektieren, wann Übergänge von dT sowohl mit Phase 0 als auch mit Phase pD auftreten, und der Phasen-Detektor kann implementiert werden, seine Phasen-Schätzung gemäß beiden Ereignissen zurückzusetzen. Wenn De sehr klein ist, wird die Phase zurückgesetzt, bevor eine Probe in den Heraushalte-Bereich von irgendeinem Abtastungs-Pfad eintritt.
  • Die Größe des Detektions-Bereiches, d, bestimmt teilweise den Fehler in der Phasen-Messung und wird somit klein genug gesetzt, so dass der Phasen-Schätzer genau dazwischen diskriminieren kann, wenn die direkten und verzögerten Daten-Werte auszuwählen sind. Eine Beschränkung ist, das d < pD/2 – k, wobei k der Genauigkeits-Parameter ist, welcher für den Phasen-Schätzer gewählt ist. Auf der anderen Seite ergibt ein Auswählen eines kleinen d ein kleines Führungsband und somit einen Anstieg in der Anzahl von Bits, welche in den Frequenz- und Phasen-Schätzern benutzt werden. In einer Ausführungsform gleicht ein Setzen von d auf ungefähr PD/4 diese Einschränkungen aus. Da d mittels einer Inverter-Verzögerungs-Linie bzw. -Leitung bestimmt ist, wird sein Wert beträchtlich über PVT variieren, und somit ist der Synchronisierer ausgelegt, bei beiden Extremen zu arbeiten.
  • Die maximale Toleranz für Fehler ist realisiert, wenn das Konflikt-Detektions-Fenster, c, auf die Hälfte von pD gesetzt ist. Wenn z. B. pD 0,5 ist (wie in dem Beispiel oben), ergibt ein Setzen von c auf [–0,25, 0,25] den maximalen Rand bzw. Toleranz (margin) für Fehler. Die Phase kann um 0,25 – tko verschieden sein (can be off) und der Synchronisierer wird es noch vermeiden, ein unsicheres Signal abzutasten. Auf der anderen Seite ergibt Setzen von c so groß viele „falsch positive” Auswahlen des verzögerten Daten-Signals, was eine mittlere Synchronisierer-Verzögerung erhöht. In einer Ausführungsform ist c auf entweder [–0,25, 0,25] oder [–0,125, 0,125] gesetzt. Wenn man c als eine Potenz von 1/2 hat, erlaubt das, dass die einfache Detektions-Schaltung von 8 benutzt werden kann. Sobald pD, d und c gewählt sind, wird der minimale Wert für b gewählt, wie oben beschrieben ist, so dass 2–b < gck/S.
  • Als eine Option können kostspielige Teile des vollständig-digitalen plesiochronen Synchronisierers 300 in 3 zwischen Instanziierungen des Synchronisierers gemeinsam benutzt werden. Eine einzelne Kopie des Frequenz-Abschätz-Blocks kann zwischen allen Synchronisierern gemeinsam benutzt werden, welche Signale zwischen tclk und rclk synchronisieren, wobei der Wert f mittels eines Blockes erzeugt ist und auf alle Synchronisierer zwischen diesen zwei Takt-Domänen verteilt wird. In einer ähnlichen Weise kann ein einzelner Phasen-Detektions-Block, Phasen-Abschätzungs-Block und Konflikt-Detektions-Block zwischen einer Zahl von Synchronisierern gemeinsam benutzt werden, welche dieselbe Phasen-Beziehung zwischen tclk und rclk teilen.
  • 9 illustriert einen Vorwärts-Synchronisierer 900 in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Vorwärts-Synchronisierer 900 in dem Kontext der Funktionalität und Architektur von 12 und 48 implementiert sein. Natürlich kann jedoch der Vorwärts-Synchronisierer 900 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Mit Bezug auf die vorliegende Ausführungsform können Begrenzungen, welche mit einem Abtasten einer verzögerten Version des Signals assoziiert sind, vermieden werden. Um ein Mehr-Bit-Signal von der Übermittlungs- auf die Empfangs-Takt-Domäne ohne Fluss-Steuerung weiterzuleiten, schreibt der Übermittlungs-Takt ein Paar von Registern auf alternierenden Zyklen. Zum Beispiel wird Register E auf geraden Zyklen geschrieben (bei dem Ende des geraden Zyklus aktualisiert) und Register O wird auf ungeraden Zyklen geschrieben.
  • Der Empfänger benutzt dann seine Phasen-Schätzung, um das am kürzlichsten geschriebene Übermittlungs-Register auszuwählen, welches „sicher” ist, in der Empfangs-Takt-Domäne abzutasten (bei dem Ende des momentanen rclk-Zyklus). Die Auswahl ist auf der vorhergesagten tclk-Phase bei dem Ende des momentanen rclk-Zyklus, p, basiert. Bei jedem Empfangs-Takt wird Register O ausgewählt, wenn die Übermittlungs-Takt-Phase zwischen e, x und o, x ist, wobei sich e auf den geraden Zyklus bezieht, und wobei x der „Heraushalte”-Rand ist. Anderenfalls wird das E-Register ausgewählt. Die Verzögerung dieses Synchronisierers wird zwischen 0, x und 1, x abhängig von der Phase mit einem Mittel von 0,5 + 0, x variieren.
  • Während die vorliegende Erfindung mit Bezug auf gerade und ungerade Takt-Zyklen und zwei Register beschrieben ist, sollte es bemerkt werden, dass in anderen Ausführungsformen irgendeine Anzahl von Takt-Zyklen und Registern benutzt werden kann. Somit können Takt-Zyklen Modulo N gekennzeichnet werden und N Register können eingesetzt werden. Ein Erhöhen der Anzahl von Registern erlaubt sehr große Heraushalte-Bereiche (z. B. größer als ein einzelner UI). Benutzen von N Registern aus diesem Grund kann sowohl für Vorwärts-Synchronisierer, welcher in 9 gezeigt ist, als auch für Fluss-Steuerungs-Synchronisierer, welcher unten mit Bezug auf 11 beschrieben ist, angewendet werden.
  • Wie in 9 gezeigt ist und mit Bezug auf die Übermittlungs-Seite, wird „tdata” alternierend in die E- und O-Register auf jedem Zyklus von „tclk” geschrieben. Auf der Empfänger-Seite bestimmt die Auswahl-Logik, welches der zwei Register ausgewählt ist, um auf „rdata” auszugeben. Die Auswahl-Logik kann diese Entscheidung auf der Phasen-Schätzung des Übermittler-Taktes basieren, welche mittels der Frequenz- und Phasen-Schätzungs-Logik (nicht gezeigt) erzeugt ist. Diese Logik erzeugt Zwischensignale, welche anzeigen, wann die Phase in dem geraden (oder ungeraden) Heraushalte-Bereich „tkoe” („tkoo”) ist und wann der Übermittler in dem geraden Takt-Zyklus „teven” ist.
  • Tabelle 7 zeigt ein Beispiel von Code, welcher in der Lage ist, zum Auswählen eines Signals benutzt zu werden. Es sollte bemerkt werden, dass solcher Code nur für illustrative Zwecke ausgeführt ist und somit nicht interpretiert werden sollte, in irgendeiner Weise zu begrenzen.
  • Tabelle 7
    • Wire sel = tkoe|(teven & ~tkoo);
  • Somit wird mit Bezug auf die vorliegende Ausführungsform das ungerade Register ausgewählt, wenn der Übermittler in seinem geraden Takt-Zyklus ist (ungerades Register gerade bei dem Ende des ungeraden Takt-Zyklus geschrieben), es sei denn, der Empfangs-Takt ist in dem ungeraden Heraushalte-Bereich. Andernfalls wird das gerade Register ausgewählt.
  • Auf eine Initialisierung hin kann der Vorwärts-Synchronisierer 900 durch verschiedene Zustände gehen. Tabelle 8 zeigt die optionalen Zustände des Vorwärts-Synchronisierers 900 während Initialisierung. Es sollte natürlich bemerkt werden, dass solche Zustände nur für illustrative Zwecke ausgeführt sind und dass sie somit nicht interpretiert werden sollten, in irgendeiner Weise zu begrenzen. Tabelle 8
    R Zurücksetzen Starte Frequenz-Messprozess
    FA Frequenz-Erfassung Warte, dass die Frequenz-Messung vollendet Zeichne auf, wenn eine Phasen-Detektion während dieser Periode erfolgt. Wenn keine Phasen-Detektion → Plesiochron
    PA Phasen-Erfassung Warte auf Phasen-Detektion Auszeit → Plesiochron
    T Nachverfolgen Verfolge abgeschätzte Phase nach Altere Phase bis zur nächsten Detektion Wenn Phase zu alt wird → Plesiochron Wenn sich Phase mehr als um einen Schwellwert ändert → brachiale Gewalt
    M Plesiochron Arbeite in plesiochronem Modus Schaue nach einer Phasen-Detektion Wenn Phasen-Detektion → Nachverfolgen Wenn sich Frequenz um mehr als einen Schwellwert ändert → brachiale Gewalt
    B brachiale Gewalt Gehe zurück, einen brachialen-Gewalt-Synchronisierer zu benutzen. Notwendig, auf einige stabile Frequenz-Messungen zu sehen, auf FA zurück zu kehren.
  • Wie mit Bezug auf 10 beschrieben ist, tritt der Vorwärts-Synchronisierer 900 auf ein Rücksetzen hin in den Frequenz-Erfassung(FA)-Zustand ein und startet sein Paar von Zählern, um die Frequenz des „anderen” Taktes zu messen. Während dieses Zustandes prüft der Vorwärts-Synchronisierer 900, um zu sehen, ob es eine Phasen-Detektion gibt (Phase, welche in den Detektions-Bereich fällt).
  • Sobald Frequenz erfasst ist, wird in den Phasen-Erfassungs-(PA)-Zustand eingetreten und der Vorwärts-Synchronisierer 900 wartet auf eine Phasen-Detektion. Bei diesem Punkt sind eine Frequenz-Schätzung, f, und eine Phasen-Schätzung, p, bestimmt worden und es wird in den Nachverfolgungs-Zustand (T) eingetreten. Wenn es keine Phasen-Detektion gibt (z. B. erfolgt eine Auszeit), sind die beiden Takte rational aufeinander bezogen (f = N/D) (oder nahezu rational aufeinander bezogen) mit einer Phasen-Verschiebung, so dass die D Treffer um den Phasen-Kreis außerhalb des Detektions-Bereiches bleiben. In diesem Fall wird in den M-Zustand eingetreten, da es garantiert ist, dass die Phasen-Präzession langsam genug ist, dass sie detektiert wird, bevor ein Fehler auftritt.
  • In dem Nachverfolgungs-Zustand (T) aktualisiert der Vorwärts-Synchronisierer 900 die Phasen-Schätzung in jedem Zyklus und unternimmt geeignete Aktionen, wenn der Vorwärts-Synchronisierer 900 detektiert, dass er in dem geraden oder ungeraden Heraushalte-Bereichen ist. Die Anzahl von Zyklen, seit die letzte Phasen-Detektion gezählt worden ist, und wenn diese Zahl einen Schwellwert übersteigt, ist die Phasen-Schätzung nicht länger zuverlässig und der Vorwärts-Synchronisierer 900 tritt in den plesiochronen (M) Zustand ein.
  • Wenn die Phase sehr langsam drifted (mesochroner oder plesiochroner Modulo ein rationaler Anteil) kann der Vorwärts-Synchronisierer 900 ohne Vorhersage sicher synchronisieren. In diesem Fall (dem M-Zustand) detektiert der Vorwärts-Synchronisier 900 einfach Eintritt in den Detektions-Bereich mit einem brachiale-Gewalt-Synchronisierer und benutzt ausreichend große Führungsbänder derart, dass ein Fehler nicht während der einigen Zyklen auftreten kann, welche erfordert sind, die Detektion zu synchronisieren. Das gerade Signal von der tclk-Domäne wird z. B. direkt benutzt, um zwischen dem E- und O-Register auszuwählen. Dies ist sicher, da sich die Phase langsam genug ändert, und das Führungsband, g = d – x, ist groß genug, so dass eine Phasen-Detektion erfolgen wird, zurückkehrend auf den T-Zustand, bevor dieses Signal unsicher wird. Man bemerke, dass in dem rationalen Fall, wenn die Phase in den Detektions-Bereich driftet, ein 1-von-D-Detektions-Muster identifiziert werden kann (wobei D der rationale Nenner ist). Ein Hingehen in den T-Zustand auf der ersten Detektion kann in solch einer Situation benutzt werden.
  • Betrieb in dem T-Zustand hängt davon ab, dass die Frequenz konstant oder nahezu konstant ist. Um sicher zu sein (z. B. für Situationen, wo sich Frequenz während kurzer Zeitperioden ändert, wie etwa wenn zwischen zwei Energie-Zuständen gewechselt wird), kann die Frequenz-Mess-Schaltung kontinuierlich arbeiten und ihre Messung mit der momentanen Schätzung vergleichen. Wenn die Differenz größer ist als ein Schwellwert, kann der Vorwärts-Synchronisierer 900 zurück in den brachiale-Gewalt-(B)-Modus fallen. Der FIFO-Synchronisierer, welcher oben beschrieben ist, kann z. B. adaptiert sein, mit Bezug auf den Frequenz-Änderungs-Modus mittels eines Grau-Kodierens der Zeiger und Betreibens eines Paares von brachiale-Gewalt-Synchronisierern in paralleler Weise mit den E/O-Synchronisierern zu arbeiten. Wenn sich Frequenzen ändern, schalten die Synchronisierer, um die brachiale-Gewalt-Synchronisierer (B-Modus) zu benutzen. Sobald sich die Frequenzen stabilisieren, ändern sie sich zurück, die schnellen periodischen Synchronisierer (M-Modus) zu benutzen.
  • Der Vorwärts-Synchronisierer 900 kann optional nur benutzt werden, wenn entweder die Takte periodisch sind oder wenn Abweichungen von einem periodischen Verhalten explizit signalisiert sind (z. B. ein „nicht-periodisches” Signal löst einen brachiale-Gewalt-Modus aus, bevor die Takte beginnen, unvorhersagbar zu variieren). Auf diese Weise kann eine Detektion einer Frequenz-Änderung, welche zu langsam ist, wodurch einige unsichere Abtastungen zwischen der Takt-Domäne möglich sind, vorgenommen zu werden vor der Detektion einer Änderung, vermieden werden.
  • Wie oben bemerkt ist, können auch Signale zwischen zwei Takt-Domänen, welche Frequenzen haben, welche um eine rationale Zahl differieren, d. h. fr = Nft/D für ganze Zahlen N und D synchronisiert werden. Mit rationalen Frequenzen, N, D, und einer Anzeige, dass die zwei Frequenzen rational aufeinander bezogen sind, werden durch das System bereitgestellt. Die Phase zwischen den zwei Takten ist angenommen, unbekannt zu sein, und kann sich sogar langsam ändern.
  • Wenn die Takt-Domänen rational aufeinander bezogen sind, braucht keine Frequenz-Messung gemacht zu werden. Stattdessen kann f = N/D als die Frequenz benutzt werden. Zusätzlich kann die Phase multipliziert mit D gehalten werden, um die Integration zu erleichtern. Zum Beispiel ist in einer Ausführungsform die Phase mit einem ganzzahligen Teil, a, und einem Anteils-Teil, b, repräsentiert, so dass die Phase p = a, b/D.
  • Ferner kann die Phase detektiert werden, wie mit Bezug auf 5B–E beschrieben ist. Obere und untere Schranken, up und lp sind initialisiert auf die Schranken des Detektions-Bereiches skaliert mittels D. Der Vorwärts-Synchronisierer 900 startet einen „initialen” Zustand. Die erste Detektion bewirkt einen Übergang auf den „arretierten” (locked) Zustand und initialisiert die Phasen-Schranken (up und lp). In dem arretierten Zustand besucht das System wiederholt D relative Phasen, von welchen zumindest eine erwartet ist, eine Detektion zu veranlassen bzw. zu bewirken (cause) (und somit einen möglichen Konflikt zu detektieren). Nach D + 1 Zyklen ohne Detektion wird ein Übergang auf den „sicheren” Zustand gemacht.
  • Es kann somit bemerkt werden, dass D relative Phasen zwischen zwei Takten nicht zu Konflikten führen, und somit ist es sicher sowohl gerade als auch ungerade Register in allen D Phasen direkt abzutasten. In dem „arretierten” Zustand werden die skalierten Phasen-Schranken (up und lp) dadurch fortgeschritten, dass N jeden Zyklus – Modulo D – hinzugefügt wird. Es gibt keine Unsicherheit in der Frequenz, so werden die Schranken nicht über die Zeit divergieren.
  • Zu diesem Zweck ist eine Phasen-Detektion (oder ein Fehlen davon) in der Lage, benutzt zu werden, um dynamisch die Phasen-Differenz zu detektieren, wenn die Takt-Domänen rational aufeinander bezogen sind. Außerdem kann eine Benutzung einer Tabelle von Größe D, um das Konflikt-Muster zu speichern, dadurch vermieden werden, dass Konflikte von der abgeschätzten Phase detektiert werden, so dass eine Fläche (area) für großes D auch vermieden werden kann.
  • Wenn die Phase sich zwischen zwei Takten langsam ändert (um Δp pro Zyklus – d. h. zumindest zeitweise ist die tatsächliche Frequenz ft = Nfr/D + Δp), dann ist in einer Ausführungsform das oben beschriebene System implementiert, solange wie Δp < min((d – k)/2D, (d – k)/2S), wobei (d – k)/2 der einseitige Rand zwischen dem Detektions-Bereich (d) und dem Heraushalte-Bereich (k) ist, wobei D der Nenner der rationalen Frequenz ist und S ist die Verzögerung des Phasen-Detektor-Synchronisierers. Diese Beschränkung stellt sicher, dass der erste Schritt in den Detektions-Bereich (von höchstens DΔp) nicht in den Heraushalte-Bereich penetrieren braucht bzw. kann, und auch, dass sobald detektiert, die Detektion synchronisiert werden kann, bevor die Phase in den Heraushalte-Bereich eintritt.
  • Zu diesem Zweck kann die Phasen-Schätzung benutzt werden, um einen schnellen, einfachen Vorwärts-Synchronisierer zu konstruieren, welcher ein paralleles Signal von einer periodischen Takt-Domäne zu einer anderen bewegt. Insbesondere ist in der vorliegenden Ausführungsform ein Vorwärts-Synchronisierer bereitgestellt, welcher ein paralleles Signal nach vorne von der Übermittlungs-Takt-(tclk)-Domäne auf die Empfangs-Takt-(rclk)-Domäne bewegt, in einer Weise, welche sicher vor Synchronisations-Fehler ist, aber ohne Fluss-Steuerung. Ferner kann dieser Synchronisierer in einem FIFO-Synchronisierer eingesetzt werden, um Synchronisation und Fluss-Steuerung, wie oben beschrieben ist, bereitzustellen.
  • 11 illustriert ein Zeitdiagramm des Betriebs des Vorwärts-Synchronisierers, welcher in 9 gezeigt ist. Mit Bezug auf die vorliegende Ausführungsform ist „tclk” schneller als „rclk”. Wie gezeigt ist, spiegeln die Phasen-Schätzer-Signale (gerade, tkoe und tkoo) wieder, was die Phase des tclk auf der nächsten ansteigenden Kante von rclk sein wird. Somit geht tkoe auf der ersten Kante von rclk, was gezeigt ist, hoch, weil die nächste Kante von rclk in dem Heraushalte-Bereich einer geraden Kante von tclk ist.
  • Wie gezeigt ist, ist das am kürzlichsten beschriebene Register, welches nicht in einem Heraushalte-Bereich ist, immer abgetastet. Die erste Kante von rclk beprobt (samples) den Wert „a” von Register E, weil diese Kante in den ungeraden Zyklus von tclk fällt. Die nächste Kante beprobt „b” von Register O, weil diese rclk-Kante in dem geraden Heraushalte-Bereich von tclk ist. Die dritte Kante beprobt „d” von Register O, weil sie in einem geraden tclk-Zyklus fällt. Schließlich beprobt die letzte rclk-Kante „e” von Register E, weil sie in den ungeraden Heraushalte-Bereich von tclk fällt. Man bemerke, dass der Wert „c” niemals abgetastet ist, weil tclk schneller ist als rclk. Um sicherzustellen, dass jeder Wert genau einmal abgetastet wird, erfordert es einen Synchronisierer mit einer Fluss-Steuerung, wie unten mit Bezug auf 12 beschrieben ist.
  • 12 zeigt einen Synchronisierer 1200 mit Fluss-Steuerung in Übereinstimmung mit noch einer anderen Ausführungsform. Als eine Option kann der Synchronisierer 1200 in dem Zusammenhang der Funktionalität und Architektur von 111 implementiert sein. Natürlich kann jedoch der Synchronisierer 1200 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Mit Bezug auf die vorliegende Ausführungsform kann Fluss-Steuerung zwischen zwei Takt-Domänen bereitgestellt sein. Zum Beispiel sind Frequenz- und Phasen-Schätzer sowohl in dem Übermittler (transmitter) und Empfänger bereitgestellt. Die Phasen-Schätzer können ausgeweitet werden, Phase (report phase) in dem Bereich von 0–2 (in Zyklen) derart zu berichten, dass sie beschreiben, ob die andere Takt-Domäne in einem geraden oder ungeraden Zyklus ist und wo in diesem Zyklus der Takt ist. Der Übermittler passiert Daten durch ein Paar von Registern (Daten-Register) und der Empfänger passiert Fluss-Steuer-Information durch ein Paar von Registern (umgekehrte Umschalt-Register (reverse toggle registers)). Unter Benutzung der Phasen-Schätzung berechnet der Synchronisierer, wann der andere Takt in dem „Heraushalte”-Bereich für einen geraden oder ungeraden Zyklus ist. Ein Protokoll vermeidet ein Abtasten eines Registers, wenn in dem Heraushalte-Bereich für den Zyklus (gerade oder ungerade), während welchem es geschrieben wurde.
  • Mit Bezug auf die vorliegende Ausführungsform ist Fluss-Steuerung in dem Synchronisierer implementiert. Der Synchronisierer 1200 mit Fluss-Steuerung arbeitet dadurch, dass er den Übermittler alternierend ein Paar von Registern schreiben lässt, wie oben mit Bezug auf 9 beschrieben ist, aber indem der Übermittler pausiert, um ein Überschreiben der Register zu vermeiden, bevor sie von dem Empfänger angenommen sind, und um Schreiben von Registern zu vermeiden, wenn keine gültigen Daten verfügbar sind. Der Übermittler schaltet ein Bit in jedem Register um (Vorwärts-Umschaltregister), um zu signalisieren, wann neue Daten in das Register geschrieben worden sind. Der Empfänger schaltet alternierend ein Paar von Fluss-Steuer-Flip-Flops (umgekehrte Umschalt-Register) um, um zu signalisieren, wann die Übermittler-Daten empfangen sind. Der Empfänger kann ein Umschalten eines Flip-Flops aufgrund von Rückdruck von einer Fluss-Abwärts-Fluss-Steuerung verzögern (d. h. ein Nichtbereit-Signal). Der Übermittler weiß, dass der Empfänger einen Wert empfangen hat, wenn der Empfänger den entsprechenden Fluss-Steuer-Flip-Flop umgeschaltet hat.
  • In einer Ausführungsform ist ein Bereit/gültig-Fluss-Steuer-Protokoll benutzt. Der Übermittler kann optional nur ein Übermittlungs-Register aktualisieren, wenn gültige Daten verfügbar sind. Der Übermittler signalisiert stromaufwärts nicht bereit, wenn beide Register voll sind. Der Empfänger signalisiert ferner gültig heraus (valid out), wenn er ein neues Wort von dem Übermittler empfangen hat, welches noch nicht von der Stromabwärts-Logik empfangen worden ist, wie mittels ihrer Bereit-Eingabe signalisiert. Wenn die Bereit-Eingabe niedrig ist, braucht der Empfänger nicht ein gültiges Datenwort von dem Übermittler empfangen.
  • Um die Takt-Domäne kreuzungssicher zu machen (crossing safe), passiert der Übermittler das Umschalt-Bit des ta-Registers durch ein Paar von Registern (Vorwärts-Umschalt-Register), welche auf den geraden und ungeraden Takt-Zyklen aktualisiert sind (tae bzw. tao). Ähnlich wird das Umschalt-Bit von tb durch tbe und tbo passiert und die Empfangs-Umschalt-Register werden durch rae, rao, rbe und rbo passiert.
  • Der Empfänger schaut bei diesen synchronisierten Umschalt-Bits, um zu bestimmen, wann es sicher ist, ta oder tb abzutasten. Bei irgendeinem Zeitpunkt zeigt das rtptr-Bit an, ob der Empfänger sein nächstes Datenwort auf ta oder tb erwartet. In einer Ausführungsform, wo das nächste Wort auf ta ankommt, schaut der Empfänger bei dem Umschalt-Bit von ta nach, um zu sehen, ob ein neues Wort angekommen ist. Wenn er nicht in einem Heraushalte-Bereich ist, schaut er direkt bei tat nach (das Umschalt-Bit von ta). Wenn er in dem geraden (ungeraden) Heraushalte-Bereich ist, schaut er bei der Version von tat, synchronisiert bei dem ungeraden (geraden) Takt-Zyklus, tao (tae), nach.
  • Wenn ein Umschalten gesehen ist, wird rtptr umgeschaltet. Ein zweiter Zeiger, optr treibt den Ausgabe-Multiplexer, um zu entscheiden, welches von ta oder tb an die Empfänger-Ausgabe angewendet ist. Dieser Zeiger wird vorgerückt, wenn es gültige Daten in dem momentanen Register gibt und wenn die „Bereit”-Eingabe wahr ist, was anzeigt, dass die Stromabwärts-Logik die Daten empfangen kann. Wenn optr vorgerückt wird, wir das entsprechende Empfänger-Umschalt-Bit, ra oder rb, umgeschaltet, um zu signalisieren, dass die Daten empfangen worden sind. Um voll von leer zu unterscheiden, wenn rtptr = optr ist, hält ein rcount-Register die Zahl der Wörter, welche angekommen sind, aber noch nicht weiter passiert worden sind. Dieser Zähler wird inkrementiert, wenn rtptr vorgerückt wird, und dekrementiert, wenn optr vorgerückt wird. Wenn beide vorgerückt werden, bleibt er unverändert. Wenn rcount Null ist, dann wird die Empfänger-„gültig”-Ausgabe niedrig gesetzt.
  • 13 illustriert ein Zeitdiagramm des Betriebs des Synchronisierers mit Fluss-Steuerung, welcher in 12 gezeigt ist. Mit Bezug auf die vorliegende Ausführungsform läuft der Übermittler schneller als der Empfänger. Der Übermittler schreibt „ta” mit „a” auf seinen ersten geraden Zyklus und „tb” mit „b” auf seinen ersten ungeraden Zyklus. Diese Schreibvorgänge werden durch ein Umschalten von „tat” bzw. „tbt” widergespiegelt. Weil „optr” anfänglich auf 0 gesetzt ist, propagiert das „a” direkt zu der Ausgabe und wird mittels der ersten geraden Kante von rclk abgetastet. Nach Empfangen von „a” rückt rptr vor, um „b” auszuwählen (sobald es bereit ist) und „ra” schaltet um, um Empfang zu signalisieren.
  • Die Schaltung schreitet in dieser Weise mit jeder Kante von tclk einen neuen Wert einreihend (enqueueing) und jede Kante von rclk ihn ausreihend (dequeueing) fort. Man bemerke, dass die Einreihungen, welche die Übermittlungs-Register füllen, „tready” auf niedrig machen, bis die Empfänger-Kante, welche einen Wert ausreiht, erscheint. Die Heraushalte-Bereiche müssen groß genug sein, damit die tready- und rvalid-Signale sich stabilisieren vor ihren entsprechenden Takt-Kanten. Auf Zyklus 5 bleibt „tready” niedrig den ganzen Zyklus, weil das Umschalten von „rb”, um „d” anzunehmen, in dem Heraushalte-Bereich kommt, was dazu führt, dass der Übermittler einen Rückdruck anwendet, und die gültige Periode von „d” und „e” ist auf drei Zyklen erweitert. Dasselbe passiert mit dem Empfang von „f” auf Zyklus 8.
  • Übergänge von Übermittlungs-Signalen in dem Heraushalte-Bereich des Empfangs-Taktes (z. B. tat ansteigend bei dem Ende von Übermittlungs-Zyklus 2) und von Empfangs-Signalen in dem Heraushalte-Bereich des Übermittlungs-Taktes (z. B. rb ansteigend bei dem Ende von Empfänger-Zyklus 1) werden unter Benutzung einer Variante des einfachen Vorwärts-Synchronisierers, welcher oben beschrieben ist, gehandhabt. Das führt dazu, dass diese Übergänge bei der gefährlichen Kante ignoriert werden, aber dass sie dann auf der nächsten Kante des Abtast-Taktes sicher gesehen werden. Somit bleibt „tcount” bei „2” in Zyklen 6 und 9, selbst obwohl ein Wert empfangen worden ist und kein neuer Wert angekommen ist. Der Empfang erfolgt in dem Heraushalte-Bereich und somit braucht er nicht bis zum nächsten Zyklus gesehen werden.
  • 14 illustriert einen Phasen-Kreis 1400, welcher gerade und ungerade Heraushalte-Bereiche und einen Bereich zeigt, in welchem das gerade Register ausgewählt ist, in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der gerade/ungerade Vorwärts-Synchronisierer-Phasen-Kreis 1400 in dem Kontext der Funktionalität und Architektur von 113 implementiert sein. Zum Beispiel kann der Phasen-Kreis 1400 in dem Kontext des Vorwärts-Synchronisierers 9 von 9 implementiert sein. Natürlich kann jedoch der Phasen-Kreis 1400 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte wieder bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • In der vorliegenden Ausführungsform ist die Übermittler-Phase eine reelle Zahl in dem Bereich [0, 2), welche auf einem Phasen-Kreis wie in 14 gezeigt ist, visualisiert werden kann. Ungerade Takt-Zyklen haben eine Phase ϕ ∊ [0, 1), und gerade Takt-Zyklen haben ϕ ∊ [1, 2). Ein ungerader (gerader) Takt-Zyklus endet bei einer ungeraden (geraden) Takt-Kante und das Signal gerade ist hoch während gerader Takt-Zyklen (d. h., wenn ϕ ∊ [1, 2)). Um Synchronisations-Fehler zu vermeiden, tastet der Empfänger nicht das gerade (E)-Register während der geraden heraushalte-Periode ϕ ∊ [2 – x, x) ab und das O-Register ist während der ungeraden Heraushalte-Periode ϕ ∊ [1 – x, 1 + x) vermieden. Diese Heraushalte-Perioden sind mit Bezug auf die vorliegende Figur hellgrau schattiert. Das Heraushalte-Fenster mit Breite 2x repräsentiert die Aufstellung und Halte-Fenster des abtastenden Flip-Flops. Die Breite dieser Heraushalte-Bereiche ist in der Figur übertrieben. Ein typischer 40 nm Flip-Flop kann ein Heraushalte-Fenster von ungefähr 60 ps oder gerade 6% einer 1 GHz-Taktperiode haben.
  • Um unsere Regel eines Auswählens des am kürzlichsten geschriebenen Registers zu erfüllen, welches sicher abzutasten ist, wählt die Auswahl-Logik das gerade (E)-Register aus, wenn ϕ ∊ [x, 1 + x) wie durch den dunkelgrau schattierten Bogen in der Figur gezeigt ist. Das E-Register wird ausgewählt, sobald die Phase den geraden Heraushalte-Bereich bei ϕ = x klärt (clears). Das E-Register ist sicher während des großen mittelgrauen Bogens, welcher mit Bezug auf die vorliegende Figur gezeigt ist, abzutasten, ϕ ∊ [x, 2 – x) (überall außer der gerade Heraushalte-Bereich). Es ist jedoch nur das am kürzlichsten geschriebene sichere Register bis ϕ = 1 + x. Wenn ϕ ∊ [1 + x, x), ist das ungerade Register (O) das kürzlichst geschriebene sichere Register.
  • Um sicherzustellen, dass jeder Wert genau einmal abgetastet wird, ist ein Synchronisierer mit Fluss-Steuerung, wie etwa der FIFO-Synchronisierer, welcher unten mit Bezug auf 1516 beschrieben ist, erfordert. Soweit ist angenommen worden, dass der Empfänger die tclk-Phase, Φ, weiß. In Praxis benutzt der Empfänger eine Schätzung von tclk-Phase, p. Um den Schätzungs-Fehler, ,ε = |ϕ – p|, zu berücksichtigen, wird entweder ein Führungsband auf die Detektion des Heraushalte-Bereichs addiert oder die Phasen-Schätzung ist berechnet unter Benutzung einer Intervall-Arithmetik, wie unten mit Bezug auf 7 und Tabelle 9 beschrieben ist, gegeben eine Schrank auf ε. Wenn Intervall-Arithmetik benutzt wird, ist die Auswahl-Entscheidung unter Benutzung der niedrigeren Schranke der Phase (lp) getroffen, da dies immer das am kürzlichsten geschriebene Register auswählt, welches sicher abzutasten ist.
  • 15 illustriert einen FIFO-Synchronisierer 1500 unter Benutzung eines geraden/ungeraden Vorwärts-Synchronisierers in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der FIFO-Synchronisierer 1500 in dem Kontext der Funktionalität und Architektur von 114 implementiert sein. Natürlich kann jedoch der FIFO-Synchronisierer 1500 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte wieder bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Es sollte bemerkt sein, dass 15 und 16 eine Ausführungsform zum Messen der relativen Frequenz der zwei Takte und zum Benutzen dieser Schätzung beschreiben, um eine Phasen-Schätzung mit Fehler-Schranken zu erzeugen. Wie mit Bezug auf 15 gezeigt ist, ist der FIFO-Synchronisierer 1500 unter Benutzung von zwei E/O-Synchronisierern realisiert. Der FIFO benutzt einen Zwei-Port-Speicher, welcher synchron geschrieben ist und asynchron gelesen ist, um Daten in Übermittlung (data in transit) zu erhalten. Für kleine FIFOs ist dieser Speicher als ein Flip-Flop oder ein Latch-Feld implementiert. Größere FIFOs benutzen RAM oder Register-Datei-Makro.
  • Der FIFO-Speicher ist geschrieben und der Schwanz-Zeiger auf der ansteigenden Kante des Eingabe-Takts (iclk) inkrementiert, wenn Eingabe gültig (ivalid) wahr ist und voll falsch ist. Der Kopf-Zeiger wählt den Wert des Kopfes des FIFO, um bei dem Ausgabe-Port des Speichers zu erscheinen. Der Kopf-Zeiger inkrementiert auf der ansteigenden Kante des Ausgabe-Taktes (oclk), wenn leer falsch ist und Ausgabe beschäftigt (obusy) falsch ist. Der Schwanz-Zeiger und volle Logik sind in der iclk-Domäne und der Kopf-Zeiger und Leer-Logik sind in der oclk-Domäne.
  • Ein Paar von E/O-Synchronisierern bewegt die Kopf- und Schwanz-Zeiger zwischen den beiden Takt-Domänen. Ein Synchronisierer passiert den Schwanz-Zeiger von der iclk-Domäne an die oclk-Domäne und ein zweiter Synchronisierer passiert den Kopf-Zeiger von der oclk-domäne an die iclk-Domäne. Für den Schwanz-Synchronisierer tclk = iclk und rclk = oclk, während für den Kopf-Synchronisierer tclk = oclk und rclk = iclk. Jede dieser Synchronisierer umfasst die Logik, welche in 9 gezeigt ist, sowie die Frequenz- und Phasen-Abschätzungs-Logik, welche oben beschrieben ist.
  • 16 illustriert einen FIFO-Synchronisierer 1600, wobei ein Halten von geraden und ungeraden Versionen von Kopf- und Schwanz-Zeigern ferner FIFO-Latenz vermindert, in Übereinstimmung mit einer anderen Ausführungsform. Als eine Option kann der FIFO-Synchronisierer 1600 in dem Kontext der Funktionalität und Architektur von 115 implementiert werden. Natürlich kann jedoch der FIFO-Synchronisierer 1600 in irgendeiner gewünschten Umgebung implementiert werden. Wieder sollte es bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Ein Takt-Zyklus von Verzögerung kann dadurch vermieden werden, dass gerade und ungerade Versionen von den Kopf- und Schwanz-Zeigern gehalten sind, wie in 16 gezeigt ist. Während jedes Zyklus berechnet die Eingabe-Logik den nächsten Schwanz-Zeiger und speichert ihn in entweder dem E-Schwanz-Register (bei geraden Zyklen) oder dem O-Schwanz-Register (bei ungeraden Zyklen). Ein Multiplexer gesteuert durch ieven (Eingabe-Gerade) wählt immer das am kürzlichsten geschriebene Schwanz-Register auf das Schwanz-Signal, welches als die Schreib-Adresse zu benutzen ist. Ein zweiter Multiplexer, gesteuert von osel, dem Auswahl-Signal von einem E/O-Synchronisierer, wählt das am kürzlichsten geschriebene Schwanz-Register aus, welches sicher ist abzutasten, bei dem Ende des nächsten Ausgabe-Taktes auf Signal SchwanzO (Schwanz in der oclk-Domäne).
  • Das SchwanzO-Signal wird von der Ausgabe-Logik benutzt, um voll zu berechnen und den nächsten Kopf-Zeiger zu berechnen. In Betrieb hängt osel ieven nach, derart, dass ieven immer das am kürzlichsten geschriebene Schwanz-Register auswählt, während osel das ältere Register auswählen kann, wenn das am kürzlichsten geschriebene Register unsicher abzutasten ist. In einer ähnlichen Weise hält die Ausgabe-Sektion gerade und ungerade Kopf-Register und benutzt ein Paar von Multiplexern, um den momentanen Kopf-Zeiger (Kopf) und eine Version in der Eingabe-Takt-Domäne (KopfI) zu erzeugen.
  • Verglichen mit der herkömmlichen Zugangsweise eines Benutzens von brachiale-Gewalt-Synchronisierern, um Kopf- und Schwanz-Zeiger zwischen Takt-Domänen zu passieren, stellt Benutzen von geraden/ungeraden Synchronisierern eine größere Geschwindigkeit und Einfachheit bereit. Die Latenz des FIFO-Synchronisierers ist vermindert, weil der gerade/ungerade Synchronisierer eine Verzögerung von 0,5 Zyklen im Mittel hat, verglichen mit einem brachiale-Gewalt-Synchronisierer mit einer Verzögerung von 5 + 0,5-Zyklen (typischerweise 3,5 Zyklen), wobei S die Verzögerung eines brachiale-Gewalt-Synchronisierers ist. Das Design ist auch einfacher, weil die Kopf- und Schwanz-Zeiger in einer binären Form gehalten werden können. Mit herkömmlichen brachiale-Gewalt-Synchronisierern müssen die Zeiger grau kodiert sein, um zu verhindern, dass sich mehr als ein einzelnes Bit bei einer Zeit ändert.
  • 17A–D illustrieren verschiedene Phasen-Kreise in Übereinstimmung mit anderen Ausführungsformen. Als eine Option können die Phasen-Kreise in dem Kontext der Funktionalität und Architektur von 116 benutzt werden. Natürlich können jedoch Phasen-Kreise in irgendeiner gewünschten Umgebung benutzt werden. Es sollte noch wiederum bemerkt sein, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Um zu zeigen, dass die Synchronisierer korrekt arbeiten, ist es gezeigt, dass entweder (a) Detektionen oft genug erfolgen werden, dass ein plesiochroner Modus niemals eingetreten ist (d. h., dass es immer eine genaue Phasen-Schätzung geben wird), oder (b) wenn in dem plesiochronen Modus, eine Detektion (p ∊ [–d, d]) zumindest 5 + 1-Zyklen vor einem Heraushalte-Ereignis (p ∊ [–x, x]) erfolgt.
  • Wie in 17A gezeigt ist, wird eine sichere plesiochrone Synchronisierung erreicht. Für f < fg gibt es eine Detektion vor einem Fehler. In diesem Fall bewegt sich die Phase langsam genug in den Detektions-Bereich, welche Detektion zumindest A Zyklen stattfinden wird, bevor die Phase in das Heraushalte-Fenster eintritt, was Zeit gibt, die Detektion zu synchronisieren, die Phasen-Schätzung zu aktualisieren, und ein Abtasten des unsicheren Registers zu vermeiden. Wie auch gezeigt ist, ist die Phase Φ (radiale Linien) über acht Takt-Zyklen für einen kleinen Wert von f. Weil f < fg, ist die Phase in dem Detektions-Bereich für mehr als A Zyklen (sechs in der Figur), bevor der Auslass-Bereich eingetreten wird.
  • 17B zeigt einen Maximum-Detektions-Bereich. Für fg ≤ f < 2d tritt eine Detektion alle N = 1/f < A/g Zyklen auf, zumindest jedes Mal, wenn die Phase um den Einheits-Kreis rotiert. Solange wie 2–b < gk/2A, wird in den plesiochronen Modus nicht eingetreten, weil die Phasen-Schranken um nur 2–b g/2A zwischen Detektionen divergieren werden. Für die Zahlen unseres Beispiels haben wir z. B. gk/2A = (0,1)(0,5)/(2)(4) = 0,00625, und b = 8 Bits ist eine ausreichende Präzision. Weil f < 2d, kann die Phase nicht in den Detektions-Bereich „überspringen” und zumindest eine Detektion ist garantiert, erreicht zu werden, jedes Mal, wenn die Phase um den Einheits-Kreis rotiert. Weil f ≥ fg, wird diese Rotation höchstens 1/fg = A/g Zyklen brauchen. Wie in der vorliegenden Ausführungsform gezeigt ist, ist eine Detektion zumindest alle neun Zyklen.
  • Für f ≥ 2d können wir f als einen rationalen Anteil mit einem beschränkten Nenner plus einem Fehler-Ausdruck repräsentieren, f = N/D ± e, wobei D ≤ C = [1/2d]. Wie unten beschrieben ist, garantieren die Eigenschaften von Folgen von Anteilen mit beschränkten Nennern, genannt Farey-Folgen, dass eDC < 1. In diesem Fall ist ein Wiederholungs-Muster von D Punkten um den Phasen-Kreis bereitgestellt, welches sich um De jede D-Zyklus-Periode verschiebt. Dies ergibt dieselben zwei Fälle wie für f < 2d.
  • 17C zeigt einen nahezu rationalen Fall mit D = 4 und einer kleinen restlichen Frequenz De. Wenn De < g/A, ist die Phasen-Verschiebung jede Periode klein genug, so dass es eine Detektion vor Fehler gibt, dasselbe als wenn f < g/A. Dies ist in der vorliegenden Ausführungsform für D = 4 illustriert. Tatsächlich ist hier die Beschränkung ein bisschen leichter, weil D Zyklen jedes Mal vergehen, wenn eine der Phase „Gruppen” um De vorrückt, somit gibt es eine Detektion A Zyklen vor einem Heraushalte-Ereignis, solange De < g/[A/D], was eine schwächere Einschränkung ist.
  • 17D zeigt einen nahezu rationalen Fall mit D = 4 und einer großen restlichen Frequenz De. Wenn g/A ≤ De < 2d, dann wird eine Detektion alle 1/(De) < A/g Zyklen erreicht, so, wenn 2–b < gk/2A eine Detektion erfolgen wird, bevor zu viel Fehler akkumuliert ist. Die Anforderung an b ist hier genau dieselbe wie in dem g/A ≤ f < 2d Fall oben.
  • Es kann gezeigt werden, dass für f > 2d > 1/C, f immer repräsentiert werden kann als f = N/D ± e mit D ≤ C und eDC < 1. Man betrachte die Farey-Folge F(C), die Folge von rationalen Zahlen zwischen 0 und 1 mit Nennern D ≤ C. Für zwei angrenzende Zahlen von dieser Menge, p/q, r/s, wird es immer der Fall sein, dass r/s = (ps + 1)/qs, wobei q, s <= C und (ps + 1) = qr [7]. Dann ist der Abstand zwischen zwei angrenzenden Rationalen p/q und r/s 1/qs. Wir allozieren Werte von f zwischen p/q und p/q + 1/q(s + q) bis p/q und Zahlen von r/s – 1/s(s + q) bis r/s. Dann wissen wir e ≤ 1/q(s + q), eDC ≤ (1/q(s + q))qC = C/(s + q) < 1, weil s + q > C aufgrund der Eigenschaften von Farey-Folgen.
  • In anderen Ausführungsformen sind die zwei freien Synchronisierer-Parameter d und k. Gegeben einen Heraushalte-Bereich, 2x, was eine Eigenschaft der Synchronisierer-Flip-Flops ist, ergibt Auswählen von d den Wert des Führungsbandes, g = d – x, was wiederum die Zahl von Bits bestimmt, welche für die Frequenz- und Phasen-Schätzungen erfordert sind, 2–b< gk/2A, so b > lg(2A/gk). Wählen eines kleinen d und somit eines kleinen Führungsbandes ergibt eine präzisiere Phasen-Schätzung und vermindert somit Synchronisierer-Verzögerung aber auf Kosten eines Erforderns von mehr Bits in den Frequenz- und Phasen-Schätzern, um ein korrektes Verhalten sicherzustellen.
  • Wählen des Wertes von k gibt einen ähnlichen Kompromiss (tradeoff). Wählen eines kleinen k ergibt eine niedrigere mittlere Synchronisierer-Verzögerung, weil der Synchronisierer in den plesiochronen Modus (mit keiner Verzögerung) später eintreten wird. Wählen eines kleinen k erfordert jedoch auch mehr Bits von Präzision in den Schätzungen.
  • In einer beispielhaften Simulation kann Verilog-RTL-Modell des periodischen Synchronisierers, welcher oben beschrieben ist, konstruiert werden und zwei solche Synchronisierer können benutzt werden, um einen Fluss-gesteuerten FIFO zu erstellen, wie in 1617 beschrieben ist. Die Verzögerungs-Leitungen (delay lines) in den Phasen-Detektoren können verhaltensmäßig modelliert werden und alle Flip-Flops können mit Aufsetz- und Haltezeit-Prüfungen instrumentiert sein. Verilog-Simulationen können mit einem Takt fixiert bei 1 GHz und dem anderen Takt gesetzt auf 2000 beliebig gewählte Frequenzen zwischen 500 MHz und 2 GHz durchgeführt werden. In einer Ausführungsform ist die Phase der 1 GHz-Taktes langsam zurück und vor über einen Bereich von 1600 ps gestrichen, was bei einer Rate von 1 ps alle 10 Zyklen ändert, um sicherzustellen, dass alle relativen Takt-Phasen getestet wurden. Keine Zeitgebungs-Fehler können während solch einer Simulation detektiert werden.
  • 18 illustriert ein beispielhaftes System 1800, in welchem die verschiedene Architektur und/oder Funktionalität der verschiedenen vorherigen Ausführungsformen implementiert werden kann. Wie gezeigt ist, ist ein System 1800 bereitgestellt einschließlich zumindest eines Host-Prozessors 1801, welcher mit einem Kommunikations-Bus 1802 verbunden ist. Das System 1800 umfasst auch Hauptspeicher 1804. Steuer-Logik (Software) und Daten sind in dem Hauptspeicher 1804 gespeichert, welcher die Form eines Speichers mit willkürlichem Zugriff (RAM) annehmen kann.
  • System 1800 umfasst auch einen Grafik-Prozessor 1806 und Anzeige 1808, d. h. einen Computer-Monitor. In einer Ausführungsform kann der Grafik-Prozessor 1806 eine Mehrzahl von Schattierungs-Modulen, ein Raster-Modul, etc. umfassen. Jedes der vorangehenden Module kann auf einer einzelnen Halbleiter-Plattform situiert sein, um eine Grafik-Verarbeitungs-Einheit (GPU) zu bilden.
  • In der vorliegenden Erfindung bezieht sich eine einzelne Halbleiter-Plattform auf eine einzelne unitäre Halbleiter-basierte integrierte Schaltung oder Chip. Es sollte bemerkt werden, dass der Ausdruck einzelne Halbleiter-Plattform sich auch auf Mehr-Chip-Module mit erhöhter Konnektivität beziehen kann, welche Auf-Chip-Betrieb simulieren, und welche wesentliche Verbesserungen über ein Benutzen einer herkömmlichen Zentral-Verarbeitungs-Einheit (CPU) und Bus-Implementierung machen. Natürlich können die verschiedenen Module separat oder in verschiedenen Kombinationen von Halbleiter-Plattformen nach den Wünschen des Benutzers situiert sein.
  • Das System 1800 kann auch einen sekundären Speicher 1810 umfassen. Der sekundäre Speicher 1810 umfasst z. B. ein Festplatte-Laufwerk und/oder ein entfernbares Speicher-Laufwerk, ein Floppy-Disk-Laufwerk repräsentierend, ein Magnetband-Laufwerk, ein Kompaktdisk-Laufwerk, etc. Das entfernbare Speicher-Laufwerk liest von und/oder schreibt auf eine entfernbare Speicher-Einheit in einer wohl bekannten Weise.
  • Computer-Programme, Computer-Steuerlogik-Algorithmen können in dem Hauptspeicher 1804 und/oder dem sekundären Speicher 1810 gespeichert sein. Solche Computer-Programme, wenn ausgeführt, setzen das System 1800 in die Lage, verschiedene Funktionen durchzuführen. Speicher 1804, Speicher 1810 und irgendein anderer Speicher sind mögliche Beispiele von Computer-lesbaren Medien.
  • In einer Ausführungsform kann die Architektur und/oder Funktionalität der verschiedenen vorherigen Figuren in dem Zusammenhang des Host-Prozessors 1801, Grafik-Prozessor 1806, einer integrierten Schaltung (nicht gezeigt), welche zumindest für einen Teil von den Fähigkeit von sowohl dem Host-Prozessor 1801 und dem Grafik-Prozessor 1806 in der Lage ist, ein Chip-Satz (d. h. eine Gruppe von integrierten Schaltungen, welche ausgelegt sind, als eine Einheit zum Durchführen betreffender Funktionen, etc. zu arbeiten und verkauft zu werden), und/oder irgendeiner anderen integrierten Schaltung für diesen Zweck implementiert sein.
  • Noch weiter kann die Architektur und/oder Funktionalität der verschiedenen vorherigen Figuren in dem Kontext eines Allgemein-Computer-Systems, eines Schaltungsplatte-Systems, eines Spielkonsole-Systems, welches für Unterhaltungszwecke dediziert ist, eines Anwendungs-spezifischen Systems, und/oder irgendeines anderen gewünschten Systems implementiert sein. Zum Beispiel kann das System 1800 die Form eines Schreibtisch-Computers, Laptop-Computers und/oder irgendeinen anderen Typ von Logik annehmen. Noch weiter kann das System 1800 die Form von verschiedenen anderen Geräten m annehmen, einschließlich, aber nicht darauf beschränkt, ein persönlicher-digitaler-Assistent-(PDA)-Gerät, ein mobiles Telefongerät, ein Fernseher, etc.
  • Ferner, während es nicht gezeigt ist, kann das System 1800 an ein Netzwerk (z. B. ein Telekommunikations-Netzwerk, Lokalbereichs-Netzwerk (LAN), drahtloses Netzwerk, Fernbereichs-Netzwerk (WAN), wie etwa das Internet, Peer-to-Peer-Netzwerk, Kabel-Netzwerk, etc.) für Kommunikations-Zwecke gekoppelt sein.
  • Wie zuvor in dem Zusammenhang mit 14 erläutert ist, wenn eine genaue Phasen-Schätzung bestimmt ist, garantiert das System klarerweise eine sichere Synchronisation. In Praxis benutzt der Empfänger eine Schätzung von tclk-Phase p. Um den Schätzungs-Fehler, ε = |ϕ – p| zu berücksichtigen, kann die Phasen-Schätzung unter Benutzung von Intervall-Arithmetik berechnet werden, wie zuvor mit Bezug auf 7 und Tabelle 9 beschrieben ist, gegeben eine Schranke an ε. Wenn Intervall-Arithmetik benutzt wird, wird die Auswahl-Entscheidung zwischen dem geraden und dem ungeraden Register unter Benutzung der niedrigeren Schranke der Übermittlungs-Phase (lp) gemacht, da dies immer das am kürzesten geschriebene Register auswählt, welches sicher abzutasten ist. Eine obere Schranke der Übermittlungs-Phase (up) wird auch berechnet.
  • Tabelle 9 illustriert ein Beispiel von Verilog-Code, welcher benutzt werden kann zum Aktualisieren der oberen und unteren Phasen-Schätzung (up bzw. lp) unter Benutzung des Phasen-Detektors 540 in 5E. Es sollte natürlich bemerkt werden, dass der in Tabelle 9 ausgeführte Code nur für illustrative Zwecke ausgeführt ist und somit nicht interpretiert werden sollte, in irgendeiner Weise zu begrenzen. Tabelle 9
    Figure DE102013221678A1_0003
  • Bei der Abtastzeit ist bekannt, dass die Übermittlungs-Phase ϕ ∊ [lp, up], und wenn lp ∊ [x, 1 + x], dann ist das gerade Register sicher abzutasten. Anderenfalls ist das ungerade Register sicher abzutasten. Wenn jedoch up – lp > 1 – 2x, ist die Phasen-Schätzung nicht länger nützlich und weder das gerade noch das ungerade Register ist sicher abzutasten. Anstatt den Synchronisierer im plesiochronen Modus zu betreiben, wie vorher beschrieben, wenn up – lp > 1 – 2x ist, ist der Synchronisierer konfiguriert, weder das gerade noch das ungerade Register auszuwählen und stattdessen die zuvor ausgewählte Probe bei der Ausgabe zu halten. Wenn eine Schwellwert-Anzahl von rclk-Zyklen vorübergegangen ist, ohne dass entweder das gerade oder das ungerade Register ausgewählt ist, kann dann der Synchronisierer in dem plesiochronen Modus arbeiten.
  • Ein Aufrechterhalten der vorherigen Probe bei der Ausgabe des Synchronisierers statt eines Übergehens, in einem plesiochronen Modus zu arbeiten, erlaubt dem Synchronisierer, Signale zwischen den Übermittlungs- und Empfangs-Takt-Domänen mit weniger Latenz zu übertragen, wenn ein Takt-Flattern (clock jitter) für einen oder mehrere Takt-Zyklen ansteigt, was dazwischen kommende Fehler in der Phasen-Schätzung erzeugt. Mit anderen Worten wird ein zuvor abgetasteter Wert, welcher gültig ist, aufrechterhalten, während sich der Phasen-Schätzer von einer zeitweisen Bedingung erholt, welche dazu führte, dass die Phasen-Schätzung ungenau ist. Der Synchronisierer kann die Anzahl von Empfangs-Takt-Zyklen nachverfolgen, für welche weder das ungerade noch das gerade Register ausgewählt ist, abgetastet zu werden. Obwohl der Synchronisierer in Ausdrücken eines ungeraden Registers und eines geraden Registers beschrieben worden ist, können zusätzliche Register umfasst sein, welche Signale speichern, welche den verschiedenen relativen Phasen relativ zu dem Übermittlungs-Takt entsprechen.
  • 19A illustriert ein Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne unter Benutzung einer Phasen-Schätzung in Übereinstimmung mit noch einer anderen Ausführungsform. Wie in Operation 1905 gezeigt ist, wird eine relative Frequenz-Schätzung zwischen einer zweiten Takt-Domäne (tclk) und einer ersten Takt-Domäne (rclk) unter Benutzung eines Frequenz-Schätzers berechnet. Mit Bezug auf die vorliegende Beschreibung kann die Frequenz-Schätzung in der Weise berechnet werden, wie oben mit Bezug auf Operation 102 von 1 beschrieben ist. Der Frequenz-Schätzer 400, welcher in 4 gezeigt ist, kann benutzt werden, um die relative Frequenz-Schätzung f zu berechnen, welche die Frequenz des Übermittlungs-Taktes relativ zu dem Empfangs-Takt anzeigt. In einer alternativen Ausführungsform kann die relative Frequenz-Schätzung bekannt sein oder in einer anderen Weise bestimmt sein, in welchem Fall die relative Frequenz-Schätzung bei Schritt 1905 bereitgestellt ist.
  • Wie ferner in Operation 1906 gezeigt ist, wird eine Phasen-Schätzung der ersten Takt-Domäne basierend auf der relativen Frequenz-Schätzung unter Benutzung eines Phasen-Schätzers berechnet. In einer Ausführungsform, wie zuvor im Zusammenhang mit den Phasen-Detektoren 500, 510 und 540 und dem vier-Probe-Phasen-Detektor 520 beschrieben ist, kann eine Phase der ersten Takt-Domäne unter Benutzung von frühen und späten Proben detektiert werden und kann von der ersten Takt-Domäne relativ zu der zweiten Takt-Domäne sein.
  • In einer anderen Ausführungsform kann die Phasen-Schätzung basierend auf der Phasen-Detektion berechnet werden. Zum Beispiel kann eine b-Bit-laufende-Schätzung der Phase der ersten Takt-Domäne aufrechterhalten werden relativ zu der zweiten Takt-Domäne, wie vorher im Zusammenhang mit dem Kalibrator 530 beschrieben ist, welcher das Detektions-Intervall, d, misst.
  • In einer weiteren Ausführungsform sollte auf eine Detektion hin, die Phase der ersten Takt-Domäne auf f(S + 1) gesetzt werden, wobei ein zusätzlicher Zyklus zu S hinzugefügt wird (die Verzögerung des Synchronisierers), um die Phasen-Schätzung einen Zyklus bevor sie auftritt, vorherzusagen. Die Phase der ersten Takt-Domäne, welche oben beschrieben ist, kann auf f(S + 1) gesetzt werden, so dass die Phasen-Schätzung die Phase der ersten Takt-Domäne bei einer nächsten ansteigenden Flanke der zweiten Takt-Domäne vorhersagt. Zum Beispiel kann die Phasen-Schätzung die Phase innerhalb von geraden Zyklen und ungeraden Zyklen der ersten Takt-Domäne kodieren. Wenn die Phase nicht detektiert wird, kann die Phasen-Schätzung um die relative Frequenz der ersten Takt-Domäne während jedes Zyklus der zweiten Takt-Domäne inkrementiert werden, um eine laufende Phasen-Schätzung aufrechtzuerhalten.
  • Wie in Operation 1907 gezeigt ist, wird eine Bestimmung dahingehend getroffen, ob ein Signal von der ersten Takt-Domäne sicher mittels der zweiten Takt-Domäne abgetastet werden kann, um ein abgetastetes Signal in der zweiten Takt-Domäne zu erzeugen. Wenn der Vorwärts-Synchronisierer 900 benutzt ist und up – lp > 1 – 2x, ist die Phasen-Schätzung nicht länger nützlich und weder das gerade noch das ungerade Register ist sicher abzutasten. Wenn ähnlich ein Synchronisierer, welcher konfiguriert ist, zwischen mehreren Registern auszuwähen, welche das Signal von der ersten Takt-Domäne bei verschiedenen Phasen-Verschiebungen speichern, benutzt ist und up – lp > (N – 1) – 2x, wobei N die Anzahl von mehreren Registern ist, ist die Phasen-Schätzung nicht länger brauchbar.
  • Wenn bei Operation 1907 basierend auf der Phasen-Schätzung bestimmt ist, dass eine Zeit, während welcher ein Signal von der ersten Takt-Domäne ungeändert ist, derart, dass das Signal in der Lage ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden, dann wird in Operation 1908 das Signal von der ersten Takt-Domäne mittels der zweiten Takt-Domäne abgetastet, um ein abgetastetes Signal zu erzeugen. Nachdem das abgetastete Signal erzeugt ist, kehrt das Verfahren zu Operation 1906 zurück und berechnet eine aktualisierte Phasen-Schätzung.
  • Phasen-Schätzung p wird jedes Mal zurückgesetzt, zu der die Phasen-Detektions-Logik anzeigt, dass ein Übergang von tclk innerhalb eines Zyklus von rlk aufgetreten ist. Insbesondere wird die Phasen-Schätzung auf [–d, d] zurückgesetzt, und das gerade Bit (msb) wird gesetzt, wenn eine gerade Kante detektiert wurde. Dann wird die Phasen-Schätzung in der Zeit um S + 1 Zyklen vorgerückt. Wenn ein Übergang nicht aufgetreten ist, wird die Phase um f inkrementiert, was die relative Frequenz von tclk jeden Zyklus von rclk anzeigt. Die Zeit, während welcher die Übermittlungs-Phase in dem Heraushalte-Bereich ist, kann dadurch genauer detektiert werden, dass obere und untere Schranken auf der Phasen-Schätzung up und lp aufrechterhalten sind, wie in Tabelle 9 gezeigt ist.
  • Wenn bei Operation 1907 bestimmt ist, basierend auf der Phasen-Schätzung, dass sich das Signal von der ersten Takt-Domäne derart ändert, dass das Signal nicht in der Lage ist, sicher abgetastet zu werden mittels der zweiten Takt-Domäne, dann wird bei Operation 1909 das abgetastete Signal in der zweiten Takt-Domäne aufrechterhalten. In anderen Worten wird das Signal von der ersten Takt-Domäne nicht abgetastet und das vorige abgetastete Signal von der ersten Takt-Domäne, welches in der zweiten Takt-Domäne abgetastet wurde, wird gehalten.
  • 19B synchronisiert einen Vorwärts-Synchronisierer 1910 in Übereinstimmung mit noch einer anderen Ausführungsform. Es sollte bemerkt sein, dass zusätzlich zu der Auswahl-Einheit 1916 ein Phasen-Detektor und ein Phasen-Schätzer auch in dem Vorwärts-Synchronisierer 1910 umfasst sein können. Zum Beispiel kann der Vorwärts-Synchronisierer 1910 zwischen dem System, welches mit der ersten Takt-Domäne assoziiert ist, und dem System, welches mit der zweiten Takt-Domäne assoziiert ist, zum Synchronisieren von Signalen zwischen der ersten Takt-Domäne und der zweiten Takt-Domäne implementiert sein (z. B. zum Synchronisieren des Abtastens des Signals mittels der zweiten Takt-Domäne von der ersten Takt-Domäne). Wie unten beschrieben ist, kann solch eine Synchronisierung basierend auf der berechneten Phasen-Schätzung durchgeführt werden.
  • Als eine Option kann der Vorwärts-Synchronisierer 1910 innerhalb des Zusammenhangs und der Funktionalität und Architektur von 12 und 48 implementiert sein. Natürlich kann jedoch der Vorwärts-Synchronisierer 1910 in irgendeiner gewünschten Umgebung implementiert sein. Es sollte auch bemerkt werden, dass die zuvor erwähnten Definitionen während der vorliegenden Beschreibung gelten können.
  • Mit Bezug auf die vorliegende Ausführungsform können Beschränkungen, welche mit einem Abtasten einer verzögerten Version des Signals assoziiert sind, vermieden werden. Um ein Mehr-Bit-Signal von der Übermittlungs-Takt-Domäne zu der Empfangs-Takt-Domäne ohne Flusssteuerung weiterzuleiten, schreibt der Übermittlungstakt ein Paar von Registern auf alternierenden Zyklen. Zum Beispiel wird Register 1912 auf geraden Zyklen geschrieben (bei dem Ende des geraden Zyklus aktualisiert) und Register 1911 wird auf ungeraden Zyklen geschrieben (bei dem Ende des ungeraden Zyklus aktualisiert). Ein gerades Eingabe-Signal aktiviert das Register 1912 bei geraden Zyklen und aktiviert das Register 1911 bei ungeraden Zyklen.
  • Die Phasen-Schätzung wird mittels der Auswahl-Einheit 1916 benutzt, um das am kürzlichsten geschriebene Übermittlungs-Register auszuwählen, welches „sicher” in der Empfangs-Takt-Domäne abzutasten ist (bei dem Ende des momentanen rclk-Zyklus). Die Phasen-Schätzung kann lp- und up-Werte umfassen, und wenn weder das Register 1912 noch das Register 1911 „sicher” ist abzutasten, stellt die Auswahl-Einheit 1916, dass „nichts” Ausgabe-Signal fest und das Ausgabe-Register 1915 ist nicht in die Lage versetzt, das ausgewählte Signal abzutasten. Die Auswahl ist basiert auf der vorhergesagten tclk-Phase, p, bei dem Ende des momentanen rclk-Zyklus. Auf jedem Empfangs-Takt wird Register 1911 ausgewählt, wenn die Übermittlungs-Takt-Phase zwischen e, x und o, x ist, wobei sich e auf den geraden Zyklus bezieht und wobei x der „Heraushalte”-Rand ist. Anderenfalls wird das Register 1912 ausgewählt. Die Verzögerung des Vorwärts-Synchronisierers 1910 wird zwischen 0, x und 1, x abhängig von der Phase mit einem Mittel von 0,5 ± 0, x variieren.
  • Während die vorliegende Ausführungsform mit Bezug auf gerade und ungerade Takt-Zyklen und zwei Register beschrieben worden ist, sollte es bemerkt werden, dass in anderen Ausführungsformen irgendeine Anzahl von Takt-Zyklen und Registern benutzt werden kann. Somit können Takt-Zyklen Modulo N gekennzeichnet werden und N Register können eingesetzt werden. Erhöhen der Anzahl von Registern erlaubt sehr große Heraushalte-Bereiche (z. B. größer als ein einzelnes UI).
  • Wie in 19B gezeigt ist, und mit Bezug auf die Übermittler-Seite, wird „tdata” alternierend in das 1912 und das 1911 Register auf jedem Zyklus von „tclk” geschrieben. Auf der Empfänger-Seite bestimmt die Auswahl-Einheit 1916, welches der zwei Register ausgewählt ist, um das ausgewählte Signal 1917 auszugeben. Die Auswahl-Einheit 1916 kann diese Entscheidung auf der Phasen-Schätzung des Übermittler-Taktes basieren, welche mittels der Frequenz- und Phasen-Abschätzungs-Logik (nicht gezeigt) erzeugt ist.
  • 19C illustriert ein Synchronisierer-Zustands-Diagramm 1930 in Übereinstimmung mit dem Betrieb des Vorwärts-Synchronisierers, welcher in 19B gezeigt ist. Auf eine Initialisierung hin kann der Vorwärts-Synchronisierer 1910 durch verschiedene unterschiedliche Zustände durchgehen. Tabelle 10 zeigt die optionalen Zustände des Vorwärts-Synchronisierers 1910 während Initialisierung. Natürlich sollte es bemerkt werden, dass solche Zustände nur für illustrative Zwecke ausgeführt sind und somit nicht betrachtet werden sollten, in irgendeiner Weise zu begrenzen. Tabelle 10
    R Zurücksetzen Starte Frequenz-Messprozess
    FA Frequenz-Erfassung Warte darauf, dass die Frequenz-Messung vollendet Zeichne auf, wenn eine Phasen-Detektion während dieser Periode erfolgt Wenn keine Phasen-Detektion → Plesiochron
    PA Phase-Erfassung Warte auf Phasen-Detektion Auszeit → Plesiochron
    T Nachverfolgung Verfolge abgeschätzte Phase nach Altere Phase, bis nächste Detektion Wenn up – lp > 1 – 2x → wähle nichts aus Wenn sich Frequenz um mehr als Schwellwert ändert → brachiale-Gewalt
    SN Wähle nichts aus Keines der Register werden abgetastet und das zuvor abgetastete Signal wird aufrechterhalten Wenn Phase zu alt wird → Plesiochron Wenn das Signal sicher abgetastet warden kann → Nachverfolgen Wenn sich Frequenz um mehr als Schwellwert ändert → brachiale-Gewalt
    M Plesiochron Arbeite im plesiochronen Modus Schaue nach Phasen-Detektion Wenn Phase-Detektion → Nachverfolgen Wenn sich Frequenz um mehr als einen Schwellwert ändert → brachiale-Gewalt
    B Brachiale-Gewalt Wende sich dahin, einen brutale-Gewalt-Synchronisierer zu benutzen Nötig, verschiedene stabile Frequenz-Messungen zu sehen, um auf FA zurückzukehren
  • Wie mit Bezug auf 19C beschrieben ist, tritt auf ein Zurücksetzen hin der Vorwärts-Synchronisierer 1910 in den Frequenz-Erfassungs-(FA)-Zustand ein und startet sein Paar von Zählern, die Frequenz des „anderen” Taktes zu messen. Während er in dem FA-Zustand ist, prüft der Vorwärts-Synchronisierer 1910, um zu sehen, ob es eine Phasen-Detektion gibt (Phase, welche in den Detektionsbereich fällt), nachdem eine terminale Zähl-Zahl erreicht ist und das Signal tc festgestellt ist.
  • Sobald die Frequenz erfasst ist, wird in den Phasen-Erfassungs-(PA)-Zustand eingetreten und der Vorwärts-Synchronisierer 1910 wartet auf eine Phasen-Detektion (pd). Bei diesem Punkt sind eine Frequenz-Schätzung, f, und eine Phasen-Schätzung, p, bestimmt worden. Wenn ein Signal in der Lage ist, sicher abgetastet zu werden, wird keines negiert, der Nachverfolgungs-Zustand (T) wird eingetreten. Wenn das Signal nicht fähig ist, sicher abgetastet zu werden, wird nichts bestimmt (none is asserted) und der Wähle-Nichts-Zustand (SN) wird eingetreten. Wenn in dem Zustand SN, wenn es keine Phasen-Detektion gibt (z. B. eine Auszeit erfolgt), sind die zwei Takte rational aufeinander bezogen (f = N/D) (oder nahezu rational aufeinander bezogen) mit einer Phasen-Verschiebung, so dass die D Treffer um den Phasen-Kreis außerhalb des Detektions-Bereichs bleiben. In diesem Fall wird in den M-Zustand eingetreten, da die Phasen-Genauigkeit garantiert ist, langsam genug zu sein, dass sie detektiert wird, bevor ein Fehler auftritt. Wenn in dem Zustand SN, wenn es eine Phasen-Detektion gibt und nichts negiert ist, wird in den Zustand T eingetreten.
  • In den Zuständen T und SN aktualisiert der Vorwärts-Synchronisierer 1910 die Phasen-Schätzung jeden Zyklus und unternimmt geeignete Aktionen, wenn der Vorwärts-Synchronisierer 1910 detektiert, dass die Phasen-Schätzung innerhalb eines Heraushalte-Bereiches ist. Die Anzahl von Zyklen seit der letzten Phasen-Detektion wird in dem Zustand SN gezählt und wenn diese Zahl einen vorbestimmten Wert übersteigt, wird ein Signal bestimmt bzw. festgestellt und die Phasen-Schätzung ist nicht länger zuverlässig und der Vorwärts-Synchronisierer 1910 tritt in den plesiochronen (M) Zustand ein. Die Anzahl von Zyklen kann an einen Software-Treiber berichtet werden.
  • Betrieb in T-Zustand hängt von der Frequenz ab, welche konstant oder nahezu konstant ist. Um sicher zu sein (z. B. für Situationen, wo Frequenz sich während kurzer Zeitperioden ändern kann, wie etwa wenn zwischen Energiezuständen gewechselt wird), kann die Frequenz-Messschaltung kontinuierlich arbeiten und ihre Messung mit der momentanen Schätzung vergleichen. Wenn eine Änderung in einer Takt-Frequenz größer als ein Schwellwert ist, kann der Vorwärts-Synchronisierer 1910 zurückfallen in den brachiale-Gewalt-Modus und in den brachiale-Gewalt-Zustand (B) eintreten.
  • Der Vorwärts-Synchronisierer 1910 kann optional benutzt werden, wo beide der Takte periodisch sind, oder wo Abweichungen von einem periodischen Verhalten explizit signalisiert werden (z. B. ein „nicht-periodisches” Signal löst einen brachiale-Gewalt-Modus auf, bevor die Takte beginnen, unvorhersagbar zu variieren). Auf diese Weise kann eine Detektion einer Frequenz-Änderung, welche zu langsam ist, wodurch mehrere unsichere Abtastungen zwischen der Takt-Domäne in der Lage sind, gemacht zu werden, vor Detektion einer Änderung, vermieden werden.
  • Während verschiedene Ausführungsformen beschrieben worden sind, sollte es verstanden sein, dass sie nur als ein Beispiel präsentiert worden sind und nicht als eine Begrenzung. Somit sollte die Breite und der Geltungsbereich der bevorzugten Ausführungsformen nicht durch irgendeine der oben beschriebenen exemplarischen Ausführungsformen begrenzt sein, sondern sollte nur in Übereinstimmung mit den folgenden Ansprüchen und ihren Äquivalenten definiert sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • „The Even/Odd Synchronizer: A Fast, All-Digital, Periodic Synchronizer” von William J. Dally und Stephen G. Tell, Asynchronous Circuits and Systems, International Symposium, Seiten 75–84, 2010 IEEE Symposium an Asynchronous Circuits and Systems, 2010 [0032]

Claims (20)

  1. Verfahren, aufweisend: Berechnen einer Phasen-Schätzung einer ersten Takt-Domäne basierend auf einer relativen Frequenz-Schätzung zwischen einer zweiten Takt-Domäne und der ersten Takt-Domäne; Bestimmen, basierend auf der Phasen-Schätzung, einer ersten Zeit, während welcher ein Signal von der ersten Takt-Domäne derartig ungeändert ist, dass das Signal fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden; Erzeugen, während der ersten Zeit, eines ersten abgetasteten Signals in der zweiten Takt-Domäne; Berechnen einer aktualisierten Phasen-Schätzung; Bestimmen, basierend auf der aktualisierten Phasen-Schätzung, einer zweiten Zeit, während welcher sich das Signal von der ersten Takt-Domäne derart ändert, dass das Signal nicht fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden; und Halten, während der zweiten Zeit, des ersten abgetasteten Signals in der zweiten Takt-Domäne.
  2. Verfahren gemäß Anspruch 1, wobei die Phasen-Schätzung ein Intervall ist, welches eine obere Schranke und eine untere Schranke umfasst.
  3. Verfahren gemäß Anspruch 2, wobei der Schritt eines Bestimmens der zweiten Zeit, während welcher sich das Signal von der ersten Takt-Domäne derart ändert, dass das Signal nicht fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden, aufweist Bestimmen, dass ein Unterschied zwischen der oberen Schranke und der unteren Schranke einen Schwellwert übersteigt.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Phasen-Schätzung während jedem einer Mehrzahl von Takten der zweiten Takt-Domäne inkrementiert wird.
  5. Verfahren gemäß irgendeinem der Ansprüche 1 bis 4, wobei die Phasen-Schätzung eine Phase innerhalb gerader Zyklen und ungerader Zyklen der ersten Takt-Domäne kodiert.
  6. Verfahren gemäß irgendeinem der Ansprüche 1 bis 5, ferner aufweisend Scheitern daran, eine Takt-Kante in der ersten Takt-Domäne während eines Zyklus der zweiten Takt-Domäne zu detektieren, und wobei das Berechnen der aktualisierten Phasen-Schätzung aufweist Inkrementieren der Phasen-Schätzung um die relative Phasen-Schätzung.
  7. Verfahren gemäß irgendeinem der Ansprüche 1 bis 6, ferner aufweisend Detektieren einer Takt-Kante in der ersten Takt-Domäne während eines Zyklus der zweiten Takt-Domäne, und wobei das Berechnen der aktualisierten Phasen-Schätzung aufweist Setzen der aktualisierten Phasen-Schätzung gleich einem Detektions-Intervall.
  8. Verfahren gemäß irgendeinem der Ansprüche 1 bis 7, ferner aufweisend Inkrementieren einer Zähl-Zahl von Zyklen, für welche das Signal nicht fähig ist, sicher abgetastet zu werden.
  9. Verfahren gemäß Anspruch 8, ferner aufweisend: Bestimmen, dass die Zähl-Zahl von Zyklen einen vorbestimmten Wert übersteigt, und Betreiben in einem plesiochronen Modus.
  10. Verfahren gemäß einem der Ansprüche 1 bis 9, wobei die aktualisierte Phasen-Schätzung anzeigt, dass eine Takt-Kante in der ersten Takt-Domäne innerhalb eines Heraushalte-Bereiches liegt, innerhalb dessen das Signal nicht sicher mittels der zweiten Takt-Domäne abgetastet werden kann.
  11. Verfahren gemäß einem der Ansprüche 1 bis 10, wobei Berechnen der Phasen-Schätzung ferner aufweist Kompensieren von Synchronisierer-Verzögerungen mittels eines Anwendens einer oberen Schranke auf ein Detektions-Signal, welches mit der Phasen-Schätzung assoziiert ist.
  12. Verfahren gemäß einem der Ansprüche 1 bis 11, wobei die Phasen-Schätzung unter Benutzung von Intervall-Arithmetik berechnet ist, um eine präzise Fehler-Schranke auf einer Phase aufrechtzuerhalten, welche mit der Phasen-Schätzung assoziiert ist.
  13. Verfahren gemäß einem der Ansprüche 1 bis 12, wobei die erste Takt-Domäne aufeinanderfolgend auf eine Mehrzahl von Registern auf aufeinander folgenden Zyklen schreibt und wobei die zweite Takt-Domäne die Phasen-Schätzung benutzt, um ein am kürzlichsten geschriebenes Register der Mehrzahl von Registern auszuwählen, welches sicher in der zweiten Takt-Domäne abzutasten ist.
  14. Verfahren gemäß Anspruch 13, wobei die Mehrzahl von Registern nur zwei Register aufweist.
  15. Verfahren gemäß Anspruch 13, wobei die alternierenden Zyklen einen geraden Zyklus und einen ungeraden Zyklus umfassen, derart, dass ein erstes der Mehrzahl von Registern während des geraden Zyklus geschrieben wird und ein zweites der Mehrzahl von Registern während des ungeraden Zyklus geschrieben ist.
  16. Verfahren gemäß einem der Ansprüche 1 bis 15, wobei ein FIFO-Synchronisierer dadurch realisiert ist, dass eine Mehrzahl von geraden/ungeraden Synchronisierern benutzt wird, um einen Schwanz-Zeiger in eine Ausgabe-Takt-Domäne und einen Kopf-Zeiger in eine Eingabe-Takt-Domäne zu passieren.
  17. Verfahren gemäß Anspruch 16, wobei ein gerader Schwanz-Zeiger, ein ungerader Schwanz-Zeiger, ein gerader Kopf-Zeiger und ein ungerader Kopf-Zeiger benutzt werden mittels: eines Berechnens des geraden Schwanz-Zeigers auf geraden Zyklen eines Eingabe-Taktes und Berechnens des ungeraden Schwanz-Zeigers auf ungeraden Takt-Zyklen des Eingabe-Taktes; und eines Speicherns des berechneten geraden Schwanz-Zeigers in einem geraden Schwanz-Register bei den geraden Takt-Zyklen des Eingabe-Taktes und Speicherns des berechneten ungeraden Schwanz-Zeigers in einem ungeraden Schwanz-Register bei den ungeraden Takt-Zyklen des Eingabe-Taktes.
  18. System, aufweisend: einen Phasen-Schätzer, welcher konfiguriert ist, um: eine Phasen-Schätzung der ersten Takt-Domäne basierend auf einer relativen Frequenz-Schätzung zwischen einer zweiten Takt-Domäne und der ersten Takt-Domäne zu berechnen, und für jeden Zyklus in der zweiten Takt-Domäne eine aktualisierte Phasen-Schätzung zu berechnen; und einen Synchronisierer, welcher mit dem Phasen-Schätzer gekoppelt ist und konfiguriert ist, um: basierend auf der Phasen-Schätzung eine erste Zeit zu bestimmen, während welcher ein Signal von der ersten Takt-Domäne ungeändert ist, derart, dass das Signal fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden, während der ersten Zeit ein erstes abgetastetes Signal in der zweiten Takt-Domäne zu erzeugen, basierend auf der aktualisierten Phasen-Schätzung eine zweite Zeit zu bestimmen, während welcher sich das Signal von der ersten Takt-Domäne ändert, derart, dass das Signal nicht fähig ist, sicher mittels der zweiten Takt-Domäne abgetastet zu werden, und während der zweiten Zeit das erste abgetastete Signal in der zweiten Takt-Domäne zu halten.
  19. System gemäß Anspruch 18, wobei die Phasen-Schätzung ein Intervall ist, welches eine obere Schranke und eine untere Schranke umfasst.
  20. System gemäß Anspruch 18 oder 19, wobei die Phasen-Schätzung während jedem einer Mehrzahl von Zyklen der zweiten Takt-Domäne inkrementiert wird.
DE201310221678 2012-11-12 2013-10-24 System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne Granted DE102013221678A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/674,864 US8964919B2 (en) 2009-11-30 2012-11-12 System and method for determining a time for safely sampling a signal of a clock domain
US13/674,864 2012-11-12

Publications (1)

Publication Number Publication Date
DE102013221678A1 true DE102013221678A1 (de) 2014-05-15

Family

ID=50556037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201310221678 Granted DE102013221678A1 (de) 2012-11-12 2013-10-24 System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne

Country Status (3)

Country Link
CN (1) CN103812590A (de)
DE (1) DE102013221678A1 (de)
TW (1) TWI516896B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107306178B (zh) 2016-04-25 2021-05-25 创意电子股份有限公司 时脉数据回复装置与方法
US10168731B2 (en) * 2016-07-13 2019-01-01 Advanced Micro Devices, Inc. Managing frequency changes of clock signals across different clock domains
US10164758B2 (en) 2016-11-30 2018-12-25 Taiwan Semicondcutor Manufacturing Co., Ltd. Read-write data translation technique of asynchronous clock domains
CN107734386B (zh) * 2017-09-13 2019-12-17 东莞市爱协生智能科技有限公司 一种基于mipi协议的视频图像缩小的方法及其系统
CN114003530B (zh) * 2021-10-29 2023-04-11 上海大学 一种基于fpga的串行差分通信数据采集系统及方法
CN114422063B (zh) * 2021-12-13 2023-08-29 深圳市紫光同创电子有限公司 一种时间戳脉冲同步方法
TWI826133B (zh) * 2022-11-21 2023-12-11 瑞昱半導體股份有限公司 資料傳輸裝置與跨時脈領域資料傳輸之方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929824B1 (ko) * 2008-05-06 2009-12-07 주식회사 하이닉스반도체 반도체 소자
CN101923440B (zh) * 2009-06-15 2011-12-14 杭州中科微电子有限公司 一种高速异步数据采集系统
CN201917844U (zh) * 2010-11-25 2011-08-03 上海宇芯微电子有限公司 一种双时钟切换装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"The Even/Odd Synchronizer: A Fast, All-Digital, Periodic Synchronizer" von William J. Dally und Stephen G. Tell, Asynchronous Circuits and Systems, International Symposium, Seiten 75-84, 2010 IEEE Symposium an Asynchronous Circuits and Systems, 2010

Also Published As

Publication number Publication date
CN103812590A (zh) 2014-05-21
TWI516896B (zh) 2016-01-11
TW201439714A (zh) 2014-10-16

Similar Documents

Publication Publication Date Title
DE102013221678A1 (de) System und Verfahren zum Bestimmen einer Zeit zum sicheren Abtasten eines Signals einer Takt-Domäne
DE102013222669B4 (de) Ein variationstoleranter periodischer Synchronisator
DE102013222682B4 (de) Spekulativer periodischer Synchronisierer
TWI474701B (zh) 時脈回復電路及並列輸出電路
TWI622270B (zh) 用於平衡高速串列數位介面之信道之間的偏斜之方案
DE102005051478B4 (de) Flashdatenspeichervorrichtung
EP1565803B1 (de) Taktsynchronisationsschaltung
DE10102887A1 (de) Verzögerungsvorrichtung, die eine Verzögerungssperrschleife aufweist und Verfahren zum Kalibrieren derselben
US8879681B2 (en) System and method for determining a time for safely sampling a signal of a clock domain
DE102008047163A1 (de) Bestimmen eines Zeitintervalls auf der Grundlage eines ersten Signals, eines zweiten Signals und ein Jitters des ersten Signals
DE102013222369B4 (de) Ein Matrix-Phasendetektor
DE102013221028B4 (de) Hoch-Auflösung-Phasen-Detektor
DE19914986A1 (de) Vorrichtung zum Verzögern eines Taktsignals
JPH0578973B2 (de)
US8050148B2 (en) Flash time stamp apparatus
DE60211244T2 (de) Halbleiterbauelement
DE102016208849A1 (de) Empfangsschaltkreis, Verfahren zum Einstellen eines Zeitpunkts in dem Empfangsschaltkreis und eine Halbleitervorrichtung
US8964919B2 (en) System and method for determining a time for safely sampling a signal of a clock domain
DE102004011672B4 (de) Vorrichtung zur Datensynchronisation
US20040236979A1 (en) Method and apparatus for an integrated circuit having flexible-ratio frequency domain cross-overs
US9715914B1 (en) Polyphase buffer for rate-conversion
WO2005086408A1 (de) Schnittstellenvorrichtung und verfahren zur synchronisation von daten
DE19713660A1 (de) Phasenjustierung schneller paralleler Signale
DE102004011673B3 (de) Vorrichtung zur Datensynchronisation
Polzer et al. Refined metastability characterization using a time-to-digital converter

Legal Events

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

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division