vivado下QSFP模块调试遇到的一些坑和调试简单记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

xilinx fpga 提供了光通讯模块ip,例如qsfp,这个模块通讯速率可以达到40G/50Gbps,而且集成和使用相对比较简单,很多公司利用xilinx的qsfp来做高速通讯。

下面仅就使用过程中的一些坑及技巧记录一下,给各位高手做个参考。


一、ip配置注意事项

  1. 基本的配置比较简单,但是如果可能的话,尽量不要使用256bit的axis协议。一些FAE也和我反馈说256bit的比较难调试。
  2. axis协议:qsfp的axis协议有自己的特殊性,要仔细阅读文档,与网上的axis协议稍有差异。
  3. config端口:axi4-lite协议和普通配置口可选,我选的是axi4-lite协议,注意这里要仔细读一下rtl,aw/ar channel和w/r channel是相关的。这句话可能难以理解,看下rtl便知。
  4. fast sim:example的仿真一定要加上fast SIM选项,否则时间太久了。当然,正常使用的时候,等待的时间一定要足够。
  5. pipline 的输入,312.5M的时钟对fpga来说需求还是不小的,选pipline后对布线的压力会小很多,虽然不知道内部采用了多少级的pipline,如果不是很在乎面积的话,还是勾选上吧。
  6. dclk,有消息说两个光模块的dclk频率要一致才好,实测下来选多少MHz对通讯结果没啥影响。
  7. gt_ref_clk,曾经想通过pll来做这个时钟,后来发现用片内pll的话会报错。这个时钟要求200ppm精度(实际上开发板也是pll出来的,片外pll)

二、避坑指南

  1. reset后的时间要留够再传输数据,qsfp会用很长的时间来做initial和training,如果reset的时间不够,会导致很多误码的问题。我这里因为代码是自己写的,对initial的时间要求不太严格,就没有拉太多的stat信息,
  2. 仔细阅读example和debug指南,文档还是给了不少的信息可以参考的,我在受误码率困扰的时候仔细参考了xilinx的文档,还是有用的。
  3. 虚拟io和ila要好好使用。cdc要特别注意。
  4. 版本:不同版本的qsfp接口还是有很大差别的,要注意,比如dclk有要求50~250的,也有要求10 ~ 250的,要注意当前使用的版本。不同版本的vivado配置的ip也有差异,

三、调试,调试请参考文档,文档已经很详尽了,我只在文档之外啰嗦几句

  1. 光模块对温度敏感,如果你的误码率突变,可以考虑温度的影响
  2. 有时tx,rx单向好用,这个时候可以考虑是不是光模块的金手指受损或者腐蚀了。
  3. 参考时钟一定要准,不然会有很多意想不到的错误。
  4. 调试的时候光模块可以交换一下看看会不会有问题。
  5. qsfp其实是个以太网协议,但是做了简化,axis相当于一个dma接口。
  6. 如果误码率较高,要注意ila的使用。
  7. 如果误码率较高,要注意系统内的干扰。
  8. 如果误码率较高,要注意系统间的干扰,光电隔离还是比较彻底的。
  9. 最好有信得过的参考端来帮助调试,比如光口的网卡。我这次调试是一个support很不好的设备,吃了很多亏。
  10. 10.使用者要对tcp/ip协议有点了解会帮助分析。(或者说不容易受误导)
  11. 有眼图测试工具和ip,可以搜一下,我本来想使用的,后来发现问题搞定了就没用,仅记录下。

总结

qsfp这个ip还是比较容易使用的,但是个人认为文档对于初次使用的人员来说还不是很友好,上面罗里吧嗦的记录了一些我遇到的坑,希望能给后面使用的人一点点参考。

后记

有朋友遇到了QSFP数据误码的问题,一起撸了一遍

  1. 没有什么明显的问题,reset都做了sync,cdc也都是对的。
  2. 重新撸了下reset流程,发现时间不太对,这里说一下,文档里的reset时间是没有描述的,给他找了example,发现里面有个cvt_us函数,描述了每一个流程持续的时间。比较坑的一点,是文档中对这个时间没有任何详细解释。
  3. axis_wclk , axis_rclk的信号,要想被ila观测到,要注意cdc的问题,换句话说,如果没有仔细做cdc,ila观测到的数据,使用的时候要自己甄别一下,能间接放映问题的。
  4. **_user里的信号要处理好,理论上user的信号要和valid一起生效,虽然试过了不一起变化也问题不大(主要是ena),但是最好一起选通。
  5. 感觉128bit的比256bit的稳定,也可能是研究的不够,时间问题,调通128比较容易。
