DE60215573T2 - Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle - Google Patents

Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle Download PDF

Info

Publication number
DE60215573T2
DE60215573T2 DE60215573T DE60215573T DE60215573T2 DE 60215573 T2 DE60215573 T2 DE 60215573T2 DE 60215573 T DE60215573 T DE 60215573T DE 60215573 T DE60215573 T DE 60215573T DE 60215573 T2 DE60215573 T2 DE 60215573T2
Authority
DE
Germany
Prior art keywords
circuit
block
character
serial
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60215573T
Other languages
English (en)
Other versions
DE60215573D1 (de
Inventor
Chong H. San Jose Lee
Reza San Jose Asayesh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of DE60215573D1 publication Critical patent/DE60215573D1/de
Application granted granted Critical
Publication of DE60215573T2 publication Critical patent/DE60215573T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17732Macroblocks

Description

  • 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.

Claims (74)

  1. Programmierbare integrierte Logikschaltungseinrichtung mit: – einer programmierbaren Logikschaltung; und – einer seriellen Hochgeschwindigkeitsschnittstellenschaltung mit einer Mehrzahl von funktionalen Teilschaltungen, von denen jede zumindest teilweise fest verdrahtet ist, um eine jeweilige Funktion durchzuführen, die notwendig sein kann, um eine serielle Hochgeschwindigkeitsschnittstelle auszubilden, dadurch gekennzeichnet, daß eine programmierbare steuerbare Routingschaltung ausgebildet ist, die geeignet ist, zumindest einer der funktionalen Teilschaltungen ein selektives by-passing zu erlauben, wobei die zumindest eine der funktionalen Teilschaltungen aus der Gruppe bestehend aus einer Mustererfassungsschaltung, einer 10bit-zu-8bit Decoderschaltung, einer 8bit-zu-10bit Codiererschaltung und einer Kanalausrichtungsschaltung ausgewählt ist.
  2. Einrichtung nach Anspruch 1, wobei die Hochgeschwindigkeitsschnittstellenschaltung eine Empfängerschaltung aufweist.
  3. Einrichtung nach Anspruch 1, wobei die Hochgeschwindigkeitsschnittstellenschaltung eine Senderschaltung aufweist.
  4. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Taktdatenwiederherstellungsschaltung aufweisen.
  5. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Seriell-Parallel-Wandler-Schaltung aufweisen.
  6. Einrichtung nach Anspruch 1, wobei die zumindest eine der funktionalen Teilschaltungen eine Mustererfassungsschaltung aufweist.
  7. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Zustandsmaschinenschaltung aufweisen und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Zustandsmaschinenschaltung ein ausgewähltes by-passing zu erlauben.
  8. Einrichtung nach Anspruch 1, wobei die zumindest eine der funktionalen Teilschaltungen eine 10bit-zu-8bit Decoderschaltung umfaßt.
  9. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Frequenzabgleichschaltung aufweisen und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Frequenzabgleichschaltung ein selektives by-passing zu erlauben.
  10. Einrichtung nach Anspruch 1, wobei die zumindest eine der funktionalen Teilschaltungen eine Kanalausrichtungsschaltung aufweist.
  11. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Byte-Seriell-Parallel-Wandler-Schaltung aufweisen und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Byte-Seriell-Parallel-Wandler-Schaltung ein selektives by-passing zu erlauben.
  12. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Byte-Seriell-Parallel-Wandler-Schaltung aufweist und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Byte-Seriell-Parallel-Wandler-Schaltung ein selektives by-passing zu erlauben.
  13. Einrichtung nach Anspruch 1, wobei die zumindest eine der funktionalen Teilschaltungen eine 8bit-zu-10bit Codiererschaltung aufweist.
  14. Einrichtung nach Anspruch 1, wobei die funktionalen Schaltungen eine Parallel-Seriell-Wandler-Schaltung aufweisen.
  15. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Zeichenlöschschaltung aufweisen und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Zeichenlöschschaltung ein ausgewähltes by-passing zu erlauben.
  16. Einrichtung nach Anspruch 1, wobei die funktionalen Teilschaltungen eine Zeicheneinfügeschaltung aufweisen und die programmierbar steuerbare Routingschaltung zusätzlich geeignet ist, der Zeicheneinfügeschaltung ein ausgewähltes by-passing zu erlauben.
  17. Einrichtung nach Anspruch 1, wobei die zumindest eine funktionale Schaltung zumindest teilweise programmierbar steuerbar ist, um eine durch diese Funktionsteilschaltung durchgeführte Funktion zu verändern.
  18. Einrichtung nach Anspruch 1, wobei ein durch die Routingschaltung auswählbares Routing ein Anlegen eines Signals enthält, das eine der funktionalen Teilschaltungen zu einer anderen der funktionalen Teilschaltungen umgeht.
  19. Einrichtung nach Anspruch 1, wobei ein durch den Routingschaltung auswählbares Routing ein Anlegen eines Signals enthält, das eine funktionale Teilschaltung zur programmierbaren Logikschaltung umgeht.
  20. Digitales Verarbeitungssystem mit: – einer Verarbeitungsschaltung; – einem mit der Verarbeitungsschaltung verbundenen Speicher; und – einer Einrichtung nach Anspruch 1, die mit der Verarbeitungsschaltung und dem Speicher verbunden ist.
  21. Gedruckte Schaltung, auf der eine Einrichtung nach Anspruch 1 befestigt ist.
  22. Gedruckte Schaltung nach Anspruch 21, weiterhin mit: – einem auf der gedruckten Schaltung befestigten und mit der Einrichtung verbundenen Speicher.
  23. Gedruckte Schaltung nach Anspruch 21, weiterhin mit: – einer auf der gedruckten Schaltung befestigten und mit der Einrichtung verbundenen Verarbeitungsschaltung.
  24. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung einen einer Mehrzahl von Kanälen der seriellen Hochgeschwindigkeitsschnittstellenschaltung umfaßt, von denen jeder geeignet ist, ein jeweiliges einer Mehrzahl von seriellen Hochgeschwindigkeitsdatensignalen zu empfangen und das Signal in eine Mehrzahl von parallelen Datensignalen umzuwandeln, die zum Anlegen an die programmierbare Logikschal tung geeignet sind, und wobei jeder eine programmierbar steuerbare Routingschaltung enthält, die geeignet ist, auszuwählen, welche einer Mehrzahl von in der seriellen Hochgeschwindigkeitsschnittstellenschaltung verfügbaren Funktionen auf das serielle Hochgeschwindigkeitsdatensignal durchgeführt wird, um es in eine Mehrzahl von parallelen Datensignalen umzuwandeln, wobei zumindest eine der Funktionen aus der Gruppe bestehend aus einer Mustererfassung, einer 10bit-zu-8bit Decodierung, einer Kanalausrichtung und einer 8bit-zu-10bit Codierung ausgewählt ist.
  25. Einrichtung nach Anspruch 24, wobei die in der seriellen Hochgeschwindigkeitsschnittstellenschaltung verfügbaren Funktionen eine Taktdatenwiederherstellung, eine Entserialisierung, eine Mustererfassung, eine 10bit-zu-8bit Decodierung, eine Ratenabstimmung und eine Kanalanpassung enthält.
  26. Einrichtung nach Anspruch 25, wobei die verfügbaren Funktionen in der seriellen Hochgeschwindigkeitsschnittstellenschaltung weiterhin eine Byte-Entserialisierung enthalten.
  27. Einrichtung nach Anspruch 25, wobei die verfügbaren Funktionen in der seriellen Hochgeschwindigkeitsschnittstellenschaltung weiterhin ein Zeichenlöschen und ein Zeicheneinfügen enthalten.
  28. Einrichtung nach Anspruch 24, wobei jeder der Kanäle weiter geeignet ist, ein jeweiliges von einer Mehrzahl von weiteren parallelen Datensignalen von der programmierbaren Logikschaltung zu empfangen und diese Signale in ein serielles Hochgeschwindigkeitsdatenausgangssignalumzuwandeln.
  29. Einrichtung nach Anspruch 28, wobei die verfügbaren Funktionen in der seriellen Hochgeschwindigkeitsschnittstellenschaltung weiter eine 8bit-zu-10bit Codierung und eine Serialisierung enthalten.
  30. Einrichtung nach Anspruch 29, wobei die verfügbaren Funktionen in der seriellen Hochgeschwindigkeitsschnittstellenschaltung weiter eine Byte-Serialisierung enthalten.
  31. Einrichtung nach Anspruch 6, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung ein serielles Dateneingangssignal in eine Mehrzahl paralleler Signale umwandelt, wobei die Mustererfassungsschaltung Byte-Grenzen in den parallelen Signalen erfaßt und wobei die Mustererfassungsschaltung im Hinblick darauf programmierbar ist, welches Muster erfaßt wird.
  32. Einrichtung nach Anspruch 31, weiterhin mit: einer Schaltung zum Anlegen von Informationen von den parallelen Signalen entsprechend den Byte-Grenzen an die programmierbare Logikschaltung.
  33. Einrichtung nach Anspruch 32, wobei die Schaltung zum Anlegen die Informationen zwischen zwei benachbarten Byte-Grenzen an die programmierbare Logikschaltung parallel anlegt.
  34. Einrichtung nach Anspruch 31, weiterhin mit: einer Schaltung zum ausgewählten Anlegen von Informationen von den parallelen Signalen an die programmierbare Logikschaltung ohne Berücksichtigung der Byte-Grenzen.
  35. Einrichtung nach Anspruch 34, wobei die Schaltung zum ausgewählten Anlegen die Informationen an die programmierbare Logikschaltung parallel anlegt.
  36. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung zumindest Teil einer einer Mehrzahl von seriellen Schnittstellenschaltungen ist, von denen jede ein jeweiliges einer Mehrzahl von seriellen Dateneingangssignalen empfängt, und eine erste der seriellen Schnittstellenschaltungen eine Kanalausrichtungsschaltung zur Synchronisierung von Daten in dieser seriellen Datenschnittstellenschaltung mit Daten in einer zweiten der seriellen Schnittstellenschaltungen enthält.
  37. Einrichtung nach Anspruch 36, weiterhin mit: einer Schaltung zum Anlegen von synchronisierten Daten von den ersten und zweiten seriellen Schnittstellenschaltungen an die programmierbare Logikschaltung.
  38. Einrichtung nach Anspruch 36, wobei die erste serielle Schnittstellenschaltung eine Entserialisierungsschaltung zum Umwandeln des durch die serielle Schnittstellenschaltung empfangenen seriellen Dateneingangssignals in eine Mehrzahl von parallelen Signalen, auf die die Kanalausrichtungsschaltung anwendet, aufweist.
  39. Einrichtung nach Anspruch 36, wobei die erste serielle Schnittstellenschaltung weiterhin eine Schaltung zum ausgewählten Anlegen von Daten in der ersten seriellen Schnittstellenschaltung an die programmierbare Logikschaltung ohne Berücksichtigung einer Synchronität mit Daten in der zweiten seriellen Schnittstellenschaltung aufweist.
  40. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung eine Schaltung zum Umwandeln eines seriellen Dateneingangssignals in eine Mehrzahl paralleler Signale enthält und einer Zehn-Bit-zu-Acht-Bit Decoderschaltung zur Umwandlung von Informationen von Zehn der parallelen Signale in acht weitere parallele Signale aufweist.
  41. Einrichtung nach Anspruch 40, weiterhin mit: einer Schaltung zum Anlegen von Informationen von den acht weiteren parallelen Signalen an die programmierbare Logikschaltung.
  42. Einrichtung nach Anspruch 40, weiterhin mit: einer Schaltung zum ausgewählten Anlegen von Informationen von den parallelen Signalen an die programmierbare Logikschaltung ohne Berücksichtigung der Funktion der Zehn-Bit-zu-Acht-Bit Decoderschaltung.
  43. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung eine Schaltung zum Umwandeln eines seriellen Dateneingangssignals in eine Mehrzahl von parallelen Signalen, deren gleichzeitige Werte in aufeinanderfolgenden Eingabezeichentaktintervallen aufeinanderfolgende Eingabezeichen darstellen, und einer Ratenabstimmungsschaltung zur Anpassung eines möglichen Unterschieds zwischen einer Eingabezeichentaktrate und einer Zeichentaktrate der programmierbaren Logikschaltung durch ausgewähltes Löschen oder Einfügen von Eingabezeichen.
  44. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung eine Schaltung zur Umwandlung eines seriellen Dateneingangssignals in eine Mehrzahl von parallelen Signalen enthält, und eine Mustererfassungsschaltung zur Erfassung von Byte-Grenzen in den parallelen Signalen enthält, wobei die Mustererfassungsschaltung auf die programmierbare Logikschaltung im Hinblick darauf anspricht, welches Muster erfaßt wird,
  45. Einrichtung nach Anspruch 44, weiterhin mit: einer Schaltung zum Anlegen von Informationen von den parallelen Signalen an die programmierbare Logikschaltung entsprechend den Byte-Grenzen.
  46. Einrichtung nach Anspruch 45, wobei die Schaltung zum Anlegen die Informationen zwischen zwei benachbarten Byte-Grenzen an die programmierbare Logikschaltung parallel anlegt.
  47. Einrichtung nach Anspruch 44, weiterhin mit: einer Schaltung zum ausgewählten Anlegen von Informationen von den parallelen Signalen an die programmierbare Logikschaltung ohne Berücksichtigung der Byte-Grenzen.
  48. Einrichtung nach Anspruch 47, wobei die Schaltung zum ausgewählten Anlegen die Informationen an die programmierbare Logikschaltung parallel anlegt.
  49. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung einen Taktdatenwiederherstellungsblock, der mit einem Zeichenanpassungsblock verbunden ist, der wiederum mit einem Decoderblock verbunden ist, der wiederum mit einem Ratenabstimmungsblock verbunden ist, der wiederum mit einem Kanalausrichtungsblock verbunden ist, aufweist, wobei jeder Block nach dem Taktdatenwiederherstellungsblock ausgewählt umgangen werden kann.
  50. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Zeichenanpassungsblock, den Decoderblock und den Ratenabstimmungsblock durchquert, aber den Kanalausrichtungsblock umgeht.
  51. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Zeichenanpassungsblock, den Decoderblock und den Kanalausrichtungsblock durchquert, aber den Ratenabstimmungsblock umgeht.
  52. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiedergabeblock, den Zeichenanpassungsblock, den Ratenabstimmungsblock und den Kanalausrichtungsblock durchquert, aber den Decoderblock umgeht
  53. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Ratenabstimmungsblock, den Kanalausrichtungsblock passiert, aber den Zeichenabstimmungsblock und den Decoderblock umgeht.
  54. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Zeichenanpassungsblock und den Decoderblock durchquert, aber den Ratenabstimmungsblock und den Kanalausrichtungsblock umgeht.
  55. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Zeichenanpassungsblock und den Ratenabstimmungsblock durchquert, aber den Decoderblock und den Kanalausrichtungsblock umgeht.
  56. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock und den Ratenabstimmungsblock durchquert, aber den Zeichenanpassungsblock, den Decoderblock und den Kanalausrichtungsblock umgeht.
  57. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock, den Zeichenanpassungsblock und den Kanalausrichtungsblock durchquert, aber den Decoderblock und den Ratenabstimmungsblock umgeht.
  58. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock und den Kanalausrichtungsblock durchquert, aber den Zeichenanpassungsblock, den Decoderblock und den Ratenabstimmungsblock umgeht.
  59. Einrichtung nach Anspruch 49, wobei ein hereinkommendes Signal den Taktdatenwiederherstellungsblock durchquert, aber den Zeichenanpassungsblock, den Decoderblock, den Ratenabstimmungsblock und den Kanalausrichtungsblock umgeht.
  60. Einrichtung nach Anspruch 1, wobei die serielle Hochgeschwindigkeitsschnittstellenschaltung zumindest ein Teil einer Sender/Empfängerschaltung mit einem Zeichenanpas sungsblock, einem Decoderblock, einem Ratenabstimmungsblock und einem Kanalausrichtungsblock ist, wobei die Sender/Empfängerschaltung programmiert sein kann, ein hereinkommendes Signal zu keinem der Blöcke, zu allen Blöcken oder irgendeiner Teilmenge der Blöcke durchzulassen, vorausgesetzt, daß, wenn das Signal den Decoderblock passiert, es auch den Zeichenanpassungsblock passiert.
  61. Einrichtung nach Anspruch 60, wobei die Blöcke, die das Signal passiert oder nicht passiert, abhängig von einer gewünschten Funktion der programmierbaren Logikeinrichtung ausgewählt werden.
  62. Einrichtung nach Anspruch 61, wobei der Ratenabstimmungsblock eine von der anderen Schaltung auf der programmierbaren Schaltung verschiedene Taktrate besitzen kann.
  63. Einrichtung nach Anspruch 61, wobei der Kanalausrichtungsblock aktiviert ist, wenn das hereinkommende Signal eines einer Mehrzahl von hereinkommenden Signalen ist, die voneinander verschiedene Taktphasen besitzen können.
  64. Einrichtung nach Anspruch 61, wobei der Zeichenanpassungsblock aktiviert ist, wenn eine Notwendigkeit besteht, aufeinander folgende serielle Bits eines Zeichens in dem hereinkommenden Signal an bestimmte, jeweilige einer Mehrzahl von parallelen Verbindungen mit anderer Schaltung auf der programmierbaren Logikeinrichtung anzupassen.
  65. Einrichtung nach Anspruch 61, wobei der Decoderblock aktiviert ist, wenn es eine Notwendigkeit gibt, ein Zeichen in dem hereinkommenden Signal von einem Code für dieses Zeichen in einen anderen Code für dieses Zeichen umzuwandeln.
  66. Einrichtung nach Anspruch 62, wobei der Zeichenanpassungsblock zusätzlich aktiviert ist, wenn das hereinkommende Signal eines einer Mehrzahl von hereinkommenden Signalen ist, die voneinander verschiedene Taktphasen besitzen können.
  67. Einrichtung nach Anspruch 62, wobei der Zeichenanpassungsblock zusätzlich aktiviert ist, wenn eine Notwendigkeit bestehen kann, aufeinander folgende serielle Bits eines Zeichens in dem hereinkommenden Signal an bestimmte, jeweilige von einer Mehrzahl paralleler Verbindungen zu anderer Schaltung auf der programmierbaren Logikeinrichtung anzupassen.
  68. Einrichtung nach Anspruch 62, wobei der Decoderblock zusätzlich aktiviert ist, wenn eine Notwendigkeit besteht, ein Zeichen in dem hereinkommenden Signal von einem Code für dieses Zeichen in einen anderen Code für dieses Zeichen umzuwandeln.
  69. Einrichtung nach Anspruch 63, wobei der Zeichenanpassungsblock zusätzlich aktiviert ist, wenn eine Notwendigkeit geben kann, aufeinander folgende serielle Bits eines Zeichens in dem hereinkommenden Signal an bestimmte, jeweilige einer Mehrzahl paralleler Verbindungen zu anderer Schaltung auf der programmierbaren Logikeinrichtung anzupassen.
  70. Einrichtung nach Anspruch 63, wobei der Decoderblock zusätzlich aktiviert ist, wenn eine Notwendigkeit besteht, ein Zeichen in dem hereinkommenden Signal von einem Code für dieses Zeichen in einen anderen Code für dieses Zeichen umzuwandeln.
  71. Einrichtung nach Anspruch 64, wobei der Decoderblock zusätzlich aktiviert ist, wenn es eine Notwendigkeit gibt, ein Zeichen in dem hereinkommenden Signal von einem Code für dieses Zeichen in einen anderen Code für dieses Zeichen umzuwandeln.
  72. Einrichtung nach Anspruch 71, wobei der Zeichenanpassungsblock zusätzlich aktiviert ist, wenn das hereinkommende Signal eines einer Mehrzahl von hereinkommenden Signalen ist, die voneinander verschiedene Taktphasen haben können.
  73. Einrichtung nach Anspruch 71, wobei der Ratenabstimmungsblock zusätzlich aktiviert ist, wenn das hereinkommende Signal eine Taktrate verschiedene von anderer Schaltung auf der programmierbaren Logikeinrichtung haben kann.
  74. Programmierbare Logikeinrichtung nach Anspruch 67, wobei der Kanalausrichtungsblock zusätzlich aktiviert ist, wenn das hereinkommende Signal eines einer Mehrzahl von hereinkommenden Signalen ist, die voneinander verschiedene Taktphasen haben können.
DE60215573T 2001-03-19 2002-03-15 Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle Expired - Lifetime DE60215573T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US27715001P 2001-03-19 2001-03-19
US277150P 2001-03-19
US93785 2002-03-06
US10/093,785 US6650140B2 (en) 2001-03-19 2002-03-06 Programmable logic device with high speed serial interface circuitry

Publications (2)

Publication Number Publication Date
DE60215573D1 DE60215573D1 (de) 2006-12-07
DE60215573T2 true DE60215573T2 (de) 2007-06-21

Family

ID=26787907

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60215573T Expired - Lifetime DE60215573T2 (de) 2001-03-19 2002-03-15 Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle

Country Status (4)

Country Link
US (4) US6650140B2 (de)
EP (1) EP1248372B1 (de)
JP (1) JP3657918B2 (de)
DE (1) DE60215573T2 (de)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227918B2 (en) 2000-03-14 2007-06-05 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
US7333570B2 (en) 2000-03-14 2008-02-19 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
WO2002059779A1 (en) * 2001-01-25 2002-08-01 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for optimised indexing records of static data with different lenghts
GB2372398B (en) * 2001-02-14 2003-04-23 3Com Corp Automatic detector of media interface protocol type
US6650140B2 (en) 2001-03-19 2003-11-18 Altera Corporation Programmable logic device with high speed serial interface circuitry
US6904019B2 (en) * 2001-04-13 2005-06-07 Agilent Technologies, Inc. Identifying a pattern in a data stream
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US7020728B1 (en) * 2001-07-13 2006-03-28 Cypress Semiconductor Corp. Programmable serial interface
US6750675B2 (en) * 2001-09-17 2004-06-15 Altera Corporation Programmable logic devices with multi-standard byte synchronization and channel alignment for communication
US6999543B1 (en) 2001-12-03 2006-02-14 Lattice Semiconductor Corporation Clock data recovery deserializer with programmable SYNC detect logic
US6650141B2 (en) 2001-12-14 2003-11-18 Lattice Semiconductor Corporation High speed interface for a programmable interconnect circuit
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US7406102B2 (en) * 2002-07-03 2008-07-29 Freescale Semiconductor, Inc. Multi-mode method and apparatus for performing digital modulation and demodulation
WO2004008719A2 (en) * 2002-07-12 2004-01-22 Sca Technica, Inc Self-booting software defined radio module
US7099426B1 (en) * 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
US7180972B1 (en) 2002-10-16 2007-02-20 Altera Corporation Clock signal circuitry for multi-protocol high-speed serial interface circuitry
US7036046B2 (en) * 2002-11-14 2006-04-25 Altera Corporation PLD debugging hub
US6854044B1 (en) 2002-12-10 2005-02-08 Altera Corporation Byte alignment circuitry
US6831480B1 (en) 2003-01-07 2004-12-14 Altera Corporation Programmable logic device multispeed I/O circuitry
US7307446B1 (en) 2003-01-07 2007-12-11 Altera Corporation Integrated circuit output driver circuitry with programmable preemphasis
US6940302B1 (en) 2003-01-07 2005-09-06 Altera Corporation Integrated circuit output driver circuitry with programmable preemphasis
US7869553B1 (en) 2003-01-21 2011-01-11 Altera Corporation Digital phase locked loop circuitry and methods
US7138837B2 (en) * 2003-01-21 2006-11-21 Altera Corporation Digital phase locked loop circuitry and methods
US7606157B2 (en) * 2003-01-23 2009-10-20 Broadcom Corporation Apparatus and method for communicating arbitrarily encoded data over a 1-gigabit ethernet
US7076751B1 (en) 2003-01-24 2006-07-11 Altera Corporation Chip debugging using incremental recompilation
US7062586B2 (en) * 2003-04-21 2006-06-13 Xilinx, Inc. Method and apparatus for communication within a programmable logic device using serial transceivers
US7522641B2 (en) * 2003-04-25 2009-04-21 Farrokh Mohamadi Ten gigabit copper physical layer system
US7301996B1 (en) * 2003-05-28 2007-11-27 Lattice Semiconductor Corporation Skew cancellation for source synchronous clock and data signals
US7046174B1 (en) 2003-06-03 2006-05-16 Altera Corporation Byte alignment for serial data receiver
US6724328B1 (en) 2003-06-03 2004-04-20 Altera Corporation Byte alignment for serial data receiver
US7362833B1 (en) 2003-06-27 2008-04-22 Altera Corporation Dynamic special character selection for use in byte alignment circuitry
US6842034B1 (en) 2003-07-01 2005-01-11 Altera Corporation Selectable dynamic reconfiguration of programmable embedded IP
US8576820B2 (en) * 2003-07-03 2013-11-05 Broadcom Corporation Standby mode for use in a device having a multiple channel physical layer
US7028270B1 (en) 2003-07-15 2006-04-11 Altera Corporation Apparatus and method for reset distribution
US7539900B1 (en) 2003-07-29 2009-05-26 Altera Corporation Embedded microprocessor for integrated circuit testing and debugging
US7272677B1 (en) 2003-08-08 2007-09-18 Altera Corporation Multi-channel synchronization for programmable logic device serial interface
US7421014B2 (en) * 2003-09-11 2008-09-02 Xilinx, Inc. Channel bonding of a plurality of multi-gigabit transceivers
US6980023B1 (en) * 2003-09-22 2005-12-27 Altera Corporation Dynamically adjustable signal detector
US7352835B1 (en) 2003-09-22 2008-04-01 Altera Corporation Clock data recovery circuitry with dynamic support for changing data rates and a dynamically adjustable PPM detector
US7131024B1 (en) 2003-09-24 2006-10-31 Altera Corporation Multiple transmit data rates in programmable logic device serial interface
US6888376B1 (en) * 2003-09-24 2005-05-03 Altera Corporation Multiple data rates in programmable logic device serial interface
US7149914B1 (en) 2003-09-26 2006-12-12 Altera Corporation Clock data recovery circuitry and phase locked loop circuitry with dynamically adjustable bandwidths
US7239849B2 (en) * 2003-11-04 2007-07-03 Altera Corporation Adaptive communication methods and apparatus
US6956407B2 (en) * 2003-11-04 2005-10-18 Altera Corporation Pre-emphasis circuitry and methods
US7340021B1 (en) 2003-11-13 2008-03-04 Altera Corporation Dynamic phase alignment and clock recovery circuitry
US7443922B1 (en) 2003-11-14 2008-10-28 Altera Corporation Circuitry for padded communication protocols
US7295641B1 (en) 2003-11-26 2007-11-13 Altera Corporation Phase alignment circuitry and methods
US7940877B1 (en) 2003-11-26 2011-05-10 Altera Corporation Signal edge detection circuitry and methods
US7486752B1 (en) 2003-12-17 2009-02-03 Altera Corporation Alignment of clock signal with data signal
US6970020B1 (en) 2003-12-17 2005-11-29 Altera Corporation Half-rate linear quardrature phase detector for clock recovery
US7143312B1 (en) 2003-12-17 2006-11-28 Altera Corporation Alignment of recovered clock with data signal
US7003423B1 (en) 2003-12-18 2006-02-21 Altera Corporation Programmable logic resource with data transfer synchronization
US7751442B2 (en) * 2003-12-19 2010-07-06 Intel Corporation Serial ethernet device-to-device interconnection
US7196557B1 (en) 2004-01-13 2007-03-27 Altera Corporation Multitap fractional baud period pre-emphasis for data transmission
US20050160327A1 (en) * 2004-01-13 2005-07-21 Altera Corporation Input stage threshold adjustment for high speed data communications
US7773668B1 (en) 2004-01-21 2010-08-10 Altera Corporation Adaptive equalization methods and apparatus for programmable logic devices
US7206967B1 (en) 2004-02-09 2007-04-17 Altera Corporation Chip debugging using incremental recompilation and register insertion
US7587537B1 (en) * 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US7509562B1 (en) 2004-04-09 2009-03-24 Altera Corporation Maintaining data integrity for extended drop outs across high-speed serial links
US7440532B1 (en) 2004-04-21 2008-10-21 Altera Corporation Bit slip circuitry for serial data signals
US7453968B2 (en) * 2004-05-18 2008-11-18 Altera Corporation Dynamic phase alignment methods and apparatus
US7492816B1 (en) * 2004-05-25 2009-02-17 Altera Corporation Adaptive equalization methods and apparatus
TW200620938A (en) 2004-09-07 2006-06-16 Nec Electronics Corp Synchronization device and semiconductor device
US7236018B1 (en) 2004-09-08 2007-06-26 Altera Corporation Programmable low-voltage differential signaling output driver
US7162553B1 (en) * 2004-10-01 2007-01-09 Altera Corporation Correlating high-speed serial interface data and FIFO status signals in programmable logic devices
US7598779B1 (en) 2004-10-08 2009-10-06 Altera Corporation Dual-mode LVDS/CML transmitter methods and apparatus
US7240133B1 (en) 2004-10-12 2007-07-03 Altera Corporation Reduced-area architecture for padded-protocol interface
US7064685B1 (en) 2004-10-20 2006-06-20 Altera Corporation Data converter with reduced component count for padded-protocol interface
US7151470B1 (en) 2004-10-20 2006-12-19 Altera Corporation Data converter with multiple conversions for padded-protocol interface
US7183797B2 (en) * 2004-10-29 2007-02-27 Altera Corporation Next generation 8B10B architecture
US7499516B2 (en) * 2004-11-19 2009-03-03 Agere Systems, Inc. Methods and apparatus for interface buffer management and clock compensation in data transfers
US7218141B2 (en) * 2004-12-07 2007-05-15 Altera Corporation Techniques for implementing hardwired decoders in differential input circuits
US7434192B2 (en) * 2004-12-13 2008-10-07 Altera Corporation Techniques for optimizing design of a hard intellectual property block for data transmission
US7112993B2 (en) * 2004-12-23 2006-09-26 Actel Corporation Non-volatile memory configuration scheme for volatile-memory-based programmable circuits in an FPGA
US7680232B2 (en) * 2005-01-21 2010-03-16 Altera Corporation Method and apparatus for multi-mode clock data recovery
US7839966B1 (en) * 2005-02-01 2010-11-23 Altera Corporation Asynchronous data sampling using CDR receivers in lock-to-reference mode
US7242221B1 (en) 2005-02-11 2007-07-10 Altera Corporation Selectable inversion of differential input and/or output pins in programmable logic devices
US8000954B2 (en) 2005-03-16 2011-08-16 Gaterocket, Inc. FPGA emulation system
US7538578B2 (en) 2005-04-18 2009-05-26 Altera Corporation Multiple data rates in programmable logic device serial interface
US7167410B2 (en) * 2005-04-26 2007-01-23 Magnalynx Memory system and memory device having a serial interface
US7365570B2 (en) * 2005-05-25 2008-04-29 Micron Technology, Inc. Pseudo-differential output driver with high immunity to noise and jitter
JP4649271B2 (ja) * 2005-06-08 2011-03-09 キヤノン株式会社 制御装置
US7698482B2 (en) * 2005-07-08 2010-04-13 Altera Corporation Multiple data rates in integrated circuit device serial interface
US7599396B2 (en) * 2005-07-11 2009-10-06 Magnalynx, Inc. Method of encoding and synchronizing a serial interface
US20070013411A1 (en) * 2005-07-14 2007-01-18 Kazi Asaduzzaman Apparatus and methods for programmable slew rate control in transmitter circuits
US7292070B1 (en) 2005-07-14 2007-11-06 Altera Corporation Programmable PPM detector
US7414429B1 (en) * 2005-07-19 2008-08-19 Altera Corporation Integration of high-speed serial interface circuitry into programmable logic device architectures
US7656187B2 (en) 2005-07-19 2010-02-02 Altera Corporation Multi-channel communication circuitry for programmable logic device integrated circuits and the like
US7265587B1 (en) 2005-07-26 2007-09-04 Altera Corporation LVDS output buffer pre-emphasis methods and apparatus
US8743943B2 (en) * 2005-07-28 2014-06-03 Altera Corporation High-speed data reception circuitry and methods
US8189729B2 (en) * 2005-08-03 2012-05-29 Altera Corporation Wide range and dynamically reconfigurable clock data recovery architecture
US7848318B2 (en) * 2005-08-03 2010-12-07 Altera Corporation Serializer circuitry for high-speed serial data transmitters on programmable logic device integrated circuits
US7659838B2 (en) 2005-08-03 2010-02-09 Altera Corporation Deserializer circuitry for high-speed serial data receivers on programmable logic device integrated circuits
US7639993B1 (en) 2005-08-26 2009-12-29 Altera Corporation Power supply circuitry for data signal transceivers on integrated circuits
US7279950B2 (en) * 2005-09-27 2007-10-09 International Business Machines Corporation Method and system for high frequency clock signal gating
JP4641479B2 (ja) * 2005-09-29 2011-03-02 キヤノン株式会社 画像形成装置
US7279928B2 (en) * 2005-10-04 2007-10-09 Avago Technologies General Ip Pte. Ltd xB/yB coder programmed within an embedded array of a programmable logic device
US7268582B1 (en) 2005-11-22 2007-09-11 Altera Corporation DPRIO for embedded hard IP
US7505331B1 (en) 2005-11-23 2009-03-17 Altera Corporation Programmable logic device with differential communications support
US7259699B1 (en) 2005-11-23 2007-08-21 Altera Corporation Circuitry for providing configurable running disparity enforcement in 8B/10B encoding and error detection
US7539278B2 (en) * 2005-12-02 2009-05-26 Altera Corporation Programmable transceivers that are able to operate over wide frequency ranges
US7646217B2 (en) * 2005-12-22 2010-01-12 Altera Corporation Programmable logic device with serial interconnect
US7804892B1 (en) * 2006-02-03 2010-09-28 Altera Corporation Circuitry for providing programmable decision feedback equalization
US7715467B1 (en) * 2006-04-07 2010-05-11 Altera Corporation Programmable logic device integrated circuit with dynamic phase alignment capabilities
US7903679B1 (en) 2006-04-11 2011-03-08 Altera Corporation Power supply filtering for programmable logic device having heterogeneous serial interface architecture
US7616657B2 (en) 2006-04-11 2009-11-10 Altera Corporation Heterogeneous transceiver architecture for wide range programmability of programmable logic devices
US7454543B2 (en) * 2006-04-26 2008-11-18 International Business Machines Corporation Early high speed serializer-deserializer (HSS)internal receive (Rx) interface for data sampling clock signals on parallel bus
US7576567B2 (en) * 2006-05-31 2009-08-18 Fujitsu Limited Low-voltage differential signal driver for high-speed digital transmission
US7579872B2 (en) * 2006-05-31 2009-08-25 Fujitsu Limited Low-voltage differential signal driver for high-speed digital transmission
US7427878B2 (en) * 2006-06-01 2008-09-23 Fujitsu Limited Low-voltage differential signal driver for high-speed digital transmission
US7576570B1 (en) 2006-08-22 2009-08-18 Altera Corporation Signal amplitude detection circuitry without pattern dependencies for high-speed serial links
US8122275B2 (en) 2006-08-24 2012-02-21 Altera Corporation Write-leveling implementation in programmable logic devices
US7953162B2 (en) * 2006-11-17 2011-05-31 Intersil Americas Inc. Use of differential pair as single-ended data paths to transport low speed data
US7688106B1 (en) * 2007-02-27 2010-03-30 Altera Corporation High-speed serial interface circuitry for programmable logic device integrated circuits
KR100912091B1 (ko) * 2007-04-30 2009-08-13 삼성전자주식회사 전력 소모를 줄일 수 있는 데이터 인터페이스 방법 및 장치
US7602212B1 (en) * 2007-09-24 2009-10-13 Altera Corporation Flexible high-speed serial interface architectures for programmable integrated circuit devices
US7759972B1 (en) 2007-10-31 2010-07-20 Altera Corporation Integrated circuit architectures with heterogeneous high-speed serial interface circuitry
US7728625B1 (en) * 2007-12-11 2010-06-01 Lattice Semiconductor Corporation Serial interface for programmable logic devices
JP5174493B2 (ja) 2008-03-06 2013-04-03 株式会社日立製作所 半導体集積回路装置及びアイ開口マージン評価方法
US7733118B2 (en) * 2008-03-06 2010-06-08 Micron Technology, Inc. Devices and methods for driving a signal off an integrated circuit
US8184651B2 (en) * 2008-04-09 2012-05-22 Altera Corporation PLD architecture optimized for 10G Ethernet physical layer solution
US7795909B1 (en) 2008-04-15 2010-09-14 Altera Corporation High speed programming of programmable logic devices
US7777526B2 (en) * 2008-06-06 2010-08-17 Altera Corporation Increased sensitivity and reduced offset variation in high data rate HSSI receiver
US8270464B2 (en) * 2008-06-20 2012-09-18 Fujitsu Limited Decision feedback equalizer (DFE)
US7902883B2 (en) * 2008-06-20 2011-03-08 Fujitsu Limited Preemphasis driver with replica bias
US20090316770A1 (en) * 2008-06-20 2009-12-24 Fujitsu Limited Adaptive control of a decision feedback equalizer (dfe)
TWI392318B (zh) * 2008-07-15 2013-04-01 Realtek Semiconductor Corp 同步判定裝置、包含此同步判定裝置的接收裝置及其接收方法
US8165191B2 (en) 2008-10-17 2012-04-24 Altera Corporation Multi-protocol channel-aggregated configurable transceiver in an integrated circuit
DE102008059841A1 (de) * 2008-12-01 2010-06-02 Robert Bosch Gmbh Verfahren zum Programmieren einer sichheitsgerichteten Speicherprogrammierbaren Steuerung und Vermittler-Funktionsbaustein
JP5272926B2 (ja) 2009-06-29 2013-08-28 富士通株式会社 データ送信回路
JP2011041121A (ja) * 2009-08-17 2011-02-24 Renesas Electronics Corp 送受信装置およびその動作方法
US8085066B2 (en) * 2009-10-21 2011-12-27 Renesas Electronics America Inc. xCP on 2 CSI
US9531646B1 (en) 2009-12-07 2016-12-27 Altera Corporation Multi-protocol configurable transceiver including configurable deskew in an integrated circuit
US8222920B2 (en) * 2009-12-18 2012-07-17 Meta Systems Dynamic phase alignment
US8811555B2 (en) 2010-02-04 2014-08-19 Altera Corporation Clock and data recovery circuitry with auto-speed negotiation and other possible features
US8477831B2 (en) * 2010-02-17 2013-07-02 Altera Corporation Multi-protocol multiple-data-rate auto-speed negotiation architecture for a device
US20130073749A1 (en) * 2010-02-22 2013-03-21 Francois Tremblay Backchannel communication between host and interface module
US8767801B1 (en) * 2010-03-23 2014-07-01 Altera Corporation Testing performance of clock and data recovery circuitry on an integrated circuit device
US8732375B1 (en) 2010-04-01 2014-05-20 Altera Corporation Multi-protocol configurable transceiver with independent channel-based PCS in an integrated circuit
US8559582B2 (en) * 2010-09-13 2013-10-15 Altera Corporation Techniques for varying a periodic signal based on changes in a data rate
US9736086B1 (en) * 2011-04-29 2017-08-15 Altera Corporation Multi-function, multi-protocol FIFO for high-speed communication
US8495264B1 (en) 2011-07-08 2013-07-23 Lattice Semiconductor Corporation Alignment circuit for parallel data streams
EP2801915B1 (de) * 2013-05-10 2017-01-18 dSPACE digital signal processing and control engineering GmbH Adaptives interface zur kopplung von fpga-modulen
EP2987463A1 (de) 2014-08-21 2016-02-24 Noureddine Frid 3D-Filter zur Vorbeugung eines Schlaganfalls
EP3078350B1 (de) 2015-04-09 2018-01-31 Frid Mind Technologies 3d-filter zur vorbeugung eines schlaganfalls
CN107920883B (zh) 2015-09-09 2020-07-03 弗里德曼德科技公司 用于防止中风的二分叉3d过滤器组件
CN116747059A (zh) 2015-11-13 2023-09-15 因特雷萨维管股份公司 可植入式腔内假体
JP2019501729A (ja) 2016-01-14 2019-01-24 カーディアティス・エス・ア 大動脈弁不全を含む胸部大動脈疾患用の植込み型プロテーゼ
US10326627B2 (en) 2016-09-08 2019-06-18 Lattice Semiconductor Corporation Clock recovery and data recovery for programmable logic devices
US11443074B2 (en) 2020-04-09 2022-09-13 Hewlett Packard Enterprise Development Lp Verification of programmable logic devices

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3473160A (en) 1966-10-10 1969-10-14 Stanford Research Inst Electronically controlled microelectronic cellular logic array
US4486739A (en) 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US4972470A (en) * 1987-08-06 1990-11-20 Steven Farago Programmable connector
GB9108599D0 (en) * 1991-04-22 1991-06-05 Pilkington Micro Electronics Peripheral controller
US5457784A (en) * 1992-03-05 1995-10-10 Metacomp, Inc. Interfacing system using an auto-adapting multi-ported control module between an i/o port and a plurality of peripheral adaptors via bus extending cables
US5402014A (en) * 1993-07-14 1995-03-28 Waferscale Integration, Inc. Peripheral port with volatile and non-volatile configuration
US5557219A (en) * 1994-01-31 1996-09-17 Texas Instruments Incorporated Interface level programmability
GB2323000B (en) 1994-04-15 1998-11-04 Vlsi Technology Inc Serial interface circuit
US5689195A (en) * 1995-05-17 1997-11-18 Altera Corporation Programmable logic array integrated circuit devices
GB9508932D0 (en) * 1995-05-02 1995-06-21 Xilinx Inc FPGA with parallel and serial user interfaces
US6038400A (en) * 1995-09-27 2000-03-14 Linear Technology Corporation Self-configuring interface circuitry, including circuitry for identifying a protocol used to send signals to the interface circuitry, and circuitry for receiving the signals using the identified protocol
US5574388A (en) * 1995-10-13 1996-11-12 Mentor Graphics Corporation Emulation system having a scalable multi-level multi-stage programmable interconnect network
US6510487B1 (en) * 1996-01-24 2003-01-21 Cypress Semiconductor Corp. Design architecture for a parallel and serial programming interface
US5805794A (en) * 1996-03-28 1998-09-08 Cypress Semiconductor Corp. CPLD serial programming with extra read register
US6240471B1 (en) * 1996-09-10 2001-05-29 The United States Of America As Represented By The Secretary Of The Air Force Data transfer interfacing
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5907566A (en) * 1997-05-29 1999-05-25 3Com Corporation Continuous byte-stream encoder/decoder using frequency increase and cyclic redundancy check
US6122747A (en) * 1997-09-05 2000-09-19 First Pass Inc. Intelligent subsystem interface for modular hardware system
US6128673A (en) * 1997-11-14 2000-10-03 Aronson; Michael D. Method and apparatus for communication and translation of a plurality of digital protocols
US6131125A (en) * 1997-11-14 2000-10-10 Kawasaki Lsi U.S.A., Inc. Plug-and-play data cable with protocol translation
US6370603B1 (en) * 1997-12-31 2002-04-09 Kawasaki Microelectronics, Inc. Configurable universal serial bus (USB) controller implemented on a single integrated circuit (IC) chip with media access control (MAC)
US6005412A (en) * 1998-04-08 1999-12-21 S3 Incorporated AGP/DDR interfaces for full swing and reduced swing (SSTL) signals on an integrated circuit chip
US6145020A (en) * 1998-05-14 2000-11-07 Advanced Technology Materials, Inc. Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array
US6270350B1 (en) * 1999-04-28 2001-08-07 I-Sim Corporation Reconfigurable hardware interface for vehicle driving simulators using a field-programmable gate array
US6388591B1 (en) * 1999-09-24 2002-05-14 Oak Technology, Inc. Apparatus and method for receiving data serially for use with an advanced technology attachment packet interface (atapi)
US7227918B2 (en) 2000-03-14 2007-06-05 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
US6650140B2 (en) 2001-03-19 2003-11-18 Altera Corporation Programmable logic device with high speed serial interface circuitry

Also Published As

Publication number Publication date
US20050212556A1 (en) 2005-09-29
EP1248372A2 (de) 2002-10-09
US7002368B2 (en) 2006-02-21
US20020190751A1 (en) 2002-12-19
US20040032282A1 (en) 2004-02-19
JP2003017999A (ja) 2003-01-17
US20060095605A1 (en) 2006-05-04
US6650140B2 (en) 2003-11-18
EP1248372A3 (de) 2005-01-26
EP1248372B1 (de) 2006-10-25
DE60215573D1 (de) 2006-12-07
JP3657918B2 (ja) 2005-06-08
US6911841B2 (en) 2005-06-28
US7088133B2 (en) 2006-08-08

Similar Documents

Publication Publication Date Title
DE60215573T2 (de) Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle
DE69332804T2 (de) Verfahren und vorrichtung zur nrz-datensignalenübertragung durch eine isolierungbarriere in einer schnittstelle zwischen nachbarvorrichtungen auf einem bus
DE69922972T2 (de) System und verfahren zum senden und empfängen von datensignalen über eine taktsignalleitung
DE69734182T2 (de) Datenübertragungsverfahren, elektronisches Gerät und integrierte Bitübertragungsschichtsteuerschaltung
DE69531567T2 (de) Serielle Hochgeschwindigkeitsverbindung zur Vollduplex-Datenkommunikation
DE69432587T2 (de) Verzögerungsleitungsseparator für datenbus
DE602004005291T2 (de) Verfahren und Schaltungsanordnung zur Datenrückgewinnung
DE60200564T2 (de) Datenkommunikationssystem mit Selbsttestfähigkeit
DE10301130B4 (de) Taktwiederherstellungsschaltungsanordnung
DE69923814T2 (de) Leitweglenkungschaltung einer Schaltmatrix mit hoher Geschwindigkeit und mit Flusskontrolle
DE10257867A1 (de) Schnelle Schnittstelle für eine programmierbare Verbindungsschaltung
DE60212329T2 (de) Phasenregelschleife mit phasenrotation
DE69816838T9 (de) Phasenregelkreis und integrierte schaltung dafür
EP0269812B1 (de) Verfahren und Anordnung zur Versorgung einer Taktleitung mit einem von zwei Taktsignalen in Abhängigkeit vom Pegel eines der beiden Taktsignale
DE60122072T2 (de) Datentaktrückgewinnungsschaltung
CH623692A5 (de)
DE102007016461A1 (de) Verfahren zum Übertragen DC-balance-kodierter Daten, Verfahren zum Reduzieren von Simultaneous Switching Noise, Datensender, Datenempfänger und Daten-Sender/ Empfänger
EP0389662A1 (de) Verfahren zum Synchronisieren der Phase von Taktsignalen zweier Taktgeneratoren in Kommunikationsnetzen
DE69534298T2 (de) Verfahren und Vorrichtung zur Ermittlung einer Phasendifferenz und Filterschaltung
DE69934663T2 (de) Serielles hochgeschwindigkeitsübertragungssystem
DE60304857T2 (de) Ausrichtungs- und versetzungsentfernungseinrichtung, -system und verfahren
DE2825954C2 (de) Digitale Zeitmultiplexanlage
DE60213443T2 (de) Speicherschaltung und schaltung zur erkennung eines gültigen überganges
DE60315806T2 (de) Jitter-armer takt für einen multigigabit-sender/-empfänger auf einem am einsatzort programmierbaren gate-array
DE102005041278A1 (de) Synchronisiereinrichtung zum Leiten von Daten von einem ersten System zu einem zweiten System

Legal Events

Date Code Title Description
8364 No opposition during term of opposition