-
Die
vorliegende Anmeldung beansprucht die Priorität der am 05.02.1999 eingereichten
vorläufigen US-Anmeldung
Nr. 60/118,726, auf deren Offenbarungsgehalt hiermit vollinhaltlich
Bezug genommen wird.
-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft die Synchronisierung eines Oszillatorausgangs
mit einer Impulsfolge, und insbesondere ein Verfahren und eine Vorrichtung
zum Synchronisieren eines Oszillators mit einer gebündelten
("bunched"), d.h. einer "pulse-swallowed" bzw. mit schnellem
Jitter behafteten Impulsfolge.
-
In
Kommunikationssystemen gibt es eine Anzahl von Anwendungen, bei
denen es nötig
ist, eine glatte, d.h. eine regelmäßig auftretende Impulsfolge
aus einer gebündelten,
d.h. "pulse-swallowed" bzw. mit schnellem
Jitter behafteten Impulsfolge zu erzeugen. Beispielsweise könnten "pulse-swallowed" Daten nach einer
Fehlerkorrektur eines Datenstroms oder nach der Entfernung von Rahmenbildungscodes
resultieren. Die Zurückgewinnung
eines Taktes mit geringem Jitter aus solchen "pulse-swallowed" Daten kann insbesondere bei Anwendungen, welche
die Fähigkeit
zum Erzeugen eines Bereichs von Taktfrequenzen erfordern, eine Herausforderung darstellen.
Falls die CMOS-Technologie in einem Kommunikationssystem verwendet
wird, wird die Taktrückgewinnung
zusätzlich
durch das in CMOS-Oszillatoren inhärent vorliegende, starke Eigenrauschen
behindert.
-
Das
US-Patent 5 602 882 (Co et al.) beschreibt ein Verfahren zum Synchronisieren
der Frequenz einer regelmäßig auftretenden
Impulsfolge auf die durchschnittliche Frequenz einer gebündelten
Impulsfolge, wobei das Verfahren die folgenden Schritte umfasst:
Erzeugen,
aus einem Oszillator, einer Vielzahl unterschiedlich phasenverschobener
Signale mit vorgegebener Frequenz;
Auswählen eines der phasenverschobenen
Signale als Ausgangssignal;
Füllen eines elastischen Puffers
mit der gebündelten Impulsfolge;
Leeren
des elastischen Puffers im Ansprechen auf das Ausgangssignal;
Auswählen eines
der phasenverschobenen Signale im Ansprechen auf ein Phasenauswahlsignal,
das durch Vergleichen der Phase eines geteilten Eintangstaktsignals
mit der Phase eines geteilten, gegenwärtig ausgewählten der phasenverschobenen Signale
in einem Phasenkomparator erhalten wurde, so dass das Ausgangssignal
mit der durchschnittlichen Frequenz der gebündelten Impulsfolge auftritt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
oben genannten Anforderungen werden erfindungsgemäß durch
ein Verfahren gemäß der Definition
in Anspruch 1 erfüllt.
-
Um
eine regelmäßig auftretende
Impulsfolge mit dem Durchschnitt einer gebündelten Impulsfolge zu synchronisieren,
erzeugt ein Oszillator eine Vielzahl von unterschiedlich phasenverschobenen
Signalen mit vorgegebener Frequenz. Eines der phasenverschobenen
Signale wird als Ausgangssignal gewählt. Das Ausgangssignal wird
mit der gebündelten
Impulsfolge verglichen. Das ausgewählte phasenverschobene Signal
wird im Ansprechen auf den Vergleich so geändert, dass das Ausgangssignal
mit der durchschnittlichen Frequenz der gebündelten Impulsfolge auftritt.
-
Gemäß einer
bevorzugten Ausführungsform der
Erfindung ist der Oszillator als eine Vielzahl differentieller Verstärkerstufen
mit gleichen steuerbaren Verzögerungen
ausgebildet. Die Stufen sind zusammengekoppelt, so dass sie einen
Ringoszillator bilden. Die phasenverschobenen Signale werden durch die
entsprechenden Stufen so erzeugt, dass jede Stufe zwei Signale erzeugt,
die um 180° voneinander phasenverschoben
sind.
-
Gemäß der Erfindung
wird das Ausgangssignal in einem FIFO mit der gebündelten
Impulsfolge verglichen. Ein Signal, das für den Zustand des FIFOs repräsentativ
ist, wird als ein Fehlersignal verwendet, um die Auswahl des phasenverschobenen Signals,
das als Ausgangssignal verwendet werden soll, zu steuern.
-
Gemäß einer
bevorzugten Ausführungsform der
Erfindung ist der Oszillator zum Erzeugen des phasenverschobenen
Signals in eine Phasenregelschleife eingegliedert, so dass er mit
einem einzelnen festen Frequenzbezug synchronisiert werden kann. Die
Phasenregelschleife weist eine Anzahl von Zählern auf, die so programmiert
werden können,
dass sie die Frequenz des Oszillators zum Erzeugen des phasenverschobenen
Signals ändern.
Im Ergebnis kann eine glatte Impulsfolge aus einer "pulse-swallowed" bzw. mit schnellem
Jitter behafteten Impulsfolge erzeugt werden, die über einen
breiten Bereich von Frequenzen auftritt.
-
BESCHREIBUNG
DER ZEICHNUNG
-
Die
Merkmale einer konkreten Ausführungsform
der für
die Durchführung
der Erfindung ins Auge gefassten besten Ausführungsweise sind in der Zeichnung
dargestellt. Es zeigt:
-
1 ein
schematisches Blockdiagramm eines phasenstarren Oszillators, der
Merkmale der Erfindung beinhaltet;
-
2 ein
schematisches Blockdiagramm einer bevorzugten Form des Oszillators
von 1;
-
3 ein
schematisches Blockdiagramm einer Phasenregelschleife, die den Oszillator
von 1 mit einem stabilen Frequenzbezug synchronisiert;
-
4 Wellenformen,
die zur Beschreibung einer konkreten Anwendung der Erfindung verwendet
werden;
-
5 ein
schematisches Blockdiagramm der Phasenregelschleife von 3,
die in den phasenstarren Oszillator von 1 eingegliedert
ist;
-
6 Wellenformen,
welche die Phasenbeziehung zwischen den von dem Oszillator in 1 erzeugten
phasenverschobenen Signalen darstellen;
-
7 ein
schematisches Blockdiagramm des Schleifenfilters und des Phasenakkumulators von 5;
-
8 ein
schematisches Blockdiagramm des Phasendetektors/asynchronen FIFOs
von 5;
-
9 ein
schematisches Blockdiagramm des FIFO-Indikators von 8;
-
10 ein
schematisches Blockdiagramm einer der Flag-Speicherstufen von 9;
und
-
11 ein
Diagramm, das die Speicherstellen in dem FIFO von 8 in
Bezug auf Schreib- und Lese-Adresszeiger darstellt.
-
DETAILLIERTE
BESCHREIBUNG DER KONKRETEN AUSFÜHRUNGSFORM
-
In 1 ist
der Ausgang eines Oszillators 10 mit einem Phasenschieber 12 gekoppelt,
der eine Vielzahl (z.B. sechzehn) von unterschiedlich phasenverschobenen
Signalen mit der Frequenz des Oszillators 10 erzeugt. Die
phasenverschobenen Signale werden an jeweilige Eingänge eines
Signalwählers 14 gelegt.
Der Ausgang des Signalwählers 14 ist
mit einem Ausgangsanschluss 16 und einem Eingang eines
Phasen komparators 18 verbunden. Ein Synchronisierungssignal-Anschluss 20 ist
mit dem anderen Eingang des Phasenkomparators 18 verbunden.
-
Für gewöhnlich ist
die Frequenz des Oszillators 10 von der Frequenz des an
den Anschluss 20 gelegten Synchronisierungssignals geringfügig verschieden.
Wie nachfolgend noch ausführlicher
beschrieben ist, wird der Ausgang des Phasenkomparators 18 von
einem Schleifenfilter 19 an einen Signalwähler 14 gekoppelt.
Der Phasenkomparator 18 steuert den Signalwähler 14 so,
dass das Ausgangssignal an dem Anschluss 16 relativ zu
dem Oszillator 10 kontinuierlich in der Phase vor- oder
zurückeilt,
je nachdem, ob die Frequenz des Ausgangssignals an dem Anschluss 16 höher oder
niedriger als die Frequenz des an den Anschluss 20 gelegten
Synchronisierungssignals ist, wodurch ein Signal synthetisiert wird,
das im Durchschnitt mit der Frequenz des an den Anschluss 20 gelegten
Signals synchronisiert ist. Konkret gesprochen, falls die Frequenz
des Ausgangssignals an dem Anschluss 16 höher als
die Frequenz des an den Anschluss 20 gelegten Synchronisierungssignals
ist, eilt die Phase des Ausgangssignals an dem Anschluss 16 kontinuierlich
vor, um das Ausgangssignal in Synchronisation zu bringen, und falls
die Frequenz des Ausgangssignals an dem Anschluss 16 niedriger
als die Frequenz des Synchronisierungssignals ist, eilt das Ausgangssignal
in der Phase zurück,
um das Ausgangssignal in Synchronisation zu bringen. Die Rate, mit
der das Ausgangssignal vor- oder zurückeilt, hängt von der Frequenzdifferenz
zwischen dem Oszillator 10 und dem Synchronisierungssignal
ab.
-
Der
Phasenschieber 12 kann auf beliebig viele Weisen implementiert
werden. Bevorzugt ist der Oszillator 10 jedoch ein Ringoszillator,
der eine Vielzahl von differentiellen Verzögerungsstufen aufweist, die
in CMOS-Schaltungstechnik ausgeführt
und so konfiguriert sind, dass der Phasenschieber 12 als
Abgriffpunkte von den differentiellen Ausgängen der Stufen ausgeführt sein
kann. Wie in 2 dargestellt ist, sind die
differentiellen Verzögerungsstufen 20a, 20b, 20c,
..., 20h hinter einander verbunden. Der nicht-invertierte
Ausgang einer jeden Stufe (mit Ausnahme der letzten) ist mit dem
nicht-invertierten Eingang der nächsten
Stufe verbunden, und der invertierte Ausgang einer jeden Stufe (mit
Ausnahme der letzten) ist mit dem invertierten Eingang der nächsten Stufe
verbunden, z.B. ist der nicht-invertierte Ausgang der Stufe 20a mit
dem nicht-invertierten Eingang der Stufe 20b verbunden,
und der invertierte Ausgang der Stufe 20a ist mit dem invertierten
Eingang der Stufe 20b verbunden. Die letzte Stufe ist mit der
ersten Stufe kreuzgekoppelt. Konkret gesprochen, der nicht-invertierte
Ausgang der ersten Stufe ist mit dem invertierten Eingang der ersten
Stufe verbunden, und der invertierte Ausgang der ersten Stufe ist
mit dem nicht-invertierten Eingang der ersten Stufe verbunden, z.B.
ist der nicht-invertierte Ausgang der Stufe 20h mit dem
invertierten Eingang der Stufe 20a verbunden, und der invertierte
Ausgang der Stufe 20h ist mit dem nicht-invertierten Eingang
der Stufe 20a verbunden. Zuerst gehen die nicht-invertierten Ausgänge der
Stufen, d.h. 20a, 20b, 20c, ..., 20h nacheinander
auf Hoch, und danach gehen die invertierten Ausgänge der Stufen, d.h. 20a, 20b, 20c,
..., 20h, nacheinander auf Hoch, wie durch die Wellenformen ∅0, ∅1, ∅2,
..., ∅15 in 6 dargestellt ist. Dieser Zyklus
wiederholt sich mit der Frequenz des Ringoszillators. Ein Fehlersignal,
das im Nachfolgenden ausführlicher
beschrieben ist, ist mit einem Verzögerungssteuerungs-Eingangsanschluss 22 gekoppelt,
um die Verzögerung
gleichzeitig in jeder der Stufen 20a, 20b, 20c,
..., 20h zu ändern,
wodurch die Frequenz des Ringoszillators geändert wird. Bei der vorliegend
beschriebenen Ausführungsform
der Erfindung ist n = 8, und es liegen sechzehn unterschiedlich
phasenverschobene Signale ∅0, ∅2, ∅3, ..., ∅15
vor. Die phasenverschobenen Signale ∅0, ∅1, ..., ∅7
werden jeweils von den nicht-invertierten Ausgängen der
Stufen 20a, 20b, 20c, ..., 20h abgegriffen,
und die phasenverschobenen Signale ∅8, ∅9, ..., ∅15
werden jeweils von den invertierten Ausgängen der Stufen 20a, 20b, 20c,
..., 20h abgegriffen und als die Ausgänge des Phasenschiebers 12 (1)
an den Signalwähler 14 (1)
gelegt.
-
Bei
der nachfolgend beschriebenen konkreten Anwendung der Erfindung
ist der Oszillator 10 Teil einer Phasenregelschleife (PLL),
wie in 3 dargestellt ist. Ein sehr frequenzstabiler Quarzoszillator 24 dient
als ein Frequenzbezug für
die PLL. Der Oszillator 24 ist durch einen Frequenzteilungszähler 26 mit
einem Eingang eines Phasen-/Frequenzdetektors 28 gekoppelt.
Der Zähler 26 teilt
die Frequenz des Oszillators 24 durch einen Faktor S. Der
Ausgang des Detektors 28 ist mit einer Ladepumpe 30 verbunden.
Die Ladepumpe 30 ist durch ein analoges Schleifenfilter 32 mit
dem Frequenzsteuereingang eines spannungsgesteuerten Oszillators
(VCO) 34 verbunden. Der Oszillator 34 erzeugt
eine Vielzahl von unterschiedlich phasenverschobenen Signalen, die an
einen M (MUX) 36 gelegt werden, der als Signalwähler 14 dient
(1). Eines der von dem Oszillator 34 erzeugten
Signale wird von einem Frequenzteilungszähler 38 mit dem anderen
Eingang des Detektors 28 gekoppelt. Der Zähler 38 teilt
die Frequenz des Oszillators 34 durch einen Faktor M. Der
Oszillator 34 ist bevorzugt ein Ringoszillator, in dem
eine Vielzahl von differentiellen Verzögerungsstufen angeordnet sind,
wie in 2 gezeigt ist. In einem solchen Fall werden die
phasenverschobenen Signale durch Abgreifen von den differentiellen
Ausgängen von
den Stufen erzeugt. Der MUX 36 wählt die gewünschten phasenverschobenen
Signale jeweils einzeln zum Bilden des Ausgangssignals an dem Anschluss 16.
Ein Fehlersignal in Form von phasenwählenden binären Wörtern von dem Phasenkomparator 18 (1)
werden an einen Auswahldecoder 39 gelegt, der den MUX 36 so
steuert, dass er einen Eingang für
die Übertragung
durch einen Frequenzteilungszähler 40 an
den Ausgangsanschluss 16 auswählt. Der Zähler 40 teilt die
Frequenz am Ausgang des MUX 36 durch einen Faktor D. Der
Ausgang des MUX 36 wird auch direkt mit einem Registersteuerausgang 42 gekoppelt,
der im Nachfolgenden in Verbindung mit dem Betrieb des Phasenkomparators 18 ausführlicher
beschrieben ist. Die beschriebenen Komponenten der PLL synchronisieren
auf eine an sich bekannte Weise den Oszillator 34 mit der
Frequenz des Oszillators 24 mal dem Verhältnis von M/S.
-
Wie
in Verbindung mit 5 ausführlicher beschrieben ist, ist
die PLL zum Synchronisieren des Oszillators 34 mit dem
Oszillator 24 in die Frequenz-/Phasensteuerschleife eingegliedert,
die in Verbindung mit 1 in der konkreten Anwendung der
Erfindung beschrieben ist. Bei einer Anzahl von Anwendungen der
Erfindung sind verschiedene Zeitgeber vorhanden, die mit verschieden
Frequenzen arbeiten. Diese Zeitgeber werden dazu verwendet, die Übertragung
von Daten von einer Stelle zur anderen zu steuern. Der höchste Frequenztakt,
der in der Wellenform A von 4 dargestellt
ist, ist als CLK8 bezeichnet. Ein anderer, "pulse-swallowed" Zeitgeber, der in der Wellenform B
von 4 dargestellt ist, ist als CLK5 bezeichnet. CLK5
ist dahin gehend "pulse-swallowed", dass von Zeit zu
Zeit Lücken
in dem Intervall zwischen Taktimpulsen vorliegen, mit dem Ergebnis,
dass die Folge von Taktimpulsen gebündelt ist. Die in Verbindung
mit 5 beschriebene konkrete Anwendung synchronisiert
das Ausgangssignal an dem Anschluss 16 mit der durchschnittlichen Frequenz
von CLK5, wie in der Wellenform C von 4 dargestellt
ist. Im Ergebnis ist die Anzahl von Taktimpulsen des Ausgangssignals,
das an dem Anschluss 16 erscheint, obgleich sie verschieden
beabstandet sind, im Durchschnitt über ein Zeitintervall gleich
der Anzahl von Taktimpulsen, die an dem Anschluss 20 erscheinen.
Der Phasenkomparator 18 (1) ist als
ein Phasendetektor/asynchroner First-In-First-Out-Speicher (FIFO) 50,
ein Schleifenfilter 52 und ein Phasenakkumulator 54 ausgeführt, zusammen
mit der PLL von 3, die als ein Block 56 dargestellt
ist. Gebündelte
Eingangsdaten, die in unregelmäßigen Intervallen
auftreten und durch die Wellenform B in 4 dargestellt
sind, werden von einem Eingangsanschluss 58 an einen Dateneingang
(Din) des FIFOs 50 gelegt. Die
an den Anschluss 20 gelegten Impulse dienen als ein Schreibtakt
zum Steuern der Datenübertragung
in den Anschluss 58 des FIFOs 50. Aus einem Datenausgang (Dout) des FIFOs 50 ausgelesene Daten
erscheinen an einem Ausgangsanschluss 60. Das an dem Anschluss 16 erscheinende
Ausgangssignal dient als ein Lesetakt zum Steuern der Übertragung
von Daten aus dem Anschluss 60 des FIFOs 50. Wie
im Nachfolgenden ausführlicher
beschrieben ist, dient der Status des FIFOs 50, d.h. die
Anzahl von leeren oder vollen Stellen in dem FIFO 50, als
ein Phasendetektor, d.h. er dient auf einer kontinuierlichen Basis
zum Erfassen der Phasendifferenz zwischen dem Ausgangssignal an
dem Anschluss 16 und dem "pulse-swallowed" Takt (Wellenform B in 4),
der als das an den Anschluss 20 gelegte Synchronisierungssignal
dient. Der FIFO 50 erzeugt binäre Multibit-Wörter, die
für diesen
Phasenfehler repräsentativ sind.
Die Anzahl von Bits in dem Wort hängt von der Anzahl von Speicherstellen
in dem FIFO 50 ab. Bei der vorliegend beschriebenen konkreten
Anwendung wird angenommen, dass es sechzehn Speicherstellen in dem
FIFO 50 und siebzehn Werte von Phasenfehlern gibt, nämlich –8, –7, –6, ..., –3, –2, –1, 0, +1, +2,
+3, ..., +6, +7, +8. Im normalen Betrieb wird der Phasenfehler,
der sich kontinuierlich ändert,
an das Schleifenfilter 52 gelegt, um die Steuerschleife
zu stabilisieren. Die gefilterten Phasenfehler werden an den Phasenakkumulator 54 gelegt.
In der konkreten Anwendung weist der Phasenakkumulator 54 ein
Register mit einer großen
Anzahl von Bitpositionen auf, z.B. achtundzwanzig, und nur die vier
höchstwertigen Bits
werden als das phasenwählende
Wort in die PLL 56 gekoppelt, um den MUX 36 zu
steuern.
-
Wie
in 7 dargestellt ist, wird der binäre Multibit
(z.B. 5)-Phasenfehler von dem FIFO 50 in zwei Signalzweigen
in dem Schleifenfilter 52 verarbeitet. In einem linearen
Zweig erster Ordnung wird der Phasenfehler von einem Multiplizierer 57 in
einen Eingang eines Summenpunktes 56 gekoppelt. In einem
Integrierzweig zweiter Ordnung wird der Phasenfehler von einem Multiplizierer 59 und
einem Akkumulierer, der einen Summenpunkt 60 und ein Register 62 aufweist,
in einen anderen Eingang des Summenpunktes 56 gekoppelt.
Der Summenpunkt 60 addiert den neuen Wert des Phasenfehlers
auf einer kontinuierlichen Basis zu dem alten, vorausgehend in dem
Register 62 gespeicherten Phasenfehlerwert. Der Anschluss 16 (3)
ist mit dem Takteingang des Registers 62 über einen
durch Acht teilenden Zähler
(nicht gezeigt) so verbunden, dass der Akkumulierer mit der Byte-Taktrate
arbeitet. Der Multiplizierer 57 weist einen linearen Koeffizienten
(CL) auf, und der Multiplizierer 59 weist einen integrierenden
Koeffizienten (CI) auf. Der Zweig zweiter Ordnung stellt eine Langzeit-Steuerkomponente
zur Verfügung,
welche die Konvergenz des Schleifen steuersystems reguliert. Der
Zweig erster Ordnung stellt eine Kurzzeit-Steuerkomponente zur Verfügung, die dabei
hilft, die Steuerschleife zu stabilisieren. Die Koeffizienten CI
und CL sind so ausgewählt,
dass sie die Konvergenz beschleunigen und Jitter minimieren, d.h.
damit eine stabile Ausgangsfrequenz aus dem MUX 36 hergestellt
wird (3). Der Ausgang des Summenpunktes 56 wird
an einen Eingang eines Summenpunktes 64 gelegt. Ein Frequenz-Offset
von einer CPU, die Operationen steuert, wird an den anderen Eingang
des Summenpunktes 64 gelegt. Der an den Summenpunkt 64 gelegte
Frequenz-Offset ist so ausgewählt,
dass er den Betrag der Synthetisierungskorrektur minimiert, die
von dem MUX 36 vorgenommen werden muss (3).
-
Der
Phasenakkumulierer 54 weist einen Summenpunkt 66 und
ein Register 68 auf. Der Anschluss 42 ist mit
dem Takteingang des Registers 68 verbunden, um die Übertragung
von eintreffenden Daten zu steuern. Der Ausgang des Summenpunktes 64 wird
als der gefilterte Phasenfehler an einen Eingang des Summenpunktes 66 gelegt.
Der Zustand des Phasenakkumulators ändert sich mit der Frequenz
des Ausgangssignals an dem Anschluss 16 (3),
d.h. mit der synthetisierten Frequenz. Die Register 62 und 68 speichern
viele Bits mehr, z.B. 28, als für
die Steuerung des MUX 36 (3) verwendet werden,
um eine Feinauflösung
der Phasenkorrektur zu erhalten.
-
Eine
Implementierung des FIFOs 50 ist in den 8 bis 10 gezeigt.
In 8 weist der RAM 80 eine Vielzahl von
Datenwort-Speicherstellen auf. (Für die Zwecke der Erörterung
wird angenommen, dass der FIFO 50 eine Speicherkapazität von sechzehn
Datenwörtern
besitzt). Daten werden aus dem Anschluss 58 in den Dateneingang
(Din) des RAM 80 getaktet, während das
Synchronisierungssignal von dem Anschluss 20 an einen Schreibtakteingang
(WCLK) gelegt wird. Ein Datenausgang (Dout)
ist mit dem Anschluss 60 verbunden, und der Ausgangsanschluss 16 ist
mit einem Lesetakteingang (RCLK) des RAM 80 verbunden.
Ein FIFO-Statusanzeiger 82 weist eine Leerflag- und Vollflag-Speicherstufe
für jede
Speicherstelle in dem RAM 80 auf. Der Indikator 82 weist
eine Anzahl von Eingängen
und Ausgängen
auf. Der Anschluss 20 ist mit einem Schreibtakteingang
(WCLK) verbunden. Der Anschluss 16 ist mit einem Lesetakteingang
(RCLK) verbunden. Der Ausgang eines NAND-Gliedes 84 ist mit einem Schreibfreigabe-Eingang
(WE) verbunden, und der Ausgang eines NAND-Gliedes 86 ist
mit einem Lesefreigabe-Eingang (RE) verbunden. Ein Voll-Anzeigeausgang
(FUL) ist mit einem Eingang des NAND-Gliedes 84 gekop pelt,
und ein externer Freeze-Befehl von der Operationssteuer-CPU ist
mit einem anderen Eingang des NAND-Gliedes 84 durch serielle
Flip-Flops 85 gekoppelt, die von dem Synchronisierungssignal
aus dem Anschluss 20 getaktet sind. Ein Leer-Anzeigeausgang
(EMP) ist mit einem Eingang des NAND-Gliedes 86 gekoppelt,
und der externe Freeze-Befehl ist mit einem anderen Eingang des
NAND-Gliedes 86 durch serielle Flip-Flops 87 gekoppelt,
die von dem Synchronisierungssignal aus dem Anschluss 16 getaktet
werden. Die Flip-Flops 85 und 87 stabilisieren
den Betrieb der Schaltungsanordnung. Wie im Nachfolgenden ausführlicher
beschrieben ist, sperren das NAND-Glied 84 und 86 den
FIFO 50 beim Hochfahren während einer ausreichenden Zeitperiode,
damit die Steuerschleife in einen eingeschwungenen Zustand konvergiert,
sowie nach dem Erreichen eines eingeschwungenen Zustandes immer
dann, wenn versucht wird, Daten in einen vollen FIFO 50 einzulesen
oder Daten aus einem leeren FIFO 50 auszulesen. Ein Schreibadressen-Zeiger
(WA) und ein Leseadressen-Zeiger (RA) sind von dem Indikator 82 an
den RAM 80 gekoppelt, um eintreffende Daten in die richtige
Stelle im RAM 80 zu schreiben und Daten aus der richtigen Stelle
im RAM 80 auszulesen. Der Ausgang des FIFO-Indikators 82 in
Form eines binären
5 Bit-Wortes, das die Zustände
des FIFOs repräsentiert,
wird von einer Wandlerschaltung 88 so gemappt, dass ein halb
voller FIFO-Zustand einen Wert 0 besitzt, ein leerer FIFO-Zustand
einen Wert –8
besitzt, und ein voller FIFO-Zustand
einen Wert +8 besitzt. Somit stellt das konvertierte binäre 5 Bit-Wort
in der Reihenfolge von leer bis voll die folgenden +1, +2, ...,
+6, +7, +8 dar.
-
9 veranschaulicht
die sechzehn Flag-Speicherstufen, d.h. die Stufen 90a, 90b, 90c, ..., 90p.
Jede Stufe weist einen Schreibfreigabe-Eingang (WE), einen Lesefreigabe-Eingang
(RE), einen Schreibtakt-Eingang (WCK), einen Lesetakt-Eingang (RCK),
einen Leerflag-Anzeigeausgang (EMP) und einen Vollflag-Anzeigeausgang
(FUL) auf.
-
Um
individuelle Schreibfreigabesignale für die Stufen 90a bis 90p und
Schreibadressen-Zeiger für
den RAM 80 (8) zu erzeugen, wird ein externes
Schreibfreigabesignal (WE) von der Operationssteuer-CPU an einen
binären
4-Stufen, 16-Zustand-Zähler 98 gelegt,
der von dem WCLK gesteuert wird. Somit ändert der Zähler 98 den Zustand
bei jedem WCLK, während
WE hoch ist. Der Ausgang des Zählers 98 (der
ein binäres
4 Bit-Wort aufweist) ist mit einem Decoder 100 und mit
dem RAM 80 gekoppelt. Aus dem binären 4 Bit-Wort erzeugt der
Decoder 100 16 aufeinander folgende Schreibfreigabesignale WE[0]
bis WE[15], die jeweils mit den Stufen 90a bis 90p gekoppelt
werden. Auf ähnliche
Weise, um individuelle Lesefreigabesignale für die Stufen 90a bis 90p und
Leseadressen-Zeiger für
den RAM 80 (8) zu erzeugen, wird ein externes
Lesefreigabesignal (RE) aus der Operationssteuer-CPU an einen binären 4-Stufen,
16-Zustand-Zähler 104 gelegt,
der von dem RCLK gesteuert wird. Somit ändert der Zähler 104 den Zustand
bei jedem RCLK, während
RE hoch ist. Der Ausgang des Zählers 104 (der
ein binäres
4 Bit-Wort aufweist) ist mit einem Decoder 106 und mit
dem RAM 80 gekoppelt. Aus dem binären 4 Bit-Wort erzeugt der
Decoder 106 16 Lesefreigabesignale RE[0] bis RE[15], die
auch jeweils an die Stufen 90a bis 90p gekoppelt
werden. Wenn ein Freeze-Befehl an das NAND-Glied 84 (8)
gelegt wird, wird die Erzeugung des Schreibfreigabesignals (WE) unterbunden,
und wenn ein Freeze-Befehl an das NAND-Glied 86 gelegt
wird, wird die Erzeugung des Lesefreigabesignals (RE) unterbunden.
Auf ähnliche Weise,
wenn eine FUL-Anzeige in dem FIFO-Indikator 82 erzeugt
wird, unterbindet das NAND-Glied 84 die
Erzeugung des Schreibfreigabesignals (WE), und wenn eine EMP-Anzeige
in dem FIFO-Indikator 82 erzeugt wird, unterbindet das
NAND-Glied 86 die Erzeugung des Lesefreigabesignals (RE).
-
10 veranschaulicht
die Voll- und Leerflag-Speicherschaltungsanordnung in einer der
Stufen 90a bis 90p. Der Ausgang eines Flip-Flop 120 ist mit
einem Eingang eines Exklusiv-ODER-Gliedes 122 verbunden.
Der Ausgang des Flip-Flop 120 ist auch direkt mit einem
Eingang eines MUX 123 und durch einen Invertierer 124 mit
dem anderen Eingang des MUX 123 verbunden. Der Ausgang
des MUX 123 ist mit dem Eingang des Flip-Flop 120 verbunden,
um den Flip-Flop 120 jedes Mal umzuschalten, wenn ein Schreibfreigabesignal
WE[n] aus dem Decoder 100 (9) an den
Steuereingang des MUX 123 gelegt wird. Der Ausgang des
Exklusiv-ODER-Gliedes 122 ist durch serielle Flip-Flops 132 mit
dem FUL[n]-Ausgang der Stufe gekoppelt, um die Stabilität der Steuerschleife
zu verbessern. Die Flip-Flops 132 werden durch das Synchronisierungssignal
WCLK aus dem Anschluss 20 getaktet. Wenn eine Stelle im
RAM 80 voll ist, ist die entsprechende Vollflag gemäß der Darstellung
durch den Zustand des Flip-Flop 132 der Stufe eine binäre "1".
-
Der
Ausgang eines Flip-Flop 126 ist mit einem Eingang eines Äquivalenzverknüpfungsgliedes ("Exclusive NOR") 128 verbunden.
Der Ausgang des Flip-Flop 126 ist auch direkt mit einem
Eingang eines MUX 129 und durch einen Invertierer 130 mit
dem anderen Eingang des MUX 129 verbunden. Der Ausgang
des MUX 129 ist mit dem Eingang des Flip-Flop 126 verbunden,
um den Flip-Flop 126 jedes Mal umzu schalten, wenn ein Lesefreigabesignal
RE[n] aus dem Decoder 106 (9) an den
Steuereingang des MUX 129 gelegt wird. Der Ausgang des Äquivalenzverknüpfungsgliedes 128 ist
durch serielle Flip-Flops 134 mit dem EMP[n]-Ausgang der
Stufegekoppelt, um die Stabilität
der Steuerschleife zu verbessern. Die Flip-Flops 134 werden
durch das Synchronisierungssignal RCLK aus dem Anschluss 16 getaktet. Wenn
eine Stelle im RAM 80 leer ist, ist die entsprechende Leerflag
gemäß der Darstellung
durch den Zustand des Flip-Flop 134 der Stufe eine binäre "1".
-
Die
Ausgänge
der Flip-Flops 120 und 126 sind jeweils mit einem
Eingang des Äquivalenzverknüpfungsgliedes 128 und
des Exklusiv-ODER-Gliedes gekoppelt, so dass die Zustände der
Voll- und Leer-Ausgänge
der Flag-Speicher-Schaltungsanordnung, d.h. die Ausgänge der
Flip-Flops 120 und 126, stets zueinander komplementär sind,
auch wenn die Zustände
der Ausgänge
der Flip-Flops 120 und 126 die gleichen sind.
Wenn der Speicherort voll ist, ist daher die Vollflag am FUL-Ausgang
der entsprechenden Stufe "1", und die Leerflag
am EMP-Ausgang ist "0". Auf ähnliche
Weise, wenn der Speicherort leer ist, ist die Vollflag am FUL-Ausgang
der entsprechenden Stufe "0", und die Leerflag
am EMP-Ausgang ist "1".
-
Der
Zustand des FIFOs 50 wird entweder durch Addieren der Anzahl
von Leerflags oder der Anzahl von Vollflags definiert. Bevorzugt
wird jedoch die Anzahl von Leerflags ausgewählt, weil die Leerflags unter
Verwendung des RCLK erzeugt werden, der eine glatte, d.h. nicht
mit Jitter behaftete Wellenform besitzt. Somit wird der EMP-Ausgang
einer jeden der Stufen 90a bis 90p an den Eingang
eines Summiergliedes 112 gelegt. Der Ausgang des Summiergliedes 112 ist
die 5 Bit-FIFO-Anzeige, die an das Schleifenfilter 52 (5)
gekoppelt ist.
-
Um
festzustellen, wann der FIFO 50 leer ist, wird der EMP-Ausgang
einer jeden der Stufen 90a bis 90p auch an den
Eingang eines MUX 108 gelegt (9). Der
MUX 108 wird von dem Leseadressen-Zeiger (RA) so gesteuert,
dass der EMP-Ausgang derjenigen Stufe, die der auszulesenden Stelle im
RAM 80 entspricht, an den Ausgang des MUX 108 übertragen
wird. Der Ausgang des MUX 108 wird durch einen Invertierer 109 als
der EMP-Ausgang des FIFO-Indikators 82 (8)
an einen Eingang des NAND-Gliedes 86 gekoppelt. Im Ergebnis,
wenn die Leerflag einer Speicherstelle, aus der Daten ausgelesen
werden sollen, "1" ist, wird der RE-Eingang
des FIFO-Indikators 82 gesperrt, und ein Alarm wird an die
CPU gesendet, die die Operationen steuert.
-
Um
festzustellen, wann der FIFO 50 voll ist, wird der FUL-Ausgang
einer jeden der Stufen 90a bis 90p auch an den
Eingang eines MUX 110 gelegt. Der MUX 110 wird
von dem Schreibadressen-Zeiger (WA) so gesteuert, dass der FUL-Ausgang
derjenigen Stufe, die der Stelle im RAM 80 entspricht,
in die geschrieben werden soll, an den Ausgang des MUX 110 übertragen
wird. Der Ausgang des MUX 110 wird durch einen Invertierer 111 als
der FUL-Ausgang des FIFO-Indikators 82 (8)
an einen Eingang des NAND-Gliedes 84 gekoppelt. Im Ergebnis,
wenn die Vollflag einer Speicherstelle, in die Daten geschrieben
werden sollen, "1" ist, wird der WE-Eingang
des FIFO-Indikators 82 gesperrt, und ein Alarm wird an die
CPU gesendet, die die Operationen steuert.
-
Der
Betrieb des FIFOs 50 wird nun unter Bezugnahme auf 11 beschrieben,
die sechzehn Speicherorte 0 bis 15 in dem FIFO 50 darstellt.
Die Speicherorte sind mit "F" für Voll ("Full") und "E" für Leer
("Empty") markiert. Wenn
ein Speicherort mit "F" markiert ist, ist
der Ausgang des Flip-Flop 120 "1", und
der Ausgang des Flip-Flop 126 ist "0". Wenn ein Speicherort mit "E" markiert ist, ist der Ausgang des Flip-Flop 126 "1", und der Ausgang des Flip-Flop 120 ist "0". Beim Zurücksetzen ist der FIFO 50 halb
voll, d.h. die Vollflags der Stellen 0 bis 7 sind gesetzt, d.h. "1", und die Leerflags der Stellen 8 bis
15 sind gesetzt, d.h. "1". Der Leseadressen-Zeiger
(RA) weist auf die Stelle 0, und der Schreibadressen-Zeiger (WA)
weist auf die Stelle 8, wie in 11 dargestellt ist.
-
Wenn
das erste Datenwort im Ansprechen auf ein Schreibfreigabesignal
WE[n] in den FIFO 50 geschrieben wird, wird es an der Stelle
8 gespeichert, weil das die Stelle ist, auf das es von dem Schreibadressen-Zeiger
(WA) gerichtet wird. Das Schreibfreigabesignal WE[n] schaltet den
Eingang des Flip-Flop 120 der entsprechenden Stelle um,
wodurch veranlasst wird, dass die Leerflag abgeschaltet und die Vollflag
eingeschaltet wird. Im Ansprechen auf das Schreibfreigabesignal
WE[n] verschiebt sich der Schreibadressen-Zeiger (WA) auch auf die
nächste Stelle
in der Reihenfolge, d.h. die Stelle 9. Jedes Mal, wenn ein Datenwort
in den FIFO 50 geschrieben wird, wird die beschriebene
Operation in Bezug auf die entsprechende Stelle wiederholt, die
von dem Schreibadressen-Zeiger (WA) ausgewählt wird. Der Schreibadressen-Zeiger durchläuft wiederholt
einen Zyklus, während
Schreibfreigabesignale erzeugt werden.
-
Wenn
das erste Datenwort im Ansprechen auf ein Lesefreigabesignal RE[n]
aus dem FIFO 50 ausgelesen wird, wird es aus der Stelle
0 ausgelesen, weil das die Stelle ist, auf die der Leseadressen-Zeiger
(RA) gerichtet ist. Das Lesefreigabesignal RE[n] schaltet den Eingang
des Flip-Flop 126 der entsprechenden Stelle um, wodurch
veranlasst wird, dass die Vollflag ausschaltet und die Leerflag
einschaltet. Im Ansprechen auf das Lesefreigabesignal RE[n] verschiebt
sich der Leseadressen-Zeiger (RA) auch auf die nächste Stelle in der Reihenfolge,
d.h. die Stelle 1. Jedes Mal, wenn ein Datenwort aus dem FIFO 50 ausgelesen
wird, wird die beschriebene Operation in Bezug auf die entsprechende
Stelle wiederholt, die von dem Leseadressen-Zeiger (RA) ausgewählt wird.
Der Leseadressen-Zeiger durchläuft wiederholt
einen Zyklus, während
Lesefreigabesignale erzeugt werden.
-
Zusammenfassend
arbeitet die Synchronisierungsvorrichtung wie folgt: Die Zähler 26, 38 und 40 werden
von der Operationssteuer-CPU so programmiert, dass sie eine grobe
Frequenzeinstellung für
den Oszillator 34 erstellen (3). Eine
Feineinstellung der Frequenz wird durchgeführt, indem die an den MUX 36 gelegten
phasenverschobenen Signale so ausgewählt werden, dass die Phase
voreilt oder zurückeilt,
je nachdem, ob eine Frequenzerhöhung
oder -verringerung für
die Synchronisierung erforderlich ist. Unter Bezugnahme auf 6,
wenn eine Frequenzverringerung gewünscht wird, verschiebt sich
der MUX 36 z.B. von ∅1 auf ∅2, während sich
beide Signale in dem gleichen Zustand befinden, z.B. hoch. Wie durch
die Wellenform in 6 gezeigt ist, die mit "TERMINAL 42" bezeichnet ist,
ist das Ausgangssignal aus dem MUX 36 während eines längeren Zeitraums
hoch, was eine Frequenzverringerung repräsentiert. Für eine Frequenzerhöhung verschiebt
sich der MUX 36 z.B. von ∅1 auf ∅15, während sich
beide Signale in dem gleichen Zustand befinden, z.B. hoch, und das
Ausgangssignal aus dem MUX 36 während einer kürzeren Zeit
hoch ist. Die maximale Frequenzänderung,
die von dem MUX 36 vorgenommen werden kann, beträgt 1/16
der Frequenz des Oszillators 34, d.h. eine Phasenverschiebung
pro Zyklus des Oszillators 34. Da der Phasenakkumulator 54 durch
das Signal an dem Ausgangsanschluss 42 getaktet wird, ereignen
sich die von dem MUX 36 durchgeführten Phasenverschiebungen,
während
sich sowohl das alte phasenverschobene Signal als auch das neue
phasenverschobene Signal in dem gleichen Zustand befinden. Um dieses Resultat
im Falle einer Phasenvoreilung sicher zu stellen, wird die Verzögerung aus
dem Phasenausgang des Phasenakkumulators 54 (5)
an den Ausgangsanschluss 42 so entworfen, dass sie größer als
1/16 der Periode des Oszillators 34 ist (3).
-
Es
ist wünschenswert,
den Phasenakkumulator 54 mit der höchsten verfügbaren synchronisierten Frequenz
zu takten, d.h. mit dem Signal am Ausgangsanschluss 42,
um die Frequenzfeineinstellung, die mit der digitalen Steuerschleife
durchgeführt
werden kann, zu maximieren. Der Phasenakkumulator kann mit einer
niedrigeren Frequenz getaktet werden, wenn eine Maximierung der
Frequenzfeineinstellung nicht von Wichtigkeit ist.
-
Es
ist anzumerken, dass die Frequenz des am Ausgangsanschluss 16 erscheinenden
Taktsignals von der CPU aus durch Ändern der Teilungsfaktoren
S, M und D der Zähler 26 38 bzw. 40 programmiert
werden kann, damit "pulse-swallowed" bzw. mit schnellem
Jitter behaftete Taktsignale über
einen weiten Frequenzbereich auf einen einzigen hochstabilen, festen
Frequenzbezug verriegelt werden können. Die analoge Steuerschleife
mit dem Schleifenfilter 32 (3) besitzt
eine sehr große
Bandbreite, und die digitale Steuerschleife mit dem Schleifenfilter 52 (5)
besitzt eine sehr enge Bandbreite. Somit kann die Erfindung unter
Verwendung von CMOS-Technologie auf effektive Weise implementiert
werden, da der Oszillator 34 nicht ein geringes Eigenrauschen
haben muss, um die Synchronisationsimpulse zu verfolgen.
-
Die
beschriebene Ausführungsform
der Erfindung wird lediglich als bevorzugt und für den erfinderischen Grundgedanken
veranschaulichend angesehen; der Schutzbereich der Erfindung ist
nicht auf eine solche Ausführungsform
beschränkt.
Verschiedene und zahlreiche andere Anordnungen können von einem Fachmann ausgearbeitet
werden, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.