Construire des cartes d’acquisition de données haute vitesse avec FPGA : pourquoi FMC HPC + PCIe x8 est la combinaison dorée
Oscilloscopes, digitizers, radars à réseau phasé, radios logicielles et surveillance des vibrations haute vitesse — le cœur de tous ces systèmes est « échantillonnage ADC haute vitesse → empaquetage de données → transfert vers l’hôte pour traitement ». Pourquoi cette étape doit-elle utiliser un FPGA plutôt qu’un MCU, un DSP ou un CPU échantillonnant directement ? Pourquoi le connecteur FMC HPC et l’interface PCIe x8 sont-ils devenus la combinaison dorée pour les cartes d’acquisition haute vitesse ? Cet article part d’un projet réel d’acquisition 250 MSPS.
1. Pourquoi l’acquisition haute vitesse exige un FPGA
Commençons par les chiffres. Un ADC haute vitesse typique comme l’AD9643 : 14 bits, 250 MSPS, double canal. En conversion en débit de données :
Double canal 14 bits @ 250 MSPS
= 2 ch × 14 bit × 250 MS/s
= 7,0 Gbps de débit de données brutes
= 875 Mo/s de flux de données continu
Cela signifie que chaque seconde 875 Mo de données échantillonnées doivent être déplacées de l’ADC vers la mémoire hôte. Si un lien quelconque dans la chaîne ne peut pas suivre, des échantillons sont perdus :
- MCU / ARM : ports SPI/parallèle plafonnent à 50 Mo/s, 17× trop court — échantillons perdus immédiatement
- DSP : ports DMA plafonnent à 200 Mo/s, 4× trop court — échantillons perdus quand le buffer se remplit
- CPU lisant GPIO directement : la latence d’ordonnancement OS rend un cycle de lecture unique de l’ordre de 10 μs — comme attraper une cascade avec un seau
La valeur du FPGA : c’est un circuit matériel parallèle et déterministe. Le flux de données LVDS de l’ADC arrive, et le FPGA utilise des primitives IDDR pour recevoir 8 paires différentielles sur chaque front d’horloge, effectuant la désérialisation, l’alignement, le timestamping, le buffer FIFO, puis transfère en bloc les données vers l’hôte via DMA PCIe. Toute la chaîne n’a pas d’ordonnancement OS, pas de cache miss, pas de latence d’interruption — les cycles d’horloge sont déterministes.
C’est pourquoi le cœur de contrôle de chaque carte d’acquisition haute vitesse industrielle, oscilloscope et digitizer est un FPGA — pas parce que le FPGA est plus intelligent qu’un CPU, mais parce qu’il est assez rapide, déterministe et parallèle.
2. Architecture standard d’une carte d’acquisition haute vitesse
Le chemin de données complet ressemble à ceci :
Signal analogique ───▶ ADC haute vitesse (carte fille FMC) → LVDS / JESD204B → logique FPGA (désérialisation / alignement / trigger / décimation / FIFO) → buffer DDR3 (capture burst, cushion d’underrun) → DMA PCIe 2.0 x8 → mémoire hôte → logiciel hôte
Il y a quatre goulots critiques sur ce chemin, et chacun détermine la performance réelle de la carte d’acquisition :
1. Lien physique de l’ADC au FPGA : FMC HPC
Les cartes filles ADC haute vitesse ne sont pas soudées directement sur la carte principale — elles sont construites comme des cartes filles standard FMC (FPGA Mezzanine Card). Le connecteur FMC HPC fournit :
- 8 paires séries haute vitesse GTX (jusqu’à 6,6 Gbps, pour JESD204B)
- 168 IO simples/différentielles (pour ADC LVDS parallèles)
- Broches dédiées d’horloge, trigger et signal GA
- Broches d’alimentation fort courant (la carte fille s’alimente elle-même)
Un slot FMC HPC peut héberger un AD9643 (ADC 250 MSPS), AD9152 (DAC), AD9361 (radio logicielle), FT601 (USB3.0) ou même un module optique FMC-vers-40G. C’est pourquoi nous insistons sur HPC plutôt que LPC — LPC n’a que 10 paires d’IO différentielles et pas de GTX, donc il ne peut pas connecter un ADC haute vitesse du tout.
2. Buffer embarqué : DDR3 n’est pas optionnel
L’ADC sort continuellement 875 Mo/s, tandis que PCIe 2.0 x8 a une bande passante théorique de 4 Go/s — PCIe semble assez rapide. Mais dans un système réel l’hôte a toujours des bursts : ordonnancement OS, traitement logiciel hôte, E/Z disque. Sans buffer DDR3, ces bursts se transforment directement en échantillons perdus.
La DDR3 4 Go agit comme un « réservoir élastique » sur ce chemin : quoi que l’ADC envoie est accepté et écrit d’abord dans la DDR3, et le DMA PCIe le sort en bloc chaque fois que l’hôte est libre. Pour une capture burst one-shot de 1 seconde, 875 Mo de données peuvent être stockés complètement en DDR3 sans perdre un seul échantillon. Avec 2 Go DDR3, le temps de capture continu est divisé par deux.
3. Transfert FPGA-vers-hôte : la vraie différence entre PCIe x8 et x2
C’est le point le plus facilement négligé. Beaucoup de cartes de développement FPGA n’exposent que PCIe x2 — cela ressemble à « il y a PCIe, c’est assez », mais la bande passante réelle diffère de 4× :
| Configuration PCIe | Bande passante théorique | Utilisable (encodage 8B/10B + surcharge protocole) | Débit d’acquisition soutenable |
|---|---|---|---|
| PCIe 2.0 x2 | 1,0 Go/s | ~700 Mo/s | Ne peut pas soutenir le double canal 14 bits 250 MSPS — échantillons perdus |
| PCIe 2.0 x4 | 2,0 Go/s | ~1,5 Go/s | Marginal pour mono-canal 250 MSPS |
| PCIe 2.0 x8 | 4,0 Go/s | ~3,0 Go/s | Marge ample pour double canal 250 MSPS + trigger multi-canal |
C’est pourquoi les DUK7325T / DUK7410T de Duyuan implémentent tous deux PCIe en x8 — la carte originale tierce n’expose que x2 ; pas parce que la puce ne le supporte pas, mais parce que le design a économisé le coût. Le bloc PCIe Kintex-7 est Gen2 x8 en matériel ; cela ne prend que 4 paires différentielles de plus sur le PCB. Pour les clients d’acquisition, la différence entre x2 et x8 n’est pas « un peu plus rapide » — c’est si le débit d’échantillonnage ADC peut être soutenu du tout.
4. Synchronisation d’horloge : pourquoi l’oscillateur différentiel 125 MHz est important
L’acquisition haute vitesse est extrêmement sensible à la gigue d’horloge. La gigue de l’horloge d’échantillonnage ADC détermine directement le rapport signal-sur-bruit — un ADC 250 MSPS requiert une gigue d’horloge d’échantillonnage < 1 ps. L’oscillateur différentiel 125 MHz embarqué est dédié aux transceivers GTX, et l’oscillateur différentiel 200 MHz dessert la logique FPGA ; les deux domaines d’horloge sont gardés séparés pour éviter la contamination mutuelle. Pour l’acquisition synchronisée JESD204B, cette qualité d’horloge affecte directement la cohérence de phase multi-canal.
3. Un cas réel : construire un prototype d’acquisition 250 MSPS avec DUK7410T
Duyuan Electronics a récemment aidé un client à construire un prototype : un digitizer haute vitesse basé sur DUK7410T + une carte fille tierce FMC-ADC9643 (AD9643, double canal 14 bits 250 MSPS).
DUK7410T + FMC AD9643 + logiciel hôte
- FPGA : JFM7K410T, 406K LC / 1 540 DSP / 28,6 Mb BRAM
- ADC : carte fille FMC AD9643, double canal 14 bits 250 MSPS
- Buffer : 4 Go DDR3 embarqués
- Transfert : DMA PCIe 2.0 x8, mesuré 2,6 Go/s
- Trigger : trigger matériel FPGA (front montant/descendant, fenêtre), latence < 50 ns
Résultat mesuré : capture continue double canal pendant 1 seconde — 875 Mo écrits complètement en DDR3, puis déplacés vers l’hôte sur PCIe x8, avec 0 échantillon perdu. Avec le PCIe x2 de la carte originale tierce, la capture continue dans la même configuration commence à perdre des échantillons après 0,6 seconde — c’est le vrai gap entre x8 et x2.
Une fois ce prototype vérifié, le client a construit sa propre carte porteuse autour du core board DUK7410T (83,8×64,8 mm), a remplacé le slot FMC par un ADC soudé directement sur la carte, a remplacé le connecteur PCIe par un edge gold-finger, et en a fait une carte d’acquisition de production 6 mois plus tard.
4. Choisir parmi les trois cartes Duyuan pour l’acquisition
Tous les projets d’acquisition n’ont pas besoin d’un Virtex-7. Choisissez par fréquence d’échantillonnage et nombre de canaux :
| Scénario | DUK7325T 1 231 $ | DUK7410T 1 538 $ | DUF7690T 3 846 $ |
|---|---|---|---|
| Fréquence d’échantillonnage ADC | ≤ 125 MSPS | ≤ 250 MSPS | ≥ 500 MSPS |
| Canaux ADC | 2 canaux | 2–4 canaux | 8+ canaux |
| Besoins DSP | Décimation/FIR simple | FIR/FFT temps réel | Compression d’impulsion/radar MIMO |
| Sync optique | 2×SFP+ | 2×SFP+ | QSFP 40G + 3×FMC |
| Usage typique | Surveillance vibration, acquisition industrielle | Digitizers, prototype SDR | Radar à réseau phasé, radio logicielle |
Le principe de sélection est simple : calculez d’abord le débit de données ADC total, puis la marge de bande passante PCIe, et enfin si le DSP/BRAM est assez pour le traitement temps réel. Pour 80 % des projets d’acquisition basse et moyenne vitesse, DUK7325T est assez ; pour le double canal 250 MSPS ou FFT temps réel simple, passez à DUK7410T ; seulement pour les cas difficiles comme radar, SDR ultra-large bande et synchronisation multi-canal vous avez besoin des 36 paires GTH et 3 slots FMC de DUF7690T.
L’essence de l’acquisition haute vitesse n’est pas « à quelle vitesse vous échantillonnez », mais « aucun lien dans toute la chaîne ne faiblit ». ADC assez rapide, FPGA assez parallèle, DDR3 assez grande, PCIe assez large, horloge assez stable — lésinez sur un lien quelconque et cela devient éventuellement des échantillons perdus sur l’écran. FMC HPC + PCIe x8 + 4 Go DDR3 est la configuration minimale fiable que nous mettons ensemble pour les clients sur ce chemin.
