-
Hintergrund
der Erfindung
-
Digitale
serielle Hochgeschwindigkeitskommunikation nimmt konstant an Bedeutung
zu. Die Anzahl von verschiedenen Industriestandards für eine derartige
Kommunikation nimmt auch zu. Die Technologie programmierbarer Logikeinrichtungen
(„PLD") ist für ihre Fähigkeit
bekannt, einen gemeinsamen Handwareentwurf (verkörpert in einer integrierten
Schaltung) zu erlauben, der zu programmieren ist, um die Notwendigkeiten
vieler verschiedener Anwendungen zu erfüllen. PLDs mit einem gegebenen
Hardwareentwurf können
in großen
Stückzahlen
bei niedrigen Kosten hergestellt werden. Jeder Benutzer programmiert
dann PLDs dieser Art, um die bestimmten Erfordernisse dieses Benutzers
zu erfüllen.
Der Benutzer muss keinen kundenspezifischen integrierten Schaltungsentwurf
mit den damit zusammenhängenden
hohen Kosten, der Verzögerung und
der Schwierigkeit einer Revision, wenn nachfolgend Modifikationen
erforderlich sind, erstellen.
-
Um
die Verwendung von PLDs in Anwendungen mit digitaler serieller Hochgeschwindigkeitskommunikation
zu vereinfachen, wäre
es wünschenswert,
PLDs mit einer seriellen Hochgeschwindigkeitsschnittstellen(„HSSI")-Schaltung zu versehen.
Ein Problem dabei besteht jedoch darin, dass es nun eine große Anzahl von
seriellen Hochgeschwindigkeits(„HSS")-Kommunikationsstandards oder ähnliche,
vielleicht nicht Standard-Protokollen, die Benutzer von PLDs verwenden
wollen können,
gibt. Ein Einschließen
einer großen
Anzahl von verschiedenen HSSI-Schaltungen auf einer PLD ist verschwenderisch,
unwirtschaftlich und sehr schwierig oder sogar unmöglich, wenn
die Anzahl von zu unterstützenden
Standards oder Protokollen sehr groß wird. Andererseits ist eine
Herstellung der selben Grund-PLD-Schaltung
in zahlreichen verschiedenen Versionen, jede mit verschiedener HSSL-Schaltung, um einen
unterschiedlichen HSSI-Standard oder ein Protokoll zu erfüllen, ist
auch unwirtschaftlich, da es entgegen dem „Wirtschaftlichkeit durch
Größe"-Vorteil ist, der anderenfalls
mit einer Herstellung ein und desselben PLD-Schaltungsentwurfs in
einer großen
Stückzahl
verbunden ist. Ein Beispiel kann in BURSKY D: „FPGA COMBINES MULTIPLE SERIAL
INTERFACES AND LOGC",
ELECTRONIC DESIGN, PENTON PUBLISHING, CLEVELAND, OH, US, Band 48,
Nr. 20, 2. Oktober 2000 (2000-10-029, Seiten 74-76, 78 gefunden
werden.
-
Zusammenfassung
der Erfindung
-
Erfindungsgemäß enthält eine
PLD-Schaltung zumindest einige der Schaltungskomponenten, die erforderlich
sind, um zahlreiche verschiedene HSSIs auszubilden. Diese HSSI-Schaltungskomponenten
sind zumindest in einem großen
Ausmaß fest
verdrahtet, obwohl in zumindest einigen Fällen zumindest einige ihrer Funktionen
entweder programmierbar oder durch dynamische Signale (z.B. von
der PLD-Kernschaltung) steuerbar sind. Verbindungen zwischen den
HSSI-Schaltungskomponenten können
auch programmierbar oder dynamisch steuerbar sein. Durch Verwendung
geeigneter der verfügbaren
HSSI-Schaltungskomponenten (z.B. durch programmierbare oder dynamische
Auswahl) und durch geeignete Steuerung (z.B. programmierbare oder
dynamische Steuerung) der ausgewählten
HSSI-Schaltungskomponenten
kann die Schaltung dazu gebracht werden, gemäß irgendeinem der zahlreichen
möglichen
HSS-Kommunikationsstandards oder anderen im Allgemeinen ähnlichen
Protokollen zu funktionieren. In einigen Fällen können einige der zur Implementierung
bestimmter HSSIs erforderliche Funktionen vollständig oder teilweise durch die
PLD-Kernschaltung durchgeführt werden.
Die HSSI-Schaltungskomponenten, die ausgebildet sind, können für eine HSSI-Empfängerschaltung,
eine HSSI-Senderschaltung oder beide sein.
-
Weitere
Merkmale der Erfindung, ihre Natur und zahlreiche Vorteile werden
aus der beigefügten
Zeichnung und der folgenden genauen Beschreibung offensichtlicher.
-
Kurzbeschreibung
der Zeichnung
-
1 ist
ein vereinfachtes Blockschaltbild eines veranschaulichenden Ausführungsbeispiels
einer gemäß der Erfindung
aufgebauten programmierbaren integrierten Schaltungseinrichtung
(„PLD").
-
2 ist
ein genaueres, aber immer noch vereinfachtes schematisches Blockschaltbild
eines repräsentativen
Teils der in 1 gezeigten Schaltung.
-
3 ist
ein genaueres, aber immer noch vereinfachtes schematisches Blockschaltbild
eines repräsentativen
Teils der in 2 gezeigten Schaltung.
-
4 ist
ein genaueres, aber immer noch vereinfachtes schematisches Blockschaltbild
eines anderen repräsentativen
Teils der in 2 gezeigten Schaltung.
-
5A bis 5C sind
zusammen ein genaueres, aber immer noch vereinfachtes schematisches Blockschaltbild
der Schaltung von der in 3 gezeigten Art.
-
6 zeigt
ein veranschaulichendes Ausführungsbeispiel
einer Art von Element genauer, das in zahlreichen der anderen Fig.en
verwendet wird.
-
7 zeigt
ein alternatives Ausführungsbeispiel
des in 6 gezeigten.
-
8 zeigt
ein anderes alternatives Ausführungsbeispiel
dessen, was in den 6 und 7 gezeigt ist.
-
9 ist
ein vereinfachtes schematisches Blockschaltbild einer Schaltung,
die mit der Schaltung gemäß den 5A bis 5C und/oder 12A und 12B verwendet
werden kann.
-
10 ist
ein vereinfachtes schematisches Blockschaltbild einer Schaltung,
die mit der Schaltung gemäß den 5A bis 5C verwendet
werden kann.
-
11 ist
ein vereinfachtes schematisches Blockschaltbild einer Schaltung,
die mit der Schaltung gemäß den 5A bis 5C und/oder 12A und 12B verwendet
werden kann.
-
12A und 12B sind
zusammen ein genaueres, aber immer noch vereinfachtes schematisches Blockschaltbild
einer Schaltung der in 4 gezeigten Art.
-
13 ist
ein vereinfachtes schematisches Blockschaltbild einer zusätzlichen
Schaltung gemäß der Erfindung.
-
14 ist
ein vereinfachtes schematisches Blockschaltbild von mehr zusätzlicher
Schaltung gemäß der Erfindung.
-
15 ist
ein vereinfachtes schematisches Blockschaltbild von noch mehr zusätzlicher
Schaltung gemäß der Erfindung.
-
16 ist
ein vereinfachtes schematisches Blockschaltbild von noch weiterer
Schaltung gemäß der Erfindung.
-
17 ist
ein vereinfachtes Blockschaltbild eines veranschaulichenden Systems,
das eine Schaltung gemäß der Erfindung
verwendet.
-
Genaue Beschreibung
-
Eine
erfindungsgemäß aufgebaute
veranschaulichende PLD 10 ist in 1 gezeigt.
Die PLD 10 ist eine integrierte Schaltung, die eine PLD-Kernschaltung 20 und
eine serielle Hochgeschwindigkeitsschnittstellen(„HSSI")-Schaltung 30 enthält. Die
PLD-Kernschaltung 20 kann typischerweise eine programmierbare
Logikschaltung irgendeiner von zahlreichen bekannten Arten und Aufbauten
sein. Erfindungsgemäß enthält die HSSI-Schaltung 30 zahlreiche
HSSI-Schaltungskomponenten, die fest verdrahtet (zumindest in einem
großen Ausmaß) und daher
zugeordne sindt, zahlreiche Funktionen durchzuführen, die erforderlich sind,
um HSSI-Vorgänge
zu implementieren. Die HSSI-Schaltung 30 kann verwendet
werden, um eines oder mehrere serielle Hochgeschwindigkeits(„HSS")signale über eine
Verbindung(en) 32 zu empfangen und die somit empfangenen
Informationen zur PLD-Kernschaltung 20 in einer Form durchzulassen,
die durch die Kernschaltung besser verwendbar ist. Alternativ oder
zusätzlich
kann die HSSI-Schaltung 30 verwendet werden, um über eine Verbindungen) 32 eines
oder mehrere HSS-Signale auszugeben, die für Informationen stehen, die
von der PLD-Kernschaltung 20 empfangen
wurden. Leiter 34 werden verwendet, um Signale zwischen
der PLD-Kernschaltung 20 und der HSSI-Schaltung 30 zu
leiten. Die PLD-Kernschaltung 20 kann auch andere, typischerweise
Nicht-HSSI-Signale über
Leiter 22 ein- und/oder ausgeben.
-
Obwohl
die Prinzipien dieser Erfindung auf viele HSSI-Kommunikationsstandards
anwendbar sind, und daher auf viele Arten von HSSI-Schaltung, wird
die Erfindung aus der folgenden Erklärung vollständig verstanden, die sich hauptsächlich auf
die zahlreichen HSSI-Standards
konzentriert, die herkömmliche Acht-Bit/Zehn-Bit(„8B/10B")-Codierung/Decodierung verwenden. (Für Informationen
betreffend 8B/10B-Codierung siehe Franaszek et al. US-Patent 4,486,739.)
Die veranschaulichenden HSSI-Standards, die die hier gezeigte veranschaulichende
Schaltung unterstützt,
enthalten die als (1) XAUI, (2) Infini-Band, (3) 1G Ethernet, (4) FibreChannel
und (5) Serial RapidIO bekannten Standards. Diese Schaltung wird
auch 10G Ethernet unterstützen
und sie wird viele Nicht-Industrie-Standard-Protokolle unterstützen, die Modifikationen der
echten Industrie-Standard-Protokolle sind. Einige Benutzer können manchmal
wünschen,
derartige Varianten von Industrie-Standards zu entwerfen und zu
verwenden und viele derartige Varianten können durch die Schaltung gemäß dieser
Erfindung unterstützt
werden. Die echten Industrie-Standards (z.B. XAUI, Infini-Band usw.) sind alle
dem Fachmann wohl bekannt und vollständig in den öffentlich
verfügbaren
Informationen dokumentiert, die durch die Industrie-Standard-Kommitees
herausgegeben sind, die diese Standards entwickeln und aufrechterhalten.
Es wird nicht notwendig sein, alle Einzelheiten irgendeines dieser
Standards hier darzulegen.
-
In
dem hier gezeigten und beschriebenen veranschaulichenden Ausführungsbeispiel
wird XAUI als ein Ansatzpunkt-Standard verwendet. Dies ist aus dem
Grund, dass XAUI dazu neigt, zumindest so viel Funktionalität zu erfordern,
wie irgendeiner der anderen unterstützten Standards. Die anderen
Standards können
daher unter Verwendung derselben oder ähnlicher HSSI-Schaltungskomponenten
implementiert werden, oder Teilmengen dieser Komponenten, die in
der Schaltung 30 ausgebildet sind, um XAUI zu unterstützen. In
dem hier gezeigten veranschaulichenden Ausführungsbeispiel ist die XAUI-Schnittstelle
im Wesentlichen vollständig
in die HSSI-Schaltung 30 implementierbar. Für einige
der anderen Standards wird ein Teil der Schnittstelle in der HSSI-Schaltung 30 implementiert
und ein Teil der Schnittstelle wird in der PLD-Kernschaltung 20 implementiert.
-
In
allgemeinen Begriffen bestimmt der XAUI-Standard vier Kanäle von Taktdatenwiederherstellungs(„CDR")-Daten, die unter
Verwendung der 8B/10B-Codierung codiert sind. Die Kanäle können bei
bis zu 3,125 Gigabit pro Sekunde („Gbps") funktionieren. Die Kanäle werden
in umlaufender Reihenfolge verwendet, um aufeinanderfolgende Bytes
von Informationen zu übertragen.
Es gibt fortwährende Übertragungen
von Daten bestimmter maximaler Länge,
getrennt durch „Leerlauf"-Intervalle minimaler
Länge.
Bestimmte spezielle Zeichen werden während der Leerlaufintervalle übertragen,
um dem Empfänger
zu ermöglichen,
bereit zu werden, um die nächste Übertragung
von Daten zu empfangen.
-
Da
XAUI ein Vier-Kanal-Standard ist, ist die HSSI-Schaltung 30 in 1 im
Grunde in ein oder mehr „Vierecke" bzw. „Vierergruppen" von jeweils vier
Kanälen
organisiert. Wie in 2 gezeigt, enthält jede
repräsentative
Vierergruppe 40 vier Datenkanäle 0 bis 3 (auch als 50-0 bis 50-3 identifiziert)
und eine Unterstützungslogikschaltung 70.
Jeder Datenkanal 50 kann einen Datenstrom über eine
zugehörige
Ansteuereinrichtung 52 empfangen und/oder kann einen Datenstrom über eine
zugehörige
Ansteuereinrichtung 56 ausgeben. Jede der Ansteuereinrichtungen 52 und 56 ist
bevorzugt eine differentielle Ansteuereinrichtung, da die HSSI-Standards
von Interesse in Verbindung mit dem vorliegenden veranschaulichenden
Ausführungsbeispiel
Informationen unter Verwendung differentieller Signalisierung empfangen
(„RX") und senden („TX"). Jede Empfängeransteuereinrichtung 52 besitzt
ein zugehöriges
Paar von Eingabeanschlüssen 54 und
jede Senderansteuereinrichtung 56 besitzt ein zugehöriges Paar
von Ausgabeanschlüssen 58.
Jeder Kanal 50 enthält
die Schaltung, die erforderlich ist, um ein empfangenes HSS-Signal
zumindest teilweise von HSS-Form in eine zur Anwendung in der PLD-Kernschaltung 20 geeignetere
Form über
zugehörige
Leiter 62 umzuwandeln. Beispielsweise kann jeder Kanal 50 aufeinanderfolgende
serielle Bytes von 10 Bit jeweils (aufgrund der 8B/10B-Codierung)
empfangen und kann aufeinanderfolgende parallele Bytes von jeweils
8 Bit an die PLD-Kernschaltung 20 ausgegeben. Jeder Kanal 50 enthält auch
die Schaltung, die erforderlich ist, um von der PLD-Kernschaltung 20 empfangene
Signale zumindest teilweise in eine HSS-Form zum Ausgabesenden über die
zugehörige
Senderansteuereinrichtung 56 umzuwandeln. Beispielsweise
kann jeder Kanal 50 aufeinanderfolngede 8-Bit Bytes von
Daten über
zugehörige
Leiter 64 empfangen und kann diese Bytes in aufeinanderfolgende
serielle 10-Bit Bytes umwandeln, die über die zugehörige Senderansteuereinrichtung 56 ausgegeben
werden.
-
Die
Unterstützungslogik 70,
die in jeder Vierergruppe 40 enthalten ist, enthält eine
Schaltung, die verwendbar ist, bestimmte Vorgänge in allen vier der zugehörigen Datenkanäle zu unterstützen. Beispielsweise kann
eine phasenstarre Schleifen(„PLL")-Schaltung, die
ein Bezugstakt(„REFCLK")-Signal empfängt, verwendet
werden, um Kandidatenwiederhergestellte Taktsignale zur Verwendung
durch jeden der Kanäle 50 in
den Vorgängen
des Kanals zu erzeugen, um ein endgültiges wiederhergestelltes
Taktsignal aus dem durch diesen Kanal 50 empfangenen HSS-CDR-Signal
zu erzeugen. Da bestimmte HSS-Standards ein „Versetzen" zwischen empfangenen Datenkanälen erlauben,
enthält
als ein anderes Beispiel die Schaltung 70 eine Schaltung zur
Bestimmung, wie viel die vier Kanäle von empfangenen HSS-Daten
relativ zueinander als Teil der zur Kompensation eines derartigen
Versatzes erforderlichen Vorgänge
versetzt sind. (Ein Versatz ist eine differentielle Sendeverzögerung zwischen
parallelen Übertragungsleitungen.)
Die Schaltung 70 kann REFCLK-Signale über Ansteuereinrichtungen 72 empfangen
und kann mit dem PLD-Kern 20 über Leiter 82 und/oder 84 kommunizieren.
-
3 zeigt
ein veranschaulichendes Beispiel von repräsentativen Teilen von 2 etwas
detaillierter. Insbesondere zeigt 3 den Empfängerteil
eines repräsentativen
Kanals 50. In einigen Fällen
können
einige der in 3 gezeigten Elemente teilweise
in der Unterstützungslogik 70 ausgebildet
sein und daher durch alle vier Kanäle 50 in der Vierergruppe,
die zu der Unterstützungslogik 70 gehören, gemeinsam
genutzt werden.
-
Eine
CDR-Schaltung 110 empfängt
einen einzelnen seriellen Datenstrom von der Empfängeransteuereinrichtung 52.
Die CDR-Schaltung 110 kann auch zahlreiche Kandidatenwiederhergestellte
Taktsignale über
Leiter 112 von der PLL-Schaltung in der Unterstützungslogik 70 empfangen.
Wie vorstehend erwähnt, funktioniert
diese PLL-Schaltung typischerweise bei einem der an die Schaltung 70 angelegten
REFCLK-Signale, wie in 2 gezeigt. (Siehe beispielsweise
Aung et al., US-Patentanmeldung Nr. 09/805,843, eingereicht am 13.
März 2001,
für mehr
Informationen hinsichtlich dessen, wie dieser Gesichtspunkt der
Unterstützungslogik 70 aufgebaut
sein und funktionieren kann, um zahlreiche Kandidatenwiederhergestellte
Taktsignale aus einem REFCLK-Signal zu erzeugen. Die Aung et al.
Druckschrift enthält
auch zusätzliche
Einzelheiten hinsichtlich dessen, wie die CDR-Schaltung 110 aufgebaut sein
und funktionieren kann, um derartige Kandidatenwiederhergestellte
Taktsignale zu verwenden, um ein endgültiges wiederhergestellte Taktsignal
zu erzeugen und auch ein wiedereingetaktetes Datensignal aus dem
Eingabe-CDR-Signal zu erzeugen. Natürlich kann die CDR-Schaltung 110 auch
auf unterschiedlichen Wegen aufgebaut sein und funktionieren, wenn
gewünscht.)
Die CDR-Schaltung 110 verwendet die Kandidaten-wiederhergestellten
Taktsignale von der Unterstützungslogik 70 zur
Wiederherstellung eines Taktsignals aus dem CDR-Datensignal, das
sie empfängt.
Die CDR-Schaltung 110 gibt dieses wiederhergestellte Taktsignal über den
Leiter 114 aus. Die CDR-Schaltung 110 erzeugt
auch ein wiedereingetaktetes Datensignal aus dem CDR-Datensignal,
das sie empfängt,
und gibt dieses wiedereingetaktete Datensignal über den Leiter 116 aus.
(Das „wiederhergestellte
Taktsignal" auf
zahlreichen Teilen des Netzwerks 114 kann entweder die
Bitratenfrequenz oder die Byteratenfrequenz haben. Einer oder mehr
Teiler (in 3 nicht gezeigt, aber wie das
Element 410 in 5A) kann
bzw. können
in dem Netzwerk 114 enthalten sein, um die Bitrate in die
Byterate umzuwandeln. Beispielsweise benötigt ein Parallelumsetzer bzw.
Seriell-Parallel-Wandler 120 sowohl die Bitraten- als auch
die Byteratenver sionen des wiederhergestellten Taktsignals, aber
Elemente 130, 140, 150 und 160 benötigen nur
die Byteratenversion.)
-
Die
Seriell-Parallel-Wandlerschaltung 120 wandelt das serielle
wiedereingetaktete Datenausgangssignal der CDR-Schaltung 110 in
zahlreiche parallele Datensignale auf dem Leiter 122 um.
Um dies zu tun, verwendet die Seriell-Parallel-Wandlerschaltung 120 das
wiederhergestellte Taktsignal auf dem Leiter 114. (Siehe wieder
die zuletzt erwähnte
Druckschrift für
ein Beispiel dafür,
wie die Seriell-Parallel-Wandlerschaltung 120 aufgebaut
sein und funktionieren kann.) Beispielsweise können aufeinanderfolgende Bytes
von Daten, die in serieller Form durch die CDR-Schaltung 110 ausgegeben
werden, in aufeinanderfolgende parallele Bytes von Daten, die durch
den Seriell-Parallel-Wandler 120 ausgegeben werden, umgewandelt
werden. Da XAUI und viele der anderen HSS-Standards, die durch die
Schaltung gemäß 3 unterstützt werden,
die 8B/10B-Codierung verwenden, ist der Seriell-Parallel-Wandler 120 bevorzugt
entworfen, serielle Bytes von 10 Bit von Daten zu empfangen und
parallele Bytes auszugeben, die auch 10 Bit von Daten haben. Es
ist jedoch verständlich,
dass irgendeine Bytelänge
verwendet werden kann und der Seriell-Parallel-Wandler 120 aufgebaut
sein kann, mit irgendeiner gewünschten
Bytelänge(n)
zu arbeiten.
-
Die
durch den Seriell-Parallel-Wandler 120 ausgegebenen parallelen
Daten werden an eine Mustererfassungsschaltung 130 angelegt.
Die Mustererfassungsschaltung 130 arbeitet mit einer Zustandsmaschinenschaltung 140,
um bestimmte Muster in den durch den Seriell-Parallel-Wandler 120 ausgegebenen
Daten zu erfassen, um Bytegrenzen in den hereinkommenden CDR-Daten
zu finden. In XAUI und vielen anderen durch die Schaltung gemäß 3 unterstützten Standards
werden bestimmte Zeichen wiederholt (obwohl typischerweise in beabstandeten
Intervallen) während
Leerlaufintervallen gesendet. Die Mustererfassungsschaltung sammelt
genug Ausgabedaten von dem Seriell-Parallel-Wandler 120,
um sicherzustellen, dass ein derartiges spezielles Zeichen erfasst
werden kann, auch, obwohl der Seriell-Parallel-Wandler 120 anfänglich nicht
richtig mit den Bytegrenzen in den hereinkommenden CDR-Daten synchronisiert
sein kann. Beispielsweise kann die Mustererfassungsschaltung 130 in
der Lage sein, zwei aufeinanderfolgende „Bytes" (d.h. 20 Bit), die von dem Seriell-Parallel-Wandler 120 ausgegeben
sind, zu halten, und kann nach einem bestimmten Zeichen irgendwo innerhalb
dieser 20 Bit schauen. Die Zustandsmaschinenschaltung 140 verfolgt
jede derartige Erfassung eines bestimmten Zeichens. Wenn eine ausreichende
Anzahl von speziellen Zeichen erfasst wurde, alle an demselben Ort
in einer entsprechenden Zahl von 20-Bit-Gruppen, können die
Elemente 130/140 Ausgangssignale erzeugen, die anzeigen,
dass sie die Bytegrenzen in den hereinkommenden CDR-Signalen erfasst
haben. Diese Ausgangssignale der Elemente 130/140 können verwendet
werden, um die Funktion des Seriell-Parallel-Wandlers 120 anzupassen,
so dass der Seriell-Parallel-Wandler danach Ausgangssignale erzeugt,
die richtig mit den Bytegrenzen in dem hereinkommenden CDR-Signal
synchronisiert sind.
-
Als
ein bestimmtes Beispiel des vorhergehenden wird angenommen, dass
die Elemente 130/140 spezielle Zeichen an Bitpositionen
5 bis 14 aus Bitpositionen 0 bis 19 in den 20 durch die Mustererfassungsschaltung 130 gehaltenen
Daten erfassen. Dies würde
bedeuten, dass der Seriell-Parallel-Wandler 120 nicht mit den
Bytegrenzen in den hereinkommenden CDR-Daten synchronisiert ist,
sondern an Stelle davon benötigt, seinen
Seriell-Parallel-Wandelvorgang
um fünf
wiederhergestellte Taktzyklen zu verschieben (z.B. seine Ausgangsbytes
von Bitpositionen 5 bis 14 zu Bitpositionen 0 bis 9 (oder zu Bitpositionen
10 bis 19) in der Mustererfassungsschaltung 130 zu verschieben).
Eine derartige Verschiebung in dem Seriell-Parallel-Wandelvorgang
kann einfach erreicht werden, indem beispielsweise bei Rücksetzen
einer wiederhergestellten Taktteilerschaltung in dem Seriell-Parallel-Wandler 120 für eine geeignete
Anzahl von wiederhergestellten Taktsignalzyklen gehalten wird. Nachdem
die wiederhergestellte Taktteilerschaltung vom Rücksetzen freigegeben wurde,
wird der Seriell-Parallel-Wandler 120 einen
Vorgang wiederaufnehmen, der Bytes ausgibt, die richtig mit den
Bytegrenzen des hereinkommenden CDR-Signals synchronisiert sind.
-
Nach
den vorstehend beschriebenen Vorgängen sind die Ausgangssignale
der Elemente 130/140 auf dem Leiter 142 aufeinanderfolgende
parallele Bytes von Daten, die richtig aus dem hereinkommenden CDR-Signal
wiederhergestellt wurden (d.h. entsprechend den richtigen Bytegrenzen).
Jedes aufeinanderfolgende 10-Bit Byte auf dem Leiter 142 wird
an eine 10Bit-zu-8Bit-Decodiererschaltung 150 angelegt.
Diese Schaltung wandelt jedes aufeinanderfolgende 10-Bit Byte in
das entsprechende 8-Bit Byte (z.B. gemäß dem in dem vorstehend erwähnten Franaszek
et al. US-Patent 4,486,739 beschriebenen Schema). Die Schaltung 150 gibt
aufeinanderfolgende, parallele 8-Bit Bytes über Leiter 152 aus.
-
Die
Datenausgabe durch die Schaltung 150 wird an eine Raten-
bzw. Frequenzabgleichschaltung 160 angelegt. Der Zweck
der Schaltung 160 besteht darin, die Möglichkeit zu berücksichtigen,
dass es einen kleinen Unterschied zwischen der Frequenz des in der
Schaltung verwendeten Oszillators, der das durch die hier gezeigte
Schaltung empfangene CDR- Signal
erzeugt hat, und der Frequenz des lokalen mit der hier gezeigten Schaltung
verwendeten Oszillators (z.B. zur Erzeugung der in 2 gezeigten
REFCLK-Signale) geben kann. Somit kann die Frequenzabgleichschaltung 160 eine
Speicherschaltung enthalten, die aufeinanderfolgende Bytes von der
Schaltung 150 synchron mit dem wiederhergestellten Signal
auf dem Leiter 114 speichert, aber die Daten über Leiter 164 synchron
mit einem lokalen Oszillatortaktsignal auf dem Leiter 162 ausgibt.
Das wiederhergestellte Taktsignal auf dem Leiter 114 besitzt
eine durch die Frequenz des entfernt liegenden Oszillators in der
Schaltung, die das an die Schaltung 110 angelegte CDR-Signal
erzeugte, bestimmte Frequenz. Das Signal auf dem Leiter 162 besitzt
eine durch die Frequenz eines lokalen Oszillators bestimmte Frequenz.
Die Frequenzabgleichschaltung 160 funktioniert daher als
ein Puffer, um mögliche
kleine Unterschiede zwischen den lokalen und entfernten Oszillatorfrequenzen
anzupassen. (Eine mögliche äußerste Quelle
des Signals auf dem Leiter 162 kann dieselbe sein wie die äußerste Quelle
eines vorstehend erwähnten
REFCLK-Signals.)
-
In
Verbindung mit der Frequenzabgleichschaltung 160 sollte
beachtet werden, daß es
zum Vermeiden von exzessiver Anhäufung
von lokalen und entferntem Oszillatorfrequenzunterschied für die Frequenzabgleichschaltung
notwendig sein kann, gelegentlich ein empfangenes Zeichen von den über den
Leiter 164 übertragenen
Daten zu löschen,
oder gelegentlich künstlich
ein Zeichen in die über
den Leiter 164 übertragenen
Daten einzufügen.
Dies kann während
Leerlaufintervallen erfolgen.
-
Die
Ausgangssignale
164 der Frequenzabgleichschaltung
160 sind
aufeinanderfolgende 8-Bit Bytes von Daten, die richtig aus dem Eingangs-CDR-Signal
decodiert und mit einem lokalen Oszillator synchronisiert sind.
Jedoch sind diese Byte von Daten von nur einem CDR-Übertragungskanal und XAUI (und
andere Standards oder Protokolle, die durch die Schaltung gemäß dieser
Erfindung unterstützt
sind) erlaubt ein Verschachteln von Daten in vier derartigen CDR-Kanälen. Das
bei XAUI verwendete Verschachtelungsschema enthält beispielsweise ein Leiten
aufeinanderfolgender Bytes von Startdaten zu verschiedenen der vier
Kanäle
wiederum auf einer wiederholenden Basis. Die folgende Tabelle veranschaulicht
die verwendete Verschachtelung.
Byte
Nr. | Kanal
Nr. |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 3 |
8 | 0 |
9 | 1 |
10 | 2 |
... | ... |
-
Jeder
der vier CDR-Kanäle
kann etwas unterschiedliche Verzögerungsausmaße besitzen.
Dies wird manchmal als ein Versatz der Kanäle relativ zueinander bezeichnet.
Aufgrund eines derartigen Versatzes kann ein Neuverschachteln in
der richtigen Reihenfolge der über
die verschiedenen Kanäle
empfangenen Bytes ohne einen als Kanalausrichtung bezeichneten Vorgang
nicht richtig erfolgen.
-
In
der in 3 gezeigten Schaltung führt eine Kanalausrichtungsschaltung 170 die
Kanalausrichtungsfunktion in Kombination mit der entsprechenden
Schaltung in den anderen Kanälen
in der Vierergruppe und dem relevanten Teil der Unterstützungslogik 70 der
Vierergruppe durch. Obwohl die Kanalausrichtungsschaltung 170 alternativ
auf anderen Wegen aufgebaut sein kann, ist ein veranschaulichender
Aufbau wie folgt. In jedem Kanal enthält die Ausrichtungsschaltung 170 Schieberegister
zum Registrieren von zahlreichen aufeinanderfolgenden Bytes, die über Leiter 164 empfangen
wurden, und zum Schieben dieser Bytes entlang der Schieberegisterkette.
Die Inhalte jeder Schieberegisterstufe werden auf ein spezielles
Ausrichtungszeichen hin untersucht. (Während Leerlaufintervallen werden
Ausrichtungszeichen periodisch auf allen vier Kanälen übertragen.)
Wenn ein Ausrichtungszeichen in einer der Schieberegisterstufen
in allen vier Kanälen
erfasst wird, kann die Kanalausrichtung darauf basiert werden, welche
der Schieberegisterstufen in den vier Kanälen gegenwärtig das Kanalausrichtungszeichen
enthält.
Wenn beispielsweise jede der Kanalausrichtungsschaltungen 170 vier
Schieberegisterstufen enthält,
und, wenn das Kanalausrichtungszeichen gegenwärtig in der vierten Schieberegisterstufe
in Kanal 0, in der ersten Schieberegisterstufe in Kanal 1, in der
dritten Schieberegisterstufe in Kanal 2 und auch in der dritten
Schieberegisterstufe in Kanal 3 gefunden wird, erkennt man, daß zukünftige gegenwärtige Daten
von den vier Kanälen wie
folgt neu verschachtelt werden können:
ein Byte von Kanal 0, Schieberegisterstufe 4 sollte durch ein Byte
von Kanal 1 gefolgt sein, Schieberegisterstufe 1, die durch ein
Byte von Kanal 2 gefolgt sein sollte, Schieberegisterstufe 3, die
durch ein Byte von Kanal 3 gefolgt sein sollte, Schieberegisterstufe
3, und dann sollte die neu verschachtelte Abfolge wieder beginnen.
-
Wie
aus 3 ersichtlich, funktioniert die Kanalausrichtungsschaltung 170 mit
dem lokalen Oszillatortaktsignal 162. Obwohl es in 3 nicht
gezeigt ist, kann die Kanalausrichtungsschaltung 170 in
allen vier Kanälen
durch eine Zustandsmaschine (konzeptionell ähnlich der Zustandsmaschine 140)
(z.B. in der Unterstützungslogik 70)
unterstützt
werden, um sicherzustellen, dass die Kanalausrichtung auf ausreichend
wiederholter Erfassung derselben Bedingungen basiert. Wie im Fall
der Zustandsmaschine 140 kann dies erfolgen, um sicherzustellen,
dass die Kanalausrichtung auf einem stabilen Schaltungsvorgang basiert,
und, um die Zuverlässigkeit
der Kanalausrichtungsfunktion zu erhöhen.
-
Die
Kanalausrichtungsschaltung 170 gibt kanalausgerichtete
Daten über
Leiter 172 aus. Diese Daten werden an einen Satz von Eingängen eines
programmierbaren Logikverbinders („PLC") 190 angelegt und auch an
eine Byte-Seriell-Parallel-Wandler und Phasenkompensationsschaltung 180.
Eine der Funktionen der Schaltung 180 besteht darin, zwei
aufeinanderfolgende Bytes von den Leiters 172 zur Anwendung
parallel auf den anderen Satz von Eingängen des PLC 190 zusammenzufügen. Der
PLC 190 ist programmierbar oder anderenfalls steuerbar,
um die Signale auf einem seiner Eingangssätze zu Ausgangsanschlüssen 62 und
somit zum PLD-Kern 20 (1 und 2)
durchzulassen. Die Schaltung 180 kann verwendet werden,
um zwei Byte parallel für
Situationen zusammenzufügen,
in denen die serielle Byterate zu groß für den PLD-Kern 20 ist.
Der PLC 190 erlaubt der Schaltung 180, wie gewünscht, entweder
verwendet oder umgangen zu werden.
-
Eine
andere mögliche
Funktion der Schaltung 180 ist eine Phasenkompensation.
Wenn die Phase des Taktsignals auf dem Leiter 162 verschieden
von der Phase eines PLD-Kern-Taktsignals
auf dem Leiter 182 ist, puffert der Phasenkompensationsteil
der Schaltung 180 die diese Schaltung passierenden Daten,
so daß ihr Ausgangssignal
die richtige Phasenbeziehung zum PLD-Kern-Taktsignal besitzt. (Wieder
kann die äußerste Quelle
der Signale auf den Leitern 162 und 182 dieselbe
sein, aber eine Phasenverschiebung kann sich aus verschiedenem Leiten
dieser zwei Signale ergeben.)
-
4 zeigt
den Senderteil eines repräsentativen
Kanals 50 (2) etwas genauer. Über Leiter 64 durch
den PLD-Kern 20 ausgegebene aufeinanderfolgende Bytes (oder
Bytepaare) werden an einen Satz der Eingänge des PLC 220 und
auch an die Byte-Seriell-Parallel-Wandler und Phasenkompensationsschaltung 210 angelegt.
In dem Fall, dass der PLC-Kern Bytepaare parallel ausgibt (eher
als ein Byte zu einer Zeit), besteht eine der Funktionen der Schaltung 180 darin,
die Bytes in einem derartigen Paar in zwei serielle Bytes seriell
zu wandeln. Die Schaltung 210 ist durch ein Taktsignal
auf dem Leiter 212 getaktet, das von der Unterstützungslogik 70 kommen
kann. Die Schaltung 210 kann auch durch ein PLD-Kern-Taktsignal auf dem
Leiter 214 getaktet werden. Die Schaltung 210 kann
eine Phasenkompensation zwischen einem möglichen In-verschiedene-Phase-Bringen
der Signale auf den Leitern 212 und 214 (ähnlich der
vorstehend beschriebenen Phasenkompensationsfunktion der Schaltung 180)
ausbilden. (Wie in dem Fall des vorstehend beschriebenen Netzwerks 114 (3)
können
verschiedene Teile des Netzwerks 212 Bitraten oder Byteratenversionen
eines Taktsignals zuführen.
Elemente 210 und 230 benötigen nur die Byteratenversion,
aber das Element 240 benötig sowohl die Byteratenversion
als auch die Bitratenversion.) Die Ausgangssignale der Schaltung 210 werden an
den anderen Satz der Eingänge
des PLC 220 angelegt.
-
Der
PLC 220 ist programmierbar oder anderenfalls steuerbar,
um irgendeinen Satz seiner Eingänge mit
seinen Ausgängen 222 zu
verbinden. Somit erlaubt der PLC 220 der Schaltung 210,
dass sie entweder verwendet oder umgangen wird, wie gewünscht.
-
Die
8-Bit Byte-Signale auf den Leitern 222 werden an die 8Bit-zu-10Bit-Codiererschaltung 230 angelegt.
Der Codierer 230 wandelt jedes 8-Bit Byte in 10-Bit Form
entsprechend dem in dem vorstehend erwähnten Franaszek et al. US-Patent
4,486,793 gezeigten Schema. Die Schaltung 230 ist auch
durch das Signal 212 getaktet.
-
Die
parallelen 10-Bit Ausgangssignale des Codierers 230 werden
auf die Parallel-Seriell-Wandlerschaltung 240 angelegt.
Der Parallel-Seriell-Wandler 240 wandelt die parallelen
Daten, die er empfängt,
in serielle Form zum Anlegen an die Ausgangsansteuereinrichtung 56 an.
Ein veranschaulichender Aufbau des Parallel-Seriell-Wandlers 240 ist
in der vorstehend erwähnten
Aung et al. Druckschrift gezeigt, obwohl irgendein anderer geeigneter
Aufbau anstelle davon verwendet werden kann, wenn gewünscht. Wiederum
wird der Parallel-Seriell-Wandler 240 durch das Signal 212 getaktet.
-
Mehr
mögliche
Merkmale für
die Schaltung der in 3 gezeigten Art sind in den 5A bis 5C gezeigt.
Diese Fig.en werden nun beschrieben, aber es wird nicht notwendig
sein, eine Beschreibung von Elementen zu wiederholen, die bereits
in Verbindung mit 3 beschrieben wurden.
-
Unter
anderem zeigen die 5A bis 5C bis
den Einschluss eines steuerbaren Leitens, das verschiedenen Teilmengen
der in 3 gezeigten Elemente erlaubt, die in verschiedenen
Anwendungen der Schaltung zu verwenden sind. Bei der Auswahl eines
bestimmten gewünschten
Leitens involvierte Hauptkomponenten sind PLCs wie 300, 310, 320,
usw.. Diese PLCs sind durch zugehörige Steuerschaltung wie 302, 321, 322,
usw. gesteuert. Derartige Steuerschaltung 302 usw. kann
irgendeine von zahlreichen Formen annehmen. Beispielsweise können Funktionssteuerelemente
(„FCEs") (z.B. programmierbare
Speicherzellen) R verwendet werden, um einen PLC, wie in 6 gezeigt,
zu steuern. Diese Art von Steuerung ist im Wesentlichen statisch
und kann nur durch eine Wiederprogrammierung der PLD verändert werden
(angenommen die PLD ist wiederprogrammierbar). Eine andere mögliche Art
von Steuerung ist eine dynamischere Steuerung (z.B. auf der Grundlage
eines Signals oder von Signalen von der PLD-Kernschaltung 20,
das sich von Zeit zu Zeit ändern
kann). 7 veranschaulicht diese Art von Steuerung. Noch
eine andere mögliche
Art von Steuerung ist eine programmierbare Auswahl zwischen einer
der zwei vorstehend beschriebenen Arten von Steuerung (siehe 8).
In dem bestimmten in 8 gezeigten Beispiel wird der
PLC 300/310/usw. durch das Ausgangssignal des PLC 308 gesteuert.
Das FCE 304 steuert, auf welchen der zwei Eingänge des
PLC 308 dieser PLC sein Ausgangssignal gründet. Einer
dieser zwei Eingänge
kommt von dem FCE 306 und ist daher ein statisches Signal.
Der andere Eingang zum PLC 308 kann ein dynamischeres Signal
(z.B. von PLD-Kern 20) sein. Wenn somit eine statische
Steuerung des PLC 300/310/usw. gewünscht ist, wird das FCE 304 programmiert,
um den PLC 308 zu veranlassen, das Signal vom FCE 306 auszugeben.
Wenn andererseits eine dynamischere Steuerung des PLC 300/310/usw.
gewünscht
ist, wird das FCE 304 programmiert, den PLC 308 zu
veranlassen, sein dynamisches Eingangssignal auszugeben. Irgendeine
der durch die 6 bis 8 veranschaulichten
Arten von Steuerung kann verwendet werden, irgendeinen der hier
gezeigten PLCs zu steuern.
-
Ein
Grund für
ein Hinzufügen
von verschiedenen Leitoptionen, wie in den 5A bis 5C gezeigt, zur
Schaltung der in 3 gezeigten Art, ist der Folgende.
Die in 3 ge zeigte Schaltung besitzt alle Elemente, die
erforderlich sind, um den XAUI-Standard zu unterstützen. Aber
alle zur Unterstützung
von XAUI erforderlichen Vorgänge
müssen
nicht erforderlich sein, um andere Standards zu unterstützen. Wenn
eine Nicht-XAUI-Kommunikation
implementiert wird, erlauben die in 5 hinzugefügten Leitoptionen,
dass die Funktionen, die nicht benötigt werden, umgangen werden.
Alternativ können
einige Standards oder Protokolle Funktionen erfordern, die im allgemeinen
wie XAUI-Funktionen sind, sich aber deutlich von Standard-XAUI-Funktionen
unterscheiden, daß eine
XAUI-spezifische Schaltung nicht geeignet ist, sie durchzuführen. In
diesem Fall kann eine Allzweck-PLD-Kernschaltung 20 verwendet
werden, um diese Funktionen durchzuführen, und die in 5 hinzugefügten Leitoptionen erlauben
den Signalen, zum PLD-Kern 20 geleitet zu werden, wenn
der Übergang
von sogenannter „harter
Logik" (in zugeordneter,
hauptsächlich
festverdrahtete Schaltung 50) zu sogenannter „weicher
Logik" (im PLD-Kern 20)
erfolgt.
-
Die 5A bis 5C zeigen
veranschaulichende Breiten für
viele der angezeigten Busse. Es ist jedoch verständlich, daß diese Busbreiten nur beispielhaft
sind, und daß andere
Busbreiten anstelle davon verwendet werden können, wenn gewünscht. Auch
sind die bestimmten in den 5A bis 5C gezeigten
Leitoptionen veranschaulichend und andere Leitoptionen können anstelle
davon oder zusätzlich
verwendet werden, wenn gewünscht.
-
In 5A beginnt
die Schaltung im Wesentlichen mit einem PLC 300 zur Auswahl
entweder des hereinkommenden CDR-Signals von der Ansteuereinrichtung 52 oder
eines Rückschleif-CDR-Signals
von der zugehörigen
Senderschaltung (4 oder genauer 12B). Die Rückschleifoption
ist zuerst als eine Testbetriebsart beabsichtigt. Sie erlaubt dem
Benutzer eine Verarbeitung eines Signals heraus durch die Senderschaltung
und dann wieder zurück
durch die Empfängerschaltung,
um zu testen, ob diese Verarbeitung das Signal ungeeignet verändert. Es
muss keine externe Verbindung erfolgen. Wenn das Testsignal unverändert zurückkommt,
dann ist bekannt, dass sowohl die Sender- als auch die Empfängerschaltungen
richtig funktionieren. Der PLC 300 ist ein Beispiel für einen
PLC, der wünschenswert
sein kann, um dynamisch zu steuern (z.B. wie in 7),
so daß der
PLC 300 anfänglich
die Test- oder Rückschleif-Betriebsart
auswählen
kann, und danach auf die normalere Funktionsbetriebsart geschaltet
werden kann, in der der PLC das Ausgangssignal der Ansteuereinrichtung 52 durchlässt.
-
Das
Ausgangssignal des PLC 300 wird an den CDR/Seriell-Parallel-Wandler 110/120 angelegt,
der bereits in Verbindung mit 3 beschrieben
wurde. Wie in dieser früheren
Diskussion erwähnt,
empfängt
die Schaltung 110/120 auch zahlreiche Kandidatenwiederhergestellte
Taktsignale von der Unterstützungslogik 70. Eines
dieser Taktsignale wird an eine Teilen-durch-J-Schaltung 410 angelegt,
die die Frequenz des angelegten Signals durch einen Skalenfaktor
J teilt. J kann die Zahl von Bits in jedem Byte sein, so daß, wenn
das Eingangssignal in die Schaltung 410 die Frequenz der
Bitrate besitzt, das Ausgangssignal der Schaltung 410 die Frequenz
der Byterate besitzt. J kann ein programmierbarer (z.B. statischer)
Wert sein. Beispielsweise kann der Wert von J in FCEs programmiert
werden, die zur Schaltung 410 gehören. Alternativ kann J ein
dynamischeres Signal sein (z.B. zugeführt durch den PLD-Kern 20). 9 zeigt
eine veranschaulichende Schaltung, die erlaubt, dass der durch die
Schaltung 410 verwendete Wert von J entweder ein programmierter
statischer Wert (von einem programmierbaren FCE-Register 412)
oder ein dynamischer Wert (z.B. von dem PLD-Kern 20) ist.
Der PLC 416 ist durch das FCE 414 programmierbar
gesteuert, um entweder den statischen oder den dynamischen Eingang
zur Verwendung als der endgültig
ausgewählte
Wert von J auszuwählen.
J ist für XAUI-Anwendungen 10,
kann aber für
bestimmte Nicht-XAUI-Anwendungen eine Zahl unter 10 sein. Das Ausgangssignal
der Schaltung 410 kann durch bestimmte Elemente abwärts der
Empfängerschaltung
erforderlich sein, wie nachstehend genauer beschrieben wird.
-
Um
der Schaltung zu ermöglichen,
bestimmte Nicht-XAUI-Standards oder Protokolle zu unterstützen, ist
der Seriell-Parallel-Wandler-Teil 120 der Schaltung 110/120 bevorzugt
dazu in der Lage, Bytes verschiedener Längen zu handhaben (d.h. 10
Bit für
XAUI, aber weniger als 10 Bit für
bestimmte Nicht-XAUI-Standards). Dies wurde in Verbindung mit 3 kurz
erwähnt,
aber es kann hier herausgearbeitet werden, indem bemerkt wird, dass
diese Funktion ähnlich
dem Vorgang der vorstehend beschriebenen Teilen-durch-J-Schaltung 410 ist.
Insbesondere kann derselbe Wert von J (auf demselben Weg gesteuert
oder ausgewählt
wie für
die Schaltung 410) innerhalb des Seriell-Parallel-Wandler-Teils 120 verwendet
werden, um die Bytelänge
zu bestimmten, die der Seriell-Parallel-Wandler ausbildet. Die Ausgabebusbreite
der Schaltung 110/120 ist in 5A als 10 gezeigt
(wie für
XAUI erforderlich), aber, wenn J in einigen Nicht-XAUI-Anwendungen
weniger als 10 ist, dann wird tatsächlich nur J der 10 verfügbaren Ausgangsleiter
in dieser Anwendung verwendet.
-
Die
Seriell-Parallel-gewandelten (und daher parallelen) Datenausgaben
der Schaltung 110/120 werden an die Mustererfassungs- und Zustandsmaschinenschaltung 130/140 (vorstehend
in Verbindung mit 3 beschrieben) angelegt, und
auch an einen Satz von Eingängen
von dem PLC 320. Kurz nach vorne springend, wird ersichtlich,
dass ein mögliches
Leiten für
diese an den PLC 320 angelegten Signale durch den PLC 380 (5B)
und durch den PLC 390 (5C) zum
PLD-Kern 20 (5C) ist. Wenn es somit nach
der Seriell-Parallel-Wandlung
in der Schaltung 110/120 nicht gewünscht ist, irgendeine Hart-Logik-Verarbeitung der
hereinkommenden Daten durchzuführen,
können
diese Daten direkt zum PLD-Kern 20 gesendet werden, wobei
alle weitere Verarbeitung in der Soft-Logik der Einrichtung ist.
Dies ist nur eines von zahlreichem möglichen Leiten der an den PLC 320 angelegten
Signale von der Schaltung 110/120, and anderes mögliches
Leiten wird nachstehend diskutiert.
-
Zurück zur Schaltung 130/140 in 5A,
können
die Muster (bestimmte Zeichen), die diese Schaltung erfasst, auswählbar sein,
um der Schaltung zu helfen, verschiedene Standards oder Protokolle
zu unterstützen.
Beispielsweise zeigt 10 eine veranschaulichende Schaltung,
die erlaubt, dass das (die) durch die Schaltung 130/140 verwendete(n)
Muster entweder ein in den FCE-Registern 420 programmiertes
statisches) Muster oder ein dynamisches) Muster (z.B. vom PLD-Kern 20)
sind. Der PLC 424 wird durch das FCE 422 gesteuert,
um entweder die statischen oder dynamischen Signaleingaben zur Verwendung
als das (die) endgültige(n)
Muster, das (die) die Schaltung 130/140 erfassen wird,
auszuwählen.
Durch Ausbilden vieler Beispiele von Schaltung der in 10 gezeigten
Art, können
einige Muster statisch gemacht werden, während andere Muster dynamisch
gemacht werden.
-
Verschiedene
durch den Zustandsmaschinen-Teil 140 der Schaltung 130/140 verwendete
Parameter können
auch steuerbar oder auswählbar
sein, um der Schaltung zu helfen, zahlreiche Standards oder Protokolle
zu unterstützen. 11 zeigt
eine veranschaulichende Schaltung, um derartigen Zustandsmaschinen-Parametern
zu erlauben, entweder statisch oder dynamisch zu sein. Wie in 11 gezeigt,
können FCE-Register 430 mit
einem oder mehreren Parameterwerten für den Zustandsmaschinen-Teil 140 der
Schaltung 130/140 programmiert werden. Da sie in der Einrichtung
programmiert werden, sind dieser Werte „statisch". Der PLC 434 ist durch das
FCE 432 programmierbar gesteuert, um entweder die statischen
Werte oder Werte, die dynamischer sein können (z.B. vom PLD-Kern 20)
auszuwählen.
Es wird geschätzt,
dass durch Ausbilden einer Vielzahl von Schaltungen wie die in 11 ge zeigten,
einige Parameterwerte statisch gemacht werden, während andere dynamisch gemacht
werden.
-
Die
Ausgangssignale der Schaltung 130/140 sind in 5A gezeigt,
um bis zu 10 Datensignale und bis zu vier andere Signale zu enthalten.
Diese vier anderen Signale können
Flagsignale enthalten, um anzuzeigen, dass diese bestimmten Muster
durch die Schaltung 130/140 erfasst wurden.
-
Die
Datenausgangssignale der Schaltung 130/140 werden an einen
Satz der Eingänge
des PLC 310 angelegt. Die Rückschleif-Signale (von der
zugehörigen
Senderschaltung (4 oder genauer 12B) werden an die anderen Sätze von Eingängen des
PLC 310 angelegt. Dieses Rückschleif-Leiten kann wie vorhergehend
beschriebenes Rückschleif-Leiten
(z.B. zur Vereinfachung eines Testens von Teilen der Schaltung) verwendet
werden. Der PLC 310 ist durch die Steuerschaltung 312 steuerbar,
um die Daten auf einem Satz seiner Eingänge zu seinen Ausgängen durchzulassen.
-
Die
Ausgaben des PLC 310 und die vier Ausgaben der Schaltung 130/140,
die nicht an den PLC 310 angelegt sind, werden an den 10B-zu-8B-Decodierer 150 angelegt
und auch an einen Satz von Eingängen
des PLC 320. Der Decodierer 150 wurde bereits
in Verbindung mit 3 beschrieben und muss hier
nicht wieder beschrieben werden. Das Leiten zu und durch den PLC 320 erlaubt
dem Decodierer 150 ein Umgangenwerden, wenn gewünscht. Das
Umgangenwerden-Leiten kann zur Implementierung eines Kommunikationsstandards
oder -protokolls verwendet werden, dass keine 10B-zu.8B-Decodierung
erfordert.
-
Die
Ausgangssignale des Decodierers 150 werden an eine Frequenz-Zeichen-Löschzustandsmachine 160a angelegt
und auch an einen anderen Satz von Eingängen des PLC 320.
Die Ausgangssignale der Schaltung 150 enthalten bis zu
acht parallele Datensignale und bis zu fünf parallele Flagsignale, insgesamt
bis zu 13 parallele Signale. Obwohl es in 3 nicht
als ein getrennter Teil der Schaltung 160 gezeigt ist,
ist die Funktion der Schaltung 160a in der früheren Diskussion
von 3 erwähnt.
Um es kurz zu rekapitulieren, als ein Teil der Frequenzabgleichfunktion
der Schaltung 160 kann es notwendig sein, gelegentlich
ein Zeichen (Byte) zu löschen,
das empfangen wurde. Dies kann für
zumindest viele der Zeichen sicher erfolgen, die während Leerlaufintervallen übertragen
werden. Daher führt
die Zustandsmaschine 160a typischerweise ihre Zeichen-Lösch-Funktion
durch, wenn Signale von davor liegender Schaltung, wie beispielsweise 130/140/150 anzeigen,
daß nicht-notwendige
Leerlaufintervalldaten empfangen wurden, und, wenn eine danach liegende Schaltung,
wie beispielsweise ein Frequenzabgleichschaltungs-FIFO 160b anzeigt,
daß die
dahinter liegende Schaltung die Grenze ihrer Kapazität zur Pufferung
des Frequenzunterschieds, die es erfährt, erreicht. Das Zeichen-Löschen kann
implementiert werden, indem die Frequenzabgleich-FIFO-Schaltung 160b (5B) veranlasst
wird, ein Byte in seinem Lesevorgang ansprechend auf ein geeignetes
Signal von der Zustandsmaschine 160a zu verschieben. Wenn
gewünscht,
kann einer oder mehrere der in der Zustandsmaschine 160a verwendeten
Parameter auf dieselbe Weise programmierbar auswählbar oder dynamisch veränderbar
gemacht werden, wie es für
den Zustandsmaschinen-Teil 140 der Schaltung 130/140 erfolgen
kann (z.B. durch Zuführen
von Parameterwerten von der Schaltung der in 11 gezeigten
Arten).
-
Die
Datenausgabesignale der Zustandsmaschine 160a werden an
einen Satz von Eingängen
des PLC 330 angelegt (5B). Die
Zustandsmaschine 160a tauscht auch Steuersignale mit der
Frequenzabgleich-FIFO-Schaltung 160b über Leiten aus, das den PLC 330 nicht
passiert. Der andere Satz von Eingängen zum PLC 330 kommt
von den Ausgängen
des PLC 320. Eine Schaltung 332 steuert den PLC 330,
um einen ihrer Sätze
von Eingängen
an die Schaltung 160b anzulegen. Der PLC 330 erlaubt
somit der Schaltung 160b einen Empfang seiner Dateneingaben
von der Zustandsmaschine 160a. Alternativ erlauben die
PLCs 320 und 330 der Schaltung 160b einen
Empfang ihrer Dateneingaben direkt von (a) den Ausgängen des
Decodierers 150, (b) den Ausgängen des PLC 310 oder
(c) den Ausgängen
der CDR/Seriell-Parallel-Wandler-Schaltung 110/120. Somit
kann die Frequenzabgleich-FIFO-Schaltung 160b entweder
mit oder ohne das Frequenz-Zeichen-Löschen 160a verwendet
werden, mit oder ohne 10B-zu-8B-Decodierung und mit oder ohne Mustererfassung 130/140.
-
Der
Frequenzabgleichvorgang der Schaltung 160b wurde vorhergehend
in Verbindung mit 3 beschrieben und muß daher
hier nicht wieder beschrieben werden. Es sollte hier jedoch erwähnt werden,
daß der
PLC 340 (gesteuert durch die Steuerschaltung 342)
dem zweiten Takteingangssignal zur Schaltung 160b erlaubt,
entweder das Ausgangssignal der Teilerschaltung 410 (5A)
oder ein PLD-Kern-Taktsignal (d.h. von dem herkömmlichen Taktsignalverteilungsnetzwerk
(„Taktbäume") 26 (5C)
des PLD-Kerns 20) zu sein. Das Ausgangssignal des PLC 340 ist
auch das an zahlreiche andere Elemente hinter der Schaltung 160b angelegte
Taktsignal.
-
Die
Datenausgabesignale der Schaltung 160b werden an eine Frequenz-Zeichen-Einfige-Zustandsmaschine 160c anlegt
und auch an einen Satz von Eingängen
des PLC 350. Die Schaltung 160b tauscht auch Steuersignale
mit der Schaltung 160c aus. Der andere Satz von Eingängen zum
PLC 350 sind die Ausgänge des
PLC 320.
-
Obwohl
es in 3 nicht separat gezeigt ist, wurde die Funktion
der Frequenz-Zeichen-Einfüge-Zustandsmaschine 160c bereits
in Verbindung mit 3 allgemein beschrieben. Das
Zeichen(d.h. Byte)-Einfügen
ist konzeptionell wie das Zeichen-Löschen, außer, daß das Einfügen ansprechend auf einen Frequenzunterschied
durchgeführt
wird, der eine Polarität
umgekehrt zu einer Frequenzdifferenz besitzt, die das Zeichen-Löschen erfordert.
Das Zeichen-Einfügen
kann zu Zeiten gleich denen, zu denen es geeignet sein würde, das
Zeichen-Löschen
durchzuführen,
erfolgen. Das Zeichen-Einfügen
kann durch Besitzen von Ausgangssignalen der Zustandsmaschine 160c implementiert
werden, um die Schaltung 160b zu veranlassen, dasselbe Byte
zweimal zu lesen. Wie im Fall von anderen Zustandsmaschinen, die
bereits beschrieben wurden, können einer
oder mehrere Betriebsparameter der Zustandsmaschine 160c programmierbar
oder dynamisch variabel gemacht werden (z.B. durch Zuführ von ihnen
von oder über
die Schaltung der in 11 gezeigten Art). Das alternative
Ausgabeleiten der Schaltung 160b über den PLC 350 erlaubt
der Schaltung 160c ein Umgangenwerden, wenn die Frequenz-Zeichen-Einfügefunktion
nicht zur Implementierung eines bestimmten Kommunikationsprotokolls
oder -Standards erforderlich ist.
-
Die
Datenausgangssignale der Schaltung 160c werden an einen
Satz von Eingängen
des PLC 360 angelegt. Die Ausgänge des PLC 350 werden
an den anderen Satz von Eingängen
des PLC 360 angelegt und auch an einen Satz der Eingänge des
PLC 380. Die Steuerschaltung 362 veranlasst den
PLC 360, die Signale von einem ihrer zwei Sätze von
Eingängen
auszugeben. Die Ausgangssignale des PLC 360 werden an eine Kanalausrichtungsschaltung 170 angelegt
und auch an einen zweiten Satz von Eingängen in den PLC 380.
-
Die
Funktionen des Elements 170 wurden bereits in Verbindung
mit 3 beschrieben und müssen hier nicht wieder beschrieben
werden. Wie im Fall der vorhergehend beschriebenen Zustandsmaschinen
können
einer oder mehrere der Parameter, die einige oder alle Vorgänge der
Zustandsmaschine steuern, die in der Schaltung 170 ist
oder zu ihr gehört,
programmierbar oder dynamisch variabel sein (z.B. durch Verwendung
eines oder mehrere Beispiele von Schaltungen der in 11 gezeigten
Art).
-
Die
Ausgangssignale der Kanalausrichtungsschaltung 170 werden
an die XAUI-Empfangslogik
und Zustandsmaschine 450 angelegt. Der XAUI-Standard bestimmt,
daß XAUI-Daten
mit bestimmten Regeln übereinstimmen
müssen
und die Schaltung 450 führt
herkömmliche
Funktionen mit Bezug auf diese Regeln durch. Wiederum kann der Zustandsmaschinen-Teil
der Schaltung 450, wie in 11 gezeigt,
gesteuerte Parameter besitzen.
-
Die
Ausgangssignale der Schaltung 450 werden an einen dritten
Satz von Eingängen
des PLC 380 angelegt. Die Steuerschaltung 382 steuert
den PLC 380, um irgendeinen seiner drei Sätze von
Eingängen
auszugeben. Somit kann der PLC 380 entweder (a) die Ausgaben
des PLC 350, (b) die Ausgaben des PLC 360 oder
(c) die Ausgaben der Schaltung 170b ausgeben.
-
Wie
in 5C gezeigt, werden die Ausgaben des PLC 380 an
die Byte-Parallel-Seriell-Wandler
und Phasenkompensationsschaltung 180 angelegt und auch
an einen Satz von Eingängen
des PLC 390. (Der PLC 390 in 5C ist
derselbe wie der PLC 190 in 3.) Die
Schaltung 180 wurde bereits in Verbindung mit 3 beschrieben
und muß daher
nicht wieder beschrieben werden. Es sollte jedoch erwähnt werden,
dass 5B eine Teilen-durch-2-Schaltung 440 zeigt, die
ein angelegtes Taktsignal zur Verwendung durch die Schaltung 180 durch
zwei teilt, indem die Byterate halbiert wird (erforderlich für eine Byte-Seriell-Parallel-Wandlung).
(Elemente 370 und 372 erlauben dem zur Schaltung 440 zugeführten Signal,
entweder das wiederhergestellte Taktsignal 114 oder das
Ausgangssignal des PLC 340 zu sein.) Die Zwei-Byte-breiten
Datenausgaben der Schaltung 180 werden an einen zweiten
Satz von Eingängen
des PLC 390 angelegt. Die Schaltung 392 steuert
den PLC 390, um einen seiner Sätze von Eingaben an den PLD-Kern 20 (insbesondere
die Benutzerlogik 24 des PLD-Kerns) anzulegen. Der PLC 390 erlaubt
daher dem PLD-Kern 20, entweder (a) die Ausgaben der Schaltung 180 oder
(b) die Ausgaben des PLC 380 zu empfangen (wenn die Funktionen
der Schaltung 180 nicht erforderlich sind, um ein bestimmtes
Kommunikationsprotokoll zu unterstützen).
-
Im
Allgemeinen ergänzen
die verschiedenen Taktsignalauswahl- und -leitoptionen, die in den 5A bis 5C ausgebildet
sind (z.B. durch die PLCs 340 und 370) die verschiedenen
Datenleitoptionen.
-
Aus
dem Vorstehenden wird ersichtlich, daß viele verschiedene Unterkombinationen
der in den
5A bis
5C gezeigten
betriebenen Schaltung verwendet werden können, um viele verschiedene
Kommunikationsprotokolle oder Standards zu unterstützen. Die
folgende Tabelle listet nur einige der Möglichkeiten auf (wobei in jedem
Fall die Bezugszahlen) der betriebenen Teile verwendet werden, die
in der Unterkombination verwendet werden, und die Bezugszahl(en)
der betriebenen Teile, die nicht verwendet werden, weggelassen werden).
Option | verwendete
betriebene Teile |
1. | 110/120 |
2. | 110/120, 180 |
3. | 110/120, 160b |
4. | 110/120, 160b, 180 |
5. | 110/120, 170a, 170b |
6. | 110/120, 170a, 170b, 180 |
7. | 110/120, 160b, 170a, 170b |
8. | 110/120, 160b, 170a, 170b, 180 |
9. | 110/120, 130/140 |
10. | 110/120, 130/140, 180 |
11. | 110/120, 130/140, 150 |
12. | 110/120, 130/140, 150, 180 |
13. | 110/120. 130/140, 150, 160a bis
c |
14. | 110/120, 130/140, 150, 160a bis
c, 180 |
usw. | Es
sind auch andere Kombinationen möglich. |
-
Zusätzliche
Elemente von Variabilität,
die eine Implementierung vieler verschiedener Kommunikationsprotokolle
oder Standards vereinfachen, resultieren aus dem Folgenden: (1)
der Fähigkeit,
viele der Betriebsparameter der betriebenen Teile der Schaltung
programmierbar auszuwählen
oder dynamisch zu verändern
und (2) der Fähigkeit,
den PLD-Kern 20 zu verwenden, um (Soft-Logik-)Varianten
von Betrieben der verschiedenen zu den Hart-Logik betriebenen Teile
gehörigen
Arten durchzuführen.
Ein Beispiel für
den direkt vorhergehenden Punkt (1) wurde in Verbindung mit den 6 bis 11 beschrieben.
Ein Beispiel für
den direkt vorhergehenden Punkt (2) würde ein Durchführen einer
Art von 10B-zu-8B-Decodierung verschieden von der durch die Hart-Logik-Betriebsschaltung 150 durchführbaren
in dem PLD-Kern 20 sein.
-
Die 12A und 12B zeigen
eine veranschaulichende Senderschaltung 50, die mit der
Empfängerschaltung
gemäß den 5A bis 5C verbunden
werden kann. Die in den 12A und 12B gezeigte Schaltung ist dieselbe wie die den 4 gezeigte,
ist aber mit zusätzlichen
Fähigkeiten
verstärkt,
um mehr Flexibilität
zu geben und dadurch zu ermöglichen,
zahlreiche verschiedene Kommunikationsprotokolle oder Standrads
zu unterstützen.
Viele der in den 12A und 12B gezeigten
Elemente sind aus 4 wiederholt. Da diese Elemente
bereits in Verbindung mit 4 beschrieben
wurden, ist es nicht erforderlich, sie in Verbindung mit den 12A und 12B wieder
vollständig
zu beschreiben. Wie im Fall der 5A bis 5C sind
die in den 12A und 12B gezeigten
Busbreiten nur veranschaulichend und andere Busbreiten können anstelle
davon verwendet werden, wenn gewünscht.
-
Wie
in 12A gezeigt, werden die durch die Benutzerlogik 24 in
dem PLD-Kern 20 ausgegebenen Datensignale an die Byte-Parallel-Seriell-Wandler-
und Phasenkompensationsschaltung 210 (vorhergehend in Verbindung
mit 4 beschrieben) angelegt. Diese Signale werden
auch an einen Satz von Eingängen
des PLC 510 (desselben wie des PLC 220 in 4)
angelegt. Die Ausgaben der Schaltung 210 werden an den anderen
Satz von Eingängen
des PLC 510 angelegt. Eine Steuerschaltung 512 steuert
den PLC 510, um einen ihrer Sätze von Eingängen als
ihre Ausgaben auszuwählen.
Wie in Verbindung mit 4 erwähnt, erlaubt der PLC 510 den
Signalen ein Geleitetwerden rund um die Schaltung 210,
wenn das implementierte Kommunikationsprotokoll eine Verwendung
der Schaltung 210 nicht erfordert.
-
Die
Ausgangssignale des PLC 510 werden an eine XAUI-Sender-Zustandsmaschinenschaltung 520 und
auch an einen Satz der Eingänge
jedes der PLCs 530 und 540 angelegt. Wie die Schaltung 450 in 5B führt die
Schaltung 520 herkömmliche
auf XAUI-Regeln für
XAUI-Daten bezogene Funktionen durch. Die Schaltung, wie die in 11 gezeigte,
kann wieder verwendet werden, um durch die Schaltung 529 verwendete
Parameter zu steuern.
-
Die
Ausgangssignale der Zustandsmaschine 520 werden an den
zweiten Satz von Eingängen
des PLC 530 angelegt. Eine Steuerschaltung 532 steuert
den PLC 530, um einen seiner Sätze von Eingängen als seine
Ausgaben auszuwählen.
Der PLC 530 (und auch der später zu beschreibende PLC 540)
erlaubt der Schaltung 520 ein Umgangenwerden, wenn das
implementierte Kommunikationsprotokoll eine Verwendung der Schaltung 520 nicht
erfordert.
-
Die
Ausgangssignale des PLC 530 werden an den 8B-zu-10B-Codierer 230 (vorstehend
in Verbindung mit 4 beschrieben) angelegt. Die
Ausgangssignale des Codierers 230 werden an den anderen
Satz von Eingängen
des PLC 540 angelegt. Eine Steuerschaltung 542 steuert
den PLC 540, um einen seiner Eingänge als seine Ausgaben auszuwählen. Der
PLC 540 erlaubt daher beiden Elementen 520 und 230 ein
Umgangenwerden, wenn das implementierte Kommunikationsprotokoll
eine Verwendung dieser Elemente nicht erfordert.
-
Die
Ausgangssignale des PLC 540 werden an die Parallel-Seriell-Wandlerschaltung 240 (vorstehend in
Verbindung mit 4 beschrieben) angelegt. Die
Ausgangssignale des PLC 540 sind auch die Rückschleifsignale,
die an den zweiten Satz von Eingängen
des PLC 310 (5A) in der zugehörigen Empfängerschaltung
angelegt sind. Eine Teilen-durch-J-Schaltung 560 unterstützt eine
Funktion anderer Elemente in den 12A und 12B durch Teilen einer Bit-Raten-Taktsignalfrequenz
von der Unterstützungslogik 70 durch J,
um ein Byte-Raten-Taktsignal zu erzeugen. Wie in hier vorhergehenden
Diskussionen ist J die Anzahl von Bits (z.B. 10) in jedem Byte in
dem implementierten Kommunikationsprotokoll. Der durch die Schaltung 560 verwendete
Wert von J kann programmierbar oder dynamisch auswählbar sein
(z.B. durch Verwendung einer Schaltung wie der in 9 gezeigten).
-
Die
seriell gewandelte Ausgabe des Parallel-Seriell-Wandlers 240 wird
an einen Eingang des PLC 550 angelegt. Die Ausgabe des
Parallel-Seriell-Wandlers 240 ist auch die Rückschleifeingabe
des PLC 300 in 5A. Die
andere Eingabe in den PLC 550 ist die Rückschleifverbindung von dem
Ausgang der Ansteuereinrichtung 52 (5A). Eine
Steuerschaltung 552 steuert den PLC 550, um einen
seiner Eingänge
zum Anlegen an die Ausgabesteuereinrichtung 56 auszuwählen. Demgemäß erlaubt
die vorstehend erwähnte
Rückschleifverbindung
ein Testen eines Eingabe/Ausgabe-Ansteuereinrichtungs-Paars 52/56.
-
Aus
der vorstehenden Diskussion der 12A und 12B wird ersichtlich, dass (wie die in den 5A bis 5C gezeigte
Empfängerschaltung)
diese Senderschaltung in der Lage ist, viele verschiedene Kommunikationsprotokolle
zu unterstützen.
Die verschiedenen durch die PLCs 510, 530, 540 und 550 ausgebildeten
Leitoptionen erlauben zahlreichen der Betriebskomponenten wie gewünscht, entweder
verwendet oder umgangen zu werden. Die Steuerung dieser PLCs kann
irgendeine der vorstehend für
andere PLCs beschriebenen Formen annehmen (z.B. kann irgendeine
der in den 6 bis 8 gezeigten
PLC-Steuerschaltungsoptionen
verwendet werden). Auch können
(ähnlich
dem, was vorstehend für
die 5A bis 5C beschrieben
ist) verschiedene Gesichtpunkte der Funktionen der Betriebskomponenten
programmierbar ausgewählt
oder dynamisch variabel sein. Beispielsweise kann eine Schaltung
wie die in 9 gezeigte verwendet werden,
um den Wert von J zu der Schaltung 560 zuzuführen, und
eine Schaltung wie die in 11 gezeigte kann
verwendet werden, um die Werte von verschiedenen Zustandsmaschinen-Parametern
zur Schaltung 530 zuzuführen.
Die Benutzerlogik 24 in dem PLD-Kern 20 kann verwendet
werden, um Funktionen auszubilden, wie im allgemeinen die der in
den 12A und 12B umgangenen
Betriebskomponenten in dem Fall, daß das implementierte Kommunikationsprotokoll
eine Abweichung in der Funktion größer als der Bereich der Abweichung,
zu dem die umgangene Betriebskomponente in der Lage ist, erfordert.
-
Die
hier gezeigte und beschriebene Schaltung besitzt viele Merkmale,
die ihre Verwendung zur Unterstützung
eines weiten Bereichs von HSS-Kommunikationsstandards und -protokollen
vereinfacht. Wie beschrieben wurde, besitzt die Schaltung Vier-Kanal-Baueinheiten (oder
Vierergruppen) zur HSS-Kommunikation. Der XAUI-Standard verwendet
einen Vierergruppe. Der InfiniBand-Standard kann entweder einen
Kanal, vier Kanäle
oder 12 Kanäle
verwenden und kann daher durch Verwendung eines Kanals, einer Vierergruppe oder
von drei Vierergruppen unterstützt
werden. Jeder Kanal enthält
sowohl einen Empfänger
als auch einen Sender, die zu einem Voll-Duplex-Betrieb fähig sind.
Der Empfänger
und Sender in einem Kanal können
auf derselben oder unterschiedlichen Frequenzen arbeiten. Beispielsweise
kann die Frequenzdifferenz 2:1 oder 4:1 sein. Die Schaltung unterstützt eine
CDR-Signalisierung über einen
weiten Bereich von Frequenzen (z.B. einen Bereich von ungefähr 622 Mbps
bis ungefähr
3,2 Gbps). Die CDR-Schaltung enthält bevorzugt einen Verschlussverlust
(„LOL")- und einen Lauflängenverletzungs(„RLV")-Schutz (siehe beispielsweise
die vorstehend erwähnte
Aung et al. Druckschrift für
veranschaulichende LOL- und RLV-Elemente).
Eine einzelne Phasenregelkreis- bzw. PLL-Schaltung (mit LOL-Logik)
kann eine gesamte Vierergruppe unterstützen.
-
Noch
andere vorteilhafte Merkmale der Schaltung sind die programmierbaren
Parallel-Seriell-Wandler-
und Seriell-Parallel-Wandler-Elemente. Beispielsweise können dieser
Elemente programmiert sein, durch geeignete Programmierung oder
anderenfalls Steuerung des Parameters J mit entweder 10 Bit Worten
(Bytes) oder 8 Bit Worten (Bytes) arbeiten. Ähnlich ist die Breite des Busses
(ausschließlich
Zustands/Steuersignalen) zwischen einem Kanal und dem PLD-Kern 20 programmierbar
(z.B. als 8, 10, 16 oder 20). Die Zeichenerkennungs- und -ausrichtungslogik
ist bevorzugt programmierbar (z.B. im Hinblick auf die zu erkennenden
Zeichen und/oder im Hinblick auf die bei der Erkennung und/oder
Ausrichtung verwendeten Zustandsmaschinen-Funktionen). Die 8B/10B-Codierer-
und Decodiererschaltungen, die Industriestandards (z.B. den IEEE 802.3z-Standard)
erfüllen,
sind bevorzugt enthalten.
-
Die
Schaltung enthält
bevorzugt programmierbares (oder anderenfalls steuerbares) Ausschalten
für jeden
Sender und Empfänger,
so dass jeder Sender und Empfänger
ausgeschaltet werden kann, wenn er nicht erforderlich ist. Eine
getrennte Rücksetzkontrolle
ist bevorzugt auch für
jeden Sender und Empfänger
ausgebildet.
-
Da
verschiedene differentielle Signalisierungs-Standards oder Protokolle
Spannungsschwingungen unterschiedlicher Größen verwendet können, können die
in der Schaltung gemäß dieser
Erfindung verwendeten Empfänger-Ansteuereinrichtungen 52 programmierbar
oder anderenfalls steuerbar sein, um irgendeinen von zahlreichen
verschiedenen minimalen Mengen von angelegten Spannungsunterschieden
als eine Signalverlust(„LOS")-Bedingung zu erfassen. 13 zeigt
beispielsweise, dass jede Empfänger-Ansteuereinrichtung 52 einen
LOS-Ausgang zur Ausgabe eines LOS-Signals, wenn der Unterschied
zwischen den RX-Eingangsspannungen
kleiner als ein durch die Ausgabe(n) des PLC 610 ausgewähltes Minimum
ist, enthalten kann. Dieser PLC wird durch das FCE 612 gesteuert,
um seine Ausgaben von entweder den FCEs 614 oder von einer
Quelle dynamischerer Signale, wie beispielsweise dem PLD-Kern 20,
auszuwählen.
Die verschiedenen möglichen
Ausgaben des PLC 610 zeigten der Ansteuereinrichtung 52 an,
welcher von zahlreichen möglichen
minimalen RX-Signal-Spannungsunterschieden
als eine LOS-Bedingung zu erfassen ist. Wenn der Spannungsunterschied
zwischen den RX-Eingangssignalen unter das angezeigte Minimum fällt, erzeugt
die Ansteuereinrichtung 52 ein LOS-Signal, um anzuzeigen,
dass kein gültiges
differentielles Eingangssignal vorhanden ist.
-
Ein
anderes Merkmal, das die Schaltung gemäß dieser Erfindung aufweisen
kann, ist durch 14 veranschaulicht. Wie in dieser
Fig. gezeigt, enthält
jeder Eingangsleiter zur repräsentativen
Empfänger-Ansteuereinrichtung 52 eine
schwache Last 620 zu VCC (logische 1) oder einen schwachen
Schalter 622 zu VSS (logische 0). Diese schwachen Last/Schalterverbindungen
helfen dabei, die Ansteuereinrichtung 52 daran zu hindern,
zufällig
und unnötig
zu schalten, wenn die Ansteuereinrichtung nicht für ein bedeutungsvolles
Signal verwendet wird. Dies spart Energie, die anderenfalls durch
derartiges unnötiges
Schalten der Ansteuereinrichtung 52 verbraucht würde.
-
Ein
Merkmal, das die Senderschaltung gemäß dieser Erfindung besitzen
kann, ist durch 15 veranschaulicht. Dieses Merkmal
ist ein programmierbarer oder anderenfalls auswählbarer Ausgangsspannungsoffset-
oder -schwingen („VOD"), der zusätzlich durch
Preemphasis bzw. Vorentzerrung begleitet sein kann, wenn gewünscht. Wie
in 15 gezeigt, empfängt die repräsentative
Ausgabe-Ansteuereinrichtung 56 eines oder mehrere Steuersignale
vom PLC 630. Dieser PLC wird durch das FCE 632 gesteuert,
um diese Steuersignale von entweder den FCEs 634 oder von
einer Quelle von dynamischeren Signalen, wie beispielsweise dem
PLD-Kern 20 auszuwählen.
Die somit an die Ansteuereinrichtung 56 angelegten Steuersignale
veranlassen ihn, mit irgendeinem der zwei oder mehr TX-Ausgangssignal-Spannungsunterschiede
zu arbeiten. Diese Steuersignale können die Ansteuereinrichtung 56 auch
veranlassen, mit einer gewünschten
Menge von anfänglicher
Spannungsdifferenz-Vorentzerrung zu arbeiten, wenn dies gewünscht ist.
-
Noch
ein anderes Merkmal, das die Schaltung gemäß dieser Erfindung besitzen
kann, ist ein veränderbarer
Eingangswiderstand zur besseren Anpassung des Widerstands auf der Übertragungsleitung,
von der die Schaltung eine Eingabe empfängt. Wie in 16 gezeigt,
ist ein derartiger veränderbarer
Eingangswiderstand durch einen veränderbaren Widerstand 640 dargestellt.
Der Widerstand des veränderbaren
Widerstands 640 ist durch einer oder mehrere Ausgangssignale
vom PLC 642 gesteuert. Dieser PLC ist durch das FCE 644 gesteuert,
um entweder die Ausgabe(n) der FCE(s) 646 oder dynamischere
Widerstandsauswahlsignale (z.B. von dem PLD-Kern) auszugeben.
-
Die
Schaltung gemäß dieser
Erfindung kann auch die Verwendung eines externen Widerstands zur Kalibrierung
erlauben. Und die Schaltung gemäß der Erfindung
kann heiße
Einfüge/Entfernungs-Schutzlogik aufweisen.
-
17 veranschaulicht
eine PLD 10 gemäß dieser
Erfindung in einem Datenverarbeitungssystem 1002. Das Datenverarbeitungssystem 1002 kann
eine oder mehrere der folgenden Komponenten enthalten: einen Prozessor 1004;
einen Speicher 1006; eine I/O-Schaltung 1008;
und Peripherieeinrichtungen 1010. Diese Komponenten sind
miteinander durch einen Systembus oder andere Zwischenverbindungen 1020 verbunden
und auf einer Schaltungsplatte 1030 besetzt, die in einem
Endnutzersystem 1040 enthalten ist. Irgendeine der Zwischenverbindungen
zwischen der PLD 10 und irgendwelchen anderen Elementen
können
unter Verwendung der vorstehend beschriebenen CDR- oder LVDS-Signalisierung
hergestellt werden.
-
Das
System 1002 kann in einer breiten Vielzahl von Anwendungen
verwendet werden, wie beispielsweise bei Computervernetzung, Datenvernetzung,
Geräteausstattung,
Videoverarbeitung, digitaler Signalverarbeitung oder anderen Anwendungen,
bei denen der Vorteil einer Verwendung programmierbarer oder wiederprogrammierbarer
Logik wünschenswert
ist. Die PLD 10 kann verwendet werden, um eine Vielzahl
von verschiedenen Logikfunktionen durchzuführen. Beispielsweise kann die
PLD 10 als ein Prozessor oder Controller konfiguriert sein,
der zusammen mit dem Prozessor 1004 arbeitet. Die PLD 10 kann
auch als eine Entscheidungseinrichtung zum Entscheidungszugriff
auf eine gemeinsam genutzte Ressource in dem System 1002 verwendet
werden. In noch einem anderen Beispiel kann die PLD 10 als
eine Schnittstelle zwischen dem Prozessor 1004 und einer
der anderen Komponenten in dem System 1002 konfiguriert
sein. Es sollte beachtet werden, daß das System 1002 nur
beispielhaft ist und daß der
richtige Schutzumfang der Erfindung durch die folgenden Patentansprüche festgelegt
sein soll.
-
Es
können
verschiedene Technologien verwendet werden, um PLDs mit den Merkmalen
dieser Erfindung zu implementieren, ebenso wie die verschiedenen
Komponenten dieser Einrichtungen (z.B. die vorstehend beschriebenen
PLCs und programmierbaren Funktionssteuerelemente („FCEs"), die die PLCs steuern). Beispielsweise
kann jeder PLC ein relativ einfache programmierbarer Verbinder sein,
wie beispielsweise ein Schalter oder eine Vielzahl von Schaltern
zum Verbinden irgendeines der zahlreichen Eingänge mit einem Ausgang. Alternativ
kann jeder PLC ein etwas komplexeres Element sein, das in der Lage
ist, Logik durchzuführen
(z.B. durch logisches Kombinieren zahlreicher seiner Eingänge) ebenso
wie zum Herstellen einer Verbindung. Im letzteren Fall kann beispielsweise
jeder PLC eine Produkt-Term-Logik sein, die Funktionen wie beispielsweise
UND bzw. AND, NICHT-UND bzw. NAND, ODER bzw. OR oder NICHT-ODER
bzw. NOR implementieren kann. Beispiele für Komponenten, die zur Implementierung
von PLCs geeignet sind, sind EPROMs, EEPROMs, Durchlasstransistoren, Übertragungsgatter,
Gegensicherungen bzw. Antifuses, La sersicherungen, Metalloptionalverbindungen,
usw.. Die PLCs und andere Schaltungskomponenten können durch verschiedene,
programmierbare Funktionssteuerelemente („FCEs") gesteuert werden. (Mit bestimmten
Implementierungen (z.B. Sicherungen und Metalloptionalverbindungen)
sind separate FCE-Einrichtungen nicht erforderlich.) FCEs können auch
in irgendeinem zahlreicher verschiedener Wege implementiert werden.
Beispielsweise können
FCEs SRAMs, DRAMs, Ersteingangs-Erstausgangs(„FIFO")-Speicher, EPROMs, EEPROMs, Funktionssteuerregister
(z.B. wie im Wahlstrom US-Patent 3,473,160), ferroelektrische Speicher,
Sicherungen, Gegensicherungen bzw. Antifuses oder dergleichen sein.
Aus den verschiedenen vorstehend erwähnten Beispielen ist ersichtlich,
daß diese
Erfindung sowohl auf nur einmal programmierbare als auch auf wiederprogrammierbare
Einrichtungen anwendbar ist.
-
Es
ist verständlich,
dass das Vorstehende nur veranschaulichend für die Prinzipien der Erfindung
ist und dass verschiedene Modifikationen durch den Fachmann erfolgen
können.
Beispielsweise ist die Reihenfolge der vorstehend gezeigten und
beschriebenen verschiedenen Betriebskomponenten zumindest in einigen Hinsichten
nur veranschaulichend. Somit kann die Reihenfolge von zumindest
einigen dieser Elemente gegenüber
der gezeigten Reihenfolge verändert
werden, wenn dies gewünscht
ist.