Construindo Placas de Aquisição de Dados de Alta Velocidade com FPGA: Por Que FMC HPC + PCIe x8 é a Combinação Dourada
Osciloscópios, digitizadores, radares de array faseado, rádios definidos por software e monitoramento de vibração de alta velocidade — o núcleo de todos estes sistemas é “amostragem ADC de alta velocidade → empacotamento de dados → transferência ao host para processamento”. Por que este passo precisa usar FPGA em vez de um MCU, um DSP ou uma CPU amostrando diretamente? Por que o conector FMC HPC e a interface PCIe x8 se tornaram a combinação dourada para placas de aquisição de alta velocidade? Este artigo parte de um projeto real de aquisição 250MSPS.
1. Por Que a Aquisição de Alta Velocidade Exige um FPGA
Comecemos pelos números. Um ADC de alta velocidade típico como o AD9643: 14-bit, 250 MSPS, dual channel. Convertendo para taxa de dados:
Canal duplo 14-bit @ 250 MSPS
= 2 ch × 14 bit × 250 MS/s
= 7,0 Gbps de taxa de dados bruta
= 875 MB/s de stream contínuo
Isto significa que a cada segundo 875MB de dados amostrados precisam ser movidos do ADC à memória do host. Se qualquer elo da cadeia não acompanha, amostras são perdidas:
- MCU / ARM: portas SPI/paralela chegam no máximo a 50MB/s, 17× abaixo — amostras perdidas imediatamente
- DSP: portas DMA chegam no máximo a 200MB/s, 4× abaixo — amostras perdidas quando o buffer enche
- CPU lendo GPIO diretamente: a latência de escalonamento do OS torna um ciclo de leitura único de classe 10μs — como pegar uma cachoeira com um balde
O valor do FPGA: é um circuito de hardware paralelo e determinístico. O stream de dados LVDS do ADC entra, e o FPGA usa primitivas IDDR para receber 8 pares diferenciais a cada borda de clock, fazendo desserialização, alinhamento, timestamping, bufferização FIFO, e depois transfere dados em bloco ao host via PCIe DMA. A cadeia inteira não tem escalonamento de OS, sem cache misses, sem latência de interrupção — os ciclos de clock são determinísticos.
É por isso que o núcleo de controle de toda placa de aquisição de alta velocidade industrial, osciloscópio e digitizador é um FPGA — não porque o FPGA seja mais esperto que uma CPU, mas porque é rápido, determinístico e paralelo o suficiente.
2. Arquitetura Padrão de uma Placa de Aquisição de Alta Velocidade
O caminho completo de dados é assim:
Sinal analógico ───▶ ADC de alta velocidade (placa filha FMC) → LVDS / JESD204B → lógica FPGA (desserialização / alinhamento / trigger / decimação / FIFO) → buffer DDR3 (captura em rajada, amortecimento de underrun) → PCIe 2.0 x8 DMA → memória do host → software do host
Há quatro gargalos críticos neste caminho, e cada um deles determina o desempenho real da placa de aquisição:
1. Link Físico do ADC ao FPGA: FMC HPC
Placas filha ADC de alta velocidade não são soldadas diretamente na placa principal — são construídas como placas filha padrão FMC (FPGA Mezzanine Card). O conector FMC HPC fornece:
- 8 pares seriais de alta velocidade GTX (até 6,6 Gbps, para JESD204B)
- 168 IOs single-ended/diferenciais (para ADCs paralelos LVDS)
- Pinos dedicados de clock, trigger e sinal GA
- Pinos de potência de alta corrente (a placa filha se alimenta)
Um slot FMC HPC hospeda um AD9643 (ADC 250MSPS), AD9152 (DAC), AD9361 (rádio definido por software), FT601 (USB3.0) ou até um módulo óptico FMC-para-40G. É por isso que insistimos em HPC em vez de LPC — o LPC tem apenas 10 pares de IO diferencial e nenhum GTX, então não conecta um ADC de alta velocidade.
2. Buffer On-Board: DDR3 Não é Opcional
O ADC gera continuamente 875MB/s, enquanto o PCIe 2.0 x8 tem uma banda teórica de 4GB/s — o PCIe parece rápido o bastante. Mas em um sistema real o host sempre tem rajadas: escalonamento de OS, processamento do software do host, disco I/O. Sem bufferização DDR3, essas rajadas viram direto amostras perdidas.
Os 4GB DDR3 agem como um “reservatório elástico” neste caminho: tudo o que o ADC envia é aceito e escrito na DDR3 primeiro, e o PCIe DMA move para fora em bloco sempre que o host está livre. Para uma captura one-shot de 1 segundo, 875MB de dados podem ser armazenados completamente na DDR3 sem perder uma única amostra. Com 2GB DDR3, o tempo de captura contínua é cortado pela metade.
3. Transferência FPGA-ao-Host: A Diferença Real Entre PCIe x8 e x2
Este é o ponto mais facilmente negligenciado. Muitas placas de desenvolvimento FPGA expõem apenas PCIe x2 — parece “tem PCIe, isso basta”, mas a banda real difere em 4×:
| Configuração PCIe | Banda teórica | Utilizável (codificação 8B/10B + overhead de protocolo) | Taxa de aquisição sustentável |
|---|---|---|---|
| PCIe 2.0 x2 | 1,0 GB/s | ~700 MB/s | Não sustenta 14-bit dual-channel 250MSPS — amostras perdidas |
| PCIe 2.0 x4 | 2,0 GB/s | ~1,5 GB/s | Marginal para canal único 250MSPS |
| PCIe 2.0 x8 | 4,0 GB/s | ~3,0 GB/s | Folga ampla para dual-channel 250MSPS + trigger multicanal |
É por isso que as DUK7325T / DUK7410T da Duyuan implementam PCIe em x8 — a placa original de terceiros expõe apenas x2; não porque o chip não suporte, mas porque o design economizou custo. O bloco PCIe do Kintex-7 é Gen2 x8 em hardware; basta 4 pares diferenciais a mais na PCB. Para clientes de aquisição, a diferença entre x2 e x8 não é “um pouco mais rápido” — é se a taxa de amostragem do ADC consegue ser sustentada.
4. Sincronismo de Clock: Por Que o Oscilador Diferencial de 125MHz Importa
A aquisição de alta velocidade é extremamente sensível ao jitter de clock. O jitter do clock de amostragem do ADC determina diretamente a relação sinal-ruído — um ADC de 250MSPS exige jitter de clock de amostragem < 1ps. O oscilador diferencial de 125MHz on-board é dedicado aos transceptores GTX, e o oscilador diferencial de 200MHz serve à lógica do FPGA; os dois domínios de clock são mantidos separados para evitar contaminação mútua. Para aquisição sincronizada JESD204B, esta qualidade de clock afeta diretamente a consistência de fase multicanal.
3. Um Caso Real: Construindo um Protótipo de Aquisição 250MSPS com DUK7410T
A Duyuan Electronics ajudou recentemente um cliente a construir um protótipo: um digitizador de alta velocidade baseado em DUK7410T + uma placa filha FMC-ADC9643 de terceiros (AD9643, dual-channel 14-bit 250MSPS).
DUK7410T + FMC AD9643 + Software do Host
- FPGA: JFM7K410T, 406K LC / 1.540 DSP / 28,6 Mb BRAM
- ADC: placa filha FMC AD9643, dual-channel 14-bit 250MSPS
- Buffer: 4GB DDR3 on-board
- Transferência: PCIe 2.0 x8 DMA, medido 2,6 GB/s
- Trigger: trigger de hardware FPGA (borda de subida/descida, janela), latência < 50ns
Resultado medido: captura contínua dual-channel por 1 segundo — 875MB escritos completamente na DDR3, depois movidos ao host via PCIe x8, com 0 amostras perdidas. Com o PCIe x2 da placa original de terceiros, a captura contínua na mesma configuração começa a perder amostras após 0,6 segundos — essa é a diferença real entre x8 e x2.
Depois que este protótipo foi verificado, o cliente construiu sua própria placa carrier em torno da placa núcleo DUK7410T (83,8×64,8mm), trocou o slot FMC por um ADC soldado diretamente na placa, trocou o conector PCIe por uma borda gold-finger, e virou uma placa de aquisição de produção 6 meses depois.
4. Escolhendo Entre as Três Placas da Duyuan para Aquisição
Nem todo projeto de aquisição precisa de um Virtex-7. Escolha pela taxa de amostragem e contagem de canais:
| Cenário | DUK7325T $1,231 | DUK7410T $1,538 | DUF7690T $3,846 |
|---|---|---|---|
| Taxa de amostragem ADC | ≤ 125 MSPS | ≤ 250 MSPS | ≥ 500 MSPS |
| Canais ADC | 2 canais | 2–4 canais | 8+ canais |
| Demanda DSP | Decimação/FIR simples | FIR/FFT em tempo real | Compressão de pulso/MIMO radar |
| Sinc. óptico | 2×SFP+ | 2×SFP+ | QSFP 40G + 3×FMC |
| Uso típico | Monitoramento de vibração, aquisição industrial | Digitizadores, prototipagem SDR | Radar de array faseado, rádio definido por software |
O princípio de seleção é simples: primeiro calcular a taxa total de dados do ADC, depois a folga da banda PCIe, e finalmente se o DSP/BRAM é suficiente para processamento em tempo real. Para 80% dos projetos de aquisição de velocidade média-baixa, o DUK7325T basta; para 250MSPS dual-channel ou FFT em tempo real simples, suba para o DUK7410T; apenas para casos difíceis como radar, SDR de banda ultralarga e sincronização multicanal você precisa dos 36 pares GTH e dos 3 slots FMC do DUF7690T.
A essência da aquisição de alta velocidade não é “quão rápido você amostra”, mas “nenhum elo da cadeia inteira falhar”. ADC rápido o bastante, FPGA paralelo o bastante, DDR3 grande o bastante, PCIe largo o bastante, clock estável o bastante — economize em qualquer elo e ele eventualmente vira amostras perdidas na tela. FMC HPC + PCIe x8 + 4GB DDR3 é a configuração mínima confiável que montamos para clientes neste caminho.
