Table of Contents
Strategische Rolle von FPGAs in High-Speed-Serienlinks
Die serielle Hochgeschwindigkeitskommunikation ist zum Rückgrat moderner digitaler Systeme geworden. Vom Videotransport zwischen Kameras und Prozessoren bis hin zur Datenerfassung von Hochgeschwindigkeits-ADCs und Verbindungsleitungen in Rechenzentren haben serielle Verbindungen parallele Busse über praktisch jede Schnittstelle ersetzt. Parallele Busse leiden unter Skew-, Crosstalk- und Pin-Zahlungsbeschränkungen von über einigen hundert Megahertz. Serielle Verbindungen überwinden diese Probleme mithilfe von differentieller Signalisierung, eingebetteten Uhren und fortschrittlicher Entzerrung, um Pro-Lane-Raten über 100 Gbps zu erreichen.
Feldprogrammierbare Gatter-Arrays nehmen eine einzigartige Nische im seriellen Design ein. Anders als ASICs, die teure Maskensätze und lange Fertigungszyklen erfordern, lassen FPGAs Ingenieure Prototypen erstellen, validieren und benutzerdefinierte serielle Protokolle in Wochen bereitstellen. Diese Rekonfigurierbarkeit ist ein strategisches Gut, wenn sich Standards entwickeln, wenn proprietäre Protokolle Wettbewerbsvorteile bieten oder wenn Produktionsvolumina einen ASIC nicht rechtfertigen. Moderne FPGAs integrieren gehärtete Multi-Gigabit-Transceiver, die phasengekoppelte Schleifen, Takt- und Datenwiederherstellungsschaltungen und programmierbare Entzerrungen enthalten, was eine Leistung liefert, die mit dedizierten SERDES-Geräten konkurriert. Die FPGA-Fabrik verwaltet Protokolllogik und Datenverarbeitung, während die gehärteten Transceiver analoge und digitale Hochgeschwindigkeitsaufgaben bewältigen, die in programmierbarer Logik nicht effizient implementiert werden können.
Transceiver-Architektur: PMA- und PCS-Layer
Jeder FPGA-Transceiver besteht aus zwei Hauptunterblöcken: dem Physical Medium Attachment (PMA) und dem Physical Coding Sublayer (PCS), wobei das Verständnis dieser Unterteilung entscheidend für die Konfiguration von Parametern und die Entscheidung darüber ist, welche Funktionen in der FPGA-Fabrik implementiert werden sollen.
Die PMA-Schicht
Die PMA übernimmt alle analogen und hochgeschwindigkeitsdigitalen Funktionen. Auf der Sendeseite enthält sie den Serialisator (Parallel-Seriell-Wandler), auf der Empfangsseite den Deserialisator (Seriell-Parallel-Wandler), auf der Empfangsseite enthält sie den Deserialisator (CMU) oder die Sende-PLL, die den Referenztakt mit der Leitungsrate multipliziert. Auf dem Empfangspfad extrahiert die Clock and Data Recovery (CDR)-Schaltung den Bittakt aus dem ankommenden Datenstrom. Die programmierbare Entzerrung umfasst Pre-Emphasis-Abgriffe am Sender und lineare Entzerrung mit kontinuierlicher Zeit (CTLE) sowie Entscheidungsrückkopplungsentzerrung (DFE) am Empfänger. Auf dieser Ebene sind auch Terminationsimpedanz, Ausgangshub und Differenzspannungspegel konfiguriert. Die PMA wird typischerweise mit einer speziellen Analogschaltung auf dem FPGA-Die implementiert, die vom digitalen Schaltrauschen isoliert ist.
Die PCS-Schicht
Das PCS überbrückt die Hochgeschwindigkeits-PMA mit dem FPGA-Fabric, arbeitet mit der parallelen Wortrate. Es verarbeitet digitale Funktionen, die eine mäßige Komplexität erfordern, aber für eine weiche Logikimplementierung zu schnell sind. Typische PCS-Funktionen sind 8b/10b oder 64b/66b Codierung und Decodierung, Kommaerkennung und Wortausrichtung, elastische Pufferung für die Taktdomänenüberquerung, Kanalbindung für mehrspurige Protokolle und PRBS-Mustererzeugung und Überprüfung für eingebaute Selbsttests. Die meisten FPGA-Anbieter bieten einen Konfigurationsassistenten, mit dem Sie das Protokoll auswählen und automatisch die entsprechenden Kodierungs-, Ausrichtungs- und Taktparameter einstellen können.
Die Dokumentation der Anbieter ist für detaillierte Blockdiagramme und Registerkarten unerlässlich. Das Xilinx 7 Series Transceivers User Guide bietet eine umfassende Abdeckung der PMA- und PCS-Konfiguration, während das Intel High-Speed Serial Interface Handbook Intel Agilex und Stratix Transceiver-Familien abdeckt. Für Lattice FPGAs beschreibt das SERDES User Guide ihre eingebettete Transceiver-Architektur.
Transceiver-Platzierung und Routing-Grundlagen
Die physische Platzierung dieser Quads auf dem Würfel bestimmt, welche FPGA-E/A-Banken serielle Daten empfangen können. Sie müssen überprüfen, ob die ausgewählte Transceiverbank direkten Zugriff auf die FPGA-Logik hat, die für die Protokollverarbeitung benötigt wird. Einige Geräte beschränken bestimmte Transceiverfunktionen auf bestimmte Quad-Positionen. Immer die Pinout-Tabellen des Gerätedatenblatts und die Transceiver-Platzierungsrichtlinien vor dem Starten des PCB-Layouts. Das Routing serieller Leitungen vom FPGA zu Steckverbindern oder optischen Modulen erfordert eine sorgfältige Aufmerksamkeit auf die Bankplatzierung, um die Spurlänge zu minimieren und das Überqueren von Leistungsbereichen zu vermeiden.
Entwerfen FPGA-basierter Sender
Der Senderpfad wandelt parallele Daten aus dem FPGA-Fabric in einen hochgeschwindigkeitsseriellen Stream um, wobei das Konzept einfach ist, die praktische Umsetzung jedoch eine sorgfältige Handhabung der Taktung, Signalkonditionierung und protokollspezifischen Formatierung erfordert.
Serialisierung und Datapath-Struktur
Der Serialisierer innerhalb der PMA akzeptiert ein paralleles Wort - typischerweise 8, 10, 16, 20, 32 oder 40 Bit - und verschiebt es mit der Leitungsrate. Der parallele Bus arbeitet mit einem Bruchteil der Leitungsrate, der der in die Bitrate geteilten Busbreite entspricht. Beispielsweise läuft eine 10,3125 Gbps Ethernet-Verbindung mit einem 32-Bit-Datenpfad auf der parallelen Seite mit etwa 322 MHz. Diese Frequenz ist für den FPGA-Fabric-Timing-Verschluss bei Verwendung geeigneter Taktressourcen überschaubar. Der Transceiver PCS bietet oft eine Getriebefunktion, die zwischen verschiedenen parallelen Breiten konvertiert, so dass das Gewebe mit einer niedrigeren Frequenz läuft, während die PMA einen schmaleren, schnelleren internen Bus verwendet. Bei der Konfiguration des Getriebes überprüfen Sie die Übereinstimmungen der Datenreihenfolge zwischen der Gewebeschnittstelle und dem seriellen Strom. Eine Endianness-Mismatch auf dieser Ebene erzeugt beschädigte Daten, die schwer zu debuggen sind.
Uhrenerzeugung und Jittersteuerung
Die Sendetaktung beginnt mit dem Referenztakteingang. Die meisten FPGA-Transceiver akzeptieren differentielle Referenztakte (LVDS, LVPECL oder HCSL) und benötigen eine Frequenz, die ein rationales Untermultiplikator der Leitungsrate ist. Der Sende-/Empfangs-PLL multipliziert diese Referenz mit der seriellen Bitrate. Jitter auf dem Referenztakt erscheint als deterministischer Jitter auf dem seriellen Ausgang, skaliert durch den PLL-Multiplikationsfaktor. Ein Jitter von 1 ps rms auf einem 100 MHz-Referenzwert wird zu etwa 10 ps rms auf einem 10 Gbps-Ausgang. Diese Vergrößerung erklärt, warum die Referenztaktqualität von größter Bedeutung ist.
Einige Protokolle erfordern eine Spread-Spektrum-Taktung (SSC), um elektromagnetische Störungen zu reduzieren. PCI Express, SATA und USB 3.0 geben alle SSC mit spezifischen Modulationsprofilen an. Wenn Ihr Transceiver SSC unterstützen muss, vergewissern Sie sich, dass die PLL die Modulationsfrequenz verfolgen kann (normalerweise 30-33 kHz) und dass der CDR auf der Empfangsseite über eine ausreichende Bandbreite verfügt, um der Frequenzvariation zu folgen.
Line Encoding und DC Balance
Serielle Verbindungen können lange Durchläufe identischer Bits nicht tolerieren. Die CDR-Schaltung benötigt Kanten, um die Sperre zu erhalten, und AC-gekoppelte Empfänger benötigen DC-Gleichgewicht, um Baseline-Wanderungen zu vermeiden. Die Zeilencodierung löst beide Probleme. Der am weitesten verbreitete Code ist 8b/10b, der jedes 8-Bit-Datenbyte einem 10-Bit-Symbol zuordnet, das so gewählt ist, dass eine laufende Disparität nahe Null erhalten bleibt und die Laufzeit auf fünf aufeinanderfolgende identische Bits begrenzt wird. FPGA-Transceiver implementieren 8b/10b-Codierung und Decodierung im PCS, wobei nur erforderlich ist, dass das Gewebe korrekt formatierte Daten mit identifizierten Steuerzeichen enthält. Für Raten über 8-10 Gbps wird 8b/10b-Overhead (25 %) unerschwinglich. Standards wie 10 Gigabit Ethernet und PCI Express verwenden 64b/66b-Codierung, die nur 3,125% Overhead hinzufügt. Der Encoder verschlüsselt die Daten mit einem linearen Feedback-Shift-Register (LFSR) und setzt jedem 66-
Für benutzerdefinierte Verbindungen können alternative Codes wie 16b/18b, 8b/9b oder Manchester-Codierung implementiert werden. Der Kompromiss besteht immer zwischen Overhead, DC-Balance, Übergangsdichte und Implementierungskomplexität. Eine nützliche Ressource für die Auswahl von Leitungscodes ist IEEE 802.3 Standards Documentation, die Codierungsschemata für jede Ethernet-Rate spezifiziert.
Transmit Equalization und Pre-Emphasis
Der Kanalverlust ist frequenzabhängig: Hochfrequenzkomponenten, die schnelle Bitübergänge definieren, werden stärker gedämpft als niederfrequente Komponenten. Diese Dämpfung verursacht Intersymbolinterferenzen, was es dem Empfänger erschwert, Einsen von Nullen zu unterscheiden. Die Sendeentzerrung kompensiert durch die Erhöhung hoher Frequenzen, bevor das Signal den Treiber verlässt. Die häufigste Implementierung ist ein FIR-Filter mit mehreren Tippstufen. Der Hauptabgriff entspricht dem aktuellen Bit, während Vor- und Nach-Cursorabgriffe den Ausgang basierend auf benachbarten Bits anpassen. Eine typische 3-Tap-Konfiguration umfasst einen Vor-Cursor, einen Haupt-Cursor und einen Nach-Cursorabgriff.
FPGA-Transceiver setzen diese Abgriffskoeffizienten durch Konfigurationsregister frei. Startwerte werden in Anwendungshinweisen für gängige Protokolle bereitgestellt. Beginnen Sie mit den empfohlenen Einstellungen und optimieren Sie dann, indem Sie das Augendiagramm am Empfängereingang beobachten. Erhöhen Sie die Vor- und Nach-Cursor-Abgriffe, bis sich das Auge öffnet, aber hören Sie auf, bevor die Überentzerrung ein Klingeln und übermäßiges Übersprechen verursacht. Für Kanäle mit Verlusten über 20 dB bei der Nyquist-Frequenz ist die Sendeentzerrung allein unzureichend, und Sie müssen sie mit empfängerseitigem CTLE und DFE kombinieren.
Output Swing, Termination und Signalintegrität
Der Ausgangstreiber des Transceivers ist programmierbar. Ein geringerer Schwingungspegel reduziert den Stromverbrauch und die EMI, reduziert jedoch das Signal-Rausch-Verhältnis am Empfänger. Die differentielle Ausgangsspannung wird auf das Minimum eingestellt, das erforderlich ist, um angesichts des Kanalverlusts eine akzeptable Augenöffnung am anderen Ende zu erreichen. Die Abschlussimpedanz sollte der charakteristischen Impedanz der Übertragungsleitung entsprechen, typischerweise 100 Ohm Differenzial. Interne Abschlusswiderstände sind verfügbar, aber ihre Toleranz (±10-20%) kann für enge Signalintegritätsanforderungen unzureichend sein. Externe Abschlusswiderstände mit einer Toleranz von ±1% bieten eine bessere Kontrolle.
Entwerfen von FPGA-basierten Empfängern
Bei der Empfängergestaltung trennen Erfahrung und Liebe zum Detail eine robuste Verbindung von einer, die intermittierend arbeitet. Der Empfänger muss eine saubere Uhr aus einem degradierten Signal wiederherstellen, Wortgrenzen ausrichten und Kanalbeeinträchtigungen kompensieren.
Uhr und Datenwiederherstellung
Die CDR-Schaltung in FPGA-Transceivern verwendet einen Phasenregelkreis oder Phaseninterpolator, um einen Abtasttakt zu erzeugen, der die ankommenden Datenflanken verfolgt. Die CDR-Bandbreite bestimmt, wie schnell die wiederhergestellte Uhr Frequenzänderungen und Jitter folgt. Höhere Bandbreite verfolgt Jitter besser, aber ermöglicht mehr Rauschen von den Datenübergängen, um die wiederhergestellte Uhr zu beeinflussen. Die meisten Transceiver ermöglichen es Ihnen, CDR-Bandbreiteneinstellungen auszuwählen, die für das Protokoll geeignet sind. PCI Express Gen3 und Gen4 geben beispielsweise einen CDR-Bandbreitenbereich an. Für benutzerdefinierte Verbindungen beginnen Sie mit einer Einstellung im mittleren Bereich und passen Sie basierend auf gemessenem Jitter an.
Die CDR erfordert einen Referenztakt, der mit den eingehenden Daten innerhalb einer vorgegebenen Toleranz, typischerweise ±100 bis ±300 ppm, frequenzgekoppelt ist. Wenn sich die Referenz- und Datenfrequenzen um mehr als den CDR-Einzugsbereich unterscheiden, wird die CDR nicht gesperrt. Diese Anforderung wird kritisch, wenn der Fernsender eine andere Referenzquelle verwendet. Bei Mehrpunktsystemen muss jeder Transceiver mit ausreichender Genauigkeit über einen eigenen Referenztakt verfügen.
Word Alignment und Comma Detection
Sobald der CDR den Bittakt zurückgewinnt, stellt der Deserialisierer ein paralleles Wort zum PCS dar. Die Wortgrenzen sind willkürlich; die Ausrichtungsschaltung muss die richtige Grenze finden, indem sie nach einem bekannten Muster sucht. Bei 8b/10b-Verbindungen erscheint das Kommazeichen K28.5 (Binärmuster 1100000101) periodisch in Leerlauf- oder Trainingssequenzen. Das PCS verschiebt die Wortgrenze, bis das Komma ausgerichtet ist, und sperrt dann die Ausrichtung. Einige Transceiver unterstützen mehrere Kommamuster und ermöglichen es Ihnen, den Kommawert und die Maskenbits zu definieren. Bei 64b/66b-Verbindungen verwendet die Ausrichtung das Zwei-Bit-Sync-Headermuster: 01 für Datenblöcke und 10 für Steuerblöcke. Der Empfänger sucht nach drei aufeinanderfolgenden gültigen Sync-Headern, um die Ausrichtung zu deklarieren.
Nach dem Ausrichten muss der Empfänger die Synchronisation aufrechterhalten. Der Verlust der Synchronisation tritt auf, wenn Fehler das Ausrichtenmuster verfälschen. Das PCS enthält typischerweise eine Zustandsmaschine, die nach einer programmierbaren Anzahl von Fehlern von synchronisiert zu synchronisiert übergeht. Diese Hysterese verhindert, dass kurze Rauschstöße unnötige Neuausrichtungen verursachen.
Empfängerentzerrung
Bei Multi-Gigabit-Raten kann das an den Empfängerpins ankommende Signal eine Augenhöhe von nur zehn Millivolt haben. Zwei Entzerrungsstufen stellen das Signal wieder her. CTLE verstärkt hochfrequente Anteile im Verhältnis zu niedrigen Frequenzen und dämpft den niederfrequenten Signalinhalt effektiv. FPGA-Transceiver bieten einen einstellbaren CTLE-Verstärker, normalerweise mit 3-5 diskreten Einstellungen. Die richtige Einstellung hängt vom Kanalverlust ab: Mehr Verlust erfordert einen höheren CTLE-Verstärker. Verwenden Sie Transceiver-Link-Training oder manuelle Sweep, um die Einstellung zu finden, die die Augenhöhe maximiert.
Nach CTLE bleibt die restliche ISI aufgrund von Reflexionen und Long-Tail-Kanalantworten bestehen. DFE subtrahiert Interferenzen von zuvor erkannten Bits mit Rückkopplungsanzapfungen. Jeder Abgriff multipliziert eine vorherige Bitentscheidung mit einem Koeffizienten und subtrahiert sie von der aktuellen Abtastung. Die meisten FPGA-Transceiver implementieren 1-5 DFE-Abgriffe mit adaptiven Koeffizientenaktualisierungsalgorithmen. Aktivieren Sie die Anpassung während des Linktrainings und lassen Sie die Koeffizienten zu stabilen Werten konvergieren. Nach der Konvergenz können Sie die Koeffizienten einfrieren oder die Anpassung aktiv lassen. Aktive Adaption verfolgt Temperatur- und Spannungsschwankungen, kann aber falsch konvergieren, wenn sich Fehler ausbreiten. Bei Protokollen mit vordefinierten Trainingssequenzen - wie PCI Express - enthält die Entzerrungssequenz eine Koeffizientenverhandlungsphase zwischen Sender und Empfänger.
Augenscanning und Margin-Analyse
Von Anbietern bereitgestellte Augenscan-Tools sind von unschätzbarem Wert für die Charakterisierung des Link-Rands. Der Transceiver bietet einen Randanalyse-Port, der es Ihnen ermöglicht, den Abtastpunkt in Spannung und Zeit zu verschieben, während Sie die Bitfehlerrate messen. Indem Sie den Abtastpunkt über das Einheitenintervall hinwegstreichen, erzeugen Sie eine Badewannenkurve, die den BER als Funktion der Abtastposition anzeigt. Ein breiter, flacher Bereich bei niedrigem BER zeigt einen gesunden Rand an. Die Augenscan-Funktionalität ist über die IP des Anbieters oder durch direkten Registerzugriff über einen in der FPGA-Fabrik implementierten Controller zugänglich. Keysight System Design Software stellt Werkzeuge zur Nachverarbeitung von Augenscan-Daten und zur Generierung von Compliance-Berichten bereit.
Signalintegrität und PCB-Design
Die beste Sende- und Empfangskonfiguration kann ein schlechtes PCB-Design nicht kompensieren.
Auslegung der Übertragungsleitung
Routendifferenzialpaare als eng gekoppelte Mikrostreifen- oder Streifenleiterbahnen mit einer Differenzimpedanz von 100 Ohm ±10 %. Die charakteristische Impedanz hängt von der Spurbreite, dem Spurabstand, der dielektrischen Dicke und dem Kupfergewicht ab. Verwenden Sie die von Ihrem PCB-Hersteller empfohlene Stapelung und Berechnung der Spurgeometrie mit einem Feldlöser wie Polar Instruments Si9000 oder Cadence Sigrity. Halten Sie kontinuierliche Erdbezugsebenen unter den Differenzleiterbahnen aufrecht; Lücken im Rückführweg verursachen Impedanzsprünge und erhöhen das Übersprechen.
Wenn Vias unvermeidlich sind, beispielsweise beim Routing zu einem Stecker auf der gegenüberliegenden Seite der Platine, minimieren sie den Via-Stub durch Rückbohren oder durch Routing auf einer Schicht in der Nähe des Steckers. Der Via-Stub wirkt wie ein Resonanz-Stub, der das Auge bei Frequenzen mit einer Stublänge von einer Viertelwellenlänge verschlechtert. Bei 25 Gbps-Signalen kann ein Via-Stub von mehr als 15 mils (0,38 mm) zu einer messbaren Verschlechterung führen.
Power Delivery für Transceiver
Transceiver-Netzteile sind bekanntermaßen geräuschempfindlich. Ein typisches High-End-FPGA kann mehrere 1,0-V-Netzteile haben: eines für den Transceiver PMA, eines für die PCS-Digitallogik und eines für das FPGA-Gewebe. Teilen Sie diese Netzteile nicht ohne Isolation. Verwenden Sie spezielle geräuscharme Linearregler (LDOs) für die Transceiver-Analogschienen. Schaltregler für das Gewebeangebot sollten physisch von den Transceiver-LDOs getrennt und mit Ferritperlen gefiltert werden. Stellen Sie Entkopplungskondensatoren so nah wie möglich an die FPGA-Pins, beginnend mit den kleinsten Werten (0,1 μF und 0,01 μF) in der Nähe der Pins, gefolgt von Bulk-Kondensatoren (10 μF und 47 μF) in der Nähe.
Steckverbinder und Kabelauswahl
Der Stecker am Boardrand ist oft das schwächste Glied im Kanal. Wählen Sie Stecker, die für die Datenrate und mit kontrollierter Impedanz ausgelegt sind. Verwenden Sie für Backplane-Anwendungen Stecker, die für Multi-Gigabit-Signalisierung ausgelegt sind, wie die Q-Serie von Samtec oder die Impact-Serie von Molex. Hochgeschwindigkeitskabel müssen für die Datenrate und Länge spezifiziert werden. Für kurze Reichweiten (weniger als 1 Meter) bieten Kupferkabel mit Direktanbindung eine kostengünstige Lösung. Für Entfernungen von mehr als 1 Meter sind aktive optische Kabel oder faseroptische Transceiver erforderlich.
Moderne Protokolle und Implementierungsmuster
Aurora und Custom Streaming Protokolle
Xilinx bietet das Aurora-Protokoll als leichte, skalierbare Verbindung für die Verbindung von FPGA-zu-FPGA über Backplanes an. Aurora übernimmt Initialisierung, Kanalbindung und Flusssteuerung, wobei der Dateninhalt vollständig dem Benutzer überlassen wird. Das Protokoll unterstützt Simplex- oder Vollduplexverbindungen mit konfigurierbarer Anzahl von Fahrspuren. Die Implementierung ist einfach mit dem Aurora IP-Core, der die Transceiverkonfiguration, Ausrichtung und Bindung übernimmt. Der Kern umfasst Testbench- und Beispieldesign, was es zu einem hervorragenden Ausgangspunkt für benutzerdefinierte serielle Verbindungen macht.
JESD204B/C für High-Speed Datenkonverter
Der JESD204-Schnittstellenstandard ist zur vorherrschenden Methode für die Verbindung von Hochgeschwindigkeits-ADCs und DACs mit FPGAs geworden. Revision B unterstützt deterministische Latenz, Synchronisation mit mehreren Geräten und Spurraten von bis zu 12,5 Gbps. Revision C erweitert die Spurrate auf 32 Gbps. Die Implementierung von JESD204 erfordert sorgfältige Aufmerksamkeit beim Framing: Der Konverter sendet Daten in Frames, die in Multiframes gruppiert sind, mit Ausrichtungssignalen, die in die Steuerzeichen eingebettet sind. FPGA-IP-Kerne behandeln die Transportschicht, aber Sie müssen die Verbindungsparameter konfigurieren (Anzahl der Spuren, Konverter, Samples pro Frame usw.) um die Konverteranforderungen zu erfüllen. Der Analog Devices JESD204B Primer bietet eine zugängliche Einführung in den Standard und seine Implementierung.
PCI Express
PCI Express ist allgegenwärtig in der Computertechnik, und viele FPGAs enthalten gehärtete PCI Express IP-Blöcke. Die physikalische Schicht arbeitet mit 2,5 GT/s (Gen1), 5 GT/s (Gen2), 8 GT/s (Gen3), 16 GT/s (Gen4) und 32 GT/s (Gen5). Gen3 und höher verwenden 128b/130b-Kodierung mit Scrambling und erfordern DFE am Empfänger. Die PCI Express-Basisspezifikation definiert die Link-Trainings- und Entzerrungssequenz, die FPGA-Transceiver über die PCS-Zustandsmaschine unterstützen. Die Implementierung eines benutzerdefinierten PCI Express-Endpunkts erfordert den PCI Express IP-Kern, der die Transaktionsschicht, die Datenverbindungsschicht und die physikalische Schicht umfasst. Der Kern übernimmt automatisch Konfigurationsraum, Fehlererkennung und Flusssteuerung, so dass Sie die Anwendungsschicht-Schnittstelle entwerfen können.
100G/400G Ethernet und PAM4
Da die Datenraten 56 Gbps überschreiten, wird die binäre NRZ-Modulation aufgrund von Bandbreitenbeschränkungen unpraktisch. PAM4-Modulation codiert zwei Bits pro Symbol mit vier Spannungspegeln, wodurch die Datenrate für eine gegebene Baudrate verdoppelt wird. PAM4 bringt neue Herausforderungen mit sich: Es gibt drei vertikale Augenöffnungen anstelle von einer, und das Signal-Rausch-Verhältnis ist von Natur aus niedriger als NRZ. FPGA-Transceiver wie Xilinx GTY (bis zu 58 Gbps PAM4) und GTM (bis zu 112 Gbps PAM4) umfassen dedizierte PAM4-Slicer, CDR, die für mehrstufige Modulation optimiert sind, und Getriebelogik. Die Gestaltung mit PAM4 erfordert eine sorgfältige Kanalsimulation und eine Entzerrungsabstimmung, da der Rand enger ist als äquivalente NRZ-Verbindungen.
Testen, Validieren und Debug
Eingebauter Selbsttest
Jeder FPGA-Transceiver enthält eingebaute Mustergeneratoren und Prüfer. Verwenden Sie PRBS-Muster (PRBS-7, PRBS-15, PRBS-23, PRBS-31), um die Verbindung mit realistischen Datenübergangsmustern zu betonen. Übertragen Sie PRBS-31 vom Sender und überprüfen Sie, ob die Empfänger-Prüfsumme übereinstimmt. Abweichungen weisen auf Bitfehler oder Ausrichtungsprobleme hin. Die meisten Transceiver unterstützen auch Loopback-Modi: serielles Loopback innerhalb der PMA (Daten werden zeitlich neu getaktet und zum Empfänger zurückgeschleift) und paralleles Loopback im Gewebe. Verwenden Sie Loopback, um Probleme zu isolieren: Serielles Loopback testet die digitale Transceiverlogik, während externes Loopback durch Kabel oder Rückwand den gesamten Kanal testet.
Bit Error Rate Testing
BER-Tests messen die Verbindungsqualität direkt. Führen Sie den Mustergenerator für eine ausreichende Dauer aus, um statistisches Vertrauen zu erzielen. Für ein BER-Ziel von 10−12 müssen Sie mindestens 1012 Bits ohne Fehler beobachten. Dies entspricht etwa 100 Sekunden bei 10 Gbps. In der Praxis sollten Sie intermittierende Fehler, die durch Übersprechen oder Stromversorgungsrauschen verursacht werden, länger testen. Einige Protokolle erfordern BER unter 10−12 mit Margin; PCI Express Gen4 beispielsweise legt am Empfängereingang ein BER von 10−12 an.
Problembehandlung bei gemeinsamen Problemen
Wenn die Verbindung nicht initialisiert ist, prüfen Sie Folgendes in der Reihenfolge: Vorhandensein und Frequenzgenauigkeit des Referenztakts, Rücksetzsequenzierung des Transceivers, Status der PLL-Sperre, Status der CDR-Sperre und Ausrichtungsstatus. Jeder FPGA-Anbieter stellt Statusindikatoren bereit, die über die Transceiver-Schnittstelle zugänglich sind. Wenn der CDR sperrt, aber die Ausrichtung ausfällt, überprüfen Sie, ob der Sender das richtige Ausrichtungsmuster sendet und dass der Empfänger konfiguriert ist, um es zu erkennen. Wenn das Auge am Empfänger geschlossen ist, erhöhen Sie die Transmitterpräemphase und passen Sie CTLE an. Wenn die Verbindung intermittierend arbeitet, überprüfen Sie die Welligkeit der Stromversorgung und stellen Sie sicher, dass die Entkopplungskondensatoren korrekt platziert sind. Thermische Probleme können auch intermittierende Ausfälle verursachen; überprüfen Sie, ob die Temperatur des FPGA-Übergangs unter Last innerhalb der Spezifikationen bleibt.
Design-Methodik und Tool Flow
Ein systematischer Ansatz reduziert das Risiko und beschleunigt die Entwicklung. Beginnen Sie mit dem Anbieter-Transceiver-Assistenten, um die korrekte primitive Instanziierung zu generieren. Simulieren Sie das Transceiver-Verhalten mit den vom Anbieter bereitgestellten Simulationsmodellen, überprüfen Sie Reset-Timing, PLL-Lock-Zeit und CDR-Lock-Verhalten. Erstellen Sie einen Testbench, der den eingebauten PRBS-Mustergenerator und Checker trainiert. Sobald die Simulation besteht, gehen Sie mit einem einfachen Loopback-Test zur Hardware-Erstellung über. Nachdem Sie bestätigt haben, dass der Transceiver korrekt funktioniert, fügen Sie Ihre Protokolllogik schrittweise hinzu. Verwenden Sie die eingebetteten Logik-Analysator-Fähigkeiten (Xilinx ILA, Intel Signal Tap) zur Überwachung interner Statussignale während des Debuggens.
Halten Sie während der Entwicklung ein Link-Rand-Log bereit, zeichnen Sie Augenhöhen- und Augenbreitenmessungen für jede Platine und jede Temperaturecke auf. Diese Daten helfen, Fertigungsvariationen zu identifizieren und führen zu Designänderungen für die nächste Überarbeitung. Teilen Sie Augenmessungen mit Ihrem PCB-Hersteller, um eine konsistente Impedanzkontrolle zu gewährleisten.
Zukünftige Richtungen und Technologietrends
Die serielle Datenrate steigt weiter an, angetrieben von Bandbreitenanforderungen für Rechenzentren und neuen Standards wie 800G Ethernet und PCI Express Gen6 (64 GT/s). FPGA-Transceiver werden fortschrittliche Modulationsformate einschließlich PAM6 und PAM8 enthalten, was noch ausgefeilteren Ausgleich erfordert. Co-packaged Optics, bei denen optische Transceiver in dasselbe Paket wie das FPGA integriert sind, werden die elektrisch-optisch-elektrischen Umwandlungsverluste an der Modulschnittstelle eliminieren. Für den praktizierenden Ingenieur ist es weiterhin wichtig, mit Transceiver-Fähigkeiten und Signalintegritätsgrundlagen auf dem Laufenden zu bleiben. Die Grundprinzipien der Impedanzsteuerung, des Ausgleichs und des CDR-Designs werden bestehen bleiben, selbst wenn die Rohdatenraten die Grenzen der Halbleitertechnologie überschreiten.
Der Aufbau robuster FPGA-basierter serieller Verbindungen belohnt sorgfältige Analysen, disziplinierte Designpraktiken und systematische Validierung. Durch das Verständnis der Transceiver-Architektur, die Adressierung der Signalintegrität von Anfang an und die Verwendung verfügbarer Test- und Messwerkzeuge können Sie zuverlässig eine serielle Multi-Gigabit-Kommunikation in Ihren Systemen implementieren.