基于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

2Vivado工程生成

File->Project->Open Example

amd

选择Versal CPM QDMA EP Design

amd

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

amd

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

amd

3BD工程介绍与配置

amd

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

1)数据访问架构:

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

amd

2)相关端口

为什么开两个?

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

amd

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

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

amd

3)细节配置

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

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

amd

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

amd

选择bar空间

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

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

amd

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

amd

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

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

amd

执行CFG启动测试

CFG相关参考:

https://adaptivesupport.amd.com/s/article/Understanding-the-Versal-CPM5-QDMA-Gen4x8-ST-Only-Performance-Design-CED-Example-in-Vivado-2023-2?language=en_US

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

amd

5总结

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

关于安富利  

安富利是全球领先的技术分销商和解决方案提供商,在过去一个多世纪里一直秉持初心,致力于满足客户不断变化的需求。通过遍布全球的专业化和区域化业务覆盖,安富利可在产品生命周期的每个阶段为客户和供应商提供支持。安富利能够帮助各种类型的公司适应不断变化的市场环境,在产品开发过程中加快设计和供应速度。安富利在整个技术价值链中处于中心位置,这种独特的地位和视角让其成为了值得信赖的合作伙伴,能够帮助客户解决复杂的设计和供应链难题,从而更快地实现营收。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分