基于FPGA的PCIE设计(2)

本文详细解析了在Vivado中使用PCIe IP进行高速数据传输的方法,重点介绍了XDMA IP的定制与Block Design搭建过程,以及作为Endpoint和Rootport的角色配置。通过实例展示了基于XDMA的图像传输应用,包括VDMA IP的使用和AXI总线的配置,为读者深入理解PCIe协议与FPGA通信提供了实用指南。

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

项目简述

上一篇博客我们已经对PCIE协议进行了粗略的讲解,为什么粗略呢?因为详细的我也不会。那么不明白具体的PCIE协议,我们就不能在FPGA中使用PCIE来进行高速数据传输了吗?答案是否定的。因为Xilinx官方给我们提供了完善的PCIE IP,基于这些IP我们设置不需要知道TLP包的组包原理我们便可以把PCIE使用起来。这篇博客我们主要把FPGA作为endpoint来进行讲解,当然也对作为root port进行简单的描述。我们使用的主要IP是XDMA,主要参考资料是米联客。如果对IP的使用感觉到疑惑可以参考米联客的资料。

因为手头上硬件条件不够,没办法进行下板测试,我们主要进行介绍IP的定制和Block Design的搭建。

XDMA IP的定制

为什么使用XDMA IP而不使用我们前面介绍的PCIE IP,因为前面介绍的IP需要我们自己构建TLP包,还有分散收集策略,基于该IP使用起来PCIE还是优点困难。但是XDMA就特别简单了,他不需要FPGA设计者熟悉PCIE协议,直接将PCIE协议转换成AXI4与AXI_Lite协议,可以直接对DDR进行操作。XDMA内部的分散收集操作、TLP组包、DMA操作等等进行了完整的封装。我们可以把XDMA IP看成我们经常使用的ZYNQ IP,他的BAR空间被AXI_Lite总线进行读写操作用于寄存器的配置,AXI总线用与大数据的传输直接与DDR对接。

XDMA的内部额框图如下:

在这里插入图片描述
对XDMA的内部描述如下:
1、AXI4、 AXI4-Stream,必须选择其中一个,用来数据传输
2、 AXI4-Lite Master,可选,用来实现PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可用来读写用户逻辑寄存器
3、 AXI4-Lite Slave,可选,用来将XDMA 内部寄存器开放给用户逻辑,用户逻辑可以通过此接口访问 XDMA内部寄存器,不会映射到BAR
4、AXI4 Bypass 接口,可选,用来实现PCIE 直通用户逻辑访问,可用于低延迟数据传输

首先选择XDMA IP如下:
在这里插入图片描述
双击点开该IP的配置:
在这里插入图片描述
1、该IP是作为Endpoint来进行PCIE操作的
2、IP定制的模式是高级,这样一来可供选择的IP定制选项就会增多
3、PCIE硬核的位置,这里我们的芯片只有一个硬核,所以这里默认即可
4、lane的个数,与开发板相对应,这里选择2个
5、XDMA将PCIE转换成AXI协议,这个就是AXI协议的位宽
6、该片子的高速串行接口是GTP口,支持PCIE Gen1 Gen2协议,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值