Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CLOCK SYNCHRONIZATION CIRCUIT
Document Type and Number:
WIPO Patent Application WO/2004/049140
Kind Code:
A2
Abstract:
The invention relates to a clock synchronization circuit for synchronizing a first clock pulse (F1) and a second clock pulse (F2) for the transfer of data from a first functional block (2), clocked by the first clock signal (F1) at a higher pulse frequency (F1 ), to a second functional block (3), clocked by the second clock pulse (F2) at a lower pulse frequency (F2 ). Said clock synchronization circuit (24) comprises a scanning unit (30) for the first clock pulse (F1) to scan the second clock pulse (F2) for generating scanned values (S) and edge detection values (E) of the scanned second clock pulse (F2). A logical circuit (38), clocked at the first clock pulse (F1), is used to output the scanned values (S) or the edge detection values (E) generated as a reconstructed second clock pulse (F2 ) in the time pattern of the first clock pulse (F1) at an output of the logical circuit (38). Said output (42) of the logical circuit is reset after output of a value (S, E) until the logical circuit (38) receives an enable signal. The logical circuit (38) generates an edge-too-early signal (ETE) when the edge detection value (E) is logic high before reception of the enable signal, and an edge-too-late signal (ETL) when the enable signal is received before the edge detection value (E) generated is logic high. The clock synchronization circuit further comprises a signal delay circuit clocked at the first clock pulse (F1), which delays the reconstructed second clock pulse (F2 ) with a variable time delay (&tgr ) depending on the edge-too-early signal (ETE) and the edge-too-late signal (ETL).

