宽带 SDR 前端怎么搭:从 ADC 到 FPGA 的信号链路
软件无线电(SDR)的核心是:把射频信号尽量数字化,剩下的信号处理交给 FPGA。一个宽带 SDR 前端的典型链路是:天线 → LNA → 混频 → ADC → FPGA(DDC + FFT + 解调)。这条链路上,FPGA 侧的收发器带宽、DDR 缓冲、DSP 算力决定了你能做多宽的瞬时带宽。
一、SDR 前端的信号链路
一个完整的宽带 SDR 接收链路:
1. 天线 + RF 前端:接收空中信号,经过 LNA(低噪放)放大、带通滤波。
2. 混频 / 直采:要么下变频到中频再采样,要么直接 RF 直采(宽带 ADC 采样 DC~6GHz)。
3. ADC 采样:把模拟信号数字化,输出 JESD204B 串行数据。
4. FPGA 处理:接收 JESD204B → DDC(数字下变频)→ FFT / 解调 → PCIe 上传主机。
FPGA 在这条链路上要做三件事:接住高速串行数据、做实时数字下变频、把数据通过 PCIe 传给主机。这三件事决定了 FPGA 的选型。
二、瞬时带宽怎么算
SDR 最核心的指标是瞬时带宽(Instantaneous Bandwidth, IBW)——ADC 采样后,FPGA 能实时处理的带宽宽度。
| 指标 | 计算公式 | 示例(AD9680 14-bit 1GSPS) |
|---|---|---|
| ADC 采样率 | f_s | 1 GSPS |
| 理论奈奎斯特带宽 | f_s / 2 | 500 MHz |
| DDC 后输出带宽 | f_s / decimation | dec=4 → 125 MHz |
| JESD204B 线速率 | f_s × 14 bit × 帧开销 | ≈ 10.24 Gbps/lane |
| FPGA 收发器对数 | lanes per ADC | AD9680 → 4 lanes |
带宽预算实例
项目要求:瞬时带宽 100 MHz,双路 ADC。
- ADC:AD9680(14-bit, 1 GSPS, JESD204B),每路 4 lanes @ 10.24 Gbps。
- 双路 ADC:需要 8 对收发器。
- DDC 后数据率:100 MHz × 2 ch × 16 bit (I/Q) = 3.2 GB/s。
- PCIe Gen2 x8 理论带宽 ≈ 3.2 GB/s → 刚好打满,需要留余量。
- 结论:选 DUK7410T(8 对 GTP + PCIe Gen2 x8)刚好,但要做 DMA 乒乓缓冲。
三、FPGA 侧资源需求
SDR 前端 FPGA 需要的资源:
| 资源 | 用途 | 典型需求(双路 100 MHz IBW) |
|---|---|---|
| 高速收发器 | JESD204B 接收 + PCIe 上传 | 8(ADC)+ 4(PCIe)= 12 对 |
| DSP slice | DDC NCO + FIR 滤波 + FFT | ~500~800 |
| BRAM | FIFO 缓冲 + 乒乓 | ~20~40 MB |
| DDR 带宽 | 大块数据缓冲 + PCIe DMA | ≥ 5 GB/s |
| 逻辑单元 | JESD204B IP + DDC + PCIe DMA | ~100K~150K LC |
四、按板卡选型
入门:DUK7410T(¥9,999)——单路 100 MHz SDR
8 对 GTP 刚好接一块 AD9680 子卡(4 lanes),剩余 4 对跑 PCIe Gen2 x8。4GB DDR3 做乒乓缓冲。适合教学、单通道频谱监测。
主力:DUF7690T(¥24,999)——双路 200 MHz SDR
36 对 GTH @10.3G,双 FMC HPC 接两块 ADC 子卡。3,600 DSP slice 跑 8 通道 DDC 无压力。PCIe Gen3 x8 带宽翻倍。适合宽带频谱监测、电子对抗原型。
高端:XCKU15P(¥15,999)——RF 直采 SDR
GTY 28G 收发器支持 JESD204C 线速率 24Gbps。8GB DDR4 ECC 19.2 GB/s。适合 RF 直采(6GHz ADC)、多通道 MIMO、相控阵原型。
五、三个常见坑
坑 1:JESD204B 线速率超出发收器上限
AD9680 全速 1 GSPS 时 lane rate ≈ 10.24 Gbps。DUK7410T 的 GTP 最高 6.6 Gbps——接不了!必须降采样到 250 MSPS(lane rate ≈ 2.5 Gbps)才能用。或者换 DUF7690T(GTH @10.3G)。
坑 2:DDR 带宽不够,数据丢包
DDC 后 3.2 GB/s 数据要写 DDR 再读出来走 PCIe。DDR3 14.9 GB/s 理论够,但实际读写切换效率只有 60%——≈ 9 GB/s。双路同时跑时要算清楚,不够就上 DDR4。
坑 3:时钟没对齐,JESD204B 锁不上
JESD204B 需要 Device Clock + SYSREF 对齐。ADC 子卡的时钟必须通过 FMC CLK0 引脚接到 FPGA 的 MRCC/SRCC 全局时钟引脚上。PCB 布线错了,芯片换再贵也没用。
SDR 前端不是买最贵的 FPGA,而是把 ADC 线速率、瞬时带宽、DDR 缓冲、PCIe 上传这四笔账算清楚。收发器对数够不够、DSP 够不够、DDR 带宽够不够——三笔账算完,板卡选型自然出来。
