一、Xilinx 几种 IP 核区别
| IP 核名称 | 核心特点 | 用户接口 | 开发难度 | 适用场景 |
| 7 Series Integrated Block for PCI Express | 最基础的 PCIe 硬核,提供物理层和数据链路层 | AXI4-Stream TLP 包 | 最高,需处理 TLP 包 | 需深度定制 PCIe 通信,对资源敏感的项目 |
| AXI Memory Mapped To PCI Express | 桥接 IP,将 PCIe 接口转换为 AXI 接口 | AXI4 内存映射 | 中等,类似操作总线 | FPGA 需主动读写主机内存,平衡效率与灵活性 |
| DMA/Bridge Subsystem for PCI Express (XDMA) | 集成 DMA 引擎,提供一站式解决方案 | AXI4 (另有 AXI-Lite 等辅助接口) | 最低,官方提供驱动 | 高速数据批量传输(如采集卡),追求开发效率 |
注意:
- 硬件平台限制:不同系列的 Xilinx FPGA(如 7 系列、UltraScale、Versal)支持的 PCIe 代数和通道数可能不同。在选择 IP 核前,请务必确认您的 FPGA 型号是否支持所需的 PCIe 配置(如 Gen3 x8)。
- 资源与性能权衡:XDMA 虽然易用,但会消耗更多的 FPGA 逻辑资源。在资源紧张的设计中需要仔细评估。
- 驱动与系统集成:使用 XDMA 或 AXI Memory Mapped IP 时,通常需要配合驱动。XDMA 虽有官方驱动,但据反馈在某些版本下可能存在一些小问题,需要留意。
二、PCIe 介绍及使用
(一)版本说明
- 工具:Vivado 2016.4
- 芯片:xc7vx690tffg1157-2
- PCIe:Virtex-7 FPGA Gen3 Integrated Block for PCI Express v4.3(相比之前介绍的 7 Series Integrated Block for PCI Express 较新)
(二)数据信号区别
(1)哪几组
分为四组如下:
s_axis_rq_tdata,s_axis_rq_tuserm_axis_rc_tdata,m_axis_rc_tuserm_axis_cq_tdata,m_axis_cq_tusers_axis_cc_tdata,s_axis_cc_tuser
(2)都是啥
1)举例说明
举个例子,PC 传输一组波形数据到 FPGA,并且告诉 FPGA 将波形数据从 DAC 发出去,同时将发出去的信号用 ADC 采集回来通过 FPGA 传输给 PC。这个系统包含三个主要功能:
- PC → FPGA:传输 DAC 波形数据
- FPGA:控制 DAC 输出并同步 ADC 采集
- FPGA → PC:上传 ADC 采集数据