Inventors:
DI GREGORIO LORENZO (DE)
Application Number:
PCT/EP2003/012747
Publication Date:
June 10, 2004
Filing Date:
November 14, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INFINEON TECHNOLOGIES AG (DE)
DI GREGORIO LORENZO (DE)
International Classes:
H04L7/00; (IPC1-7): G06F1/00
Domestic Patent References:
WO2001079987A12001-10-25
Foreign References:
EP1113353A22001-07-04
US5638015A1997-06-10
US6327207B12001-12-04
Other References:
SEMERARO G ET AL: "Energy-efficient processor design using multiple clock domains with dynamic voltage and frequency scaling" PROCEEDINGS OF THE EIGHT INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, 2. Februar 2002 (2002-02-02), Seiten 24-35, XP010588708 in der Anmeldung erw{hnt
Attorney, Agent or Firm:
Charles, Glyndwr (Friedrichstrasse 31, München, DE)
Download PDF:
Claims:
Patentansprüche
1. Taktsynchronisationsschaltung zur Synchronisation eines ersten Taktsignals (qu1) und eines zweiten Taktsignals (#2) für die Datenübergabe von einem ersten Funktionsblock (2), der durch das erste Taktsignal (#1) mit einer höheren Takt frequenz (fq}) getaktet wird, zu einem zweiten Funktionsblock (3), der durch das zweite Taktsignal (#2) mit einer niedrige ren Taktfrequenz (fi,) getaktet wird, wobei die Taktsynchronisationsschaltung (24) aufweist : (a) eine Abtasteinheit (30) zum Abtasten des zweiten Taktsig nals (#2) durch das erste Taktsignal (#1) zur Erzeugung von Abtastwerten (S) und von Flankendetektionswerten (E) des ab getasteten zweiten Taktsignals « D2) ; (b) eine mit dem ersten Taktsignal (#1) getaktete Logikschal tung (38) zur Ausgabe der erzeugten Abtastwerte (S) oder der erzeugten Flankendetektionswerte (E) als rekonstruiertes zweites Taktsignal (#2') im Zeitraster des ersten Taktsignals « D1) an einem Ausgang der Logikschaltung (38), wobei der Ausgang (42) der Logikschaltung nach Ausgabe eines Wertes (S, E) zurückgesetzt wird bis die Logikschaltung (38) ein Freigabesignal empfängt, wobei die Logikschaltung (38) ein EdgetooEarlySignal (ETE) generiert, wenn der erzeugte Flankendetektionswert (E) vor Empfang des Freigabesignals logisch hoch ist, und ein EdgetooLateSignal (ETL) generiert, wenn das Freigabe signal empfangen wird, bevor der erzeugte Flankendetektions wert (E) logisch hoch ist, (c) und eine mit dem ersten Taktsignal (#1) getaktete Signal verzögerungsschaltung, die das rekonstruierte zweite Taktsig nal (422') mit einer variablen Zeitverzögerung (T) in Abhän gigkeit von dem EdgetooEarlySignal (ETE) und dem Edgetoo LateSignal (ETL) verzögert.
2. Taktsynchronisationsschaltung nach Anspruch 1, dadurch gekennzeichnet, dass das rekonstruierte zweite Taktsignal (#2') ein durch ein das erste Taktsignal (4) 1) getaktetes, erstes flankengetrig gertes FlipFlop (7) eines DatenübergabeZwischenspeichers (6) zum Zwischenspeichern von Daten, die von dem ersten Funk tionsblock (2) ausgegeben werden, aktiviert.
3. Taktsynchronisationsschaltung nach Anspruch 2, dadurch gekennzeichnet, dass dem ersten flankengetriggerten FlipFlop (7) ein durch das zweite Taktsignal (#2) getaktetes zweites flankengetrig gertes FlipFlop (8) des DatenübergabeZwischenspeichers (6) nachgeschaltet ist, das die zwischengespeicherten Daten an den zweiten Funktionsblock (3) abgibt.
4. Taktsynchronisationsschaltung nach Anspruch 1, dadurch gekennzeichnet, dass die Logikschaltung (38) in Abhängigkeit von einem Be triebsmodusSteuersignal die Abtastwerte (S) oder die Flan kendetektionswerte (E) als rekonstruiertes zweites Taktsignal « D2') ausgibt.
5. Taktsynchronisationsschaltung nach Anspruch 1, dadurch gekennzeichnet, dass die Signalverzögerungsschaltung (44) das rekonstruierte zweite Taktsignal (¢) 2') mit einer Zeitverzögerung (T) verzö gert, die ein Vielfaches des Taktzyklus (T1) des ersten Takt signals « D1) ist, wobei der Vervielfältigungsfaktor eine ZeitverzögerungstransferFunktion des EdgetooEarlySignals (ETE) und des EdgetooLateSignals (ETL) ist.
6. Taktsynchronisationsschaltung nach Anspruch 5, dadurch gekennzeichnet, dass die ZeitverzögerungsTransferfunktion in einer Transfer funktionslogik (75) der Signalverzögerungsschaltung (44) ge speichert ist.
7. Taktsynchronisationsschaltung nach Anspruch 6, dadurch gekennzeichnet, dass die Transferfunktionslogik (75) einen Multiplexer (70) zum Durchschalten eines der Ausgänge einer Kette (67) von Verzögerungsgliedern (67i) als das Freigabesignal an die Lo gikschaltung (38) steuert.
8. Taktsynchronisationsschaltung nach Anspruch 7, dadurch gekennzeichnet, dass die Verzögerungsglieder (67i) durch das erste Taktsig nal « D1) getaktet sind.
9. Taktsynchronisationsschaltung nach Anspruch 6, dadurch gekennzeichnet, dass die Transferfunktionslogik (75) der Signalverzögerungs schaltung (44) programmierbar ist.
10. Taktsynchronisationsschaltung nach Anspruch 1, dadurch gekennzeichnet, dass die Abtasteinheit (30) aufweist : eine aus zwei in Reihe geschalteten, flankengetriggerten FlipFlops (61a, 61b) bestehendes erstes Register (61) zum Abtasten des zweiten Taktsignals (Cs) mit der steigenden Sig nalflanke des ersten Taktsignals (Ci), ein aus zwei in Reihe geschalteten, flankengetriggerten Flip Flops (62a, 62b) bestehendes zweites Register (62) zum Abtas ten des zweiten Taktsignals (2) mit der fallenden Signal flanke des ersten Taktsignals « D1), wobei das erste Register (61) und das zweite Register (62) für den Empfang des zweiten Taktsignals (t2) parallel ver schaltet sind, und einen durch das erste Taktsignal (oui) getakteten Signalflan kendetektor (64), der in Abhängigkeit von dem abgegebenen Ab tastwert des ersten Registers (61) und dem abgegebenen Ab tastwert des zweiten Registers (62) und von dem im vorherigen Taktzyklus ausgegebenen Abtastwert des zweiten Registers ei nen Flankendetektionswert (E) an die Logikschaltung (38) ab gibt.
11. Taktsynchronisationsschaltung nach Anspruch 1, dadurch gekennzeichnet, dass das rekonstruierte zweite Taktsignal « D2') als Anzeige signal an den zweiten Funktionsblock (3) abgegeben wird, wo bei das Anzeigesignal anzeigt, dass in dem Datenübergabe Zwischenspeicher (6) Daten zum Auslesen durch den zweiten Funktionsblock (3) zwischengespeichert sind.
Description:
Beschreibung Taktsynchronisationsschaltung Die Erfindung betrifft eine Taktsynchronisationsschaltung zur Synchronisation zweier Taktsignale für die Datenübergabe zwi- schen Funktionsblöcken unterschiedlicher Zeitdomänen.

In digitalen Schaltkreisen sind in vielen Fällen verschiedene Funktionsblöcke vorgesehen, die in unterschiedlichen Zeitdo- mänen arbeiten und miteinander Daten austauschen. Dabei wer- den die unterschiedlichen Funktionsblöcke durch Taktsignale mit unterschiedlichen Taktfrequenzen getaktet. Wenn die logi- schen Funktionsblöcke mit unterschiedlichen Taktsignalen als Zeitbezug versorgt werden, muss sichergestellt werden, dass Datensignale, die von einem Funktionsblock zu dem anderen Funktionsblock übertragen werden, nicht fehlinterpretiert werden.

Das Vorsehen verschiedener, unkorrelierter Zeitdomänen auf einem Chip kann unterschiedliche Gründe haben. Die Signalver- teilung des Taktsignals über den gesamten Chip ist in vielen Applikationen nicht möglich, da die Taktfrequenz zu hoch ist.

Die zufällige Phasendifferenz zwischen den verschiedenen Taktsignalen kann im Vergleich zu der Frequenz eine hohe Va- riabilität aufweisen. Eine weitere Möglichkeit besteht darin, dass das Taktsignal aus einem externen Datenstrom generiert wird.

Unter den völlig unkorrelierten Taktsignalen gibt es auch Fälle von korrelierten Taktsignalen mit variabler Korrelati- on. Variable Korrelation ist typisch für die dynamische Fre- quenzskalierung von Teilschaltungseinheiten. Verschiedene Möglichkeiten, die durch mehrere unterschiedliche Zeitdomänen eröffnet werden können, kann beispielweise in G. Semeraro, G. Magklis, R. Balasubramonian, D. H. Albonesi, S. Dwarkadas und M. L. Scott, "Energy-Efficient Processor Design Using

Multiple Clock Domains with Dynamic Voltage and Frequency Scaling", 8th International Symposium on High-Performance Computer Architecture, S. 29-40, Februar 2002, nachgelesen werden.

Die Datensignale, die zwischen Funktionsblöcken unterschied- licher Zeitdomänen übertragen werden, können nicht durch her- kömmliche Register abgetastet werden, da die Set-up-Zeit des Registers durch das empfangene Datensignal verletzt werden kann, wobei das Register in einen so genannten metastabilen Zustand versetzt wird. In diesem Falle ist die Phasendiffe- renz zwischen den zwei Zeitdomänen unbekannt. Der Grund hier- für kann entweder darin liegen, dass die Varianz des Signals zu groß ist oder die Ungenauigkeit des Ergebniswertes zu hoch ist. Ein metastabiles Register erzeugt einen unzulässigen Da- tenausgabewert, da die Ausgangsspannung in einem Mittenbe- reich zwischen der Versorgungsspannung und der Massespannung verbleibt. Dieser unzulässige Ausgabewert kann bei weiteren Gattern zu unzulässigen Datenwerten führen und somit zu einer Fehlfunktion von weiteren Einrichtungen auf dem gesamten Chip.

Es wurden daher besonders ausgestaltete Register, so genannte Synchronisierer, vorgeschlagen, die die Wahrscheinlichkeit des Auftretens eines metastabilen Zustandes verringern. Der- artige Synchronisierer bestehen im Wesentlichen aus zwei kaskadisierten, flankengetriggerten Flip-Flops. Ein einstufi- ges Synchronisierregister weist in jedem Falle eine zu hohe mittlere Fehlerrate MTBF (meantime between failures) auf. Für viele Anwendungen ist ein Synchronisierregister mit zwei kas- kadenförmig geschalteten, flankengetriggerten Flip-Flops ein- setzbar, da die mittlere Fehlerzeit MTBF als ausreichend an- gesehen werden kann. Bei sehr hohen Taktfrequenzen sind u. U. zwei kaskadenförmig geschaltete, flankengetriggerte Flip- Flops zur Erzielung einer ausreichend hohen mittleren Fehler- zeit MTBF eingesetzt. Je mehr unabhängige Synchronisierregis- ter vorgesehen sind, desto geringer ist die gemeinsame mitt-

lere Fehlerzeit MTBF. Das Vorsehen derartiger Synchronisier- register ist eine ständige Quelle der Unsicherheit beim Schaltungsentwurf.

Zur Überwindung der Unsicherheiten bei der Datenübergabe zwi- schen Funktionsblöcken unterschiedlicher Zeitdomänen sind verschiedene technische Vorschläge unterbreitet worden, die man in zwei Hauptgruppen unterteilen kann, nämlich so genann- te Handshake-Techniken oder Warteschlangen-Techniken.

Fig. 1 zeigt ein Beispiel für eine Datenübergabe mittels War- teschlangen (queues). Bei dieser Schaltung wird ein FIFO- Register eingesetzt, um Daten zwischen Funktionsblöcken un- terschiedlicher Zeitdomänen zu übergeben. Das FIFO-Register umfasst viele Speicherregister Ri. Das FIFO-Register wird durch ein erstes Taktsignal Ci und mit einem zweiten Taktsig- nal @2 getaktet. Die Daten werden mit der Taktfrequenz des ersten Taktsignals Ci in das FIFO-Register eingeschrieben und mit der Taktfrequenz des zweiten Taktsignals Cz aus dem FIFO- Register ausgelesen. Die eingeschriebenen Daten stammen bei dem dargestellten Beispiel von verschiedenen Datenkanälen Ki, die durch eine Kanalsteuerung mittels eines Multiplexers aus- gewählt werden. Die Kanalsteuerung steuert ferner einen De- multiplexer an der Ausgabeseite des FIFO-Registers zur weite- ren Datenübertragung über verschiedene Datenkanäle Ki an. Ein Voll-Anzeigeflag zeigt einem Funktionsblock in der ersten Zeitdomäne an, dass das FIFO-Register voll ist, und ein Leer- Anzeigeflag zeigt einem Funktionsblock in der zweiten Zeitdo- mäne an, dass das FIFO-Register leer ist.

Sollen Daten von dem Datenkanal Ki in der ersten Zeitdomäne jedem Datenkanal Ki in der zweiten Zeitdomäne übertragen wer- den, kann es zu einem so genannten Head-of-line-Blocking kom- men. Dabei wird die Warteschlange durch einen Kanal blo- ckiert, wenn der entsprechende Ausgabekanal nicht bereit ist.

Ein weiterer Ansatz zur Lösung des Synchronisationsproblems zwischen Funktionsblöcken unterschiedlicher Zeitdomänen be- steht in einer Handshake-Implementierung. Ein Beispiel für eine derartige Handshake-Implementierung ist in der US- 5,291, 529 beschrieben.

Fig. 2 zeigt das Prinzip einer Handshake-Implementierung zwi- schen zwei Funktionsblöcken mit synchroner Logik, die in un- terschiedlichen Zeitdomänen arbeiten. Der so genannte Master wird mit einem ersten Taktsignal Ci getaktet, und eine Slave- Einheit wird mit einem zweiten Taktsignal @2 getaktet. Die Taktfrequenzen der beiden Taktsignale sind dabei unterschied- lich. Zur Datenübertragung sendet die Master-Schaltungsein- heit ein Anforderungssignal (request) an die Slave-Einheit.

Die Slave-Einheit erfasst das Anforderungssignal (request) und führt die Anforderung durch. Danach zeigt die Slave- Einheit die Ausführung der Aufgabe bzw. Task der Master- Einheit an, indem sie ein Acknowledgement-Signal zurück an die Master-Einheit sendet. Da die Master-Einheit und die Sla- ve-Einheit, wie in dem dargestellten Beispiel, keine gemein- same Zeitbasis haben, d. h. sie durch Taktsignale mit unter- schiedlichen Taktfrequenzen getaktet sind, ist es wesentlich, sicherzustellen, dass die Datensignale, die zwischen der Mas- ter-Einheit und der Slave-Einheit ausgetauscht werden, auf- grund metastabiler Zustände nicht fehlinterpretiert werden.

Besonders die Übergabe von Daten aus einem Funktionsblock, der mit einer hohen Taktfrequenz getaktet wird, zu einem Funktionsblock, der mit einer niedrigeren Taktfrequenz getak- tet wird, ist kritisch und in schaltungstechnisch herkömmli- cher Weise nur aufwändig realisierbar. Bei einer herkömmli- chen Handshake-Implementierung besteht insbesondere das Prob- lem, dass der Funktionsblock, der durch das langsame Taktsig- nal getaktet wird, zu spät auf eine Anforderung von einem Funktionsblock reagiert, der durch ein Taktsignal mit einer höheren Taktfrequenz getaktet wird.

Es ist daher die Aufgabe der vorliegenden Erfindung, eine Taktsynchronisationsschaltung mit geringem schaltungstechni- schem Aufwand zu schaffen, die die zuverlässige Datenübergabe von Daten zwischen Funktionsblöcken, die in unterschiedlichen Zeitdomänen arbeiten, gewährleistet.

Diese Aufgabe wird erfindungsgemäß durch eine Taktsynchroni- sationsschaltung mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.

Die Erfindung schafft eine Taktsynchronisationsschaltung zur Synchronisation eines ersten Taktsignals (O1) und eines zwei- ten Taktsignals (2) für die Datenübergabe von einem ersten Funktionsblock, der durch das erste Taktsignal (#1) mit einer höheren Taktfrequenz (go) getaktet wird, zu einem zweiten Funktionsblock, der durch das zweite Taktsignal (2) mit ei- ner niedrigeren Taktfrequenz (go) getaktet wird, wobei die Taktsynchronisationsschaltung aufweist : eine Abtasteinheit zum Abtasten des zweiten Taktsignals (2) durch das erste Taktsignal (Ci) zum Erzeugen von Abtastwerten (S) und von Flankendetektionswerten (E) des abgetasteten zweiten Taktsignals « D2), eine mit dem ersten Taktsignal (#1) getaktete Logikschaltung zur Ausgabe der erzeugten Abtastwerte (S) oder der Flankende- tektionswerte (E) als rekonstruiertes zweites Taktsignal (2 1) im Zeitraster des ersten Taktsignals (#1) an einem Aus- gang der Logikschaltung, wobei der Ausgang der Logikschaltung nach Ausgabe eines Wer- tes (S, E) zurückgesetzt wird, bis die Logikschaltung ein Freigabesignal empfängt, wobei die Logikschaltung ein Edge-too-Early-Signal (ETE) ge- neriert, wenn der erzeugte Flankendetektionswert (E) vor dem Empfang des Freigabesignals logisch hoch ist, und ein Edge-too-Late-Signal (ETL) generiert, wenn das Freigabe- signal empfangen wird, bevor der erzeugte Flankendetektions- wert (E) logisch hoch ist,

und eine mit dem ersten Taktsignal (O1) getaktete Signalver- zögerungsschaltung, die das rekonstruierte zweite Taktsignal « D2') mit einer variablen Zeitverzögerung (T) in Abhängigkeit von dem Edge-too-Early-Signal (ETE) und dem Edge-too-Late- Signal (ETL) verzögert.

Bei einer bevorzugten Ausführungsform aktiviert das rekon- struierte zweite Taktsignal (#2') ein durch ein erstes Takt- signal (Ci) getaktetes erstes flankengetriggertes Flip-Flop eines Datenübergabe-Zwischenspeichers zum Zwischenspeichern von Daten, die von dem ersten Funktionsblock ausgegeben wer- den.

Bei einer bevorzugten Ausführungsform ist dem ersten flanken- getriggerten Flip-Flop ein durch das zweite Taktsignal (Os) getaktetes zweites flankengetriggertes Flip-Flop des Daten- übergabe-Zwischenspeichers nachgeschaltet, das die zwischen- gespeicherten Daten an dem zweiten Funktionsblock abgibt.

Die Logikschaltung der erfindungsgemäßen Taktsynchronisati- onsschaltung gibt vorzugsweise in Abhängigkeit von einem Be- triebsmodussteuersignal entweder die Abtastwerte (S) oder die Flankendetektionswerte (E) als rekonstruiertes zweites Takt- signal (02') ab.

Die Signalverzögerungsschaltung verzögert das rekonstruierte zweite Taktsignal (#2') vorzugsweise mit einer Zeitverzöge- rung (T), die ein Vielfaches (N) des Taktzyklus (T1) des ers- ten Taktsignals (Ci) ist, wobei der Vervielfältigungsfaktor (N) eine Zeitverzögerungs-Transferfunktion des Edge-too- Early-Signals (ETE) und des Edge-too-Late-Signals (ETL) ist.

Dabei ist die Zeitverzögerungs-Transferfunktion vorzugsweise in einer Transferfunktionslogik der Signalverzögerungsschal- tung gespeichert.

Die Transferfunktionslogik steuert vorzugsweise einen Multi- plexer zum Durchschalten eines der Ausgänge einer Kette von Verzögerungsgliedern als Freigabesignal an die Logikschaltung an.

Dabei werden die Verzögerungsglieder vorzugsweise durch das erste Taktsignal (#1) getaktet.

Die Transferfunktionslogik der Signalverzögerungsschaltung ist bei einer bevorzugten Ausführungsform der erfindungsgemä- ßen Taktsynchronisationsschaltung programmierbar.

Die Abtasteinheit der erfindungsgemäßen Taktsynchronisations- schaltung enthält vorzugsweise ein aus zwei in Reihe geschalteten flankengetriggerten Flip- Flops bestehendes erstes Register zum Abtasten des zweiten Taktsignals « D2) mit der steigenden Signalflanke des ersten Taktsignals (Ci) und ein aus zwei in Reihe geschalteten, flankengetriggerten Flip- Flops bestehendes zweites Register zum Abtasten des zweiten Taktsignals « D2) mit der fallenden Signalflanke des ersten Taktsignals (Ci), wobei das erste Register und das zweite Register parallel für den Empfang des zweiten Taktsignals (02) von dem zweiten Funktionsblock verschaltet sind, und einen durch das erste Taktsignal (Ci) getakteten Signalflan- kendetektor, der in Abhängigkeit von dem abgegebenen Abtast- wert des ersten Registers und dem abgegebenen Abtastwert des zweiten Registers und von dem im vorherigen Taktzyklus ausge- gebenen Abtastwert einen Flankendetektionswert an die Logik- schaltung abgibt.

In einer bevorzugten Ausführungsform der erfindungsgemäßen Taktsynchronisationsschaltung wird das rekonstruierte zweite Taktsignal (02') als Anzeigesignal an dem zweiten Funktions- block abgegeben, wobei das Anzeigesignal anzeigt, dass in dem

Datenübergabe-Zwischenspeicher Daten zum Auslesen durch den zweiten Funktionsblock zwischengespeichert sind.

Des Weiteren werden bevorzugte Ausführungsformen der erfin- dungsgemäßen Taktsynchronisationsschaltung unter Bezugnahme auf die beigefügten Figuren zur Erläuterung erfindungswesent- licher Merkmale beschrieben.

Es zeigen : Fig. 1 eine Datenübergabeschnittstelle mit Warteschlangen nach dem Stand der Technik ; Fig. 2 den prinzipiellen Aufbau einer Handshake-Implementie- rung nach dem Stand der Technik ; Fig. 3 ein Blockschaltbild der erfindungsgemäßen Taktsynchro- nisationsschaltung ; Fig. 4 den schaltungstechnischen Aufbau einer bevorzugten Ausführungsform der erfindungsgemäßen Taktsynchronisations- schaltung ; Fig. 5 Zeitablaufdiagramme zur Erläuterung der Funktionsweise der erfindungsgemäßen Taktsynchronisationsschaltung ; Fig. 6a eine bevorzugte Ausführungsform der in der erfin- dungsgemäßen Taktsynchronisationsschaltung enthaltenen Ab- tasteinheit ; Fig. 6b eine Wahrheitstabelle eines in der Abtasteinheit ent- haltenen Signalflankendetektors ; Fig. 7 eine bevorzugte Ausführungsform der in der erfindungs- gemäßen Taktsynchronisationsschaltung enthaltenen Signalver- zögerungsschaltung ;

Fig. 8 eine besonders bevorzugte Ausführungsform der erfin- dungsgemäßen Taktsynchronisationsschaltung.

Wie man aus der Fig. 3 erkennen kann, ist eine Interface- schaltung 1 zur Datenübergabe zwischen einem ersten Funkti- onsblock 2 und einem zweiten Funktionsblock 3 verschaltet.

Die Interfaceschaltung 1 dient zur Datenübergabe zwischen den beiden Funktionsblöcken 2,3, die in unterschiedlichen Zeit- domänen arbeiten. Die Funktionsblöcke 2,3 sind beliebige, synchron arbeitende Datenverarbeitungsschaltungen, die je- weils mit einem Taktsignal getaktet werden. Die beiden Takt- signale Ci, Cz sind unkorreliert bzw. weisen eine variable Korrelation auf. Der erste Funktionsblock 2 wird durch das erste Taktsignal O1 mit einer höheren Taktfrequenz/ über eine Taktleitung 4 getaktet. Der zweite Funktionsblock 3 wird über eine Taktleitung 5 mit dem zweiten Taktsignal (D2 ver- sorgt. Das zweite Taktsignal (D2 weist eine niedrigere Takt- frequenz to2 auf als das erste Taktsignal O1. Die Datenüber- gabe-Interfaceschaltung 1 gewährleistet die Datenübergabe von dem ersten Funktionsblock 2 zu dem zweiten Funktionsblock 3, ohne dass metastabile Datenzustände und somit Datenfehler auftreten. Die Datenübergabe-Interfaceschaltung 1 enthält ei- nen Datenübergabespeicher 6, der zwei seriell verschaltete, flankengetriggerte Flip-Flops 7,8 umfasst.

Der Dateneingang 9 des ersten flankengetriggerten Flip-Flops 7 ist über eine Datenleitung 10 mit einem Datenausgang 11 des ersten Funktionsblocks 2 verbunden. Das Flip-Flop 7 weist ei- nen Datenausgang 11 auf, der über eine interne Datenleitung 12 des Datenübergabe-Zwischenspeichers 6 mit einem Datenein- gang 13 des zweiten flankengetriggerten Flip-Flops 8 verbun- den ist. Der zweite flankengetriggerte Flip-Flop 8 besitzt ebenfalls einen Datenausgang 14, der zwischengespeicherte Da- ten über eine Datenleitung 15 an einen Dateneingang 16 des zweiten Funktionsblocks 3 abgibt.

Die beiden in dem Datenübergabe-Zwischenspeicher 6 enthalte- nen Flip-Flops 7,8 weisen jeweils einen Takteingang 17,18 auf. Der Takteingang 17 des ersten Flip-Flops 7 ist mit einem Inverterschaltkreis 19 verbunden, dessen Eingang mit dem Aus- gang eines UND-Gatters 20 verbunden ist. Das UND-Gatter 20 verknüpft das über eine Leitung 21 zugeführte erste Taktsig- nal (I) 1 mit einem Write-Enable-Signal WE, das über eine Lei- tung 22 von einem Signalausgang 23 der erfindungsgemäßen Taktsynchronisationsschaltung 24 abgegeben wird. Die Taktsyn- chronisationsschaltung 24 weist zwei Taktsignaleingänge 25, 26 auf. Der erste Taktsignaleingang 25 empfängt das erste Taktsignal Ci, mit dem der erste Funktionsblock 2 (erste Zeitdomäne) getaktet wird. Der zweite Taktsignaleingang 26 der Taktsynchronisationsschaltung 24 wird mit dem zweiten Taktsignal (t) 2 versorgt, das den zweiten Funktionsblock 3 tak- tet. Daneben weist die Taktsynchronisationsschaltung 24 eine Reset-Eingang 27 zum Empfangen eines Reset-Signals auf. Die Taktsynchronisationsschaltung 24 dient zur Synchronisation der beiden Taktsignale Ci, 02. Dabei generiert die Taktsyn- chronisationsschaltung 24 ein rekonstruiertes zweites Takt- signal 02'im Zeitraster des ersten Taktsignals Ci und gibt dieses über die Leitung 22 als Write-Enable-Signal WE an das erste Flip-Flop 7 innerhalb des Datenübergabe- Zwischenspeichers 6 ab. Das rekonstruierte zweite Taktsignal @2 wird ferner über eine Anzeigesignalleitung 28 an den zweiten Funktionsblock 3 abgegeben. Dieses Anzeigesignal zeigt dem Funktionsblock 3 an, dass in den Datenübergabe- Zwischenspeicher 6 Daten zum Auslesen bereitstehen.

Die Taktsynchronisationsschaltung 24 empfängt über einen wei- teren Signaleingang 29 ein Betriebsmodussteuersignal zum Um- schalten zwischen zwei Betriebsmodi.

Fig. 4 zeigt den schaltungstechnischen Aufbau der erfindungs- gemäßen Taktsynchronisationsschaltung 24, wie sie in Fig. 3 dargestellt ist.

Die Taktsynchronisationsschaltung 24 umfasst eine Abtastein- heit 30 zum Abtasten des zweiten Taktsignals @2 durch das erste Taktsignal Ci, wobei die Abtasteinheit 30 Abtastwerte S und Flankendetektionswerte E des abgetasteten zweiten Takt- signals @2 generiert. Die Abtasteinheit empfängt über einen Signaleingang 31, der über eine Leitung 32 mit dem Eingang 26 verbunden ist, das zweite Taktsignal Cs. Die Abtasteinheit 30 enthält einen Taktsignaleingang 33, der über eine interne Taktsignalleitung 34 das anliegende erste Taktsignal Ci emp- fängt. Die Abtasteinheit 30 besitzt zwei Ausgänge 35,36. Ü- ber den ersten Ausgang 35 gibt sie die Abtastwerte S über ei- ne Leitung 37 an einen nachgeschaltet Logikschaltung 38 ab.

Die ermittelten Flankendetektionswerte E des abgetasteten zweiten Taktsignals Cs werden über eine Leitung 39 ebenfalls an die Logikschaltung 38 abgegeben. Die Logikschaltung 38 be- sitzt ihrerseits einen Taktsignaleingang 40, der über eine interne Taktleitung 41 das erste Taktsignal Ci zum Takten der Logikschaltung 38 empfängt.

Die Logikschaltung 38 weist einen Ausgang 42 auf, der über eine Leitung 43 mit dem Signalausgang 23 der Taktsynchronisa- tionsschaltung 24 verbunden ist.

Die Logikschaltung 38 generiert ein so genanntes Edge-too- Early-Signal ETE, wenn der von der Abtasteinheit 30 abgegebe- ne Flankendetektionswert E vor einem Freigabesignal einen lo- gisch hohen Wert einnimmt. Anderenfalls generiert die Logik- schaltung 38 ein Edge-too-Late-Signal ETL, wenn das Freigabe- signal durch die Logikschaltung 38 empfangen wird, bevor der Flankendetektionswert E logisch hoch ist. Dabei stammt das Freigabesignal von einer Taktsignalverzögerungsschaltung 44 innerhalb der Taktsynchronisationsschaltung 24. Die Logik- schaltung 38 gibt über eine Leitung 45 das Edge-too-Early- Signal ETE und über eine Leitung 46 das Edge-too-Late-Signal ETL an die Taktsignalverzögerungsschaltung 44 ab. Die Takt- signalverzögerungsschaltung 44 besitzt einen Signaleingang 47, der über eine Leitung 48 mit dem Ausgang 42 der Logik-

schaltung 38 verbunden ist. Die Taktsignalverzögerungsschal- tung 44 weist einen Ausgang 49 auf, der über eine Leitung 50 das Freigabesignal an einen Eingang 51 der Logikschaltung 38 anlegt. Die Taktsignalverzögerungsschaltung 44 besitzt einen Taktsignaleingang 52, der über eine interne Taktleitung 53 das erste Taktsignal Ci empfängt. Die Taktverzögerungsschal- tung 44 weist zudem zwei Eingänge 54,55 zum Empfang des Edge-too-Early-Signals ETE und zum Empfang des Edge-too-Late- Signals ETL auf, die von der Logikschaltung 38 über die Aus- gänge 56,57 abgegeben werden.

Die Logikschaltung 38 enthält zudem einen Signaleingang 58 zum Empfang des Betriebsmodussteuersignals über eine Leitung 59.

Die Fig. 5 zeigt ein Zeitablaufdiagramm der beiden an die Taktsynchronisationsschaltung 24 angelegten Taktsignale Ci, cl und des durch die Taktsynchronisationsschaltung 24 gene- rierten, rekonstruierten zweiten Taktsignals @2'. Die Takt- synchronisationsschaltung 24 bildet die steigenden Signal- flanken des zweiten niederfrequenten Taktsignals (T) im Zeit- raster des ersten höherfrequenten Taktsignals Ci ab. Das aus- gegebene rekonstruierte zweite Taktsignal @2'wird dabei zu- rückgesetzt, um die nächste steigende Flanke des zweiten Taktsignals 2 erfassen zu können. Durch die erfindungsgemäße Taktsynchronisationsschaltung 24 wird das zweite Taktsignal #2 in dem Zeitraster des ersten Taktsignals (D, unter Verwen- dung einer Rückkopplungsschleife rekonstruiert. In der Rück- kopplungsschleife befindet sich die Taktverzögerungsschaltung 44, die das an ihrem Signaleingang 47 angelegte Taktsignal '2'um eine vorgegebene Anzahl von Taktzyklen des ersten Taktsignals Ci verzögert, um an dem Ausgang 49 zu dem Zeit- punkt abzugeben, wenn die nachfolgende Phase des langsameren zweiten Taktsignals (D2 erwartet wird. Dabei wird die Zeitver- zögerung durch die Taktverzögerungsschaltung 44 in Abhängig- keit von dem Edge-too-Early-Signal ETE und dem Edge-too-Late- Signal ETL eingestellt. Die beiden von der Logikschaltung 38

empfangenen Signale ETE und ETL enthalten die Information, ob die Zeitverzögerung, die durch die Taktverzögerungsschaltung 44 hervorgerufen wird, zu lange oder zu kurz ist. Der schal- tungstechnische Aufbau der Taktsignalverzögerungsschaltung 44 wird in Zusammenhang mit Fig. 7 im Detail erläutert.

Fig. 6a zeigt eine bevorzugte Ausführungsform der in der er- findungsgemäßen Taktsynchronisationsschaltung 24 enthaltenen Abtasteinheit 30. Die Abtasteinheit 30 dient zum Abtasten des zweiten Taktsignals Cz durch das erste Taktsignal Ci zur Er- zeugung von Abtastwerten S und von Flankendetektionswerten E des abgetasteten zweiten Taktsignals 02. Hierzu weist die Ab- tasteinheit 30 einen ersten Taktsignaleingang 33 für das ers- te Taktsignal und einen Taktsignaleingang 31 für das zweite langsamere Taktsignal 02. Darüber hinaus verfügt die Abtast- einheit über einen Reset-Eingang 60.

Die Abtasteinheit 30 enthält ein erstes Register 61 und ein zweites Register 62. Das erste Register 61 umfasst zwei in Reihe geschaltete, flankengetriggerte Flip-Flops 61a, 61b.

Das zweite Register 62 umfasst zwei in Reihe geschaltete, flankengetriggerte Flip-Flops 62a, 62b. Das erste Register 61a dient zum Abtasten des zweiten Taktsignals @2 mit der steigenden Signalflanke des ersten Taktsignals Ci. Das zweite Register 62 dient zum Abtasten des zweiten Taktsignals 2 mit der fallenden Signalflanke des ersten Taktsignals (D1. Die beiden Register 61,62 sind dabei für den Empfang des zweiten Taktsignals (D2 über eine interne Leitung 63 der Abtasteinheit 30 parallel verschaltet. Die beiden Register 61,62 können über den Reset-Eingang 60 zurückgesetzt werden.

Neben den beiden Abtastregistern 61,62 enthält die Abtast- einheit 30 einen getakteten Signalflankendetektor 64. Der Signalflankendetektor 64 enthält eine Logik 65, deren Wahr- heitstabelle in Fig. 6b dargestellt ist. Darüber hinaus ent- hält der Signalflankendetektor 64 ein Verzögerungsglied 66.

Der von dem zweiten Register 62 abgegebene Abtastwert S (sam-

ple) wird über den Ausgang 35 der Abtasteinheit 30 an die Lo- gikschaltung 38 abgegeben. Darüber hinaus wird der Abtastwert S dem Signalflankendetektor 64 zugeführt und durch das Verzö- gerungsglied 66 um einen Taktzyklus des ersten Taktsignals verzögert. Das Verzögerungsglied 66 ist vorzugsweise ein flankengetriggertes Flip-Flop, das mit dem ersten Taktsignal 1 getaktet wird. Der Signalflankendetektor 64 gibt in Abhän- gigkeit von dem Abtastwert S des zweiten Registers 62 und dem Abtastwert S'des ersten Registers 61 sowie in Abhängigkeit von dem im vorherigen Taktzyklus an dem Ausgang 35 abgegebe- nen Abtastwert einen Flankendetektionswert E gemäß der in Fig. 6b dargestellten Wahrheitstabelle ab.

Fig. 7 zeigt eine bevorzugte Ausführungsform der Taktsignal- verzögerungsschaltung 44. Die Taktsignalverzögerungsschaltung 44 verzögert das an dem Ausgang 23 anliegende rekonstruierte zweite Taktsignal 02'it einer Zeitverzögerung T, die ein Vielfaches des Taktzyklus T1 des ersten Taktsignals (bl ist.

Der Vervielfältigungsfaktor N wird dabei in Abhängigkeit von dem Edge-too-Early-Signal ETE und dem Edge-too-Late-Signal ETL eingestellt.

Die Signalverzögerungsschaltung 44 umfasst eine Kette von M Verzögerungsgliedern 67-i, deren Ausgänge jeweils über Lei- tungen 68 mit Eingängen 69 eines Multiplexers 70 verbunden sind. Die Verzögerungsglieder 67 der Kette weisen jeweils Takteingänge 71 zum Anlegen des ersten Taktsignals (D, über eine interne Taktleitung 72 auf. Die Signalverzögerungsschal- tung 44 gibt über ihren Ausgang 49 ein Freigabesignal an die Logikschaltung 38 ab. Der Ausgang 49 der Signalverzögerungs- schaltung 44 ist über eine interne Leitung 73 an den Ausgang des Multiplexers 70 angeschlossen. Der Multiplexer 70 schal- tet in Abhängigkeit von einem Steuersignal, das er über eine Steuerleitung 74 empfängt, einen seiner Eingänge 69i an den Freigabe-Signalausgang 49 durch. Das Steuersignal empfängt der Multiplexer 70 über die Steuersignalleitung 74 von einer in der Signalverzögerungsschaltung 44 enthaltenen Transfer-

funktionslogik 75. Die Transferfunktionslogik 75 erhält über Leitungen 76,77 das Edge-too-Early-Signal ETE und das Edge- too-Late-Signal ETL von der Logikschaltung 38. Die Transfer- funktionslogik 75 kann fest verdrahtet sein oder bei einer bevorzugten Ausführungsform eine abgespeicherte Transferfunk- tion enthalten. Hierbei ist die Transferfunktionslogik 75 ü- ber Programmierleitungen 78 programmierbar. Die Transferfunk- tion gibt an, ob die Zeitverzögerung durch die Signalverzöge- rung durch die Signalverzögerungsschaltung 44 zu lange oder zu kurz ist. Bei der Transferfunktion handelt es sich um eine diskrete Funktion. Es kann zu einer Oszillation zwischen zwei Zustandswerten kommen, die neben einem Optimalwert liegen.

Falls die optimale Zeitverzögerung beispielsweise 4,5 Takt- zyklen beträgt, werden durch die Transferfunktion alternative Zeitverzögerungen von vier oder fünf Taktzyklen des hochfre- quenten ersten Taktsignals hervorgerufen. Die Transferfunkti- on kann unabhängig von den übrigen Schaltkreisen auf dem Chip festgelegt bzw. programmiert werden.

Für die Transferfunktion gilt bei einer bevorzugten Ausfüh- rungsform : Wenn ETEn, ETLn den Wert von ETE, ETL bei dem n-ten Taktzyk- lus des hochfrequenten ersten Taktsignals 1 angeben, gilt : Für jegliche Verzögerungszeit Tog [1, M] 4N Sk > l-> Tk+i = max (Tk-1, 1) Sk < 1 < Tk+1 = min (Tk+l, M) Fig. 8 zeigt eine besonders bevorzugte Ausführungsform der erfindungsgemäßen Taktsynchronisationsschaltung 24. Bei der in Fig. 8 dargestellten Ausführungsform weist die Logikschal-

tung 38 eine spezielle schaltungstechnische Ausgestaltung auf. Die Logikschaltung 38 umfasst bei dieser bevorzugten Ausführungsform ein NOR-Gatter 79, ein UND-Gatter 80, ein Set-Reset-Flip-Flop 81, einen Multiplexer 82, eine Logik 83, einen Zwischenspeicher-Flip-Flop 84, einen Zwischenspeicher- Flip-Flop 85 und einen Set-Reset-Flip-Flop 86. Die Taktung der Flip-Flops 81,84, 85,86 der Logikschaltung 38 erfolgt durch das erste Taktsignal (t Kombinatorische Gleichungen : ETL = E v holds ETE = E A hold s rec ckl_s = holds # (queued_s v (mode # s) v (mode # E) hold s = GO A (holdr v recclk r) queueds = ETE # (queued_r # recckl_r) Zustandsgleichungen : hold r = holds queued r = queue s recclk r = recclks 2'= recclko = recclkr Bei dem ersten Set-Reset-Flip-Flop 81 besteht Priorität für den Set-Eingang, d. h. wenn sowohl S als auch R logisch 1 sind, hat der Set-Eingang den Vorrang. Bei dem Set-Reset- Flip-Flop 86 hat der Reset-Eingang den Vorrang.

Das erste Set-Reset-Flip-Flop 81 wird vorzugsweise durch ein flankengetriggertes Flip-Flop implementiert, das durch das hochfrequente Taktsignal (t) 1 gemäß folgender Vorschrift arbei- tet : Q=0 when R=1 else 1 when S=1 else Qr Qr =Q, when rising edge

Über den Multiplexer 82 kann die Logikschaltung 38 zwischen zwei Betriebsmodi umgeschaltet werden.

Im ersten Betriebsmodus werden die Abtastwerte S als rekon- struiertes zweites Taktsignal t ? 2'ausgegeben, und in dem zweiten Betriebsmodus werden die Flankendetektionswerte E als rekonstruiertes zweites Taktsignal von der Taktsynchronisati- onsschaltung 24 ausgegeben. Dem Multiplexer 82 ist die Logik- schaltung 83 nachgeschaltet, die einen Inverter 83a, ein ODER-Gatter 83b und ein UND-Gatter 83c umfasst.

Der Abtastwert-Betriebsmodus (value sampling mode) wird akti- viert, falls die Frequenz des ersten Taktsignals etwa so groß ist wie die Taktfrequenz des zweiten Taktsignals. In diesem Falle erfasst die Abtasteinheit 30 die meisten Signalflanken.

In dem theoretischen Falle, dass die beiden Taktfrequenzen identisch sind, würde die Abtasteinheit 30 keine Signalflanke detektieren und einen konstanten Wert erkennen. Mit zunehmen- dem Frequenzunterschied zwischen den beiden Taktfrequenzen der Taktsignale Ci, zu umfasst die Abtasteinheit mehr und mehr Signalflanken.

In dem Flankenbetriebsmodus, d. h. wenn die erkannten Flanken- detektionswerte E als rekonstruiertes zweites Taktsignal ausgegeben werden, wird bei zu kurzer Verzögerung auf die nächste Signalflanke gewartet, bevor eine neue externe Takt- signalperiode als gestartet angesehen wird.

In dem Abtastbetriebsmodus (value sampling mode) wird auf den nächsten hohen logischen Wert gewartet, und falls die Trans- ferfunktion eine zu kurze Signalverzögerung bewirkt, kann ein hoher logischer Wert, der zu der gleichen logisch hohen ex- ternen Taktsignalphase gehört, erkannt und als neue Phase be- rücksichtigt werden, wenn die erfindungsgemäße Taktsynchroni- sationsschaltung mittels der Signalverzögerungsschaltung 44 eine einstellbare Signalverzögerung bewirkt, um Replika des

langsameren Taktsignals (D2 im Zeitraster des schnelleren Taktsignals Ci zu bilden.

Die erfindungsgemäße Taktsynchronisationsschaltung weist den Vorteil auf, dass sie keine analogen Bauelemente enthält. Da sie ferner keine speziellen Bauelemente umfasst, ist die di- gitale Logikschaltung 38 in einfacher Weise synthetisierbar, d. h. mit Standardzellen aus einer Bauelementebibliothek be- schreibbar. Der schaltungstechnische Aufbau der erfindungsge- mäßen Taktsynchronisationsschaltung 24 ist gering. Mittels der erfindungsgemäßen Taktsynchronisationsschaltung kann das Interface 1 zwischen den Funktionsblöcken 2,3 mit einer sehr hohen Datendurchsatzrate arbeiten.

Bezugszeichenliste 1 Datenübergabe-Interfaceschaltung 2 Funktionsblock 3 Funktionsblock 4 Taktleitung 5 Taktleitung 6 Datenübergabe-Zwischenspeicher 7 Flip-Flop 8 Flip-Flop 9 Eingang 10 Leitung 11 Ausgang 12 Leitung 13 Eingang 14 Ausgang 15 Leitung 16 Eingang 17 Takteingang 18 Takteingang 19 Inverter 20 UND-Gatter 21 Leitung 22 Leitung 23 Ausgang 24 Taktsynchronisationsschaltung 25 Takteingang 26 Takteingang 27 Reset-Eingang 28 nicht belegt 29 Betriebsmodus-Steuereingang 30 Abtasteinheit 31 Taktsignaleingang 32 Leitung 33 Taktsignaleingang 34 Taktleitung

35 Ausgang 36 Ausgang 37 Leitung 38 Logikschaltung 39 Leitung 40 Takteingang 41 Taktleitung 42 Ausgang 43 Leitung 44 Taktsignalverzögerungsschaltung 45 Leitung 46 Leitung 47 Eingang 48 Leitung 49 Ausgang 50 Leitung 51 Eingang 52 Takteingang 53 Taktleitung 54 Eingang 55 Eingang 56 Ausgang 57 Ausgang 58 Eingang 59 Leitung 60 Reset-Eingang 61 Register 62 Register 63 Taktleitung 64 Signalflankendetektor 65 Logikschaltung 66 Flip-Flop 67 Verzögerungsglieder 68 Leitungen 69 Multiplexereingänge 70 Multiplexer 71 Takteingänge

72 Taktleitung 73 Multiplexerausgang 74 Steuersignalleitung 75 Transferfunktionslogik 76 Leitung 77 Leitung 78 Programmierleitungen 79 NOR-Gatter 80 UND-Gatter 81 Set-Reset-Flip-Flop 82 Multiplexer 83 Logikschaltung 84 Flip-Flop 85 Flip-Flop 86 Set-Reset-Flip-Flop