基于AMD Versal器件实现PCIe5 DMA功能

本期文章《基于AMD Versal器件实现PCle5 DMA功能》,诚邀您率先了解如何利用Versal强大性能实现高速数据传输!

序言

Versal是AMD 7nm的SoC高端器件,不仅拥有比16nm性能更强的逻辑性能,并且其PS系统中的CPM  PCIe也较上一代MPSoC PS硬核PCIe单元强大得多。本节将基于AMD官方开发板展示如何快速部署PCIe5x8及DMA功能。

1. 测试环境

Vivado版本:2023.2/2024.2,在windows10或者ubuntu22.04

实验板卡:VPK120

上位机主板:EPYC9124超微主板

上位机系统:Ubuntu20.04/24.04

2. Vivado工程生成

1.png

选择Versal CPM QDMA EP Design

2.png

选择名称以后,选择器件,注意选择MHP

3.png

打开CPM5 QDMA Gen5x8 MM Performance Design,然后finish即可

4.png

3. BD工程介绍与配置

5.png


可以看到从CIPS IP中出现两个CPM_PCIE_NOC口去访问两边的DDR:

1)数据访问架构:

在VPK120上有两个CPM控制器0与1,控制器1访问数据的路径有以下三种:ST_CPM2PL、MM_CPM2NoC、MM_CPM2PL,本次示例用两个MM_CPM2NoC,通过NoC直接从DDR中搬运数据。

6.png


2)相关端口

为什么开两个?

下图是MM_CPM2NoC接口,看CPM2NoC接口的位宽与带宽,由于走的是NoC,所以其单个接口的理论带宽是128bit x 1000M(NoC运行频率)=16GB,而PCIe5x8的理论带宽是32GB/s,为此至少需要两个MM端口,又由于担心DDR访问影响,所以demo中两个端口同时去访问两组DDR,保证带宽尽量不受DDR的影响。

7.png

为什么选用MM接口,而不是ST接口?

根据ds959手册以及PG347手册,ST模式下由于只会有一组ST_CPM2PL接口,而且位宽是512bit,所以理论上要到达PCIe5x8的带宽,是需要时钟跑到500M,但由于器件限制,其时钟最高是433M,实际综合下来时序收敛挑战很大。

8.png

3)细节配置


注意:CPM控制器0的数据路径不如控制器1多,少了MM_CPM2PL,为此这里选择控制器1。

如果要实现两路PCIe5x8,则需要将棕色框两个接口勾选上。

9.png

选择QDMA模式下的AXI MM,根据硬件结构选择Lane翻转。

10.png


选择bar空间

1:是主要的数据路径接口;

2:类似于之前XDMA挂载寄存器的方式。

11.png

转向器选择:这里默认只选择CPM2NoC0,这个后续通过Host profile来指定使用两个CPM2NoC接口

12.png

4. 实际运行配置

在配置完后,直接编译后,进入实操环节

安装驱动


参考《pg347》的Using the Provided Software and Drivers章节

#下载驱动源码,注意最好跟vivado版本对应上,master是最新的,对应vivado2024.1/2

git clone  https://github.com/Xilinx/dma_ip_drivers.git

#如果之前已经加载过驱动,则先删除驱动

    rmmod qdma_pf

    rm -rf dma_ip_drivers

#清理+编译

make clean & make

make install

modprobe qdma-pf   #安装驱动

lspci -vvv -d 10ee:  #查看设备节点是否存在

配置host profile

参考《pg347》的Host profile章节以及下面的链接

https://adaptivesupport.amd.com/s/article/000035811?language=en_US

是通过相关设备节点配置寄存器

13.png

执行CFG启动测试

CFG相关参考:

https://adaptivesupport.amd.com/s/article/Understanding-the-Versal-CPM5-...

可以看到能够到25GB/s左右

14.png

5. 总结

AMD Versal器件CPM单元集成了硬核QDMA功能,只需使用少量逻辑便能实现PCIe Gen5高带宽数据传输。同时官方也集成好了dma-perf等测试程序以及相关驱动,可以快速地进行验证与产品化,但需要注意的是MM模式的优劣以及性能影响因素,比如DDR、NoC带宽等,不是所有应用都适用,适当在ST与MM模式下做选择,可以帮助实现更高的性能。如果想在一个VP1202上实现两个PCIe5x8 MM,如果想在一个VP1202上实现两个PCIe5x8 MM,您可发送邮件至此邮箱寻求技术支持:AMD-xilinxchina@avnet.com

文章来源:安富利