4. LVDS与JESD204B接口原理
在高速采集系统中,ADC与FPGA之间的数据接口决定了系统能跑多快、能同步多少通道、以及系统上电后能否稳定复现同一延迟。LVDS与JESD204B是两类典型接口:前者是并行差分物理层,后者是面向多通道、多器件同步的串行链路协议。理解它们的关键,不是记住速率数字,而是看清数据从采样到进入FPGA内部寄存器的完整路径。
一、LVDS:并行差分的物理层
LVDS(Low-Voltage Differential Signaling)本质是一种物理层标准:用约350 mV的差分摆幅、约3.5 mA的恒流源驱动,在100 Ω差分线上传输。它的优势是功耗低、抗共模干扰强、边沿快。在ADC侧,常见形式是DDR(双沿采样)输出:数据位在时钟的上升沿和下降沿都更新,因此一条数据线每周期传2 bit。
以一款14 bit、250 MSPS的ADC为例,若采用DDR LVDS输出,每对数据线每周期传2 bit,则14 bit需要7对数据线,再加1对随路时钟(DCO)和1对帧时钟(FCO)。FPGA侧接收时,DCO用于采样数据,FCO用于确定帧边界。这里有一个容易忽略的细节:DCO与数据之间的相位关系由ADC内部决定,FPGA必须用IDELAY或IDELAYCTRL对每条数据线做独立延迟校准,否则采样点会落在数据跳变沿附近,导致误码。
LVDS的局限也很明显:线对数随分辨率线性增长,16 bit、18 bit时PCB布线压力大;多器件同步需要额外处理FCO/DCO的相位对齐;速率提升后,DDR时序窗口变窄,对FPGA的输入延迟校准精度要求更高。因此,当通道数多、分辨率高、速率超过约500 MSPS时,JESD204B成为更主流的选择。
二、JESD204B:串行化与链路层
JESD204B把ADC的并行数据先做8b/10b编码,再串行化到高速SerDes通道上。一条lane的线速率可达数Gbps,因此原本需要十几对LVDS线的数据,现在可能只需要1~2条lane。它的核心参数包括:M(转换器数)、L(lane数)、F(每帧每lane的字节数)、K(每多帧的帧数)、S(每帧每转换器的采样数)、N(分辨率)、N'(打包后的位宽,通常为16)。
链路建立不是一上电就传数据,而是分阶段完成。JESD204B定义了三个状态:代码组同步(CGS)、初始通道对齐(ILAS)、用户数据阶段。CGS阶段,接收端(FPGA)发送SYNC请求,发送端(ADC)持续发送K28.5字符;当FPGA连续收到4个正确的K28.5后,拉高SYNC。ILAS阶段,ADC发送4个多帧的ILAS序列,包含链路配置参数和通道对齐信息。FPGA据此完成lane间对齐,随后进入用户数据阶段。
这里的关键是“确定性延迟”:从ADC采样时刻到FPGA内部收到对应样本,延迟必须是固定值,且每次上电、每次复位后都一致。JESD204B通过SYSREF信号实现这一点。SYSREF是一个与采样时钟同源的低速参考信号,它同时送到ADC和FPGA,用于对齐各自的本地多帧计数器(LMFC)。只要SYSREF的建立/保持时间满足要求,所有器件的LMFC相位就一致,延迟就确定。
三、多器件同步与确定性延迟
多片ADC同步时,仅靠SYSREF对齐LMFC还不够。假设系统中有4片ADC,每片2个通道,共8个通道。每片ADC的lane数、F值、K值必须一致,否则LMFC周期不同,无法对齐。SYSREF的走线长度必须匹配,通常要求等长误差控制在采样时钟周期的1/10以内。以250 MSPS、周期4 ns为例,1/10即400 ps,对应PCB上约60 mm的走线差。如果SYSREF到达不同ADC的时间差超过这个值,LMFC相位就会错开,通道间出现固定但未知的采样偏移。
确定性延迟的验证方法:在FPGA内部用一个已知的测试序列(如递增计数器)从ADC的测试模式输出,FPGA接收后比较延迟。更实用的做法是:给所有ADC同一模拟输入(如正弦波),在FPGA内比较各通道样本的相位差。若相位差在多次上电后保持一致,说明确定性延迟成立;若每次上电相位差随机,则SYSREF或LMFC配置有问题。
四、FPGA侧接收要点
FPGA侧接收JESD204B链路,通常使用厂商提供的IP核(如Xilinx JESD204B IP或Intel JESD204B IP)。配置时需注意以下几点:
- 参考时钟与线速率匹配:SerDes的参考时钟必须与ADC的线速率成整数比。例如线速率6.25 Gbps,参考时钟可选125 MHz(50倍)或156.25 MHz(40倍),具体取决于FPGA的PLL范围。
- 弹性缓冲深度:FIFO深度要能吸收lane间偏斜和时钟域差异。偏斜通常来自PCB走线不等长和SerDes内部延迟差异,典型值在几个UI到几十个UI之间。深度不足会导致溢出或下溢,表现为数据错位或周期性误码。
- 错误检测:JESD204B链路层有8b/10b解码错误、ILAS校验错误、FIFO溢出/下溢等状态位。FPGA应把这些状态引出到寄存器,便于在线监测。若8b/10b错误计数持续增长,说明信号完整性或均衡设置有问题。
- 眼图与均衡:高速SerDes接收端通常有CTLE(连续时间线性均衡)和DFE(判决反馈均衡)。在6 Gbps以上,PCB损耗可能超过10 dB,需要开启均衡。调试时可通过FPGA内部的眼图扫描功能观察眼高和眼宽,判断是否需要调整均衡参数。
五、LVDS与JESD204B的选型对比
| 对比项 | LVDS | JESD204B |
|---|---|---|
| 物理层 | 并行差分,DDR | 串行SerDes,8b/10b |
| 线对数 | 随分辨率线性增长 | 1~4条lane,与通道数相关 |
| 多器件同步 | 需额外对齐FCO/DCO | SYSREF + LMFC,确定性延迟 |
| 典型速率 | ≤ 500 MSPS | ≥ 500 MSPS,可达数Gbps |
| FPGA资源 | 普通IO + IDELAY | SerDes + JESD204B IP |
选型时,若系统通道数少、速率低、成本敏感,LVDS更简单直接;若通道数多、速率高、要求多器件同步和确定性延迟,JESD204B是必然选择。实际工程中,两者也常共存:低速辅助通道用LVDS,高速主通道用JESD204B。