-
Die
vorliegende Erfindung bezieht sich auf Datenumwandlung. Eine Datenumwandlung
kann beispielsweise die Umwandlung von einem oder mehreren seriellen
Datenströmen
in einen oder mehrere parallele Datenströme oder ein Umwandeln einer
oder mehrerer paralleler Datenströme einer ersten Breite, beispielsweise
einer ersten Bitbreite, in einen oder mehrere parallele Datenströme einer
zweiten Breite, welche sich von der ersten Breite unterscheidet,
umfassen. Zudem oder alternativ kann eine Datenumwandlung ein Umwandeln
von Daten einer ersten Taktdomäne
(z. B. mit einem oder mehreren zu Grunde liegenden ersten Taktsignalen)
in Daten einer zweiten Taktdomäne
(z. B. mit ein oder mehreren zu Grunde liegenden zweiten Taktsignalen,
welche sich von den ersten Taktsignalen unterscheiden) umfassen.
-
Es
besteht ein allgemeiner Bedarf nach effizienten Verfahren und Vorrichtungen
zur Datenumwandlung.
-
Diesbezüglich stellt
die vorliegende Erfindung gemäß einem
Ausführungsbeispiel
eine Schaltung nach Anspruch 1 bereit. Gemäß einem anderen Ausführungsbeispiel
wird eine Schaltung nach Anspruch 8 bereitgestellt. Nach wieder
einem anderen Ausführungsbeispiel
wird eine elektronische Vorrichtung nach Anspruch 16 bereitgestellt.
Nach einem weiteren Ausführungsbeispiel
wird ein Verfahren nach Anspruch 19 oder 22 bereitgestellt. Die
abhängigen
Ansprüche
definieren weitere Ausführungsbeispiele.
-
Bei
einem Ausführungsbeispiel
wird eine Schaltung bereitgestellt, welche eine Datenumwandlungsschaltung
umfasst. Die Datenumwandlungsschaltung umfasst einen ersten Eingang
zum Empfangen eines ersten seriellen Datenstroms, einen zweiten
Eingang zum Empfangen eines zweiten seriellen Datenstroms und einen
dritten Eingang zum Empfangen eines dritten seriellen Datenstroms.
Die Datenumwandlungsschaltung umfasst eine erste Abtastschaltung,
welche mit dem ersten, zweiten und dritten Eingang gekoppelt ist
und ausgestaltet ist, den ersten, zweiten und dritten seriellen
Datenstrom in Abhängigkeit
von einer Vielzahl von Taktsignalen abzutasten und eine entsprechende
Vielzahl von ersten abgetasteten Signalen zu erzeugen. Die Datenumwandlungsschaltung
umfasst eine zweite Abtastschaltung, welche ausgestaltet ist, die
Vielzahl von ersten abgetasteten Signalen in Abhängigkeit von einem weiteren
Taktsignal abzutasten. Das weitere Taktsignal weist eine Taktfrequenz
auf, welche sich von einer Taktfrequenz, welche dem ersten, zweiten
und dritten seriellen Datenstrom zu Grunde liegt, unterscheidet.
-
Die
Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme
auf die beigefügte
Zeichnung näher
erläutert.
Die Elemente in den Figuren sind nicht notwendigerweise maßstabsgetreu zueinander.
Gleiche Bezugszeichen bezeichnen einander entsprechende oder ähnliche
Teile.
-
1 zeigt
ein Ausführungsbeispiel
einer Vorrichtung.
-
2 zeigt
eine Schnittstellenschaltung gemäß einem
Ausführungsbeispiel.
-
3 zeigt
eine Datenumwandlungsschaltung gemäß einem Ausführungsbeispiel.
-
4 zeigt
ein Ausführungsbeispiel
einer Taktpfadsteuerungslogik.
-
5 zeigt
beispielhafte Wellenformen von Signalen entsprechend dem Ausführungsbeispiel
von 4.
-
6 zeigt
beispielhafte Wellenformen von Signalen entsprechend dem Ausführungsbeispiel
von 3.
-
7 zeigt
eine Datenumwandlungsschaltung gemäß einem Ausführungsbeispiel.
-
8 zeigt
eine Taktpfadsteuerungslogik gemäß einem
Ausführungsbeispiel.
-
9 zeigt
einen Teil eines Multiplexers gemäß einem Ausführungsbeispiel.
-
10 zeigt
beispielhafte Wellenformen von Signalen entsprechend dem Ausführungsbeispiel
von 8.
-
11 zeigt
beispielhafte Wellenformen von Signalen entsprechend dem Ausführungsbeispiel
von 8.
-
12 zeigt
beispielhafte Wellenformen von Signalen entsprechend dem Ausführungsbeispiel
von 7 in einer beispielhaften Betriebsart.
-
13 zeigt
beispielhafte Wellenformen entsprechend dem Ausführungsbeispiel von 7 in
einer anderen beispielhaften Betriebsart.
-
14 zeigt
eine Taktpfadsteuerungslogik gemäß einem
Ausführungsbeispiel.
-
Im
Folgenden werden Ausführungsbeispiele
der vorliegenden Erfindung erläutert.
Die folgende detaillierte Beschreibung von Ausführungsbeispielen ist nicht
eingrenzend auszulegen, und der Bereich der Erfindung ist nicht
durch die dargestellten Ausführungsbeispiele
begrenzt.
-
Merkmale
verschiedener Ausführungsbeispiele,
welche im Folgenden beschrieben werden, können miteinander kombiniert
werden, soweit nichts anderes angegeben ist.
-
Es
ist zudem zu bemerken, dass in der folgenden Beschreibung beispielhafter
Ausführungsbeispiele jede
direkte Verbindung oder Kopplung zwischen funktionalen Blöcken, Einrichtungen,
Komponenten, Schaltungselementen oder anderen physikalischen oder
funktionellen in der Zeichnung gezeigten oder im Folgenden beschriebenen
Einheiten ebenso durch eine indirekte Verbindung oder Kopplung,
d. h. eine Verbindung oder Kopplung mit dazwischen liegenden Elementen,
realisiert werden kann. Zudem können
in der Zeichnung gezeigte funktionelle Blöcke oder Einheiten in manchen
Ausführungsbeispielen
als getrennte Schaltungen implementiert sein, aber können bei
anderen Ausführungsbeispielen
der Erfindung auch ganz oder teilweise in einer gemeinsamen Schaltung
implementiert sein.
-
1 zeigt
eine Vorrichtung gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Das in 1 dargestellte
Ausführungsbeispiel
umfasst eine erste Schaltung 10, eine Schnittstellenschaltung 11 und eine
zweite Schaltung 12. Die erste Schaltung 10 gibt
einen seriellen Datenstrom sdata aus, welcher von der Schnittstellenschaltung 11 empfangen
wird. Die Schnittstellenschaltung 11 wandelt den seriellen
Datenstrom sdata in einen parallelen Datenstrom pdata um. Bei einem
Ausführungsbeispiel
kann pdata eine Breite von 9 Bit aufweisen, obwohl bei einem anderen
Ausführungsbeispiel
eine andere Bitbreite benutzt werden kann. Der parallele Datenstrom
pdata wird von der zweiten Schaltung 12 empfangen und verarbeitet.
-
Bei
einem Ausführungsbeispiel
sind die erste Schaltung 10, die Schnittstellenschaltung 11 und
die zweite Schaltung 12 als getrennte Schaltungen implementiert.
Bei einem anderen Ausführungsbeispiel
sind andere Implementierungen möglich,
beispielsweise durch Integrieren der Schnittstellenschaltung 11 und
der zweiten Schaltung 12 in einer einzigen integrierten
Schaltung.
-
Während in
dem in 1 dargestellten Ausführungsbeispiel eine einzige
serielle Datenverbindung zwischen der ersten Schaltung 10 und
der Schnittstellenschaltung 11 und eine einzige parallele
Datenverbindung zwischen der Schnittstellenschaltung 11 und
der Schaltung 12 dargestellt ist, können bei anderen Ausführungsbeispielen
zusätzliche
Verbindungen, sowohl serieller als auch paralleler Art, zwischen
den verschiedenen Elementen vorhanden sein. Zudem können bei
Ausführungsbeispielen
weitere Verbindungen vorhanden sein, um die erste Schaltung 10 und/oder
die zweite Schaltung 12 mit anderen Komponenten innerhalb oder
außerhalb
der Vorrichtung zu verbinden.
-
Bei
einem Ausführungsbeispiel
ist die erste Schaltung 10 eine Speichersteuerung, und
die zweite Schaltung 12 ist eine von der Speichersteuerung
gesteuerte Speicherschaltung, beispielsweise eine DRAM(Dynamic Random
Access Memory)-Schaltung.
Bei anderen Ausführungsbeispielen
können
andere Arten von Schaltungen benutzt werden.
-
Während bei
dem in 1 dargestellten Ausführungsbeispiel Daten, welche über eine
einzige serielle Datenverbindung gesendet werden, durch die Schnittstellenschaltung 11 in über eine
einzige parallele Datenverbindung gesendete parallele Daten konvertiert
werden, können
bei einem anderen Ausführungsbeispiel
Daten, welche über
ein oder mehrere serielle Datenverbindungen gesendet werden, in
Daten konvertiert werden, welche über ein oder mehrere parallele
Datenverbindungen gesendet werden. Beispielsweise können bei
einem Ausführungsbeispiel
Daten, welche über
drei serielle Datenverbindungen gesendet werden, in Daten umgewandelt
werden, welche über
eine einzige parallele Datenverbindung gesendet werden. Diesbezüglich ist zu
bemerken, dass eine Vielzahl serieller Datenverbindungen (beispielsweise
drei serielle Datenverbindungen) auch als parallele Verbindung (beispielsweise
eine 3 Bit breite parallele Verbindung) angesehen werden können.
-
Bei
dem in 1 dargestellten Ausführungsbeispiel weist ein dem
parallelen Datenstrom pdata zu Grunde liegendes Taktsignal eine
Taktfrequenz auf, welche einer Taktfrequenz eines Taktsignals, welches
dem seriellen Datenstrom sdata zu Grunde liegt, geteilt durch die
Symbolbreite des parallelen Datenstroms pdata (d. h. geteilt durch
die Anzahl von Datensymbolen, welche in dem parallelen Datenstrom
pdata parallel übertragen
werden), entspricht. Bei einem Ausführungsbeispiel ändert sich
diese Beziehung entsprechend, wenn mehr als ein serieller Datenstrom
benutzt wird. Im Folgenden werden Bits als Beispiel für Datensymbole
verwendet. Beispielsweise ist, wenn die Bitbreite des parallelen
Datenstroms pdata 9 ist, eine Taktfrequenz des pdata zu Grunde liegenden
Taktsignals oder in anderen Worten eine Übertragungsrate von 9-Bit-Rahmen
des Datenstroms pdata ein Neuntel der Taktfrequenz eines sdata zu
Grunde liegenden Taktsignals oder in anderen Worten ein Neuntel
der Bitrate von sdata. Um ein anderes Beispiel zu nehmen, ist, wenn
drei serielle Datenströme
mit derselben zu Grunde liegenden Taktfrequenz (oder ein 3 Bit breiter
paralleler Datenstrom) in einen 9 Bit breiten parallelen Datenstrom
umgewandelt wird, eine dem 9 Bit breiten parallelen Datenstrom zu
Grunde liegende Taktfrequenz ein Drittel der den drei seriellen
Datenströmen
zu Grunde liegenden Taktfrequenz.
-
In 2 ist
ein Ausführungsbeispiel
einer Schnittstellenschaltung dargestellt, welche beispielsweise als
Schnittstellenschaltung 11 in dem Ausführungsbeispiel von 1 benutzt
werden kann, welche aber ebenso in anderen elektronischen Geräten und
Vorrichtungen benutzt werden kann.
-
Die
Schnittstellenschaltung gemäß dem Ausführungsbeispiel
von 2 umfasst Eingänge 20, 21,
um einen differenziellen seriellen Datenstrom sdataa, sdatab zu
empfangen, wobei sdatab die invertierte Version von sdataa ist.
sdataa und sdatab werden einem Eingangstreiber 23 zugeführt, welcher
in Abhängigkeit
von den differenziellen Signalen sdataa, sdatab einen einpoligen
seriellen Datenstrom sdatas ausgibt. Bei einem an deren Ausführungsbeispiel
kann nur ein einziger Eingang zum Empfangen eines einpoligen seriellen
Datenstroms bereitgestellt sein.
-
Bei
einem Ausführungsbeispiel
umfasst der Eingangstreiber 23 einen Verstärker. Bei
einem anderen Ausführungsbeispiel
umfasst der Eingangstreiber 23 zusätzlich oder alternativ eine
Vielzahl von Komponenten, beispielweise einen Entzerrer oder einen
Haupttreiber.
-
Der
serielle Datenstrom sdatas ist bei dem Ausführungsbeispiel von 2 ein
von einem zu Grunde liegenden Taktsignal getakteter Datenstrom.
Das zu Grunde liegende Taktsignal weist eine Taktfrequenz und eine
Taktphase auf.
-
Der
serielle Datenstrom sdatas bei dem Ausführungsbeispiel von 2 wird
drei Abtasteinheiten 23, 24 und 25 zugeführt und
basierend auf Taktsignalen clk0, clk120 bzw. clk240 abgetastet.
Bei einem Ausführungsbeispiel
sind die Abtasteinheiten 23, 24, 25 Latch-Register
oder sie beruhen auf Latch-Registern.
Bei anderen Ausführungsbeispielen
können
andere Arten von Abtasteinheiten wie Flipflop-basierende Abtasteinheiten
benutzt werden.
-
Bei
dem in 2 dargestellten Ausführungsbeispiel werden die Taktsignale
clk0, clk120 und clk240 in Abhängigkeit
von dem oben erwähnten
sdatas zu Grunde liegenden Taktsignal und einer Steuersignalsteuerung
durch eine Taktphasenanpassungssteuerung 22 erzeugt. Die
Taktsignale clk0, clk120 und clk240 weisen bei dem Ausführungsbeispiel
von 2 jeweils die gleiche Taktfrequenz auf und sind
zueinander um 120 Grad phasenverschoben (d. h. clk120 ist bezüglich clk0
um 120 Grad phasenverschoben, und clk240 ist in Bezug auf clk120
um 120 Grad phasenverschoben). Um die Taktsignale clk0, clk120 und
clk240 zu erzeugen, kann die Taktphasenanpassungsschaltung 22 bei
einem Ausführungsbeispiel
beispielsweise einen Taktteiler und eine Verzögerungsregelschleife (DLL,
Delay Locked Loop) umfassen. Bei dem Ausführungsbeispiel von 2 kann
durch Benutzung des Steuerungssignals control die Phase der Taktsignale
clk0, clk120 und clk240 gemeinsam angepasst werden, um eine optimierte
Abtastung des seriellen Datenstroms sdatas bereitzustellen, beispielsweise
um die Taktsignale clk0, clk120 und clk240 an eine Augenöffnung von
sdatas anzupassen.
-
Bei
dem Ausführungsbeispiel
von 2 ist die Taktfrequenz der Taktsignale clk0, clk120
und clk240 ein Drittel einer Taktfrequenz eines Referenztaktsignals
clk. Es ist zu bemerken, dass clk kein tatsächlich benutztes Signal sein
muss, sondern auch als virtuelles Referenztaktsignal, welches zu
Erklärungszwecken
benutzt wird, angesehen werden kann.
-
Durch
das Abtasten von sdatas in Abhängigkeit
vom Taktsignal clk0 erzeugt die Abtasteinheit 23 einen seriellen
Datenstrom data0. Durch Abtasten von sdatas basierend auf clk120
erzeugt die Abtasteinheit 24 einen seriellen Datenstrom
data120. Durch Abtasten von sdatas in Abhängigkeit von dem Taktsignal
clk240 erzeugt die Abtasteinheit 25 einen seriellen Datenstrom
data240. Bei einem Ausführungsbeispiel
kann die Datenrate der seriellen Datenströme data0, data120 und data240
jeweils ein Drittel der Datenrate des seriellen Datenstroms sdatas
sein.
-
Bei
dem Ausführungsbeispiel
von 2 werden die Signale data0, data120 und data240
einer Umwandlungsschaltung 27 zugeführt. Zudem wird das Taktsignal
clk120 der Umwandlungsschaltung 27 zugeführt. Wie
durch gestrichelte Linien angedeutet, kann bei dem Ausführungsbeispiel
von 2 zusätzlich
oder alternativ zudem eine invertierte Version von clk120, mit clk120b
bezeichnet, der Umwandlungsschaltung 27 zugeführt werden.
Bei einem anderen Ausführungsbeispiel
können
zudem oder alternativ clk120 oder seine invertierte Version clk120b
und ein oder mehrere Taktsignale aus der Gruppe clk0, clk240 der
Umwandlungsschaltung 27 zugeführt werden, möglicherweise
in invertierter Form. Die Umwandlungsschaltung 27 gibt
einen parallelen Datenstrom pdata aus, welcher bei dem Ausführungsbeispiel
von 2 ein 9-Bit-Signal ist. Bei anderen Ausführungsbeispielen
sind andere Bitbreiten möglich.
Jeweils 9 parallele Bits des parallelen Datenstroms pdata werden
im Folgenden auch als Rahmen (engl.: frame) bezeichnet. Der parallele
Datenstrom pdata wird durch ein Taktsignal frclk getaktet, welches
in dem Ausführungsbeispiel
von 2 eine Frequenz von einem Neuntel der Frequenz
des Referenztaktsignals clk oder ein Drittel der Frequenz von clk0,
clk120 und clk240, aufweist. Das Taktsignal frclk bei dem Ausführungsbeispiel
von 2 ist nicht unbedingt vollständig synchron mit den Taktsignalen
clk0, clk120 und clk240, sondern es kann eine Unsicherheit bezüglich der Phasenbeziehung
zwischen frclk auf der einen Seite und clk0, clk120 und clk240 auf
der anderen Seite (beispielsweise aufgrund von Jitter) geben. Bei
dem in 2 dargestellten Ausführungsbeispiel kann die Umwandlungsschaltung
durch ein Steuersignal cctrl gesteuert werden, beispielsweise um
die Umwandlungsschaltung 27 zu aktivieren oder zu deaktivieren.
Verschiedene Ausführungsbeispiele
von Umwandlungsschaltungen, welche in dem Ausführungsbeispiel von 2 benutzt
werden können,
aber auch in anderen Umgebungen benutzt werden können, in denen eine Vielzahl
von seriellen Datenströmen
wie data0, data120 und data240 in einen parallelen Datenstrom umgewandelt
werden soll, werden im Folgenden diskutiert.
-
In 3 ist
eine Umwandlungsschaltung 30 gemäß einem Ausführungsbeispiel
dargestellt, welche beispielsweise als Umwandlungsschaltung 27 in
dem Ausführungsbeispiel
von 2 benutzt werden kann. Der in 3 dargestellten
Umwandlungsschaltung 30 werden serielle Datenströme data0,
data120 und data240 wie bereits in 2 dargestellt
zugeführt.
Aus Klarheitsgründen
sind diese drei Datenströme
in 3 als ein einziger 3 Bit breiter paralleler Datenstrom
dargestellt.
-
Bei
dem Ausführungsbeispiel
von 3 wird dieser 3 Bit breite parallele Datenstrom
Flipflopeinheiten 32, 33 und 34 zugeführt, wo
er basierend auf Taktsignalen en0, en1 bzw. en2 abgetastet wird,
um parallele 3-Bit-Datenströme
dat012, dat345 bzw. dat678 zu erzeugen. en0, en1 und en2 werden
bei dem in 3 gezeigten Ausführungsbeispiel
in Abhängigkeit
vom Taktsignal clk120 durch eine Taktpfadsteuerlogik 31 erzeugt. Bei
dem Ausführungsbeispiel
von 3 ist das Taktsignal clk120 ein dem Datenstrom
data120 zu Grunde liegendes Taktsignal, während data0 und data240 auf
Taktsignalen beruhen, welche bezüglich
clk120 um 120 Grad in die negative bzw. positive Richtung phasenverschoben
sind.
-
Die
drei 3-Bit-Datenströme
dat012, dat345 und dat678 werden einer Flipflopeinheit 35 zugeführt, in
der diese drei 3-Bit-Datenströme in Abhängigkeit
von einem Taktsignal frclk abgetastet werden, welches ein Drittel der
Taktfrequenz von clk120 aufweist, um einen 9 Bit breiten parallelen
Datenstrom pdata zu erzeugen. Somit wird bei dem Ausführungsbeispiel
von 3 eine Umwandlung des Datenformats von drei seriellen
Datenströmen
in einen parallelen Datenstrom und eine Konvertierung der Taktdomäne, auch
als Taktdomänenüberquerung
(engl.: Clock Domain Crossing) von clk0, clk120 und clk240 auf frclk
durchgeführt.
-
Während bei
dem Ausführungsbeispiel
von 3 drei Flipflopeinheiten 32, 33 und 34 bereitgestellt sind,
wobei das Abtasten von data0, data120 und data240 basierend auf
Flipflops durchgeführt
wird (z. B. drei Flipflops in jeder Flipflopeinheit, ein Flipflop
zum Abtasten von data0, ein Flipflop zum Abtasten von data120 und
ein Flipflop zum Abtasten von data240), können bei anderen Ausführungsbeispielen
andere Arten von Abtastschaltungen, beispielsweise Latch-Register,
benutzt werden.
-
In ähnlicher
Weise können,
während
bei dem in 3 dargestellten Ausführungsbeispiel
eine Flipflopeinheit 35, welche beispielsweise neun Flipflops
zum Abtasten der drei 3-Bit-Datenströme dat012,
dat345 und dat678 umfassen kann, benutzt wird, andere Arten von
Abtastschaltungen wie Latch-Register zum Erzeugen des 9-Bit-Datenstroms
pdata benutzt werden.
-
Wie
erläutert
erzeugt bei dem Ausführungsbeispiel
von 3 die Taktpfadsteuerungslogik 31 die
Taktsignale en0, en1 und en2 in Abhängigkeit von dem Taktsignal
clk120. Eine Taktpfadsteuerungslogik 31 gemäß einem
Ausführungsbeispiel
wird nunmehr unter Bezugnahme auf 4 erläutert.
-
Das
in 4 dargestellte Ausführungsbeispiel erzeugt die
Taktsignale en1, en2 und en0 in Abhängigkeit von einer invertierten
Version clk120b des Taktsignals 120, welche durch einen
Inverter 43 erzeugt wird. Um die Taktsignale en1, en2 und
en0 zu erzeugen, wird eine schieberegisterähnliche Struktur benutzt, welche Register 44, 45 und 48,
einen Inverter 46 und ein Nicht-Und(NAND)-Gatter 47 umfasst.
Die Register 44, 45 und 48 werden durch
das Taktsignal clk120b (z. B. durch ansteigende Flanken von diesem)
getaktet, um eine einzige logische Eins vom Register 48 zum
Register 47, vom Register 44 zum Register 45 und
vom Register 45 wiederum zum Register 48 usw.
zu schieben. Um diese „Schleife" in einer definierten
Weise zu starten, ist in dem in 4 dargestellten
Ausführungsbeispiel
eine Rücksetzstruktur
(Reset) bereitgestellt, welche Flipflops 40, 48 und 42 umfasst,
welche durch das Taktsignal clk120 (z. B. durch steigende Flanken
hiervon) getaktet werden. Die Flipflops 40, 41 und 42 sind
bei dem Ausführungsbeispiel
von 4 in Reihe geschaltet, und dem Flipflop 40 wird
ein Rücksetzsignal
resetb zugeführt,
welches mit den Taktsignalen clk120 und/oder clk120 synchronisiert
sein kann, aber nicht synchronisiert sein muss. Die Kette der Flipflops 40, 41 und 42 erzeugt
ein synchronisiertes Rücksetzsignal
sresetb, welches dem Register 44, dem Register 45 und
dem Nicht-Und-Gatter 47 bei dem Ausführungsbeispiel von 4 zugeführt wird.
-
Das
Rücksetzsignal
resetb ist ein externes Rücksetzsignal,
welches beispielsweise beim Hochfahren des Systems erzeugt wird. Über die
beschriebene Rücksetzstruktur
werden, wenn ein Rücksetzen
durchgeführt
wird, die Register 44 und 45 zurückgesetzt,
so dass sie eine logische Null ausgeben. Das Register 48 wird
nicht zurückgesetzt,
aber ihm wird über
das Nicht-Und-Gatter 47 eine logische Eins zugeführt, so
dass es eine logische Eins ausgibt. Daher wird bei dem Ausführungsbeispiel
von 4 durch das Rücksetzen
das System in einen Zustand gebracht, bei dem en0 einer logischen
Eins und en1, en2 jeweils einer logischen Null entsprechen.
-
Bei
einem anderen Ausführungsbeispiel
einer Taktpfadsteuerungslogik können
die Flipflops 40, 41 und 42 weggelassen
sein, und das Rücksetzen
kann direkt durch ein externes Rücksetzsignal,
beispielsweise ein synchronisiertes Rücksetzsignal, durchgeführt werden.
Bei einem anderen Ausführungsbeispiel
wird keine Rücksetzstruktur
benutzt. Bei einem anderen Ausführungsbeispiel
kann eine andere Schaltung zum Synchronisieren eines externes Rücksetzsignals
benutzt werden, beispielsweise eine Schaltung, welche eine andere Anzahl
von Flipflops wie dargestellt benutzt.
-
In 5 sind
beispielhafte Wellenformen, welche durch das in 4 dargestellte
Ausführungsbeispiel erzeugt
werden, dargestellt, um die Funktionsweise dieses Ausführungsbeispiels
einer Taktpfadsteuerungslogik zu erläutern. In 5 ist
ein beispielhaftes invertiertes Taktsignal clk120b und sich ergebende
Taktsignale en0, en1 und en2 dargestellt. Wie dargestellt sind en0,
en1 und en2 zueinander um 120 Grad phasenverschoben und weisen jeweils
ein Drittel der Taktfrequenz von clk120b auf.
-
Wie
durch die beispielhaften Wellenformen von 5 veranschaulicht,
werden durch Benutzung der Taktpfadsteuerungslogik von 4 in
dem Ausführungsbeispiel
von 3 in den Flipflopeinheiten 32, 33 und 34 data0,
data120 und data240 jeweils mit jeder dritten ansteigenden Flanke
des Taktsignals clk120b abgetastet, wobei die Abtastungen um 120
Grad oder eine Periode des Taktsignals clk120b zueinander phasenverschoben
sind.
-
Als
nächstes
wird der Betrieb der Umwandlungsschaltung des in 3 dargestellten
Ausführungsbeispiels
unter Benutzung von beispielhaften Wellenformen wie in 6 gezeigt
detaillierter erläutert.
Zum Zwecke der Veranschaulichung wird bei 6 angenommen,
dass die Umwandlungsschaltung 30 des Ausführungsbeispiels
von 3 in einer Schnittstellenschaltung wie der in 2 dargestellten
benutzt wird, in der ein serieller Datenstrom sdata durch drei Taktsignale
clk0, clk120 und clk240 abgetastet wird, um wie unter Bezugnahme
auf 2 erläutert
serielle Datenströme
data0, data120 und data240 zu erzeugen. In 6 sind in den
ersten vier Zeilen das Referenztaktsignal clk und die Taktsignale
clk0, clk120 und clk240, welche jeweils ein Drittel der Taktfrequenz
von clk aufweisen und zueinander um 120 Grad phasenverschoben sind,
dargestellt. Die Taktsignale clk0, clk120 und clk240 werden benutzt,
den seriellen Datenstrom sdata abzutasten, um die in 6 ebenfalls
dargestellten Datenströme
data0, data120 und data240 zu erzeugen. Die (wiederum als Beispiel
für Datensymbole
dienenden) Bits von data0, data120 und data240 sind in 6 jeweils
mit einer Kombination eines Buchstabens (a, b, ...) und einer Zahl
bezeichnet. Der Buchstabe gibt einen Rahmen oder einen 9-Bit-Einheit
an, für
welche das jeweilige Bit in dem schlussendlich ausgegebenen parallelen
Datenstrom pdata beabsichtigt ist, und die Zahl zeigt eine Bitposition
innerhalb des jeweiligen 9-Bit-Rahmens an. Beispielsweise sollen
wie unten näher
erläutert
die Bits a0 bis a8 die Bits Nummer 0–8 eines 9-Bit-Rahmens bilden.
Der serielle Datenstrom sdata kann in einem Ausführungsbeispiel ein Datenstrom
sein, in dem Bits sequenziell übertragen
werden, wobei die Bits mit a0, a1, ..., a8, b0, b1, ..., b8, ...
bezeichnet sind.
-
Zudem
ist in 6 clk120b als invertiertes Signal von clk120 dargestellt.
Von dem Signal clk120b werden Taktsignale en0, en1 und en2 wie in 5 dargestellt
abgeleitet und bei dem Beispiel von 6 benutzt, um
die Datenströme
data0, data120 und data240 abzutasten, um 3-Bit-Datenströme dat012,
dat345 und dat678 zu erzeugen, welche ebenso in 6 dargestellt
sind. Die Bezeichnungen in den Wellenformen von dat012, dat345 und
dat678 zeigen an, welche 3 Bits in der jeweiligen Symbolperiode
des jeweiligen Signals vorhanden sind. Beispielsweise gibt a012
an, dass in der jeweiligen Symbolperiode die Bits a0, a1 und a2
vorliegen.
-
Bei
dem Ausführungsbeispiel
von 3 werden die Datenströme dat012, dat345 und dat678
dann mit dem Taktsignal frclk abgetastet, um das 9-Bit-Signal pdata
zu erzeugen, wobei wiederum die Bezeichnungen angeben, welche Bits
in welcher Symbolperiode vorliegen. Beispielsweise zeigt a012345678
an, dass in der jeweiligen Symbolperiode pdata die Bits a0 bis a8
umfasst.
-
Wie
in 6 zu sehen ist, kann bei dem Ausführungsbeispiel
von 3 das Taktsignal frclk wie durch einen Pfeil 51 angedeutet
innerhalb eines Fensters 50 verschoben werden, welches
drei Einheitsintervalle oder Taktzyklen des Referenztaktsignals
clk breit ist, und immer noch die korrekten Ergebnisse erzeugen
(d. h. nach wie vor werden diejenigen Bits, welche mit demselben
Kleinbuchstaben bezeichnet sind, zusammen abgetastet). In anderen
Worten kann es bei dem Ausführungsbeispiel
von 3 eine Phasenverschiebung zwischen clk120 und
frclk innerhalb des Fensters 50 geben oder, in anderen
Worten, frclk kann ein Taktsignal einer Taktdomäne sein, welche nicht vollständig mit
der Taktdomäne,
welche beispielsweise clk120 umfasst, ausgerichtet ist, d. h. nicht
vollständig
eine nominelle Phasenbeziehung aufweisen, beispielsweise aufgrund von
Jitter.
-
Es
ist zu bemerken, dass die beispielhaften Wellenformen, welche in 5 und 6 dargestellt
sind, lediglich dazu dienen sollen, einen beispielhaften Betrieb
der in 3 und 4 dargestellten Ausführungsbeispiele
zu veranschaulichen, und die Ausführungsbeispiele der 3 und 4 sind
nicht auf die Benutzung dieser Wellenformen beschränkt.
-
Ein
weiteres Ausführungsbeispiel
einer Umwandlungsschaltung wird als nächstes unter Bezugnahme auf 7 erläutert. In 7 ist
eine Umwandlungsschaltung 60 dargestellt, welche beispielsweise
in einem Ausführungsbeispiel
von 2 als Umwandlungsschaltung 27 benutzt
werden kann. Bei den in 7 dargestellten Ausführungsbeispielen
sind serielle Datenströme
data0, data120 und data240 als 3 Bit breiter paralleler Datenstrom
dargestellt. Data0, data120 und data240 werden Flipflopeinheiten 63, 64, 65, 66 bzw. 67 zugeführt, um
in Abhängigkeit
von Taktsignalen en0, en0b, en1, en1b bzw. en2 abgetastet zu werden,
um 3-Bit-Datensignale datA, datB, datE, bzw. datC zu erzeugen. Die
Taktsignale en0, en0b, en1, en1b und en2 werden in dem Ausführungsbeispiel
von 7 durch eine Taktpfadsteuerungslogik 61 erzeugt.
Bei dem Ausführungsbeispiel
von 7 wird der Taktpfadsteuerungslogik 61 ein
dem seriellen Datenstrom 120 zu Grunde liegendes Taktsignal
clk120 und seine invertierte Version clk120b zugeführt. Weiterhin
wird der Taktpfadsteuerungslogik 61 ein Steuersignal wrctrl_en
zugeführt,
dessen Funktion später
erläutert
wird und welches ein Beispiel für
das in 2 dargestellte Signal cctrl ist.
-
Bei
einem Ausführungsbeispiel
können
die Flipflopeinheiten 63–67 jeweils drei Flipflops
zum Abtasten der seriellen Datenströme data0, data120 und data240
umfassen. Bei anderen Ausführungsbeispielen
können andere
Abtastschaltungen benutzt werden.
-
Bei
dem Ausführungsbeispiel
von 7 werden die 3-Bit-Signale datA, datD, datB, datE und datC Flipflopeinheiten 68, 69, 70, 71 bzw. 72 zugeführt und
in Abhängigkeit
von dem Taktsignal frclk abgetastet, um 3-Bit-Datensignale datAi,
datDi, datBi, datEi bzw. datCi zu erzeugen. Bei einem Ausfüh rungsbeispiel
können die
Flipflopeinheiten 68–72 jeweils
drei Flipflops umfassen, eines zum Abtasten jedes Bits des ihnen
zugeführten
Signals. Bei anderen Ausführungsbeispielen
können
andere Abtastschaltungen benutzt werden.
-
Die
3-Bit-Signale datAi, datDi, datBi, datEi und datCi werden bei dem
Ausführungsbeispiel
von 7 einem Multiplexer 73 zugeführt, wobei
der Multiplexer 73 in Abhängigkeit von einem Steuersignal
pos, welches in dem Ausführungsbeispiel
von 7 ein n-Bit-Signal ist, drei der ihm zugeführten 3-Bit-Signale auswählt, um den
parallelen Ausgangsdatenstrom pdata zu bilden. Das Steuersignal
pos wird von einer Zählerschaltung 62 erzeugt,
welche durch das Taktsignal frclk getaktet wird und welche zudem
das Steuersignal wrctrl_en empfängt.
-
Bei
dem Ausführungsbeispiel
von 7 weist das Taktsignal frclk ein Drittel der Taktfrequenz
des Taktsignals clk120 auf. frclk und clk120 müssen bei dem Ausführungsbeispiel
von 7 nicht perfekt synchronisiert sein, d. h. keine
perfekte vorgegebene Phasenbeziehung aufweisen, sondern ein Phasenversatz
ist möglich.
Eine Größe des erlaubten
Phasenversatzes (welcher beispielsweise durch Jitter erzeugt werden
kann) kann bei einem Ausführungsbeispiel
durch das Steuersignal wrctrl_en ausgewählt werden. Die Größe des Phasenversatzes
kann bei einem Ausführungsbeispiel
bei der Initialisierung des Systems bestimmt werden, beispielsweise
durch schrittweises Vergrößern des
erlaubten Phasenversatzes, bis ein korrekter Ausgangsdatenstrom
pdata erzeugt wird. Bei einem derartigen Ausführungsbeispiel kann wrctrl_en
ein statisches Signal sein, welches bei der Initialisierung oder
beim Hochfahren des Systems bestimmt wird und dann konstant gehalten
wird. Bei einem anderen Ausführungsbeispiel
kann sich wrctrl_en während
des Betriebs verändern
(beispielsweise, um auf Änderungen
des Phasenversatzes zwischen clk0, clk120 oder clk240 und frclk
zu reagieren). Bei einem Ausführungsbeispiel
ist wrctrl_en ein 3-Bit-Signal zum Auswählen eines Phasenversatzes
oder Timing-Fensters. Bei dem Ausführungsbeispiel von 7 kann
das Timing-Fenster auf drei Einheitsintervalle oder Taktzyklen eines
Referenztaktsignals clk (entsprechend einem Taktzyklus des Taktsignals
clk120), auf sechs Einheitsintervalle des Referenztaktsignals clk
oder auf neun Einheitsintervalle des Referenztaktsignals clk gesetzt
werden.
-
Bei
dem Ausführungsbeispiel
von 7 werden in Abhängigkeit von der Auswahl nur
manche oder alle der Taktsignale en0, en0b, en1, en1b und en2 und
dementsprechend manche oder alle der Signale datA bis datE und datAi
bis datEi benutzt. Bei einem Ausführungsbeispiel werden für ein Timing-Fenster
von drei Einheitsintervallen, was beispielsweise durch einen Bit-Code des Steuersignals
wrctrl_en von 001 angezeigt werden kann, die Taktsignale en0, en1
und en2 benutzt, aber nicht die Taktsignale en0b und en1b und die
Signale datD, datE, datDi, datEi, welche sich von diesen ableiten.
Ein Timing-Fenster
von sechs Einheitsintervallen kann bei diesem Ausführungsbeispiel
durch einen Bitcode 010 des Signals wrctrl_en angezeigt werden, wobei
in diesem Fall die Taktsignale en0, en0b, en1 und en2 und die entsprechenden
abgetasteten Signale, aber nicht das Taktsignal en1b benutzt werden.
Ein Timing-Fenster von neun Einheitsintervallen kann bei diesem
Ausführungsbeispiel
durch einen Bitcode 100 des Signals wrctrl_en angezeigt
werden, wobei in diesem Fall alle Taktsignale en0, en0b, en1, en1b
und en2 benutzt werden. Bei anderen Ausführungsbeispielen können andere
Bitcodes und/oder andere Taktsignale für verschiedene Timing-Fenster
benutzt werden.
-
Im
Folgenden werden Ausführungsbeispiele
von Komponenten des Ausführungsbeispiels
von 7 detaillierter erläutert. In 8 ist
eine Taktpfadsteuerungslogik 61 gemäß einem Ausführungsbeispiel
dargestellt. Dem Ausführungsbeispiel
von 8 wird das Taktsignal clk120 und seine invertierte
Version clk120b zugeführt.
Bei einem anderen Ausführungsbeispiel
wird der Taktpfadsteuerungslogik nur das Taktsignal clk120 zugeführt, und
die invertierte Version clk120b wird bei spielsweise durch Benutzung
eines Inverters intern erzeugt. Weiterhin wird das Steuersignal
wrctrl_en, welches bei diesem Ausführungsbeispiel ein 3-Bit-Signal
wie oben beschrieben ist, der Taktpfadsteuerungslogik 61 zugeführt. Das
in 8 dargestellte Ausführungsbeispiel der Taktpfadsteuerungslogik 61 umfasst
einen Eingang zum Empfangen eines Rücksetzsignals resetb, welches
ein beispielsweise beim Hochfahren des Systems erzeugtes externes
Rücksetzsignal
ist, um die Taktpfadsteuerungslogik 61 des Ausführungsbeispiels
von 8 in einen definierten Startzustand zu versetzen.
-
Das
Rücksetzsignal
resetb wird einer Kette von drei Flipflops 80, 81 und 82,
welche in Reihe geschaltet sind und welche durch das Taktsignal
clk120 getaktet sind, zugeführt,
wobei die Kette von drei Flipflops 80, 81 und 82 ein
synchronisiertes Rücksetzsignal
sresetb, d. h. ein mit clk120 synchronisiertes Rücksetzsignal, erzeugt. Die
Taktsignale en0, en1, en2, en0b und en1b werden durch eine Abfolge
von Registern 83, 84, 85, 86 und 88 erzeugt,
welche verschaltet sind, eine schieberegisterähnliche Struktur zu bilden,
wobei eine einzige logische Eins herumverschoben wird. Die Register 83, 84, 85, 86 und 88 werden
durch das invertierte Taktsignal clk120b getaktet. Im Falle der
Register 85 und 86 wird diese Taktung über Steuergatter 89 und 90 bewirkt, welche
durch das Signal wctrl_en gesteuert werden, um die Register 85 und 86 nur
dann zu takten, wenn die jeweiligen Ausgangssignale en0b und en1b
in einer Betriebsart, welche ein Timing-Fenster wie oben beschrieben
spezifiziert, benötigt
werden. Ein Multiplexer 87 ist bereitgestellt, um das Register 86 oder
die Register 85 und 86 zu überbrücken, falls en1b oder in einer
anderen Betriebsart en0b und en1b nicht benötigt werden, und um en2, en1b
oder en0b als Signal en2m auszugeben. Der Multiplexer 87 wird
ebenso durch das wctrl_en gesteuert.
-
Bei
dem Ausführungsbeispiel
von 8 wird das synchronisierte Rücksetzsignal sresetb Reset-Eingängen der
Register 83–86 und
einem Setzeingang (Set Input) des Registers 88 zu geführt, so
dass bei einem Rücksetzen
en0 auf eins gesetzt wird und en1, en2, en0b und en1b auf null gesetzt
werden.
-
Als
nächstes
wird ein Ausführungsbeispiel
des Multiplexers
73 von
7 diskutiert.
Der Multiplexer
73 wird durch die Signale pos und wctrl_en
gesteuert. Bei einem Ausführungsbeispiel
wählt der
Multiplexer
73 Datensignale gemäß der folgenden Tabelle 1: Tabelle 1
pos | Wctrl_en | 001 | 010 | |
000 | pdata210<=datAi
pdata543<=datBi
pdata876<=datCi | pdata210<=datAi
pdata543<=datBi
pdata876<=datCi | pdata210<=datAi
pdata543<=datBi
pdata876<=datCi |
001 | | pdata210<=datDi
pdata543<=datAi
pdata876<=datBi | pdata210<=datDi
pdata543<=datEi
pdata876<=datAi |
010 | | pdata210<=datCi
pdata543<=datDi
pdata876<=datAi | pdata210<=datBi
pdata543<=datCi
pdata876<=datDi |
011 | | pdata210<=datBi
pdata543<=datCi
pdata876<=datDi | pdata210<=datEi
pdata543<=datAi
pdata876<=datBi |
100 | | | pdata210<=datCi
pdata543<=datDi
pdata876<=datEi |
-
In
der obigen Tabelle 1 wird die Auswahl durch den Multiplexer 73 in
Abhängigkeit
von dem Signal pos und dem 3-Bit-Signal
wrctrl_en ausgewählt,
wobei bei wrctrl_en ein Wert von 001 einem Timing-Fenster von drei
Einheitsintervallen, 010 einem Timing-Fenster von sechs Einheitsintervallen
und 100 einem Timing-Fenster von neun Einheitsintervallen entspricht.
-
Bei
diesem Ausführungsbeispiel
ist pos ein 3-Bit-Signal, welches Werte von 000 bis 100 oder in
Dezimalzahlen von 0 bis 4 annimmt. Für einen Wert wrctrl_en von
001 entsprechend einem Timing-Fenster von drei Einheitsintervallen
wird bei diesem Ausführungsbeispiel
nur ein Wert pos = 000 benutzt und wie in der obigen Tabelle 1 angegeben
wird datAi für
die Bits 0 bis 2 von pdata (in Tabelle 1 als pdata210 bezeichnet)
benutzt, datBi wird für
Bits 3 bis 5 von pdata (in Tabelle 1 mit pdata543 bezeichnet) benutzt,
und datCi wird für Bits
6 bis 8 von pdata (in Tabelle 1 mit pdata876 bezeichnet) benutzt.
In dem Fall wrctrl_en = 010 entsprechend einem Timing-Fenster von
sechs Einheitsintervallen in dem durch Tabelle 1 beschriebenen Ausführungsbeispiel,
werden die Signale datAi, datBi, datCi und datDi in Abhängigkeit
von dem Wert des Signals pos benutzt, wobei pos Werte von 000 bis
011 (oder 0 bis 3) für
diesen Fall annimmt. Wenn wrctrl_en = 100 werden in Abhängigkeit
von dem Wert von pos von 000 bis 100 drei Signale der fünf Signale
datAi bis datEi zum Bilden des Signals pdata benutzt.
-
Bei
einem Ausführungsbeispiel
umfasst die Zählerschaltung 62 einen
durch frclk getakteten zyklischen Zähler, welcher pos zyklisch
in dem durch wrctrl_en bestimmten Bereich zählt, d. h. pos bleibt bei 000,
wenn wrctrl_en = 001, pos zählt
von 000 bis 011 und startet dann wieder bei 000, wenn wrctrl_en
= 010, und pos zählt
von 000 bis 100 und startet dann wieder bei 000, wenn wrctrl_en
= 100.
-
Eine
Implementierung des Multiplexers 73 gemäß einem Ausführungsbeispiel
wird als nächstes
unter Bezugnahme auf 9 diskutiert. In 9 ist
ein Teil des Multiplexers 73 zum Auswählen der Bits 8, 7 und 6 des
Signals pdata, d. h. pdata876 in der obigen Notation, dargestellt.
Bei einem Ausführungsbeispiel
wird eine ähnliche
Schaltung zum Auswählen
der Bits 5, 4 und 3 und eine weitere ähnlich Schaltung zum Auswählen der Bits
2, 1 und 0 benutzt, oder in anderen Worten umfasst ein Multiplexer
gemäß einem
Ausführungsbeispiel
drei Schaltungen wie in 9 dargestellt.
-
Die
in 9 dargestellte Schaltung umfasst fünf Puffer 100 bis 104,
wobei jedes der Signale datAi bis datEi einem der Puffer 100 bis 104 wie
in 9 dargestellt zugeführt wird.
-
Die
Puffer 100 bis 104 werden durch ein Steuersignal
ppos gesteuert, welches in dem Ausführungsbeispiel von 9 ein
5-Bit-Signal ist,
wobei jedes Bit einen der Puffer 100 bis 104 aktiviert
oder deaktiviert. Bei dem Ausführungsbeispiel
von 9 steuert Bit Nr. 0 von ppos den Puffer 102,
Bit Nr. 1 steuert den Puffer 100, Bit Nr. 2 steuert den
Puffer 103, Bit Nr. 3 steuert den Puffer 101 und
Bit Nr. 4 steuert den Puffer 104. Bei einem Ausführungsbeispiel
werden die Bits von ppos in Abhängigkeit
von dem Zähler
pos und dem Signal wrctrl_en entsprechend der obigen Tabelle 1 gesetzt.
Beispielsweise wird, wenn wrctrl_en = 001 ist, ppos[0] auf eins
gesetzt und die übrigen
Bits werden auf null gesetzt, so das Puffer 102 aktiviert
und die Puffer 100, 101, 103 und 104 deaktiviert
werden. In diesem Fall entspricht pdata876 wie in der obigen Tabelle
1 dargestellt datCi.
-
Im
Fall wrctrl_en = 010 wird entsprechend einem Ausführungsbeispiel
wie durch Tabelle 1 dargestellt wenn pos = 000 ppos[0] auf eins
gesetzt, wenn pos = 001 ppos[3] auf eins gesetzt, wenn pos = 010
ppos[1] auf eins gesetzt und wenn pos = 011 ppos[2] auf eins gesetzt.
Die übrigen
Bits von ppos werden in jedem Fall auf null gesetzt. Wenn schließlich wrctrl_en
= 100, wird, wenn pos = 000 ppos[0] auf eins gesetzt, wenn p0s = 001
ppos[1] auf eins gesetzt, wenn pos = 010 ppos[2] auf eins gesetzt,
wenn pos = 011 ppos[3] auf eins gesetzt und wenn pos = 100 ppos[4]
auf eins gesetzt, oder in anderen Worten wird, wenn wrctrl_en =
100, immer die Bitnummer von ppos, welche dem dezimalen Wert von
pos entspricht, auf eins gesetzt, und die übrigen Bits von ppos werden
in jedem Fall auf null gesetzt.
-
Bei
einem Ausführungsbeispiel
sind Puffer 100 bis 104 sogenannte Tristate-Puffer
(Dreizustandspuffer), welche in einen Zustand mit hoher Impedanz
gesetzt werden, wenn das entspre chende Steuerbit auf null gesetzt
wird. Bei anderen Ausführungsbeispielen
können
andere Arten von Puffern oder Schaltern benutzt werden, um pdata876
auf das gewünschte
Signal der Signale datAi bis datEi zu setzen. Bei noch einem anderen
Ausführungsbeispiel
kann anstelle eines Multiplexers, welcher Tristate-Puffer benutzt,
ein herkömmlicher Multiplexer
benutzt werden.
-
Die
Erzeugung des Steuersignals ppos in Abhängigkeit von pos und wrctrl_en
wird bei einem Ausführungsbeispiel
durch eine Logikschaltung durchgeführt, welche in den Multiplexer 73 oder
in die Zählerschaltung 62 bei
dem Ausführungsbeispiel
von 7 integriert sein kann. Bei einem Ausführungsbeispiel
kann eine schieberegisterähnliche
Struktur benutzt werden, um zyklisch die „Eins" zum Aktivieren des gewünschten
Puffers 100 bis 104 herumzuschieben, wobei diese
Struktur in Abhängigkeit
von wrctrl_en initialisiert wird. Bei einem derartigen Ausführungsbeispiel
kann dieses Schieberegister die Zählerschaltung 62 ersetzen
und durch frclk getaktet werden.
-
Als
nächstes
wird ein beispielhafter Betrieb des in 7 und 8 dargestellten
Ausführungsbeispiels
unter Benutzung von beispielhaften Wellenformen von Signalen unter
Bezugnahme auf 10 bis 13 weiter
erläutert.
-
Als
erstes wird der Betrieb der Taktpfadsteuerungslogik 61 des
in 8 dargestellten Ausführungsbeispiels unter Bezugnahme
auf 10 und 11 erläutert. In 10 ist
der Betrieb der Steuergatter 89 und 90 des Ausführungsbeispiels
von 8 dargestellt. Das in der ersten Zeile von 10 dargestellte
invertierte Taktsignal clk120b wird den Steuergattern 89 und 90 zugeführt. Solange
das jeweilige Steuergatter nicht durch das Steuersignal wctrl_en
aktiviert ist, was in 10 dadurch dargestellt ist,
dass dieses Signal auf null liegt, ist ein Ausgangssignal des jeweiligen
Steuergatters, welches mit gclk120b in 10 bezeichnet
ist, null. Wenn wctrl_en das jeweilige Steuergatter aktiviert, was
in 10 durch einen Wert logisch eins von wctrl_en
dargestellt wird, entspricht das Ausgangssignal des jeweiligen Steuergatters 89, 90 dem
Signal clk120b, was das jeweilige Register 85, 86 aktiviert.
-
Als
nächstes
werden unter Bezugnahme auf 11 die
bereits beschriebenen Betriebsarten der Taktpfadsteuerungslogik 61 des
Ausführungsbeispiels
von 8 weiter diskutiert. In 11 sind
die Signale en2, en0b und en1b und der Ausgang des Multiplexers 87 en2m
für die
drei Fälle
wctrl_en = 001, 010 und 100 dargestellt.
-
Im
Fall wctrl_en = 001 sind wie bereits beschrieben en0b und en1b null,
da die jeweiligen Register nicht über die Steuergatter 89, 90 getaktet
werden. In diesem Fall wird das Signal en2m durch den Multiplexer 87 so
gewählt,
dass es dem Signal en2 entspricht.
-
Im
Fall wctrl_en = 010 wird dem Register 85 über das
Steuergatter 89 das Taktsignal clk120b zugeführt, während das
Register 86 immer noch deaktiviert ist. In diesem Fall
wird bei dem Ausführungsbeispiel von 8 das
Taktsignal en0b erzeugt und durch den Multiplexer 87 als
Signal en2m ausgegeben.
-
Wenn
wctrl_en = 100, werden beide Taktsignale en0b und en1b erzeugt,
und das Taktsignal en1b wird durch den Multiplexer 87 als
Signal en2m ausgegeben.
-
Wie
in 11 dargestellt ändert sich die Taktfrequenz
der Taktsignale en1, en2, en0b, en1b und en0 in Abhängigkeit
von dem Steuersignal wctrl_en und entspricht allgemein der Frequenz
von clk120b geteilt durch die Anzahl aktivierter Taktsignale. Beispielsweise
sind, wenn wctrl_en = 001, drei Taktsignale (z. B. en1, en2, en0)
aktiviert, und die Taktfrequenz dieser Taktsignale ist ein Drittel
der Taktfrequenz von clk120b. Wenn wctrl_en = 100, werden fünf Taktsignale
en0, en1, en2, en0b und en1b erzeugt, deren Taktfrequenz ein Fünftel der
Frequenz des Taktsignals clk120b entspricht.
-
Als
nächstes
werden Wellenformen in dem Ausführungsbeispiel
von 7 für
verschiedene Werte von wctrl_en unter Bezugnahme auf 12 und 13 diskutiert,
wobei 12 Wellenformen für wrctrl_en =
010 und 13 Wellenformen für wctrl_en
= 100 darstellt. Es ist zu bemerken, dass für den Fall wctrl_en = 001 die
Wellenformen in einem veranschaulichenden Beispiel den bereits unter
Bezugnahme auf 5 und 6 diskutierten
entsprechen, wobei in diesem Fall en0b und en1b deaktiviert, d.
h. null sind.
-
Bei
dem veranschaulichenden Beispiel von 12 sind
die Wellenformen des Taktsignals clk und der Signale data0, data120
und data240 die gleichen, die bereits als veranschaulichende Beispiele
in 6 benutzt wurden, und werden daher nicht nochmals
beschrieben. Die Taktsignale en0, en1, en2 und en0b werden in Abhängigkeit
von dem invertierten Taktsignal clk120b erzeugt und weisen eine
Taktfrequenz auf, welche ein Viertel der Frequenz clk120b ist. Die
seriellen Datenströme
data0, data120 und data240 werden beidem Beispiel der 12 bei
den ansteigenden Flanken von en0, en1, en2 und en0b abgetastet,
um 3-Bit-Signale datA, datB, datC bzw. datD zu erzeugen. Die Symbole
der Signale datA bis datD sind mit den jeweiligen Bits von data0
bis data240 bezeichnet, wobei beispielsweise a012 die Bits a0, a1
und a2 der seriellen Datenströme data0,
data120 bzw. data240 bezeichnen.
-
Die
3 Bit breiten parallelen Datenströme datA bis datD werden jeweils
in Abhängigkeit
von dem Taktsignal frclk abgetastet, welches eine Taktfrequenz von
einem Neuntel des Taktsignals clk entsprechend einem Drittel der
Taktfrequenz des invertierten Taktsignals clk120b aufweist. Bei
dem Ausführungsbeispiel
von 7 muss frclk nicht perfekt mit clk120b ausgerichtet
sein, sondern kann innerhalb eines Fensters 110 phasenverschoben
sein, welches für
den dargestellten Fall von wctrl_en = 010 sechs Perioden oder Einheitsintervalle des
Signals clk breit ist. In anderen Worten kann frclk innerhalb des
Fensters 110 wie durch einen Pfeil 111 angedeutet
verschoben sein.
-
In 12 sind
die Signale datAi bis datDi, welche jeweils 3 Bit breite parallele
Signale sind und welche, da sie alle in Abhängigkeit von frclk abgetastet
wurden, in Phase zueinander sind, in einer gemeinsamen Zeile dargestellt.
Innerhalb der Symbole sind die Bitwerte jedes der Signale datAi
bis datDi angegeben, wobei beispielsweise Bi = z012 angibt, dass
das Signal datBi während
dieser Periode Bitwerte aufweist, welche den Bits z0, z1 und z2
der seriellen Datenströme
data0, data120 und data240 entsprechen.
-
In
der vorletzten Zeile von 12 ist
das Signal pos in beispielhafter Weise dargestellt, wobei der Wert von
pos sowohl als Dezimalzahl als auch als Binärzahl angegeben ist. Für das Ausgangssignal
pdata werden Signale gemäß der oben
diskutierten Tabelle 1 ausgewählt.
Bei dem beispielhaften Beispiel der 12 werden als
pdata 9-Bit-Werte ausgegeben, welche denjenigen Bits der seriellen
Datenströme
data0, data120 und data240 entsprechen, welche mit demselben Kleinbuchstaben
bezeichnet sind, beispielsweise Bits z0 bis z8, innerhalb einer
einzigen Symbolperiode.
-
Als
nächstes
wird ein Beispiel für
Wellenformen im Fall wctrl_en = 100 unter Bezugnahme auf 13 erläutert. Die
Signale clk, data0, data120, data240 und clk120b von 13 entsprechen
denjenigen in 12. Da in dem Beispiel der 13 wctrl_en
= 100 gilt, werden durch die Taktpfadsteuerungslogik 61 des
Ausführungsbeispiels
von 7 fünf
Taktsignale en0, en1, en2, en0b und en1b erzeugt, die jeweils eine
Taktfrequenz von einem Fünftel
der Taktfrequenz von clk120b aufweisen. Die seriellen Datenströme data0,
data120 und data240 werden bei den ansteigenden Flanken der Taktsignale
en0, en1, en2, en0b und en1b abgetastet, um 3-Bit- Datensignale datA,
datB, datC, datD bzw. datE zu erzeugen, deren Beschriftung der bereits
unter Bezugnahme auf 12 erläuterten entspricht.
-
Die
3-Bit-Datenströme
datA bis datE werden basierend auf dem Taktsignal frclk abgetastet,
wobei das Taktsignal frclk im Fall wctrl_en = 100 mit dem Taktsignal
clk120b nur innerhalb eines Fensters 116 ausgerichtet sein
muss, welches neun Perioden oder Einheitsintervalle des Signals
clk breit ist (d. h. frclk kann wie durch einen Pfeil 115 angedeutet
verschoben sein).
-
In 13 sind
die durch das Abtasten der Signale datA bis datE erzeugten Signale
datAi bis datEi mit frclk in einer gemeinsamen Zeile dargestellt,
wobei die entsprechenden Symbole mit den Werten der 3 Bits jedes
der Signale datAi bis datEi beschriftet sind. In der vorletzten
Zeile ist das Signal pos dargestellt, welches in dem Ausführungsbeispiel
von 7 zyklisch von null bis vier gezählt wird.
In Abhängigkeit
von dem Signal pos werden drei Signale aus den Signalen datAi bis
datEi ausgewählt,
um den 9 Bit breiten parallelen Datenstrom pdata zu bilden, bei
welchen in dem Beispiel der 13 9-Bit-Werte durch diejenigen
Bits der seriellen Datenströme
data0 bis data240 gebildet werden, welche mit demselben Kleinbuchstaben
bezeichnet sind.
-
Die
Wellenformen der 12 und 13 sind
lediglich als veranschaulichendes Beispiel zum Darstellen eines
möglichen
Betriebs der Ausführungsbeispiele
von 7 und 8 zu verstehen, und Ausführungsbeispiele
der vorliegenden Erfindung können
auch unter Benutzung anderer Wellenformen betrieben werden.
-
Bei
dem Ausführungsbeispiel
der 7 und 8 wird das Steuersignal wctrl_en
benutzt, um zwischen drei Betriebsarten umzuschalten, in denen eine
erlaubte Fehlanpassung bzw. ein erlaubter Versatz zwischen dem Taktsignal
frclk und dem Takt signal clk120b drei Einheitsintervalle von clk,
sechs Einheitsintervalle von clk bzw. neun Einheitsintervalle von
clk beträgt.
Bei einem anderen Ausführungsbeispiel
wird kein derartiges Steuersignal bereitgestellt, und die Umwandlungsschaltung
ist auf eine der Umwandlungsbetriebsarten festgelegt. Ein Ausführungsbeispiel
einer Taktpfadsteuerungslogik 61A für einen derartigen Fall ist
in 14 dargestellt, wobei das in 14 dargestellte
Ausführungsbeispiel
fünf Taktsignale
en1, en2, en0b, en1b und en0 in Abhängigkeit von einem invertierten
Taktsignal clk120b erzeugt.
-
Bei
dem Ausführungsbeispiel
von 14 sind Elemente, welchen Elemente des Ausführungsbeispiels von 8 entsprechen,
mit dem gleichen Bezugszeichen bezeichnet und, da ihre generelle
Funktionsweise die gleiche wie bereits unter Bezugnahme auf 8 beschrieben
ist, wird ihre Beschreibung hier nicht wiederholt. Die Taktpfadsteuerungslogik 61A des
Ausführungsbeispiels
aus 14 ist fest verdrahtet, um immer fünf Taktsignale
en1, en2, en0b, en1b und en0 durch die schieberegisterähnliche
Struktur umfassend Register 83, 84, 85, 86 und 88 zu
erzeugen. Die Taktpfadsteuerungslogik 61A kann beispielsweise
in einem Ausführungsbeispiel
benutzt werden, welche eine Fehlanpassung zwischen frclk und clk120b
von neun Einheitsintervallen des Signals clk gestattet.
-
Bei
einem anderen Ausführungsbeispiel
kann eine Taktpfadsteuerungslogik fest verdrahtet sein, um vier
Taktsignale (z. B. en1, en2, en0b und en0) oder drei Taktsignale
(z. B. en1, en2 und en0) zu erzeugen.
-
Die
oben beschriebenen Ausführungsbeispiele
sind nur als beispielhaft zu verstehen, und eine Vielzahl von Abwandlungen
können
durch Fachleute vorgenommen werden. Beispielsweise kann das in 7 dargestellte
Ausführungsbeispiel
zwischen Betriebsarten umgeschaltet werden, welche eine Fehlanpassung zwischen
frclk und clk120b oder einem anderen der data0, data120 und data240
zu Grunde liegenden Taktsignale von drei Einheitsintervallen, sechs
Einheitsintervallen und neun Einheitsintervallen gestatten. Bei
anderen Ausführungsbeispielen
sind größere Fehlanpassungen
möglich,
entweder in einer auswählbaren
Betriebsart oder in einer fest verdrahteten Weise (z. B. durch Bereitstellen
von zusätzlichen
Taktsignalen zum Abtasten von data0, data120 und data240). Bei einem
Ausführungsbeispiel
kann dies beispielsweise erreicht werden, indem die Taktpfadsteuerungslogik,
wie sie beispielsweise in 8 oder 14 dargestellt
ist, mit zusätzlichen
Registern in der schieberegisterähnlichen
Kette verlängert
wird, um zusätzliche
Taktsignale zu erzeugen, und eine entsprechend vergrößerter Anzahl
von Flipflopeinheiten 63 bis 72 in dem Ausführungsbeispiel
von 7 bereitgestellt wird. Weiterhin könnten, während die
hier beschriebenen Ausführungsbeispiele
drei serielle Datenströme
mit zueinander phasenverschobenen zu Grunde liegenden Taktsignalen,
welche von einem einzigen seriellen Datenstrom abgeleitet werden,
in einen parallelen Datenstrom mit einem Drittel der Taktfrequenz
der seriellen Datenströme
umwandeln, bei einem anderen Ausführungsbeispiel N serielle Datenströme bereitgestellt
werden und in einen parallelen Datenstrom mit 1/N der Taktfrequenz
der seriellen Datenströme umgewandelt
werden.
-
Ein
Ausführungsbeispiel
der vorliegenden Erfindung ist in Situationen anwendbar, in denen
drei serielle Datenströme
bereitgestellt werden, beispielsweise aus verschiedenen Quellen,
oder kann eine Schaltung umfassen, um einen einzigen seriellen Datenstrom
in drei serielle Datenströme
umzuwandeln. Ein Ausführungsbeispiel
kann in Situationen angewendet werden, in denen serielle Datenströme in einen
parallelen Datenstrom umgewandelt werden sollen, wobei ein dem parallelen
Datenstrom zu Grunde liegendes Taktsignal sich von den seriellen
Datenströmen
zu Grunde liegenden Taktsignalen unterscheidet, beispielsweise eine
andere Taktfrequenz und eine Phasenfehlanpassung in einem vorgegebenen
oder detektierbaren Bereich aufweist. Ein derartiges Ausführungsbeispiel
kann beispielsweise zwischen Schaltungen wie in 1 dargestellt verwendet
werden (z. B. zwischen einer Speichersteuerung und einem Speicher).
-
Weiterhin
können,
während
Bits als Beispiele für
Datensymbole der verschiedenen Datenströme beschrieben wurden, andere
Arten von Datensymbolen ebenso benutzt werden.
-
Somit
ist die vorstehende Erfindung nicht auf die dargestellten Ausführungsbeispiele
begrenzt.