赞
踩
最近的工作围绕着一个SPI外设展开,需要开发单个reg控制功能和数据包控制功能,工程使用AXI4-Lite总线和AXI4总线,分别进行reg控制和数据包控制。
功能仿真验证通过,需要上板进行下一步调试。
AXI4-Lite总线的控制可以使用Jtag-AXI IP核进行验证,但是AXI4总线就不是很方便了,所以在工程中加入了XDMA模块,使用PCIe接口对AXI4-Lite总线和AXI4总线统一进行了验证,正好也可以熟悉下XDMA的使用,这里做一个简单记录。
PCIe Gen2X2参考时钟100MHz,5GT/S,AXI时钟125MHz
1、XDMA驱动安装
这里借用MATTI老师的一篇BLOG进行说明:
https://blog.csdn.net/SHYHOOD/article/details/124484204?spm=1001.2014.3001.5502
2、在Linux服务器上进行XDMA测试
使用Xilinx官网给出的XDMA链接进行驱动安装,安装一直失败,无奈选择了服务器中已有的驱动进行开发测试,发现,AXI4-Lite总线进行reg控制一切正常,但是AXI4总线W通道上的data全为0;初步定位为该已有驱动是之前调试的定制版驱动。
3、在Windows电脑上进行XDMA测试
为了避免在Linux服务器上因为XDMA驱动浪费过多时间,转而选择Windows电脑进行测试。
(1)XDMA通过AXI4-Lite总线控制reg
对地址0x0000_a100,写数据0x0003_0d40。
(2)XDMA通过AXI4总线控制数据包
由于我的开发板是PCIe Gen2X2,支持的数据位宽为64bit,然而我的工程模块总AXI4和AXI4-Lite总线都是按照32bi进行开发,所以在工程中还加入了一个AXI-DATA-WIDTH-CONVERTER IP核进行了位宽转换,ila抓取的是位宽转换之后的AXI端口。
数据包共4096个字节,共进行8次突发写,每次突发写的大小为128(1次突发包含128个数)*4(1个数大小为4字节)=512字节
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。