XILINX PCIE DMA/Bridge Subsystem for PCI Express (XDMA)笔记

本文作者分享了在Xilinx FPGA项目中调试PCI Express(PCIe)的经验,特别是Xilinx DMA/Bridge Subsystem for PCI Express (XDMA)。文章介绍了如何配置XDMA IP核,包括模式选择、接口选项、PCIE BAR配置和DMA Bypass接口的使用,并强调了在实际设计中选择正确的通道数和outstanding数量的重要性。作者还提到了XDMA的内部结构和使用Example Design进行学习和仿真的方法。
摘要由CSDN通过智能技术生成

前段时间在公司项目中调试了PCIE,正好做一个总结,那些介绍XDMA、PCIE之类的多余的东西网上能搜到很多,我这里就不多说。我写的只是自己的一些想法,以及自己的设计思路。

同每一个刚开始调试PCIE的人一样,作为初学者大家都是先去网上搜集大量的资料学习,我也搜集了很多,看完之后其实还是有点泪崩,不知道怎么做。

在Vivado的IP Catalog中我们可以看到有三个可用于PCIE控制的IP核,其中第三个IP使用起来是最简单的,是将PCIE快速应用到项目中的最好的选择。

打开第三个IP核配置界面如下:

Mode: 配置模式, 选择 Advanced 高级配置

Lane Width:根据硬件选择支持 X1 、X2、X4

Max Link Speed: 选择 5.0GT/s 即 PCIE2.0

Reference Clock : 100MHZ, 参考时钟 100M

DMA Interface Option: 接口选择 AXI4 Stream或者AXI,因为我的项目中接口不是AXI4接口,所以我选择了AXI4 Stream

AXI Data Width: 128bit, 即 AXI4 数据总线宽度为 128bit

AXI Clock : 125M, 即 AXI4 接口时钟为 125MHZ(如果有125M和250M供选择的话,在带宽允许的情况下,建议选择125M的,可以避免综合实现后出现IP核内部时序不收敛的情况出现),我在项目调试的初期选用的250Mhz,整个工程搭好综合实现就出现了IP核内部时序问题,无赖只好降低时钟到125Mhz)

AXI-Lite Slave Interface:我们不勾选,因为XDMA的所有寄存器都由PS端配置,fpga用户逻辑这边不做任何的操作

PCIE ID配置里面的参数我们选择默认参数即可

PCIE BAR 配置,这个配置比较重要!!!

PCIE to AXI Lite Master Interface:不勾选 , 我们不使用这个接口来访问用户逻辑,如果有人看过《PCIE_xdma教程_LINUX.pdf》这个pdf文档的话,应该知道这个文档里讲的是使用这个接口来进行访问用户逻辑,而不使用DMA Bypass 接口,我刚开始也是参照这个文档使用这个接口,但是后面在使用的时候发现了问题,这个接口的数据输出是经过XDMA内部过滤的,也就是说这个接口出来的地址并不是所有的都能给用户使用,有部分地址是用来对XDMA的寄存器配置使用的,容易造成用户地址和配置地址混合,如果用户地址只有几个十几个还好,要是有几十上百个的话,这个接口并不实用。

  • 33
    点赞
  • 171
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论
xilliix pcie dma 驱动 (基于 xilnx xdma ip核 4.0 的WDF驱动) --- # XDMA Windows Driver This project is Xilinx's sample Windows driver for 'DMA/Bridge Subsystem for PCI Express v4.0' (XDMA) IP. *Please note that this driver and associated software are supplied to give a basic generic reference implementation only. Customers may have specific use-cases and/or requirements for which this driver is not suitable.* ### Dependencies * Target machine running Windows 7 or Windows 10 * Development machine running Windows 7 (or later) * Visual Studio 2015 (or later) installed on development machine * Windows Driver Kit (WDK) version 1703 (or later) installed on development machine ## Directory Structure ``` / |__ build/ - Generated directory containing build output binaries. |__ exe/ - Contains sample client application source code. | |__ simple_dma/ - Sample code for AXI-MM configured XDMA IP. | |__ streaming_dma/ - Sample code for AXI-ST configured XDMA IP. | |__ user_events/ - Sample code for access to user event interrupts. | |__ xdma_info/ - Utility application which prints out the XDMA core ip | | configuration. | |__ xdma_rw/ - Utility for reading/writing to/from xdma device nodes such | | as control, user, bypass, h2c_0, c2h_0 etc. | |__ xdma_test/ - Basic test application which performs H2C/C2H transfers on | all present channels. |__ inc/ - Contains public API header file for XDMA driver. |__ libxdma/ - Static kernel library for XDMA IP. |__ sys/ - Reference driver source code which uses libxdma |__ README.md - This file. |__ XDMA.sln - Visual Studio Solution. ```
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有钱挣的地方就是江湖之FPGA行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值