本章将根据高速数据采集指标要求,分析并确定高速数据采集模块的设计方
案,由此分析数据存储需求及存储速度需求给出高速大容量数据存储方案,完成
双通道高速数据采集模块总体设计方案,并综合采集、存储方案及 AXIe 接口需求
给出逻辑器件选型。
2.1 高速数据采集模块指标及方案分析
2.1.1 高速数据采集指标
本文基于 AXIe 测试总线平台的高速数据采集模块主要技术指标如下:
1 )最大采样率: 6.4GSPS
2 ) ADC 分辨率: 12bits
3 )通道数: 2
4 )模拟输入带宽: 1GHz
5 )耦合: DC
6 )输入信号幅值: 125mV 、 250mV 、 500 mV 、 1V
7 )信噪比: 54dB@380MHz
8 )存储深度: 2Gpts
9 )传输:支持 AXIe 规范中 PCIe 2.0 版本四通道、 5.0Gbps 的接口协议
10 )触发及同步:支持标准 AXIe 总线的触发、同步功能
2.1.2 高速数据采集方案
数据采集模块首先需实现模拟信号的数字化,其后才能对数字化信号进行缓
存、滤波及传输等处理。 ADC 作为数据采集模块的关键器件,其性能指标影响着
整个采集模块的性能。当 ADC 采样率较低时,可采用等效采样技术与时间交替采
样技术实现高采样率的数据采集 [13] 。等效采样技术主要针对重复性的周期信号,
具有局限性;而时间交替采样技术对信号没有限制,应用更为广泛。时间交替采
样结构如图 2-1 所示,多个 ADC 同时采样同一信号,各 ADC 的采样时钟以固定
相位差驱动对应 ADC ,采样数据在后端接收器件中按时间顺序拼合。通过时间交
替采样,采集系统的采样率将提高至多个 ADC 采样率之和。
根据该采集模块的采样率及分辨率指标,在 TI 及 ADI 公司官网以采样率
3.2GSPS 或 6.4GSPS 及分辨率 12bits 为关键信息筛选出两款 ADC 芯片,分别为
ADC12D1600 、 ADC12DJ3200 。 ADC12D1600 最高采样率为 3.2GSPS ,分辨率为
12bits , ADC12DJ3200 最高采样率为 6.4GSPS ,分辨率为 12bits 。其中 ADC12D1600
在时间交替采样的情况下也能达到 6.4GSPS 的采样率,因此 ADC12D1600 及
ADC12DJ3200 在采样率及分辨率上都能满足采集模块的指标要求。下文将讨论这
两款芯片实现 6.4GSPS 数据采集的方案。
ADC12D1600 内部集成了两个 ADC 内核,有两种工作模式,一个是单沿采样
模式,另一个是双沿采样模式 [14] 。单沿采样模式时,两个 ADC 内核在时钟上升沿
分别采样对应通道输入信号,最高采样率为 1.6GSPS ;双沿采样模式时,两个 ADC
内核分别在时钟上升沿及下降沿采样采样同一通道输入信号,最高采样率为
3.2GSPS 。 ADC12D1600 的数据输出采用 LVDS 并行接口,一位数据位采用一对
LVDS 差分线,则 ADC12D1600 需要 12 对数据线。 LVDS 并行接口还需要同步时
钟信号,即一对时钟差分线用于 FPGA 内部同步接收并处理采样数据。采用
ADC12D1600 实现 6.4GSPS 采样的方案如图 2-2 所示,模拟信号经前端电路一分
为二送入两片 ADC 的输入端, ADC 工作在双沿采样模式,则两块 ADC 的采样时
钟均为 1.6GHz ,且两块 ADC 的时钟相位差为 90 °,然后将采样数据经 LVDS 并
行接口传输至后端按照采样时钟顺序重组数据,完成 6.4GSPS 、 12bits 数据采样。
ADC12DJ3200 芯片内部集成了三个 ADC 内核,分别称为 ADC A 、 ADC B 及
ADC C , ADC C 通常用于后端误差校正模式时周期性地代替 ADC A 或者 ADC B
工作以保证正常采集 [15] 。因此,同 ADC12D1600 一样, ADC12DJ3200 也有两种工
作模式,当其工作在双沿采样(单通道)模式的时候便能实现最高 6.4GSPS 的采
样。 ADC12DJ3200 采用 JESD204B 数据输出接口以应对数据速率的提升。
JESD204B 采用 CDR 技术( Clock Data Recovery ,时钟数据恢复)从数据中恢复时
钟,因此没有时钟线,仅有数据线。 ADC12DJ3200 最多有 16 条数据传输通道,
当工作在单通道模式时,可选择 8 通道或者 16 通道。由于没有同步时钟信号,
JESD204B 子类 1 通过系统参考时钟及同步信号实现同步功能。因此,对采用
JESD204B 子类 1 实现采样数据传输的采集模块,其时钟电路不仅需要提供 ADC
及 FPGA 的工作时钟用于完成数据采样,解串及恢复,而且需要提供系统参考时
钟用于产生衍生时钟,与同步信号一起完成链路建立及同步。图 2-3 为采用
ADC12DJ3200 实现 6.4GSPS 采样的方案。
LMH5401 是一款可使用外部电阻设置增益的全差分放大器 [16] ,在增益为 4V/V
( 12dB )时,可实现 6GHz 的最大信号带宽。本文采用 LMH5401 实现直流耦合的单
端信号转差分信号,电路如图 2-4 所示,接地端经与输入源电阻同阻值的电阻接地,
以使输入阻抗与给定源阻抗匹配。
LMH5401 输出和 LMH6401 输入之间的接口具有 1.61dB 的电压损耗,则在 LMH6401
内部 10 电阻之前输出的电压增益范围为 -1.61dB 至 30.39dB 。由于输入端损耗为
6dB ,则输入端电压增益范围为 -7.61dB 至 24.39dB ,满足 0dB 至 18dB 增益要求。
由上述分析可得本文不同量程对应的 LMH6401 增益设置值,如表 2-1 所示。
2.3 高速采样时钟方案
2.3.1 JESD204B 时钟
数据采集模块的性能受 ADC 芯片性能影响,而 ADC 芯片性能又受时钟信号
质量影响,因此提高时钟信号质量至关重要。上文 ADC 芯片选型部分已在采集方
案实现上体现出两种数据接口的主要不同之处——时钟。采用 LVDS 并行传输方
式的采集系统,其高频采样时钟不仅会送入采集内部电路用于驱动 ADC 进行数据
采集,而且会经过 ADC 内部电路产生与采集数据同步的时钟信号一并送入 FPGA ,
FPGA 内部的数据接收、处理采用的主时钟正是该同步时钟。不同于 LVDS 并行传
输方式的采集系统,采用 JESD204B 串行传输方式的采集系统要求既有送入 ADC
端的设备时钟还有送入 FPGA 端的设备时钟,这两个时钟频率可以不同但需要保
证同源。除了上述两种设备时钟, JESD204B 标准还需要用于同步的时钟等信号。
JESD204B 子类 1 要求 ADC 及 FPGA 两端都要有系统参考 SYSREF ,以及一个
SYNC 信号用于 ADC 端与 FPGA 端的链路同步。一般 JESD204B 子类 1 的时钟仅
需设备时钟及系统参考,但是受 FPGA 型号及 JESD204B 链路的速度影响, FPGA
端有时还需要使用全局时钟。
ADC12DJ3200 的数据传输接口采用的是 JESD204B 子类 1 ,图 2-6 给出了典
型的 JESD204B 子类 1 时钟系统,其中包括设备时钟( DCLK ),系统参考(
SYSREF )
帧时钟 FC ( Frame Clock , FC ),本地多帧时钟 LMFC ( Local Multi-Frame Clock ,
LMFC )以及全局时钟 glbclk 。
送入 ADC 端的设备时钟( DCLK A )又称为采样时钟,用于 ADC 采样;送入
FPGA 端的设备时钟( DCLK B )又称为参考时钟( refclk ),用作 JESD204B 协议
的物理层—— GTP/GTX/GTH 串行高速收发器正常工作的参考时钟,该参考时钟频
率由串行线速率( Serial Line Rate )确定,同一串行线速率下有多个值可供选择。
串行线速率指的是 JESD204B 各通道的数据传输速率,公式(
2-5 )是计算该值的 通用方法。
其中, M 表示链路上转换器的数量, N’ 表示单个样本内信息位的数量,包括样本
分辨率、控制位和结束位, Fclk 表示器件或采样时钟, L 表示通道数, 10/8 表示
8b/10b 编码的链路开销。对于本文采用的 ADC12DJ3200 器件,其串行线速率既可
以采用上式,也可以采用公式(2-6),因为 ADC12DJ3200 根据其操作模式定义
了 18 种 JESD204B 链路工作模式,简称为 JMODE ,并罗列了相关参数。式(2-6)
中的 DCLK Frequency 为 ADC 采样时钟, R 为每个采样周期每个通道传输的比特
数。本文的采样率为 6.4GSPS , ADC 采用 JMOD1 模式时,采样时钟为采样率的
一半,即 3.2GHz , R 为 2 ,则串行线速率为 6.4Gbps 。
2.3.2 时钟参数计算
从 JESD204B 时钟系统可见帧时钟、多帧时钟等为设备时钟的衍生时钟,帧
时钟、多帧时钟等与设备时钟之间存在着一定的数值关系,图 2-7 描述了这些时钟
之间的关系。
由图 2-7 可知,在 JESD204B 时钟系统中,串行线速率是一个重要的参数,各
个时钟的频率都与该参数有关。下面介绍各时钟的作用及计算方法,首先是 ADC
及 FPGA 两端都有的时钟信号,再是 FPGA 端特有的时钟信号。
字节时钟( Byte Clock )是数据传输通道的字节速率。为了直流均衡,
JESD204B
的数据链路层设置了 8b/10b 编解码,数据传输通道的串行数据是 8 位传输数据经
过编码后的 10 位数据,由此可以通过串行线速率计算字节时钟频率,计算公式如
(2-7)所示。本文的 Byte Clock 为 640MHz。
帧时钟是 JESD204B 数据帧的传输速率。 JESD204B 将传输数据按照每帧多少
个字节进行打包,帧时钟大小既可以通过字节时钟计算也可以通过串行线速率计
算得到,计算帧时钟大小的公式如(2-8)所示,其中 F 代表多少个字节为一帧数
据。本文的 F 为 8 ,则 Frame Clock 为 80MHz 。帧时钟是设备时钟的分频。
2.4.2 数据存储结构方案
本文采集模块包含两个通道,各通道采样率为 6.4GSPS ,分辨率为 12bits 。将
数据位宽扩展至 16 位,则该模块的波形数据速率为 6.4GHz 16bits 2 ,即 25.6GB/s 。
因为 FPGA 中单个 DDR 存储器控制接口最多支持 64 位数据位宽,则由波形数据速率
可以计算出使用 64 位 DDR 实现相同吞吐量时 DDR 数据速率高达 3200MT/s 。随着计
算机技术进步, DDR SDRAM 的数据速率有了大幅提升,早期的 DDR2 最大数据速
率为 800MT/s , DDR3 的最大数据速率则为 2133MT/s , DDR4 的数据速率可以达到
3200MT/s 。上述计算的 DDR 数据速率恰为 DDR4 可达到的最高数据速率。由于 DDR
需要定期“刷新”,阻碍正常访存,降低工作效率,在计算 DDR 数据速率时需留
有裕量,故采用数据速率为 3200MT/s 的 DDR4 并不能满足需求。当数据速率已超过
DDR 能提供的最高速率时,可通过扩宽 DDR 存储器的数据位宽达到提高数据吞吐
量的目的。将数据位宽从 64 位拓展至 128 位,由采集数据吞吐量可计算出此时 DDR
数据速率已从 3200MT/s 降至 1600MT/s ,即( 25.6GB/s ) /128bits 。实现时,使用两
个位宽为 64 位的 DDR 进行存储,两通道分别对应一个 DDR 。由单通道采集数据吞
吐量计算每个 DDR 的数据速率,单个 DDR 的数据速率仍为 1600MT/s ,即
( 6.4GHz 16bits ) /64bits ,可采用 DDR3 实现数据缓存。同样,考虑 DDR 的“刷新”
时间,以 91.03% 的访问效率计算 [21] ,则 DDR3 的数据速率应为 1757MT/s 。最终,
选择数据速率为 1866MT/s 的 DDR3 作为外部存储设备。
使用 DDR3 实现的具体方案有如下两种:一种是采用 8 片位宽为 16 位,数据率
为 1866MT/s 的 DDR3 颗粒,每 4片颗粒并联为一组用于一条通道的数据存储;另一
种是采用两片位宽 64 位、数据率 1866MT/s 的 DDR3 内存条,一片内存条对应一条通
道的数据存储。存储容量上, DDR3 颗粒单片最大容量可达 4000Mb ,单通道 4 片并
联存储容量便能达到 2GB ; DDR3 内存条最大容量可达 8GB 。因此这两种方案都能
满足数据速率及容量要求。采用 DDR 颗粒方式与采用 DDR 内存条的方式区别主要
在电路设计上, DDR 颗粒通过直接焊接颗粒在电路板上实现,而 DDR 内存条采用
插槽实现,插槽方式便于器件更换。最终,选择镁光公司的 DDR3 内存条——
MT8KTF51264HZ-1G9 ,其内存容量为 4GByte ,数据速率为 1866MT/s ,数据位宽
为 64bits 。存储方案如图 2-8 所示,两路 ADC 采集数据经 JESD204B 链路传输至 FPGA
内部,再经异步 FIFO 跨时钟域和缓存处理后进入存储控制模块,存储控制模块根
据操作命令及起始地址实现连续多段存储、读取。存储控制模块将接收外部触发
信号和 AXIe 机箱提供的双向星型 STRIG 触发信号及 TRIG[0:11] 触发信号。