目录
前言
Xilinx DMA/Bridge Subsystem for PCI Express® (PCIe®)可配置为PCI Express与AXI存储器空间之间的高性能直接存储器访问(DMA)数据移动器或桥接器。两种配置情况具体描述如下:
1.DMA
该核可通过AXI Memory Mapped接口或者通过AXI Streaming接口来配置,以支持直接连接至RTL逻辑。在PCIe地址空间与AXI地址空间之间可使用所提供的字符驱动程序通过以上任一接口进行高性能块数据移动。除了基本DMA功能外,DMA还支持最多4条上游和下游通道、支持PCIe流量绕过DMA引擎(主机DMA旁路),还支持通过可选描述符旁路来管理来自FPGA互连结构的描述符,以满足需要最高性能和最低时延的应用的需求。
2.PCIe Bridge
接收到的PCIe数据包将被转换为AXI流量,接收到的AXI流量则将被转换为PCIe流量。桥接功能适合需要快速轻松访问PCI Express子系统的AXI外设使用。桥接功能可用作为端点(Endpoint)或根端口(Root Port)。
3.DMA/Bridge Subsystem for PCI Express®
DMA/Bridge Subsystem for PCI Express®支持在主机存储器与DMA子系统之间移动数据。具体方式是对包含有关源、目标以及要传输的数据量的信息的“描述符”进行操作。这些直接存储器传输可在主机到卡(H2C)和卡到主机(C2H)传输中执行。DMA可配置为包含单个AXI4主接口(供所有通道共享),或针对启用的每条通道包含1个AXI4-Stream接口。存储器传输在已链接的描述符列表中按通道来执行,DMA将从该列表中提取主机存储器和进程。诸如描述符完成和错误等事件均使用中断来发出信号。该核还提供最多16个用户中断连线,用于向主机生成中断。
4.接口定义
主机能够通过以下2个接口直接访问用户逻辑:
AXI4-Lite主接口配置端口
此端口为固定32位端口,用于对用户配置和状态寄存器执行非性能关键性访问。
AXI Memory Mapped主接口CQ旁路端口
此端口的宽度与DMA通道数据路径相同,用于对用户存储器执行高带宽访问,可满足 诸如对等传输等应用的需求。
设计过程
配置环境
操作系统:Windows 10
Vivado版本: Vivado 2020.2
测试方案
XDMA IP核配置方式
Basic项
lane width表示pcie通信并行数据宽度,设计中使用的ZYNQ7最高只支持X4,兼容情况 需考虑PC的PCI卡槽最大支持。
link speed选择最大的,顺便说一句,这里的IP核都是pcie 2.0协议的。
AXI clock是AXI总线时钟频率,选125M。
DMA interface是AXI Memory Mapped即地址映射,用于访问存储类的设备,另一个 AXI Stream表示AXI数据流,没有地址,数据直接流入或流出。
PCIe ID项
这里是一些厂商ID、设备ID等配置,保持默认即可,否则对应驱动需要修改INF文件。
PCIe:BARs项
PCIe to AXILite Master Interface:针对基本需求二,XDMA作为PCI-AXI桥接器时,PC 可以通过XDMA访问PL端的BRAM,值得注意的是PCIe to AXI Translation需要PC与PL 端商定,否则访问地址会出现偏差。
PCIe to DMA Interface:默认选项,PC访问DDR的方式如下PC->XDMA->PS->DDR
PCIe to DMA Bypass Interface:不做勾选,如勾选则IP核仅作为PCIe使用,如需使用 DMA功能,可另行添加定制DMA核配合使用。
PCIe:MISC项
User Interrupts:这里选择2个,即PL2PC的中断一共两个。
Legacy Interrupt Settings:这种使用的INTA,为漏极开路且低电平有效(相应的 IRQ应编程为电平触发方式)
ZYNQ7 Processing System核配置情况
PS-PL配置项
使能M AXI GP0 interface,用于PS端访问BRAM使用;
使能S AXI HP0 interface,用于PC端访问DDR使用。
MIO配置项
使能Quad SPI Flash,固化程序;
使能UART1,用于调试输出。
DDR配置项
DDR3选择MT41J256M16 RE-125
Interrupt配置项
使能IRQ_F2P[15:0]选项,用于PL端到PS端的中断触发通路,具体PS端的中断响应后面会进行描述。
总结
至此,ZYNQ的配置基本完成。后续生成bit文件的方式不在这里赘述。