Hochgeschwindigkeits-Datenerfassung mit FPGA: Warum FMC HPC + PCIe x8 die Goldkombination ist
Oszilloskope, Digitalisierer, Phased-Array-Radare, Software Defined Radios und Hochgeschwindigkeits-Schwingungsüberwachung – das Herzstück all dieser Systeme ist „Hochgeschwindigkeits-ADC-Abtastung → Datenpaketierung → Übertragung an den Host zur Verarbeitung“. Warum muss dieser Schritt mit einer FPGA erfolgen und nicht mit einem MCU, einem DSP oder einer CPU, die direkt abtastet? Warum sind der FMC-HPC-Stecker und die PCIe-x8-Schnittstelle zur Goldkombination für Erfassungskarten geworden? Dieser Artikel beginnt mit einem realen 250-MSPS-Erfassungsprojekt.
1. Warum Hochgeschwindigkeitserfassung FPGA erfordert
Schauen wir uns zuerst die Zahlen an. Ein typischer Hochgeschwindigkeits-ADC wie der AD9643: 14 Bit, 250 MSPS, Dualkanal. Umgerechnet in die Datenrate:
Dualkanal 14 Bit @ 250 MSPS
= 2 Kanäle × 14 Bit × 250 MS/s
= 7,0 Gbps Rohdatenrate
= 875 MB/s kontinuierlicher Datenstrom
Das bedeutet: Jede Sekunde müssen 875 MB Abtastdaten vom ADC in den Hostspeicher übertragen werden. Wenn ein Glied der Kette nicht mithalten kann, gehen Abtastwerte verloren:
- MCU / ARM: SPI/Parallelschnittstellen schaffen maximal 50 MB/s, 17× zu wenig – sofort Verluste
- DSP: DMA-Ports schaffen maximal 200 MB/s, 4× zu wenig – Verluste, sobald der Puffer voll ist
- CPU, die GPIO direkt liest: Die Betriebssystem-Scheduling-Latenz macht einen einzelnen Lesezyklus 10 μs groß – wie einen Wasserfall mit einem Eimer auffangen
Der Wert der FPGA: Sie ist eine parallele, deterministische Hardwareschaltung. Der LVDS-Datenstrom des ADC kommt herein, und die FPGA empfängt mit IDDR-Primitiven auf jeder Taktflanke 8 Differenzialpaare gleichzeitig, führt Deserialisierung, Ausrichtung, Zeitstempelung und FIFO-Pufferung durch und überträgt die Daten dann per PCIe-DMA in großen Mengen an den Host. Die gesamte Kette hat keine Betriebssystem-Planung, keine Cache-Misses, keine Interrupt-Latenz – die Taktzyklen sind deterministisch.
Deshalb ist das Steuerkernstück jeder industriellen Hochgeschwindigkeits-Erfassungskarte, jedes Oszilloskops und jedes Digitalisierers eine FPGA – nicht weil die FPGA intelligenter als eine CPU ist, sondern weil sie schnell, deterministisch und parallel genug ist.
2. Standardarchitektur einer Hochgeschwindigkeits-Erfassungskarte
Der vollständige Datenpfad sieht so aus:
Analogsignal ───▶ Hochgeschwindigkeits-ADC (FMC-Tochterkarte) → LVDS / JESD204B → FPGA-Logik (Deserialisierung / Ausrichtung / Trigger / Dezimation / FIFO) → DDR3-Puffer (Burst-Erfassung, Unterlauf-Puffer) → PCIe 2.0 x8 DMA → Hostspeicher → Host-Software
Auf diesem Pfad gibt es vier kritische Engpässe, und jeder bestimmt die reale Leistung der Erfassungskarte:
1. Physische Schnittstelle vom ADC zur FPGA: FMC HPC
Hochgeschwindigkeits-ADC-Tochterkarten werden nicht direkt auf die Hauptplatine gelötet – sie werden als Standard-FMC-Tochterkarten (FPGA Mezzanine Card) gebaut. Der FMC-HPC-Stecker bietet:
- 8 GTX-Hochgeschwindigkeits-Serielpaare (bis zu 6,6 Gbps, für JESD204B)
- 168 Single-Ended-/Differenzial-I/Os (für parallele LVDS-ADCs)
- Dedizierte Takt-, Trigger- und GA-Signal-Pins
- Hochstrom-Versorgungspins (die Tochterkarte versorgt sich selbst)
Ein FMC-HPC-Slot kann einen AD9643 (250-MSPS-ADC), AD9152 (DAC), AD9361 (Software Defined Radio), FT601 (USB3.0) oder sogar ein FMC-zu-40G-Optikmodul aufnehmen. Deshalb bestehen wir auf HPC statt LPC – LPC hat nur 10 Differenzial-I/O-Paare und kein GTX und kann einen Hochgeschwindigkeits-ADC überhaupt nicht anbinden.
2. On-Board-Pufferung: DDR3 ist nicht optional
Der ADC liefert kontinuierlich 875 MB/s, während PCIe 2.0 x8 eine theoretische Bandbreite von 4 GB/s hat – PCIe sieht schnell genug aus. Aber in einem realen System hat der Host immer Bursts: Betriebssystem-Planung, Host-Software-Verarbeitung, Datenträger-I/O. Ohne DDR3-Pufferung werden diese Bursts direkt zu verlorenen Abtastwerten.
Das 4-GB-DDR3 wirkt auf diesem Pfad als „elastisches Reservoir“: Was der ADC sendet, wird zuerst vollständig in das DDR3 geschrieben, und der PCIe-DMA transportiert es in großen Mengen ab, sobald der Host frei ist. Für eine 1-Sekunden-Burst-Erfassung können 875 MB Daten vollständig im DDR3 gespeichert werden, ohne einen einzigen Abtastwert zu verlieren. Mit 2 GB DDR3 halbiert sich die kontinuierliche Erfassungszeit.
3. FPGA-zu-Host-Übertragung: Der reale Unterschied zwischen PCIe x8 und x2
Dies ist der am leichtesten übersehene Punkt. Viele FPGA-Entwicklungsboards führen nur PCIe x2 aus – es sieht so aus, als wäre „PCIe vorhanden, das reicht“, aber die reale Bandbreite unterscheidet sich um den Faktor 4:
| PCIe-Konfiguration | Theoretische Bandbreite | Nutzbar (8B/10B-Codierung + Protokoll-Overhead) | Nachhaltige Erfassungsrate |
|---|---|---|---|
| PCIe 2.0 x2 | 1,0 GB/s | ca. 700 MB/s | Kann 14-Bit-Dualkanal-250MSPS nicht halten – Verluste |
| PCIe 2.0 x4 | 2,0 GB/s | ca. 1,5 GB/s | Knapp für Einkanal-250MSPS |
| PCIe 2.0 x8 | 4,0 GB/s | ca. 3,0 GB/s | Ausreichende Reserve für Dualkanal-250MSPS + Mehrkanal-Trigger |
Deshalb setzen die DUK7325T / DUK7410T von Duyuan PCIe auf x8 um – das Drittanbieter-Originalboard führt nur x2 aus; nicht weil der Chip es nicht unterstützt, sondern weil das Design gespart hat. Der Kintex-7-PCIe-Block ist hardwaremäßig Gen2 x8; auf der Platine braucht es nur 4 zusätzliche Differenzialpaare. Für Erfassungskunden ist der Unterschied zwischen x2 und x8 nicht „etwas schneller“ – es ist die Frage, ob die ADC-Abtastrate überhaupt gehalten werden kann.
4. Taktsynchronisation: Warum der 125-MHz-Differenzialoszillator zählt
Hochgeschwindigkeitserfassung ist äußerst empfindlich gegenüber Taktjitter. Der Jitter des ADC-Abtasttakts bestimmt direkt das Signal-Rausch-Verhältnis – ein 250-MSPS-ADC erfordert einen Abtasttakt-Jitter < 1 ps. Der On-Board-125-MHz-Differenzialoszillator ist den GTX-Transceivern gewidmet, der 200-MHz-Differenzialoszillator dient der FPGA-Logik; die beiden Taktdomänen sind getrennt, um gegenseitige Störungen zu vermeiden. Bei JESD204B-synchroner Erfassung beeinflusst diese Taktqualität direkt die Phasenkonsistenz der Kanäle.
3. Ein reales Fallbeispiel: 250-MSPS-Erfassungsprototyp mit DUK7410T
Duyuan Electronics hat kürzlich für einen Kunden einen Prototyp gebaut: einen Hochgeschwindigkeits-Digitalisierer auf Basis von DUK7410T + einer FMC-ADC9643-Tochterkarte eines Drittanbieters (AD9643, Dualkanal 14 Bit 250 MSPS).
DUK7410T + FMC AD9643 + Host-Software
- FPGA: JFM7K410T, 406K LC / 1.540 DSP / 28,6 Mb BRAM
- ADC: FMC-Tochterkarte AD9643, Dualkanal 14 Bit 250 MSPS
- Pufferung: On-Board-4-GB-DDR3
- Übertragung: PCIe 2.0 x8 DMA, gemessen 2,6 GB/s
- Trigger: FPGA-Hardware-Trigger (steigende/fallende Flanke, Fenster), Latenz < 50 ns
Gemessenes Ergebnis: Dualkanal-Dauererfassung über 1 Sekunde – 875 MB vollständig in das DDR3 geschrieben und dann über PCIe x8 an den Host übertragen, mit 0 verlorenen Abtastwerten. Mit dem PCIe x2 des Drittanbieter-Originalboards beginnt die Dauererfassung in derselben Konfiguration nach 0,6 Sekunden Abtastwerte zu verlieren – das ist die reale Kluft zwischen x8 und x2.
Nach der Verifikation dieses Prototyps baute der Kunde auf Basis des Kernboards von DUK7410T (83,8×64,8 mm) eine eigene Trägerplatine, ersetzte den FMC-Slot durch einen direkt aufgelöteten ADC, ersetzte den PCIe-Stecker durch eine Goldfinger-Kante und machte daraus 6 Monate später eine Serien-Erfassungskarte.
4. Die drei Duyuan-Boards für Erfassungsanwendungen im Vergleich
Nicht jedes Erfassungsprojekt braucht eine Virtex-7. Wählen Sie nach Abtastrate und Kanalzahl:
| Szenario | DUK7325T €1.133,50 | DUK7410T €1.416,80 | DUF7690T €3.541,50 |
|---|---|---|---|
| ADC-Abtastrate | ≤ 125 MSPS | ≤ 250 MSPS | ≥ 500 MSPS |
| ADC-Kanäle | 2 Kanäle | 2–4 Kanäle | 8+ Kanäle |
| DSP-Anforderung | Einfache Dezimation/FIR | Echtzeit-FIR/FFT | Pulskompression/MIMO-Radar |
| Optik-Synchronisation | 2×SFP+ | 2×SFP+ | QSFP 40G + 3×FMC |
| Typische Anwendung | Schwingungsüberwachung, Industrieerfassung | Digitalisierer, SDR-Prototyping | Phased-Array-Radar, Software Defined Radio |
Das Auswahlprinzip ist einfach: zuerst die gesamte ADC-Datenrate berechnen, dann die PCIe-Bandbreitenreserve, und schließlich prüfen, ob DSP/BRAM für die Echtzeitverarbeitung reichen. Für 80 % der Erfassungsprojekte mit niedriger und mittlerer Geschwindigkeit reicht DUK7325T; für Dualkanal-250MSPS oder einfaches Echtzeit-FFT steigen Sie auf DUK7410T um; nur für harte Fälle wie Radar, Ultrabreitband-SDR und Mehrkanal-Synchronisation brauchen Sie die 36-GTH-Paare und 3-FMC-Slots des DUF7690T.
Das Wesen der Hochgeschwindigkeitserfassung ist nicht „wie schnell Sie abtasten“, sondern „dass kein Glied der gesamten Kette versagt“. Schnell genuger ADC, parallel genuge FPGA, groß genuges DDR3, breit genuges PCIe, stabil genuger Takt – sparen Sie an einem Glied, und am Ende stehen verlorene Abtastwerte auf dem Bildschirm. FMC HPC + PCIe x8 + 4 GB DDR3 ist die minimale zuverlässige Konfiguration, die wir Kunden auf diesem Pfad zusammenstellen.
