AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败

本文主要是介绍AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 问题概述

对AD9162芯片进行功能开发时,发现AD9162的链路lanes与FPGA的高速BANK引脚存在交叉相连的情况,按照实际的引脚连接关系进行约束后,vivado编译失败。

  1. 问题阐述及原因分析
    1. 问题详情阐述

板卡对AD9162芯片进行功能开发时,发现硬件电路的设计结果存在AD9162数据链路与FPGA高速BANK引脚交叉相连的问题,示意图如图3‑1,若根据图示的引脚连接关系进行管脚约束,vivado无法通过编译,图3‑2是报错结果截图。

31  板卡AD9162数据链路与FPGA高速BANK引脚的硬件连接关系图

32  vivado编译失败截图

    1. 原因分析

根据图3‑2的报错结果,将提示内容中的约束语句加入到XDC文件中,依然无法完成编译。AD9162的数据链路lanes与FPGA端高速BANK引脚交叉约束导致这一问题。

  1. 解决方法

将lane2与F4、lane5与E2进行约束,如图4‑1,编译通过。但这会导致FPGA输出给GSM019的数据存在混乱的问题,为此本报告提供3种解决方法。

41  数据链路与FPGA高速BANK引脚的软件连接关系图

    1. 修改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的数据来源替换。

42  GSM019数据选择寄存器

    1. 修改数据拼接方式

若不修改AD9162的数据选择寄存器,可以通过修改数据拼接方式的方法来解决数据混乱的问题。以复信号的数据拼接方式为例,如图4‑3,按照原数据拼接格式,lane2与lane5的原数据为蓝色框,我们通过将代码修改为红色框的内容即可替换lane2与lane5数据。

43  修改数据拼接方式代码截图

    1. 修改JESD204B IP核数据对应关系

另外,还可以通过修改JESD204B IP核数据的对应关系来解决数据混乱问题。具体为:按图红色框将JESD204B IP核输出的gt2_txdata与gt5_txdata、gt2_txcharisk与gt5tx_charisk进行互换。

44  修改JESD204B IP核数据对应关系

  1. 实验结果
    1. 修改GSM019寄存器数据链路选择寄存器实验
  1. 按照4.1节提供的解决方法对AD9162寄存器的配置代码进行修改,并编译工程;
  2. 使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
  3. 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
  4. 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。

51  修改AD9162数据选择寄存器的结果(1313MHz0dBm

52  修改AD9162数据选择寄存器的结果(1050MHz0dBm

    1. 修改数据拼接方式实验
  1. 按照4.2节提供的解决方法对数据拼接代码进行修改,并编译工程;
  2. 使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
  3. 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
  4. 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。

53  修改数据拼接方式的结果(1310MHz0dBm

54  修改数据拼接方式的结果(1110MHz0dBm

    1. 修改JESD204B IP核数据对应关系实验
  1. 按照4.3节介绍的解决方法修改JESD204B IP核数据对应关系的代码,并编译工程,使用射频信号线连接安捷伦与DAC模拟输出口,板卡上电;
  2. 将bit文件下载至板卡中,并在vio界面控制DDS的信号频率,观察频谱仪上的信号频率;
  3. 频谱仪上显示的信号频点与控制DDC输出的信号频点一致,实验通过,并拍照或截图记录。

55  修改JESD204B IP核数据对应关系的结果(1310MHz0dBm

56  修改JESD204B IP核数据对应关系的结果(1110MHz0dBm

这篇关于AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110173

相关文章

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re