Xilinx XDMA说明和测试-ST

本文详细介绍了如何使用XilinxXDMAStream接口,包括创建BlockDesign,驱动安装,传输测试以及遇到问题的解决方法。测试工程涉及AXI-Lite接口与BRAM的连接,以及AXI-Stream通道的数据传输验证。在驱动安装时,需注意驱动的重新编译和加载。在传输测试中,通过读写通道验证了数据一致性,确保传输无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文主要介绍Xilinx XDMA Stream接口的使用方法和下载测试方法。

1 测试工程

XDMA在AXI Stream接口模式下的基本使用方法与AXI Memory Mapped模式基本相同,区别在于在设置XDMA时,在Basic标签页中,DMA Interface option选择为AXI Stream。使用Vivado创建下图所示的Block Design,AXI-Lite接口接到BRAM上,AXIS的H2C接口直接连接到AXIS的C2H接口。该工程可从Github下载,使用的FPGA板卡为浪潮的F37X加速器,运行工程目录下的run.sh执行run.tcl即可完成工程的创建和编译。
在这里插入图片描述

2 驱动安装

驱动的安装与AXI Memory Mapped模式一致,驱动可从Github下载,根文件夹下的xdma.sh文件为测试命令脚本,使用方式为./xdma <参数>。需要注意的时,如果把编译好的驱动复制到新机器上,直接加载驱动会提示"insmod: ERROR: could not insert module xdma/xdma.ko: Invalid module format",需要重新执行sudo make install编译驱动后再加载。

  • 下载Bit文件,重启主机
  • 编译驱动:进入xdma文件夹,执行sudo make install
  • 编译工具:进行tools文件夹,执行make
  • 加载驱动:进入tests文件夹,执行sudo ./load_driver.sh

在这里插入图片描述

3 传输测试

  • AXI-Lite写通道:./reg_rw <设备> <地址> <数据长度> <写入数据>

在这里插入图片描述
在这里插入图片描述

  • AXI-Lite读通道:./reg_rw <设备> <地址> <数据长度>

在这里插入图片描述
在这里插入图片描述

  • AXI-Stream通道:直接调用XDMA的测试脚本run_test.sh,整个测试流程包括查询使能通道、确定接口方式(MM or ST),根据接口方式调用脚本dma_memory_mapped_test.sh或者dma_streaming_test。本工程是ST接口,所以调用dma_streaming_test.sh脚本,该脚本首先使用dma_form_device命令准备接收数据,然后使用dma_to_device命令将数据写入XDMA,最后对比读出的数据和写入的数据是否一致,验证传输过程是否出现错误。测试结果如下图所示。

在这里插入图片描述
在这里插入图片描述

4 错误解决

  • 错误
  • 错误现象:如下图
    在这里插入图片描述
  • 错误原因:
    • 接收指令dma_from_device定义的size不对
    • 自己定义的接口没给tlast信号
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值