-
Hintergrund
der Erfindung
-
Diese
Erfindung betrifft eine LVDS-Schnittstelle, die eine Phasenverriegelungsschleifen-Schaltung
zur Verwendung in einer programmierbaren logischen Vorrichtung aufweist.
Insbesondere betrifft diese Erfindung eine LVDS-Schnittstelle mit
einer Phasenverriegelungsschleifen-Schaltung zur Steuerung des Verschiebens
von Daten bei hohen Geschwindigkeiten.
-
Programmierbare
Logikvorrichtungen sind gut bekannt. Im allgemeinen weist eine programmierbare
Logikvorrichtung eine Vielzahl von im wesentlichen identischen Logikelementen
auf, wobei jedes davon programmiert werden kann, um eine bestimmte
logische Funktion auszuführen.
Die Logikelemente haben Zugang zu einer programmierbaren Verbindungsstruktur,
die einem Benutzer ermöglicht,
die verschiedenen Logikelemente in fast jeder gewünschten
Konfiguration untereinander zu verbinden. Schließlich sieht die Verbindungsstruktur
auch einen Zugang zu einer Vielzahl von Eingangs/Ausgangs-("I/O")-Pins vor, wobei
die Verbindungen der Pins zu der Verbindungsstruktur auch programmierbar
sind.
-
Früher wurden
programmierbare Logikvorrichtungen des gerade beschriebenen Typs
nahezu ausschließlich
mittels Transistor/Transistor-Logik ("TTL")
realisiert, in der ein logisches "Hoch"-Signal nominell
bei 5 Volt lag, während
ein logisches "Niedrig"-Signal nominell
auf Massepotential oder 0 Volt lag. Vor nicht allzu langer Zeit
jedoch sind andere logische Standards in den allgemeinen Gebrauch
gekommen, wobei einige von diesen verschiedene Signalgebungsschemata
verwenden, wie beispielsweise LVTTL (Niederspannungs-TTL), PCI (Periphergeräte-Schnittstelle),
SSTL (serielle stichleitungsbeendete Logik, die verschiedene Varianten
aufweist), TGL (Gunning-Übertragungs-Logik)
oder GTL+, HSTL (Hochgeschwindigkeits-Übertragungs-Logik, die verschiedene
Varianten aufweist), LVDS (Niederspannungs-Differenz-Signalgebung)
und andere. Einige von diesen Signalgebungsschemata, und insbesondere
LVDS, benötigen
Hochfrequenz-Taktsignale mit genauen Phasenbeziehungen für einen
korrekten Betrieb.
-
Es
ist bekannt, eine Phasenverriegelungsschleifen-Schaltung bei programmierbaren
Logikvorrichtungen einzusetzen, um zu helfen, einen "Versatz" und übermäßige Verzögerung in
den sich auf der Vorrichtung ausbreitenden Taktsignalen entgegen zuwirken
(siehe beispielsweise Jefferson, US-Patent 5,699,020 und Reddy et
al., US-Patent 5,847,617). Beispielsweise kann eine Phasenverriegelungsschleifen-Schaltung verwendet
werden, um ein Taktsignal zu erzeugen, das zeitlich einem an die programmierbare
Logikvorrichtung angelegten Taktsignal vorauseilt. Das vorauseilende
Taktsignal wird in Abschnitte der Vorrichtung propagiert, die relativ entfernt
von dem angelegten Taktsignal sind, so dass die Ausbreitungsverzögerung des
vorauseilenden Taktsignals dieses wieder mit dem angelegten Taktsignal
in Gleichtakt bringt, wenn es entfernte Abschnitte der Vorrichtung
erreicht. Auf diesem Wege erhalten alle Abschnitte der Vorrichtung
ein synchrones Taktsignal und der Taktsignal-"Versatz" (verschiedene Beträge von Verzögerung in verschiedenen Abschnitten
der Vorrichtung) wird reduziert.
-
Eine
LVDS-Eingangsschnittstelle und eine LVDS-Ausgangsschnittstelle mit
einem Seriell-zu-Parallel-Wandler bzw. einem Parallel-zu-Seriell-Wandler
sind aus der Druckschrift EP-A-0 778 517 bekannt. Phasenverriegelungsschleifen-Schaltungen
werden zur Erzeugung von Taktsignalen eingesetzt.
-
Während jedoch
Phasenverriegelungsschleifen genaue Quellen von Taktsignalen sind,
sind sie im allgemeinen bezüglich
der Frequenzen beschränkt,
die sie liefern können,
sowohl bezüglich
der Einstellbarkeit und bezüglich
des Absolutbereichs der Frequenzen, die erzeugt werden können. Dies hat
die Geschwindigkeit von LVDS-Schnittstellen begrenzt.
-
Es
wäre wünschenswert,
in der Lage zu sein, eine LVDS-Schnittstelle für eine programmierbare Logikvorrichtung
zu schaffen, wobei die Schnittstelle eine Phasenverriegelungsschleifen-Schaltung
zur genauen Eingangs/Ausgangs-Taktung umfasst.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung wird durch die beigefügten
Ansprüche
festgelegt.
-
In
den Ausführungsbeispielen
der Erfindung ermöglichen
Eingangs- und Ausgangs-Phasenverriegelungsschleifen-Schaltungen
einen Hochgeschwindigkeits-LVDS-Betrieb durch Bereitstellen von
genauen, synchronisierten Taktsignalen, was es ermöglicht,
eine ausgewählte
Anzahl von Bits zwischen einer Schieberegisterkette und einer Anzahl
von parallelen Registern zu takten. Selbstverständlich muss der Takt, der die
Taktung der Daten seriell in die Schieberegister oder aus diesen
steuert, ein exaktes Vielfaches des Takts sein, der die Taktung
der Daten im Parallelmodus in die Schieberegister oder aus diesen
steuert. Wenn der serielle Takt zu lang sam läuft, werden nicht die gesamten
seriellen Daten vor der nächsten
parallelen Übertragung
von Daten in die Schieberegister oder aus diesen heraus getaktet.
In ähnlicher
Weise wird, wenn der serielle Takt zu schnell läuft, das System versuchen,
mehr Daten als erhältlich
in die Schieberegister oder aus diesen heraus zu takten, bevor die
nächste
parallele Übertragung
stattfindet. Auf der Eingangsseite wird das System versuchen, mehr
Daten in die Schieberegister zu takten, bevor das System bereit
ist, diese in die programmierbare Logikvorrichtung parallel zu übertragen,
mit dem Ergebnis, dass einige der Daten schon aus den Schieberegistern
zu früh
ausgetaktet werden und verloren gehen. In ähnlicher Weise, auf der Ausgangsseite,
kann das System versuchen, die Daten von den Schieberegistern auszutakten,
um eine serielle Ausgabe der programmierbaren Logikvorrichtung zu
schaffen, noch bevor die Daten parallel von der programmierbaren
Logikvorrichtung zu den Schieberegistern übertragen wurden, mit dem Ergebnis,
dass der Ausgangsdatenstrom Lücken
oder fehlerhafte Daten enthält.
-
Ausführungsbeispiele
der Erfindung vermeiden diese Schwierigkeiten durch die Schaffung
von spezialisierten, zweckbestimmten Hochgeschwindigkeits-Phasenverriegelungsschleifen-basierten
Taktgebern, speziell für
die Verwendung mit Hochgeschwindigkeits-LVDS-Schnittstellen. Die
Taktsignale werden an einer anderen Stelle der Vorrichtung in dem
Umfang bereitgestellt, wie sie in Verbindung mit der Verwendung
der LVDS-Daten benötigt
werden, die Taktgeber sind jedoch nicht für die allgemeine Verwendung
vorgesehen. Andere Phasenverriegelungsschleifen-basierte Taktgeber
sind vorgesehen, die für
die allgemeine Verwendung gedacht sind. Solch andere Taktgeber sind
einstellbar und in der
US 6,483,886 ,
veröffentlicht
am 19.11.2002, beschrieben. Im Gegensatz zu diesen Taktgebern sind die
Taktgeber gemäß der Ausführungsbeispiele
der Erfindung im Hinblick auf Genauigkeit hergestellt, ohne anpassbare
Komponenten, vorausgesetzt, dass diese Ungenauigkeiten hervorrufen
können,
wie unten beschrieben wird.
-
Eine
Phasenverriegelungsschleifen-basierte Taktschaltung gemäß einem
Ausführungsbeispiel
der Erfindung ist vorzugsweise mit einem programmierbaren oder ladefähigen "Teile durch W"-Rückkopplungsskalierungszähler in
ihrer Rückkopplungsschleife
versehen. Dies ermöglicht
der Taktschaltung, zwei Taktausgänge
-- einen ersten Ausgang bei niedriger Frequenz und einen zweiten
Ausgang bei höherer
Frequenz, gleich dem W-fachen der niedrigen Frequenz, wobei die
zwei Taktausgänge
in Phasenverriegelungsbeziehung stehen, entweder mit oder ohne einer
vorbestimmten Phasenverschiebung ungleich Null vorzusehen, wie unten
beschrieben wird. Wenn W die Anzahl von Datenbits ist, die parallel übertragen
werden (d. h. die "Wort"-Größe), ermöglicht dies
einem gesamten Wort seriell in einen Eingangs- oder aus einer Ausgangsschieberegisterkette
unter der Steuerung der Hochgeschwindigkeitstaktung präzise in
der Zeit getaktet zu werden, die benötigt wird, das Wort parallel
zwischen der Logik der programmierbaren Logikvorrichtung und der Schieberegisterkette
zu übertragen,
wobei der Verlust von Daten verhindert wird, der resultieren kann, wenn
die Takte im wesentlichen nicht perfekt synchronisiert wurden.
-
Kurze Beschreibung
der Zeichnungen
-
Die
obigen und andere Aufgaben und Vorteile der Erfindung werden bei
Betrachtung der folgenden ausführlichen
Beschreibung offensichtlich, in Verbindung mit den beigefügten Zeichnungen,
in denen gleiche Bezugszeichen durchgehend für gleiche Teile verwendet werde,
und wobei:
-
1 ein
schematisches Diagramm eines bevorzugten Ausführungsbeispiels einer programmierbaren
Logikvorrichtung ist, die die LVDS-Schnittstelle dieser Erfindung
aufweist;
-
2 ein
ausführlicheres
schematisches Schaltbild der programmierbaren Logikvorrichtung von 1 ist,
die die Phasenverriegelungsschleifen-Schaltung der LVDS-Schnittstelle
zeigt;
-
2A eine
vergrößerte Ansicht
eines anderen bevorzugten Ausführungsbeispiels
eines Abschnitts der programmierbaren Logikvorrichtung von 1 und 2 ist;
-
3 ein
schematisches Schaubild eines bevorzugten Ausführungsbeispiels der LVDS-Eingangsschaltung
dieser Erfindung ist;
-
4 ein
schematisches Schaubild eines bevorzugten Ausführungsbeispiels der LVDS-Ausgangsschaltung
dieser Erfindung ist; und
-
5 ein
vereinfachtes Blockschaubild eines veranschaulichten Systems ist,
das eine programmierbare Logikvorrichtung mit einer LVDS-Schnittstelle
gemäß der vorliegenden
Erfindung verwendet.
-
Ausführliche
Beschreibung der Erfindung
-
1 zeigt
einen schematischen Überblick der
programmierbaren Logikvorrichtung
10, die ein bevorzugtes
Ausführungsbeispiel
der Erfindung einschließt.
Die Vorrich tung
10 umfasst Leistungs-Bus-Segmente
11,
die die Versorgung mit verschiedenen Versorgungsspannungen der verschiedenen
Gruppen von Eingabe/Ausgabe-Schnittstellen in verschiedenen Teilen
der Vorrichtung
10 ermöglichen,
wie ausführlicher
in der
US 6,300,790 bzw.
US 6,483,886 , die am 09.10.2001
bzw. 19.11.2002 veröffentlicht
wurden, erklärt
ist. Wie ausführlicher
in diesen Druckschriften erklärt,
unterstützen
die Schnittstellen
12,
13 LVDS (Niederspannungs-Differenzsignalgebungs)-Eingänge, während die
Schnittstellen
14,
15 LVDS-Ausgänge unterstützen. Andere Schnittstellen
(nicht gezeigt) können
andere Signalgebungsschemata unterstützen.
-
Wie
in 1 gesehen werden kann, umfasst die Vorrichtung 10 vorzugsweise
eine Vielzahl von Phasenverriegelungsschleifen ("PLL")-Schaltungen. PLL-Schaltungen 18, 19, 100, 101 (gekennzeichnet als
PLL0, PLL1, PLL2, PLL3) werden vorzugsweise für Niedergeschwindigkeits-LVDS-Anwendungen
sowie für
die allgemeine Verwendung durch die Vorrichtung 10 vorgesehen.
Die PLL-Schaltungen 18 bzw. 19 bzw. 100 bzw. 101 können vorzugsweise
Frequenzen zwischen etwa 1 MHz und etwa 400 MHz vorsehen, basierend
auf den LVDS-Eingangstakten bei den Pins 20 und 21 bzw. 22 und 23 bzw. 24 und 25 bzw. 26 und 27.
Wie ausführlicher
unten beschrieben, können
die Pins 20, 22, 24, 26 auch
Standard-Eingangstakte empfangen und alle Takteingänge können ihre
entsprechenden PLLs bei 28, 29, 200, 201 umgehen.
-
Die
PLLs 18 und 100 sind in schematischer Form in 2 gezeigt
und umfassen alle üblichen PLL-Schaltungselemente,
einschließlich
eines Phasen/Frequenz-Detektors 234, einer Ladungspumpe 235,
eines Tiefpassfilters 236 und eines spannungsgesteuerten
Eingangsoszillators 237, dessen Ausgang in eine traditionelle
PLL der PLL-Ausgang ist und auch in den Phasen/Frequenz-Detektor 234 zurückgeleitet
wird.
-
In
dem bekannten PLL-Betrieb empfängt
der Phasen/Frequenz-Detektor 234 das Eingangstaktsignal
von einem Eingangsanschluss 238 und das Rückkopplungstaktsignal
von dem VCO 237 und erzeugt "Hoch"-
oder "Runter"-Ausgangssignalpulse, die
an die Ladungspumpe 235 abhängig davon angelegt werden,
ob die Phase des Eingangstaktsignals der Phase des Rückkopplungstaktsignals
voraus- oder hinterhereilt. Die Breite des "Hoch"-
oder "Runter"-Signalpulses wird
typischerweise durch den Phasen/Frequenz-Detektor 234 gesteuert,
um proportional zu der Phasendifferenz zwischen dem Eingang und
den Rückkopplungstaktsignalen
zu sein. Die Ladungspumpe 235 schafft eine Übertragungsfunktion der "Hoch"- und "Runter"-Signale zu einer
Ausgangssignalspannung bei einem Pegel zwischen Vcc (die Leistungsversorgungsspannung
von Vorrichtung 10) und Masse. Die "Hoch"-
und "Runter"-Signale schalten
eine interne Stromquelle, um eine Ladung zu liefern, um die Ladungspumpen-Ausgangssignalspannung
nach oben oder nach unten während
jedes Taktzyklus zu bewegen.
-
Das
Ausgangssignal der Ladungspumpe 235 wird an den Tiefpassfilter 236 angelegt,
der das Signal für
das Anlegen als ein Steuersignal an den zugehörigen spannungsgesteuerten
Oszillator ("VCO") 237 glättet. Zusammenfassend,
wenn die Phase des Eingangstaktsignals der Phase des Rückkopplungstaktsignals
vorauseilt, wird ein "Hoch"-Signal durch den
Phasen/Frequenz-Detektor 234 erzeugt. Dies resultiert in
einem Anstieg in der Frequenz des Rückkopplungstaktsignals. Auf
der anderen Seite, wenn die Phase des Eingangstaktsignals der Phase
des Rückkopplungstaktsignals
hinterhereilt, erzeugt der Phasen/Frequenzdetektor 234 ein "Runter"-Signal, welches
einen Abfall in der Frequenz des Rückkopplungstaktsignals verursacht.
-
In
der PLL-Schaltung
18,
100 weist der VCO
237 vorzugsweise
siebzehn Abgriffe s
1, ..., s
17 auf, wobei
jeder davon als Ausgang der PLL
18,
100 oder der
Rückkopplung
zu dem Phasen/Frequenz-Detektor
234 verwendet werden kann.
Die Signalabgriffe sind vorzugsweise bezüglich der Phase voneinander durch
einen im wesentlichen gleichmäßigen Betrag getrennt,
wie ausführlicher
in der
US 6,483,886 ,
die am 19.11.2002 veröffentlicht
wurde, beschrieben ist. Jeder der siebzehn Abgriffe speist vorzugsweise
einen Ausgangsmultiplexer
242 sowie einen Rückkopplungsmultiplexer
243,
so dass jeder Abgriff zur Ausgabe ausgewählt und jeder Abgriff zur Rückkopplung
ausgewählt
werden kann.
-
Eine
Standard-PLL-Funktionalität
wird erreicht durch das Anzapfen des Abgriffs s
17 sowohl
für Rückkopplungs-
als auch für
Ausgabezwecke. In Übereinstimmung
mit der oben erwähnten
US 6,483,886 kann jedoch
jeder der Abgriffe s
1, ..., s
17 als Ausgang
ausgewählt
werden und jeder der Abgriffe s
1, ..., s
17 kann für
das Zurückleiten
in den Phasen/Frequenz-Detektor
234 ausgewählt werden. Wenn
der für
den Ausgang ausgewählte
Abgriff ein Abgriff mit niedrigerer Zahl als der für die Rückkopplung
ausgewählte
Abgriff ist, liegt die Ausgangsphase vor der Eingangsphase um eine
Phasenverzögerungseinheit
mehr als die Anzahl der Abgriffe zwischen den ausgewählten Abgriffen.
In ähnlicher
Weise, wenn der für
die Rückkopplung
ausgewählte
Abgriff ein Abgriff mit niedrigerer Zahl als der für den Ausgang
ausgewählte
Abgriff ist, liegt die Ausgangsphase hinter der Eingangsphase eine
Phasenverzögerungseinheit
mehr als die Anzahl der Abgriffe zwischen den ausgewählten Abgriffen.
Praktisch ist für eine
maximale Phaseneinstellbarkeit vorzugsweise immer s
1 einer
der ausgewählten
Abgriffe.
-
Die
PLL-Schaltung 18, 100 umfasst vorzugsweise auch
die drei programmierbaren Skalierungs-Zähler 239, 240, 241.
Der Vorskalierungs-Zähler 239 ist
vorzugsweise programmierbar oder ladbar, mit einer ganzen Zahl N,
durch die die Frequenz eines beliebigen Eingangssignals und letztlich
eines beliebigen Ausgangssignals geteilt wird. Der Rückkopplungs-Skalierungszähler 240 ist
vorzugsweise mit einer ganzen Zahl M ladbar, durch die die Frequenz
des Rückkopplungssignals
von dem Multiplexer 243 an den Phasen/Frequenz-Detektor 234 geteilt
wird, resultierend in einer Multiplikation des Ausgangssignals mit
M. Der Nachskalierungs-Zähler 241 ist
vorzugsweise mit einer ganzen Zahl K ladbar, durch die die Frequenz
des Ausgangssignals geteilt wird.
-
Somit
ist an einem Ausgang 301 ein Ausgangssignal vorgesehen,
dessen Frequenz gleich der Frequenz des Eingangssignals bei 238 multipliziert
mit M/(NK) ist. Zusätzlich
ist bei einem anderen Ausgang 302, der den Nachskalierungs-Zähler 241 umgeht,
ein Ausgangssignal vorgesehen, dessen Frequenz gleich der Frequenz
des Eingangssignals bei 238 multipliziert mit M/N ist.
Obwohl der Effekt des Vorsehens eines Umgehungsausgangs 302 der gleiche
wie des Setzens von K = 1 ist (tatsächlich können die Zähler 239, 240 auch
durch Ersetzen von N = 1 oder M – 1 "umgangen" werden), ermöglicht der Ausgang 302 die
Option, Ausgänge
mit zwei verschiedenen Frequenzen zu haben. Jeder Ausgang 301, 302 weist
die gleiche Phasenbeziehung zu dem Eingangssignal auf, welches durch
das Anzapfen durch Multiplexer 242, 243 durch
die Abgriffe der VCO 237 bestimmt wird, wie oben erläutert wurde.
-
Ein
LVDS-Ausgangstakt CLK0 wird bei den Pins 20 und 21 empfangen,
gespeist durch den Differenzverstärker 202, um ein Taktsignal
bei 203 zu erzeugen, das durch den Multiplexer 204 für den Eingang
zu PLL0 18 ausgewählt
ist, welches den Multiplexer 205 speist. Ein Taktsignal 203 wird
auch direkt in den Multiplexer 205 durch die Umgehung 28 geleitet.
Somit, wie durch die Programmierung des Multiplexers 205 bestimmt,
kann das Taktsignal 203 direkt zu einem Chip-weiten Taktleiter
G0 geleitet werden, oder es kann zuerst durch die PLL0 18 verändert (d. h.
seine Frequenz und/oder Phase kann wie oben beschrieben verändert werden)
und dann zu dem Leiter G0 geleitet werden, während der Umgehungsausgang 302 zu
dem Chip-weiten Taktleiter G1 geleitet wird. Der Pin 20 kann
auch für
ein Nicht-LVDS,
Einzel-Eingangstaktsignal verwendet werden, in diesem Fall wird
der Pin 20 direkt durch den Multiplexer 204 ausgewählt und
direkt zu dem Leiter G0 weitergeleitet.
-
In ähnlicher
Weise kann der LVDS-Eingangstakt CLK2 bei den Pins 24, 25 durch
den Differenzverstärker 212 geleitet
werden, um ein Taktsignal bei 213 zu erzeu gen, das durch
den Multiplexer 214 für
den Eingang zu PLL2 100 ausgewählt wird, welches den Multiplexer 215 speist.
Das Taktsignal 213 wird auch direkt zu dem Multiplexer 215 durch eine
Umgehung 200 geleitet. Somit, wie durch die Programmierung
des Multiplexers 215 festgelegt, kann das Taktsignal 213 direkt
zu der Chip-weiten Taktleitung G2 geleitet werden, oder es kann
zuerst durch die PLL2 100 verändert (d. h., seine Frequenz und/oder
Phase kann wie oben beschrieben verändert werden) und dann zu dem
Leiter G2 geleitet werden, während
der Umgehungsausgang 302 zu dem Chip-weiten Taktleiter
G3 geleitet wird. Der Pin 24 kann auch für ein Nicht-LVDS,
Einzel-Eingangstaktsignal, verwendet werden, in diesem Fall wird
der Pin 24 direkt durch den Multiplexer 214 ausgewählt und direkt
zu dem Leiter G2 geleitet.
-
PLL1 19 und
PLL3 101 sind ähnlich
zu der PLL0 18 und der PLL2 100 und arbeiten,
wie beschrieben, in Verbindung mit der PLL0 18 und der PLL2 100,
außer
dass die Multiplexer 220, 221 vorgesehen sind,
eine nutzerangepasste Nutzer-veränderte
Rückkopplung
FB0 bzw. FB1 zu ermöglichen, anstatt
der Rückkopplung
von der VCO. Zusätzlich gestatten
die Multiplexer 222, 223 den nach-skalierten Ausgang 301 oder
den Umgehungsausgang 302 als externer Taktausgang OUT0
oder OUT1 vorzusehen.
-
Häufig können die
Ausgangstakte OUT0 und OUT1 durch den Nutzer manipuliert und bei
FB0 oder FB1 zurückgeleitet
werden, um die Nutzer-veränderte
Rückkopplung
für PLL1 19 oder
PLL3 101 vorzusehen. Beispielsweise kann der Nutzer eine
Verzögerung 224, 225 in
dem Ausgangstakt (OUT0 oder OUT1) vor dem Zurückleiten des verzögerten Ausgangstakts
bei FB0 oder FB1 einfügen.
Insbesondere kann die Verzögerung 224, 225 die
Taktnetzwerkverzögerung
der gesamten gedruckten Leiterplatte sein, auf welche die programmierbare
Logikvorrichtung 10 montiert ist. Auf diesem Wege kann
der Nutzer die PLL1 19 oder PLL3 101 verwenden,
um die Taktnetzwerkverzögerung
oder den Versatz nicht nur innerhalb der programmierbaren logischen
Vorrichtung 10 zu kompensieren, sondern auch außerhalb der
Vorrichtung 10 auf der gedruckten Leiterplatte. Der Nutzer
muss zwar die Möglichkeit
der Multiplikation der PLL-Frequenz mit dem Rückkopplungs-Skalierungszähler 240 aufgeben,
aber er gewinnt den Vorteil der Kompensation für die Verzögerung außerhalb der Vorrichtung 10.
-
Die
Ausgabetakte bei den Pins 226 und 227 (OUT0) oder 228 und 229 (OUT1)
können
LVDS-Differenzsignale sein, in welchem Fall beide Leitungen 226, 227 oder 228, 229 verwendet
werden, oder gewöhnliche
Signalgebung, in welchem Fall nur die Leitung 226 oder 228 verwendet
wird. Wenn die Ausgangstakte LVDS-Signale sind, dann sind die Rückkopplungssignale
von den Verzögerungen 224, 225, die
bei den Pins 230 und 231 (FB0) oder 232 und 233 (FB1)
zurückgeleitet
werden, ebenso LVDS-Signale. In ähnlicher
Weise sind dann, wenn die Ausgangstakte keine LVDS-Signale sind, die
Rückkopplungssignale
von den Verzögerungen 224, 225 normale
Signale und nur der Pin 230 oder 232 wird verwendet,
um die Rückkopplungssignale
zu empfangen.
-
Phasenverriegelungsschleifen-Schaltungen 16, 17 (gekennzeichnet
als PLL4 und PLL5) sind spezialisierte PLL-Schaltungen in Übereinstimmung
mit der vorliegenden Erfindung, ausgelegt für die Verwendung in Hochgeschwindigkeits-LVDS-Anwendungen.
-
Die
PLL-Schaltungen 16, 17 sind ähnlich zu den PLL-Schaltungen 18, 19 mit
einem Phasen/Frequenz-Detektor 234, einer Ladungspumpe 235,
einem Tiefpassfilter 236' und
einem VCO 237',
mit einer Rückkopplung
zu dem Phasen/Frequenz-Detektor 234. Zusätzlich weist
jede PLL-Schaltung 16, 17 einen ladbaren Rückkopplungs-Skalierungszähler 244 ähnlich zu
dem Zähler 240 auf,
jedoch ist er ladbar mit einer ganzen Zahl W (statt der ganzen Zahl M),
dessen Zweck im folgenden offensichtlich wird.
-
Die
PLL-Schaltungen 16, 17 sind optimiert für einen
Betrieb bei sehr hohen Frequenzen, bis zu ungefähr zumindest 622 MHz, was den
Betrieb von Hochgeschwindigkeits-LVDS-Schnittstellen ermöglicht,
wie unten beschrieben, unter Reduzierung des mit den PLL-Schaltungen 18, 19, 100, 101 verbundenen
Mehraufwands. Beispielsweise eliminiert die Beseitigung der Vorskalierungs-(teile-durch-N)
und der Nachskalierungs-(teile-durch-K)-Zähler den Mehraufwand und erlaubt
höhere
Geschwindigkeiten. Zusätzlich
kann der Rückkopplungs-Skalierungszähler 244 (multipliziere-mit-W)
mit bis zu Wmax = 8 geladen werden, im Gegensatz
zu Mmax = 256 in dem Fall des Rückkopplungs-Skalierungszählers 240.
Die Beschränkung
des Maximalwerts von W, der einen höheren Geschwindigkeitsbetrieb
ermöglicht,
ist möglich,
da normalerweise in der Hochgeschwindigkeits-LVDS-Datenübertragung
(unten beschrieben) die maximale "Wort"-Länge 8 ist.
Zusätzlich
wird der Tiefpassfilter 236' für eine schnelle
Antwortzeit durch Reduzierung der Größe des Kondensators in dem Filter 236' um etwa 50
% im Vergleich zu den Kondensatoren in dem Filter 236 modifiziert.
Darüber
hinaus, anders als die PLL-Schaltungen 18, 19, 100, 101 weisen
die PLL-Schaltungen 16, 17 nicht den Mehraufwand
von Multiplexern 242, 243 auf (die in den äußeren Schaltungen
verwendet werden, um die relative Phase durch die Auswahl von verschiedenen Abgriffen
vom VCO 237 anzupassen), und der VCO 237' weist nur 5
Stufen auf, im Gegensatz zu 17 Stufen wie im VCO 237, was weiter
die PLL-Arbeitsleistung verbessert. Schließlich müssen die PLL-Schaltungen 16, 17 nur
das lokale LVDS-Taktnetzwerk, repräsentiert durch L4, L5, treiben,
anstatt ein Chip-weites Taktnetzwerk. Dies reduziert sowohl Verzögerungen
als auch das Laden, die beide die Geschwindigkeit begrenzen.
-
Obwohl
es keine programmierbare Auswahl des Phasenunterschieds zwischen
den Eingangs- und den Ausgangstakten der PLL-Schaltungen 16, 17 gibt,
wie dies in den PLL-Schaltungen 18, 19, 100, 101 der
Fall ist, wo Multiplexer 242, 243 eine Auswahl
von bestimmten VCO-Abgriffen ermöglichen, kann
ein vorbestimmter Phasenunterschied zum Zeitpunkt der Herstellung
ausgewählt
werden.
-
Die
mit W multiplizierten Taktausgänge 245 werden
zu den lokalen Taktleitungen L4 bzw. L5 geleitet. Die niedrigeren
Geschwindigkeitstaktausgänge 246 sind
lokal zugänglich,
wie bei 41, 31 in den 4 und 3 gesehen
werden kann, und sie werden auch zu den globalen Taktleitungen G0
bzw. G2 geleitet, obwohl die globalen Takte G0, G2 mit den lokalen
Takten 41, 31 außer Phase sind. Dies liegt
daran, dass die PLL-Schaltungen 16, 17, die eingestellt werden
können,
um lediglich eine Verzögerung
bei einer bestimmten Zeit zu kompensieren, eingestellt werden, um
die Verzögerungen
in den lokalen LVDS-Taktnetzwerken L4, L5 anstatt die Verzögerung des
globalen Taktnetzwerks einzustellen.
-
Die 2A zeigt
jedoch ein bevorzugtes Ausführungsbeispiel
einer anderen PLL-Schaltung 617,
die wie die PLL-Schaltung 17 ist, außer dass sie modifiziert wurde,
um zwei Verzögerungen
zur gleichen Zeit zu kompensieren. Wie die PLL-Schaltung 17 weist
die PLL-Schaltung 617 einen Eingang 631, der einen
Phasen/Frequenz-Detektor 634 speist (ähnlich zu dem Phasen/Frequenz-Detektor 234), der
wiederum eine Ladungspumpe 635 (ähnlich zu der Ladungspumpe 235)
speist, einen Tiefpassfilter 636 (ähnlich zu dem Tiefpassfilter 236)
und einen VCO 637 (ähnlich
zu dem VCO 237) auf. Der Ausgang des VCO 637 wird
zu dem Phasen/Frequenz-Detektor 634 bei 600 durch
einen Rückkopplungs-Skalierungszähler 644 (ähnlich zu
dem Rückkopplungs-Skalierungszähler 244)
zurückgeleitet. Wenn
die PLL-Schaltung 617 für
die Kompensation der Verzögerung
des globalen Netzwerks vorgesehen ist, wird auch eine globale Kompensationsschaltung 601 in
der Rückkopplungsschleife
vorgesehen, eingeschaltet oder ausgeschaltet durch die Multiplexer 602, 603,
die eine globale Kompensation bei dem Ausgang 604 vorsehen.
-
Wenn
die globale Kompensationsschaltung 601 verwendet wird,
eilt der Ausgang 605 des VCO 637 dem Eingang 631 durch
die globale Verzögerung voraus.
Um eine lokale Kompensation zu schaffen, wird ein Puffer 606 bei
dem Ausgang 605 einge setzt, um eine Verzögerung zu
schaffen, die gleich dem Unterschied zwischen globaler Verzögerung und
lokaler Verzögerung
ist, so dass der Ausgang 607 korrekt bezüglich der
lokalen Verzögerung
abgeglichen ist. Wenn der Benutzer die Verzögerung 601 einschaltet, ist
eine globale Kompensation bei 604 verfügbar, während eine lokale Kompensation
bei 607 verfügbar ist.
Wenn die Verzögerung 601 nicht
eingeschaltet ist, ist eine lokale Kompensation bei 605 abgreifbar. Wahlweise
(nicht gezeigt) können
die Multiplexer 602, 603 weggelassen werden, so
dass die globale Kompensation immer bei 604 vorgesehen
und die lokale Kompensation immer bei 607 vorgesehen ist und
der Benutzer kann einfach ignorieren, welcher Ausgang auch immer
nicht gebraucht wird.
-
Die
obige Erläuterung
nimmt an, dass der Rückkopplungs-Skalierungszähler 644 eine
vernachlässigbare
Verzögerung
aufweist.
-
Alternativ
kann diese Verzögerung
mit in dem Puffer 606 vorgesehene Kompensation einbezogen
werden. Wenn die Verzögerung
des Rückkopplungs-Skalierungszählers 644 signifikant
genug ist, eine Kompensation in dem Puffer 606 für den Fall, wenn
die globale Kompensation 601 in Verwendung ist, vorzusehen,
dann sollte sie kompensiert werden, auch wenn die globale Kompensation 601 nicht
verwendet wird. Daher können
anstatt eines einzelnen Puffers 606 zwei verschiedene Puffer
(nicht gezeigt) vorgesehen werden -- einer, um nur die Verzögerung des
Zählers 644 zu
kompensieren und eine, der eine Verzögerung vorsieht, die gleich
dem Unterschied zwischen der globalen und lokalen Verzögerungen wie
oben ist (korrigiert für
die Verzögerung
des Zählers 644),
mit dem richtigen Puffer, der programmierbar auswählbar (nicht
gezeigt) ist, abhängig
davon, ob oder ob nicht die globale Kompensation 601 verwendet
wird.
-
Es
soll angemerkt werden, dass während
die PLL-Schaltung 617 als Modifikation der PLL-Schaltung 17 dargestellt
ist, können
die gleichen Modifikationen an jeder PLL-Schaltung der programmierbaren
Logikvorrichtung 10 vorgenommen werden, um eine Kompensation
für zwei
verschiedene Verzögerungen
zu ermöglichen.
-
Ein
bevorzugtes Ausführungsbeispiel
der LVDS-Eingangsschnittstelle 30 ist in 3 gezeigt. Die
Schnittstelle 30 ist vorzugsweise für eine maximale Wortlänge von
8 konzipiert, wobei eine 8-Bit-Schieberegisterkette 32 vorzugsweise
Daten in einem seriellen Eingangsdatenstrom bei 33 von
einem LVDS-Eingangstreiber 34 empfängt, der wiederum vorzugsweise
Eingangsdaten von Eingängen 35 und 36 empfängt. Die
Schnittstelle 30 kann jedoch auch mit einer Schieberegisterkette
einer unterschiedlichen Länge
konzipiert sein, um eine unterschiedliche maximale Wortlänge aufzu nehmen.
Die Schieberegisterkette 32 ist vorzugsweise bei 37 durch
einen "multipliziert-mit-W"-Takt L5 getaktet,
der von der PLL5 17 ausgegeben wird. Die PLL5 17 empfängt vorzugsweise
ein Eingangstaktsignal bei 31 von der CLK2, das vorzugsweise
als ein LVDS-Takt bei den Pins 24 und 25 eingegeben
wird. Aus Gründen,
die unten klar werden, bedeutet das Vorsehen einer 8-Bit-Schieberegisterkette,
dass W eine ganze Zahl bis zu 8 sein kann.
-
Jedes
Register in der Schieberegisterkette 32 weist vorzugsweise
einen Ausgang auf, der mit einem der acht parallelen Register 38 verbunden
ist. Jedes Register 38 weist wiederum vorzugsweise einen
Registerausgang 39 auf, der durch einen entsprechenden
Treiber 300 auf einen Signalleiter 303 der programmierbaren
Logikvorrichtung 10 umgesetzt wird. Die Eintragung der
Daten in die Registerausgänge 39 der
Register 38 wird vorzugsweise durch einen nicht vervielfachten
Takt 246, der von der PLL5 17 ausgegeben wird,
gesteuert.
-
In
einem Zyklus des Takts 246 durchläuft der Takt 37 W
Zyklen. Somit werden in diesem einen Zyklus des Takts 246 W
Bits in einem seriellen Eingangsdatenstrom in die Schieberegisterkette 32 getaktet,
zu der Zeit, zu der der Takt 246 einen anderen Zyklus durchläuft, werden
die Daten in der Schieberegisterkette 32 parallel in die
Ausgänge
der Register 38 eingetragen, von wo sie parallel auf die
Leiter 303 getrieben werden. Es ist klar, dass dann, wenn
W größer als
8 wäre,
das System versuchen würde,
in einem Zyklus des Takts 246 mehr Bits auf die Schieberegisterkette 32 zu
takten, als es Register in der Kette gibt, was bedeutet, dass Daten
verloren gehen würden.
W kann weniger als 8 sein, aber weil die Schnittstelle 30 mit
8 Schieberegistern gebildet ist, bedeutet das, dass das System Bits
ignorieren muss, die in der Schieberegisterkette von dem vorherigen Zyklus übrig bleiben.
Dies kann durch die Programmierung der programmierbaren Logikvorrichtung 10 dahingehend
erreicht werden, die Daten in diesen Registern 38 nicht
zu verwenden, die den "übrig gebliebenen" Daten in den Schieberegistern 32 entsprechen.
Beispielsweise, wenn W gleich 5 ist, kann die Vorrichtung 10 dahingehend
programmiert werden, die letzten drei Register 38 nicht
zu verwenden.
-
Ein
bevorzugtes Ausführungsbeispiel
der LVDS-Ausgangsschnittstelle 40 ist in 4 gezeigt. Die
Schnittstelle 40 ist vorzugsweise für eine maximale Wortlänge von
8 konzipiert, wobei eine 8-Bit-Schieberegisterkette 42 vorzugsweise
Daten in einen seriellen Ausgangsdatenstrom bei 43 zu einem LVDS-Ausgangstreiber 44 ausgibt,
der wiederum vorzugsweise Daten bei den Anschlüssen 45 und 46 ausgibt.
Die Schnittstelle 40 kann jedoch auch mit einer Schieberegisterkette
einer verschiedenen Länge konzipiert
sein, um eine verschiedene Maximalwortlänge aufzunehmen.
-
Die
Schieberegisterkette 42 ist vorzugsweise bei 47 durch
einen "multipliziert-mit-W" Takt L4 getaktet, der von der PLL4 16 ausgegeben
wird. Die PLL4 16 empfängt
ein Eingangstaktsignal bei 41 von der CLK0, die vorzugsweise
als ein LVDS-Takt auf die Pins 20 und 21 eingegeben
wird. Wie in dem Fall der Eingangsschnittstelle 30 bedeutet
das Vorsehen einer 8-Bit-Schieberegisterkette in der Ausgangsschnittstelle 40,
dass W eine ganze Zahl bis zu 8 sein kann.
-
Jedes
Register in der Schieberegisterkette 42 weist vorzugsweise
einen Eingang zu einem Registerausgang 49 von einem der
acht parallelen Register 48 auf. Jedes Register 48 weist
auch vorzugsweise einen Eingang 400 auf, der durch Daten
auf den Leitern 401 der programmierbaren Logikvorrichtung 10 getrieben
wird, wie im folgenden beschrieben wird. Der Wahrwert oder das Komplementäre, abhängig von
der Benutzerprogrammierung, der Daten auf jedem zugehörigen Leiter 401 werden
vorzugsweise durch den zugehörigen
Multiplexer 402 ausgewählt.
Jeder Multiplexer 402 treibt vorzugsweise einen Demultiplexer 403,
der auf einem Ausgang 404 vorzugsweise einen Registereingang 400 treibt.
(Jeder Demultiplexer 403 weist vorzugsweise auch einen
Ausgang 405 auf, der ausgewählt werden kann, um eine andere
Schaltung auf der programmierbaren Logikvorrichtung 10 zu
treiben.) Die Eintragung von Daten in die Registerausgänge 49 der
Register 48 wird durch den nicht vervielfachten Taktausgang 246 von
der PLL4 16 gesteuert.
-
In
einem Zyklus des Takts 246 durchläuft der Takt 47 W
Zyklen. Somit werden in einem Zyklus des Takts 246 W Bits
aus der Schieberegisterkette 42 in einem seriellen Ausgangsdatenstrom
ausgetaktet, zu der Zeit, zu der der Takt 246 einen anderen
Zyklus durchläuft,
werden die Daten auf den Eingängen 400 der
Register 48 in die Ausgänge 49 eingetragen,
die mit den Eingängen
der Schieberegister in der Schieberegisterkette 42 verbunden
sind, so dass die Daten parallel zu dem nächsten Ausgangszyklus übertragen
werden. Es ist klar, dass dann, wenn W größer als 8 wäre, das System versuchen würde, in
einem Zyklus des Takts 246 mehr Bits aus der Schieberegisterkette 42 auszutakten
als es Register in der Kette gibt, resultierend in Lücken in
dem ausgegebenen seriellen Datenstrom. In dem Fall der Ausgangsschnittstelle 40 gibt
es, anders als bei der Eingangsschnittstelle 30, vorzugsweise
keine "übrig gebliebenen" Bits in der Schieberegisterkette 42,
wenn W kleiner als 8 ist, da das System vorzugsweise durch Benutzerprogrammierung
eingerichtet ist, nur W Bits in die Register 48 zu laden,
so dass nur W Schieberegister in der Schieberegisterkette 42 Daten
empfangen, wobei alle von diesen in einem Zyklus ausgetaktet werden
würden.
Wenn der Benutzer irrtümlicherweise
die Vorrichtung 10 programmieren würde, in mehr als W Register 48 Daten
zu laden, würden
diese Daten zu den Schieberegistern 42 übertragen werden, jedoch nicht
aus den Schie beregistern 42 ausgetaktet werden, da nur
W Bits ausgetaktet werden würden.
Die übrig
gebliebenen Bits würden
dann überschrieben,
wenn die nächsten
W Bits parallel in die Schieberegister 42 übertragen
werden.
-
Schließlich, im
Falle der Ausgangsschnittstelle 40, wird ein nicht vervielfachter
Takt 246 bei einem Multiplexer 222 abgreifbar
gemacht, als eine Möglichkeit
für den
Ausgangstakt OUT0 auf den Pins 226 und 227. Dies
ermöglicht
einem Benutzer, den Takt 246 zur Synchronisation des LVDS-Empfängers zu
verwenden, zu dem der LVDS-Ausgangsdatenstrom (Anschlüsse 45, 46)
der Vorrichtung 10 gesendet wird, mit dem Takt, der verwendet
wurde, um den Datenstrom zu erzeugen. Es gibt keinen Grund, das gleiche
mit dem internen Takt der Eingangsschnittstelle 30 zu tun,
da es keinerlei Verwendung für
ihn außerhalb
der Schnittstelle 30 geben würde. Deshalb sind die Taktnetzwerke
L4, L5 unabhängig
und brauchen nicht in Phase zu sein.
-
In
einem bevorzugten Ausführungsbeispiel ist
W = 7 und die nicht vervielfachte Taktrate ist 66 MHz, so dass die
vervielfachte Taktrate 462 MHz ist. In einem anderen bevorzugten
Ausführungsbeispiel ist
W = 8 und die nicht vervielfachte Taktrate ist 77,75 MHz, so dass
die vervielfachte Taktrate gleich 622 MHz ist. Diese Ausführungsbeispiele
entsprechen dem publizierten Standard für das LVDS-Signalgebungsprotokoll.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung kommt, wie in 2 gesehen
werden kann, kommt der Takteingang 41 für die PLL-Schaltung 16 bei
der PLL-Schaltung 16 über
den Multiplexer 247 an, was die Auswahl als Takteingang 41 nicht
nur des LVDS-Eingangstakts auf den Pins 20 und 21,
sondern auch von irgendeinem der globalen Takte G1, G2 und G3 ermöglicht.
Dies ermöglicht
der PLL-Schaltung 16 durch die programmierbare Steuerung
des Benutzers (a) mit anderen PLLs kaskadiert zu sein, (b) direkt
durch einen externen Takt (Pins 20, 21) getrieben
zu werden oder (c) durch einen externen Takt von einem der Pins 22 und 23, 24 und 25 oder 26 und 27 über Umgehungsleiter 29, 200, 201, Multiplexer 215 (oder
sein Äquivalent)
und einen der globalen Taktleiter (diese Option ermöglicht allen Taktpins,
die PLL-Schaltung 16 ohne Kaskadierung zu treiben) getrieben
zu werden. Die gleiche Funktionalität kann auch für jede oder
alle der PLL-Schaltungen der Vorrichtung 10 (nicht gezeigt)
bereitgestellt werden. Dies ermöglicht
eine größere Benutzerflexibilität.
-
5 zeigt
eine programmierbare Logikvorrichtung 10, die programmierbare
I/O-Schaltungen 20 oder 40 einschließt, die
gemäß dieser
Erfindung in einem Daten prozessierungssystem 500 konfiguriert sind.
Das Datenverarbeitungssystem 500 kann eine oder mehrere
der folgenden Komponenten umfassen: einen Prozessor 501;
einen Speicher 502; eine I/O-Schaltung 503; und
Periphervorrichtungen 504. Diese Komponenten sind miteinander
durch einen Systembus 505 gekoppelt und auf einer Leiterplatte 506 angesiedelt,
die in einem Endverbrauchersystem 507 enthalten ist.
-
Das
System 500 kann in einer breiten Vielfalt von Anwendungen
verwendet werden, wie beispielsweise Rechnernetzwerken, Datennetzwerken,
Geräteausstattung,
Videoverarbeitung, digitale Signalverarbeitung oder jeder anderen
Anwendung, wo der Vorteil einer Verwendung von programmierbarer
oder wiederprogrammierbarer Logik wünschenswert ist. Die programmierbare
Logikvorrichtung 10 kann verwendet werden, um eine Vielzahl
von verschiedenen Logikfunktionen auszuführen. Beispielsweise kann die
programmierbare Logikvorrichtung 10 konfiguriert werden
als ein Prozessor oder eine Steuerung, die in Zusammenarbeit mit
dem Prozessor 501 arbeitet. Die programmierbare Logikvorrichtung 10 kann
auch als Entscheider für
einen Entscheidungszugriff zu einer gemeinsam benutzten Quelle in
dem System 500 verwendet werden. In noch einem anderen
Beispiel kann die programmierbare Logikvorrichtung 10 als Schnittstelle
zwischen dem Prozessor 501 und einer anderen Komponente
in dem System 500 konfiguriert sein. Es soll angemerkt
werden, dass das System 500 nur beispielhaft ist und dass
der wahre Umfang und Geist der Erfindung durch die folgenden Ansprüche festgelegt
ist.
-
Verschiedene
Techniken können
verwendet werden, um programmierbare Logikvorrichtungen 10 zu
implementieren, die die LVDS-Schnittstelle 30, 40 gemäß dieser
Erfindung einsetzen, sowie die verschiedenen Komponenten der LVDS-Schnittstelle. Darüber hinaus
ist diese Erfindung anwendbar sowohl auf nur einmal programmierbare
als auch wiederprogrammierbare Vorrichtungen.
-
Somit
kann gesehen werden, dass eine LVDS-Schnittstelle für eine programmierbare
Logikvorrichtung geschaffen wurde, wobei die Schnittstelle eine
Phasenverriegelungsschleifen-Schaltung zur genauen Eingangs/Ausgangs-Taktung
umfasst. Der Fachmann wird verstehen, dass die vorliegende Erfindung
auch durch andere als die beschriebenen Ausführungsbeispiele ausgeführt werden
kann, die lediglich zum Zweck der Veranschaulichung und nicht zur
Beschränkung
vorgestellt wurden, und die vorliegende Erfindung ist nur durch
die folgenden Ansprüche
beschränkt.