搜索
bottom↓
回复: 7

请教关于AXI Memory Mapped to PCIe中DMA传输的问题,既AXI:BARS作用

[复制链接]

出0入0汤圆

发表于 2018-6-15 11:36:32 | 显示全部楼层 |阅读模式
问题的具体描述是这样的,关于X家的FPGA芯片,我用的是XC7Z100的片子,但是在做PCIe传输的时候遇到了一些问题,想请教下论坛里的大神,开发环境选择的是Vivado2016.4。
根据Vivado提供PCIe的IP核一共有三种,分别是①7 Series Integrated Block for PCI Express ② AXI Memory Mapped to PCI Express ③DMA/Bridge Subsystem for PCI Express(Beta)
其中前两个IP核在之前的版本就有,第三个IP核显示为测试版本,还没有用过,不知道咋用。
============
我对第一个IP核的理解是把PCIe的TLP包转换成AXI Stream信号,然后对TLP包进行解析,从而实现PCIe的通信接口;常用的应用解决方案可以采用移植Riffa,结合Riffa的上位机实现高速数据通信,其中我在板子上实现的PCIe2.0 x8的接口,可以达到大约3GB/s的通信速度。我对这套方案的理解是通信速度快,上位机开发简单,可以直接使用现成的驱动和封装好的接口,同样缺点也有,比如只支持win7系统。另外由于Riffa是将PCIe接口转换成了类似于多个通道的形式,每个通道可以近似理解为FIFO接口,因此我对Riffa的理解是适合于传输大量数据,但是没有地址线的概念,因此如果要添加一些现成的接口,比如AXI协议的IP核,显得十分无力,缺乏相应的灵活性。
============
接着是我对第二个IP核的理解,相比于第一个IP核,这种方法就比较简单,可以做到不写一行代码的方式,实现PCIe的数据传输,通过添加 AXI Memory Mapped to PCI Express,然后再添加BRAM Controller,然后再添加一个单口RAM,在Vivado中点一下自动连接,生成接口,约束下时钟和复位信号,生成比特流文件,下载到板子上就可以发现新设备。然后在上位机上使用WinDriver生成驱动,就可以实现对RAM的读写。我对这种方案的理解是思路简单清晰,由于使用了AXI协议,因此可以使用现成的IP核,但是每次只能读取单个寄存器,我觉得这种通信方式在大数据量的传输上速度无法满足要求,效率不高。因此引出了我的疑问和问题。
============
如果在第二种方式上实现高速数据传输,通过查看相关的文档,我的理解是添加一个AXI接口的DMA控制器,然后通过读写寄存器的方式去配置DMA控制器,包括源地址核目的地址,然后启动DMA控制器。那么问题就来了,如果DMA控制器将BRAM设定为源地址,电脑主机设定为目的地址,那么读取BRAM的操作是可以完成的,但是写入电脑主机的操作是怎样一种形式,我的猜测是AXI Memory Mapped to PCI Express的IP拥有M_AXI核S_AXI,既AXI的主机核从机形式,主机的M_AXI接口对应了IP核配置中的PCIE:BARS,那么从机的S_AXI接口对应了IP核配置中的AXI:BARS。因此如果DMA控制器要实现往电脑主机内存里面写数据,就要由DMA控制器实现主机,通过S_AXI接口实现数据的转移。在这种操作之前,电脑主机的驱动上要申请一片连续的内存空间,并将这片内存的物理地址告诉FPGA中的DMA控制器,然后启动DMA控制器实现数据的转移。
同理,如果要实现电脑主机向FPGA板卡的数据转移,只是将源地址和目的地址切换下即可。
============
我不知道我对这个问题的理解对不对,所以想请教下论坛里的大神,如果要在AXI Memory Mapped to PCI Express的IP核上实现大容量的数据传输,该是怎样的一种原理?如果采用这种原理的话最终又能够实现怎样的一种传输速度?
另外关于第三个IP核DMA/Bridge Subsystem for PCI Express(Beta),是不是就比较适合于大容量的数据传输?
谢谢大家,东西写得比较多,也比较乱,感谢大家观看。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2018-6-15 16:59:12 | 显示全部楼层
问题已经解决,采用第二种IP核的方法,确实需要添加一个CDMA的IP核,然后通过AXI总线配置好CDMA的目的地址和源地址,参考Xilinx的XAPP1171,同时参考GitHub上XPDMA的开源代码,就是用的这种方法,然后配置电脑主机的物理地址和板卡的地址,启动CDMA中的SGDMA方式传输,将数据由电脑主机的内存转换到板卡的DDR3存储器中,即可完成数据的传递,实现高速率的传输,采用如下的方式:
PCIe x8
AXI width 128 bit
speed test (1 GB data read and write) Write: ~1050 MB/s Read: ~1170 MB/s
=================
达到的速度已经很客观了,由于AXI Memory Mapped to PCI Express的IP核配置中,PCIe x8只能做到2.5GT/s的连接速度,也就是PCIe1.0的速度,因此如果采用5GT/s的PCIe2.0连接速度,上述所能达到的速率还能够再提升一倍,另外我觉得DDR3的带宽也是一种重要的影响因素,如果发送到片上的BRAM中,将能够实现更高的传输速度。
=================
同时对于第三种IP核的使用进行了验证,搭建了一个测试工程,同样能够发现板卡,也能够实现对片上BRAM的读写操作,根据手册能够读取到DMA的相关信息,但是目前还不知道怎么使用,具体的使用方法还有待进一步研究,可以肯定的是采用第三中IP核方式,是能够实现PCIe x8的5GT/s连接速率,估计着能够达到的速度也在3GB/s左右,还需要后面的继续努力。
=================
最后把XPDMA的工程放上来,供大家参考,原文地址在GitHub的XPDMA上:https://github.com/strezh/XPDMA

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-6-15 17:41:08 | 显示全部楼层
PCIe高速数据传输大体上就两个事儿
1、PCIe的TLP到FPGA内部总线的协议转换谁来做。
2、DMA是主机侧起还是设备侧起。

