本文主要是介绍AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 问题概述
对AD9162芯片进行功能开发时,发现AD9162的链路lanes与FPGA的高速BANK引脚存在交叉相连的情况,按照实际的引脚连接关系进行约束后,vivado编译失败。
- 问题阐述及原因分析
- 问题详情阐述
板卡对AD9162芯片进行功能开发时,发现硬件电路的设计结果存在AD9162数据链路与FPGA高速BANK引脚交叉相连的问题,示意图如图3‑1,若根据图示的引脚连接关系进行管脚约束,vivado无法通过编译,图3‑2是报错结果截图。
图3‑1 板卡AD9162数据链路与FPGA高速BANK引脚的硬件连接关系图
-
- 原因分析
根据图3‑2的报错结果,将提示内容中的约束语句加入到XDC文件中,依然无法完成编译。AD9162的数据链路lanes与FPGA端高速BANK引脚交叉约束导致这一问题。
- 解决方法
将lane2与F4、lane5与E2进行约束,如图4‑1,编译通过。但这会导致FPGA输出给GSM019的数据存在混乱的问题,为此本报告提供3种解决方法。
图4‑1 数据链路与FPGA高速BANK引脚的软件连接关系图
-
- 修改AD9162数据链路选择寄存器
AD9162的寄存器0x308、0x309、0x30A、0x30B用于配置lane0~lane7数据链路的选择,如图4‑2。由于在xdc中替换lane2与lane5对应的FPGA引脚,因此为解决这两路数据交错的问题,可以在GSM019的寄存器配置环节中往0x309的bit[2:0]写入3b101、往寄存器0x30A的bit[5:3]写入3b010,即将lane2与lane5的数据来源替换。
-
- 修改数据拼接方式
若不修改AD9162的数据选择寄存器,可以通过修改数据拼接方式的方法来解决数据混乱的问题。以复信号的数据拼接方式为例,如图4‑3,按照原数据拼接格式,lane2与lane5的原数据为蓝色框,我们通过将代码修改为红色框的内容即可替换lane2与lane5数据。
-
- 修改JESD204B IP核数据对应关系
另外,还可以通过修改JESD204B IP核数据的对应关系来解决数据混乱问题。具体为:按图红色框将JESD204B IP核输出的gt2_txdata与gt5_txdata、gt2_txcharisk与gt5tx_charisk进行互换。
图4‑4 修改JESD204B IP核数据对应关系
- 实验结果
- 修改GSM019寄存器数据链路选择寄存器实验
- 按照4.1节提供的解决方法对AD9162寄存器的配置代码进行修改,并编译工程;
- 使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
- 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
- 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。
图5‑1 修改AD9162数据选择寄存器的结果(1313MHz,0dBm)
图5‑2 修改AD9162数据选择寄存器的结果(1050MHz,0dBm)
-
- 修改数据拼接方式实验
- 按照4.2节提供的解决方法对数据拼接代码进行修改,并编译工程;
- 使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
- 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
- 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。
图5‑3 修改数据拼接方式的结果(1310MHz,0dBm)
图5‑4 修改数据拼接方式的结果(1110MHz,0dBm)
-
- 修改JESD204B IP核数据对应关系实验
- 按照4.3节介绍的解决方法修改JESD204B IP核数据对应关系的代码,并编译工程,使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
- 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
- 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。
图5‑5 修改JESD204B IP核数据对应关系的结果(1310MHz,0dBm)
图5‑6 修改JESD204B IP核数据对应关系的结果(1110MHz,0dBm)
这篇关于AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!