M/D-CAPVPX是天津雷航光电科技有限公司推出的一款复合加速计算平台,由Xilinx的28nm制程的FPGA — XC7K325T-3FFG900I和Nvidia的Jetson Xavie的GPU互联构成。 规格 l 集成1片 Nvidia的Jetson Xavier嵌入式GPU处理器; 是目前主流的GPU,主要用于实时处理高速的图像和雷达数据; 而Xavier则是目前功能最强大的嵌入式GPU处理单元,一般的服务器也无法匹敌其处理性能;Xavier可以使得实时处理能力获得成倍的提升;另外Xavier具备PCIE-4.0接口,与Virtex-7的PCIE-3.0连接可以获得极高的带宽; l 集成1 片 Xilinx XC7VX690T 芯片(或Ultrascale系列)作为主处理器;外挂 2 组动态存储器QDRII+ SRAM,存储容量72Mb,位宽72bits,存储速度1000Mb/s; 也可以独立挂接DDR3-2166,以最廉价的方案获得最高的数据缓存速率; l FPGA通过板载QSFP/SFP+/FMC等接口可以自由灵活的配置包括用于雷达和软件无线电领域的AD/DA,图像领域的CameraLink/CXP/光纤相机等不同的前端;做到了前端的Fully-Scalable/Fully-Extensible lXavier 和 XC7VX690T 之间通过 PCIE Gen2 x4/PCIE gen3 x8 互联,实现全双工高速数据共享; l FPGA XC7VX690T 上有三组PCIE,其中1组用于和Xavier通信,另 外两组则扩展为2个独立的M.2 M Key NVME PCIE SSD(每个SSD容量为 64GB~2TGB) l FPGA上通过通用的GTH扩展出16~32个SATA接口用于连接RAID0,实现10~22GB/s的超高速存储速度(完全自主知识产权的RAID0/SATA的IP),可以完成高速的CameraLink/CXP/雷达SDR AD数据的实时非易失性存储;其中CXP相机几乎可以适应所有的标准厂家的协议 对外接口 l 2 x QSFp l 2 x SFP+ l 双FMC子卡槽/面板则根据FMC前端连接器类型可选 l RAID0高速连接器(根据RAID0产品接口可定制,一般是镀金线) l M.2本地连接器(在机箱内部,或者也可以通过高速线对板连接器引出) l 以太网/USB/RS422/HDMI/VGA液晶屏 等辅助接口(可选)
Vivado是一种电路设计工具,而SDK是一个嵌入式软件开发工具。Vivado可以用于设计和验证FPGA和SoC电路,而SDK则可以用于嵌入式软件的开发调试和测试。通过联合使用Vivado和SDK,可以进行全面的电路设计和软件开发调试。 首先,在Vivado中,可以根据设计要求创建FPGA或SoC电路,并进行逻辑综合、实体化和生成比特流文件。然后,可以在Vivado中加载生成的比特流文件,将其下载到目标设备中。在Vivado中,可以配置片上系统,包括外设接口、中断控制器、存储器等。同时,可以使用Vivado提供的调试工具,例如信号探测器、逻辑分析仪等,来帮助调试电路的功能和性能。 接下来,在SDK中,可以创建基于硬件设计的嵌入式软件项目。SDK支持多种编程语言,包括C、C++和Assembly。可以在SDK中编写、调试和优化嵌入式软件的代码。在SDK中,还可以进行底层驱动程序的开发和集成,以访问FPGA电路中的外设接口和存储器。 联合调试时,可以在SDK中使用调试工具,例如调试器和仿真器,通过调试接口与FPGA电路通信。这样,可以在嵌入式软件中设置断点和观察变量,实时监测和调试FPGA电路的运行情况。通过联合调试,可以同时观察和调试硬件和软件,加快整个系统的开发调试过程。当发现问题时,可以根据调试结果迭代优化电路设计和软件代码,以实现系统功能的完善和性能的优化。 总之,通过Vivado和SDK的联合调试,可以实现电路设计和嵌入式软件开发的全面调试和优化。这种集成开发环境可以提高工程师的开发效率,并促进硬件和软件的协同开发
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值