追求极致性能就是谁发数据谁起DMA,FPGA侧直接处理TLP;缺点就是复杂度最高。

出0入0汤圆

 楼主| 发表于 2018-6-16 00:13:31 来自手机 | 显示全部楼层
dr2001 发表于 2018-6-15 17:41
PCIe高速数据传输大体上就两个事儿
1、PCIe的TLP到FPGA内部总线的协议转换谁来做。
2、DMA是主机侧起还是设 ...

看来楼上是个内行,我现在连门都没入,楼上的理解很到位。

出0入0汤圆

发表于 2018-6-30 16:31:36 | 显示全部楼层
"可以直接使用现成的驱动和封装好的接口,同样缺点也有,比如只支持win7系统"

Riffa可以支持linux吧

出0入0汤圆

 楼主| 发表于 2018-7-2 08:33:26 来自手机 | 显示全部楼层
dhbighead 发表于 2018-6-30 16:31
"可以直接使用现成的驱动和封装好的接口,同样缺点也有,比如只支持win7系统"

Riffa可以支持linux吧 ...

可以支持linux的,不过windows的只能支持win7,多谢指出错误。

出0入0汤圆

发表于 2022-9-13 10:29:02 | 显示全部楼层
湛无双 发表于 2018-6-15 16:59
问题已经解决,采用第二种IP核的方法,确实需要添加一个CDMA的IP核,然后通过AXI总线配置好CDMA的目的地址 ...
(引用自2楼)

这个xpdma文件,没看懂这个工程怎么使用的,也不像是fpga端的xpr工程,能交流一下吗?感谢

出0入0汤圆

 楼主| 发表于 2022-9-13 19:44:29 | 显示全部楼层
本帖最后由 湛无双 于 2022-9-13 19:47 编辑
mk676910825 发表于 2022-9-13 10:29
这个xpdma文件,没看懂这个工程怎么使用的,也不像是fpga端的xpr工程,能交流一下吗?感谢 ...
(引用自7楼)


好的,没问题。Q:三565③柒O91
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 20:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表