前言:PCIE两个主要的框架包括XDMA、RIFFA。前面介绍了RIFFA的使用,下面介绍XDMA框架的使用。
文章目录
一、XDMA框架介绍
XDMA是xilinx官方提供的7系列FPGA的pcie应用程序开发的一个框架,其中可以支持用户AXI、AXISTREAM总线交互,主要特点是PC端应用程序可以很方便的通过AXI时序访问FPGA侧逻辑。
补充:实际更多使用AXI总线,AXISTREAM总线效率不容易提升。
Q:PCIE DMA主要来做什么?
A:PCIe DMA 主要用来解决数据在 FPGA 和 PC 之间高速通信的问题。
Q:XDMA 的效率怎么样?
A:实测传输带宽大约在满带宽的70%-80% 左右。
XDMA VS RIFFA
数据位宽上
- RIFFA:最大数据位宽128bit(如果想提高需要手动改框架代码,难度高)
- XDMA:最大数据位宽256bit(支持PCIE 3.0)
效率上
XDMA < RIFFA
相同任务下:RIFFA的带宽达到800MB/s左右,而XDMA只有500MB/s左右。
开发的难易程度上
XDMA < RIFFA
二、项目介绍
项目概况:
PC 机捕获视频,通过 PCIE 驱动 H2C 通道把视频数据下发到 DDR3,AXI 通道读取视频数据驱动 HDMI 显示到显示器。
USER Device 我们创建一个 axi lite 从设备用于存储上位机下发的配置数据。
中断我们通过 user device 产生一个标志触发 Interrupt,上位机读取此标志。
- H2C(host 2 card)是 PC 机下发数据到 FPGA 板卡的通道。
- C2H (card 2 host)是 PC 机读板卡的数据通道。
- USER 是通过 XDMA 的 axi-lite 接口访问 user device 接口,这里这个 user device 可以是任意的从机。
- Event 接口是事件接口,通过 xdma 的中断引脚给 PC 机传递中断事件,但是这个不会中断 pc 的 CPU ,而是可以 CPU 循环读取此事件标志。
三、重难点
3.1 XDMA ip配置
Basic标签页
需要配置选项:
Mode:配置模式,选择 Basic 配置模式就可以了,Advanced 高级配置一般用不到;
Lane Width:链路宽度,对于达芬奇 Pro 开发板,选择 x2;
Max Link Speed:最大链路速度,选择 5.0GT/s,即PCIe 2.0 的传输速率;
Reference Clock:参考时钟频率,选择 100MHz;
AXI Clock:AXI 时钟频率,选择 125 MHz;
DMA Interface Option:DMA 接口选项,选择 AXI4 Memory Mapped接口。
关于 Basic 标签页的部分选项介绍如下:
Functional Mode:功能模式,对于 A7 系列的 FPGA 芯片,只支持 DMA 模式;
Mode:配置模式,可以选择基本(Basic)配置模式或高级(Ad