1.调试背景
新设计的AD9689子卡,采用FMC连接方式,使用Xilinx公司的KCU105开发板进行调试。子卡上主要的芯片是ADI公司的高速模数转换芯片AD9689-2600和时钟芯片HMC7044。HMC7044和AD9689基本配置完成后,开始调试FPGA接收部分。FPGA部分xilinx提供了PG066-JESD204文档。
2.JESD204B时钟框图
图片示例截自xilinx PG066文档,提供了一种通用灵活的时钟方案。使用单独的refclk和 glblclk 输入,分别提供收发器参考时钟和内核时钟。通过这种配置,参考时钟和内核时钟是物理上独立的时钟,可以在独立的频率下运行,没有额外的限制。参考时钟可以根据选择的线路速率,在收发器限制范围内的任何频率运行。内核时钟始终以所需的速率运行(串行线路速率的 1/40)。
结合本次调试实际应用,时钟需求如下:
- Reference Clock:提供给JESD204_PHY的参考时钟,JESD204_PHY 中的 GTP/GTX/GTH/GTY 串行收发器需要稳定、低抖动的参考时钟,AD9689调试中使用了FPGA开发板提供的时钟。
- Coreclk:JESD204B内核使用 32 位(4 字节)数据路径运行。核心时钟频率始终是线路速率除以40。例如,对于12.9024 Gb/s的串行线路速率,核心时钟频率为 322.56 MHz。对应FPGA工程里是glbclk。
- AXI4-Lite Interface Clock:内核通过 AXI4-Lite 处理器接口进行配置和监控。此接口的时钟是独立于内核时钟或参考时钟的时钟。该时钟与核心时钟或参考时钟之间没有任何依赖关系。使用开发板本地晶振。
- DRP_clk:DRP时钟,基于 UltraScale 架构的设备需要一个自由运行的 DRP 时钟,这个时钟可以和AXI4-Lite接口时钟使用同一个。
3.JESD204B IP核设置
使用Vivado2018.3,JESD204B(7.2)版本,按下图设置IP核后生成示例工程。
4.JESD204B示例工程修改
示例工程里已有JESD204B PHY核。
打开顶层模块jesd204_0_example_design.v,可以看到输入输出信号。
将示例工程封装一下添加到自己的工程中,本次调试未使用AXI4-Lite接口进行配置。工程中先配置HMC7044,再配置AD9689,然后复位jesd204_0_example_design。gclk就是glblclkp/n差分转单端时钟,在gclk时钟域下,ad9689_rx_valid有效代表256bit数据有效。
复位要求如下:
5.数据结构
JESD204B IP核单Lane每次接收32bit数据,AD9689使用了8条lane,在gclk时钟域下,AD9689两个通道输出数据为256bit。
AD9689是14bit模数转换器,14bit数据组成了两个8bit数据,bit13-bit6为第一个8bit数据,bit5-bit0为第二个8bit数据。
ADI公司提供了jesd204_framemapping工具,双击JESD204_FrameMapping_SingleMode,输入LMFS参数,再运行,产生excel文件,M0和M1分别代表AD9689的两个通道。
由此,可以得到如下数据。
6.数据分析测试
AD9689是14bit的ADC,将Vivado ila中数据格式调整为无符号数时,未输入信号时,底噪应在8192附近波动。
将AD9689的输出设置为测试模式(寄存器0x055004),选择ramp输出,AD9689两个通道各自输出的数据依次递增。将两个通道数值相减进行触发,可以测试下稳定性,是否有误码。 将AD9689的输出设置为正常工作模式,按照测试条件输入信号,在Vivado中将数据导出.csv文件,然后在MATLAB中进行分析,可以得到其他AD9689性能参数。
7.未调试部分
多通道同步没有调试。同时,FPGA端Receive Latency也未进行调整。