Xilinx PCIe高速接口入门实战(一)

**引言:**本文对Xilinx 7 Series Intergrated Block for PCI Express PCIe硬核IP进行简要介绍,主要包括7系列FPGA PCIe硬核资源支持、三IP硬核差异、PCIe硬核资源利用等相关内容。

1. 概述

1.1 7系列FPGA PCIe硬件资源支持

7系列FPGA对PCIe接口最大支持如表1所示。

表1:7系列FPGA器件最大资源支持

Spartan-7系列不包含PCIe硬核,Artix-7和Kintex-7包含1个PCIe Gen2硬核,Virtex-7根据器件资源不同支持2~4个PCIe Gen3硬核。

1.2 PCIe硬核 IP

Xilinx 7系列FPGA集成了PCIe硬核IP模块,该IP核中固化了PCIe物理层和数据链路层协议相关设计,降低了PCIe协议的使用难度。对于事务层接口,7系列FPGA提供了三种不同的IP核供选择,如图1所示。

图1:7系列FPGA三种不同的IP核

图2:7 Series Intergrated Block for PCI Express核框图

**7 Series Intergrated Block for PCI Express:**如图2所示,它是最基础的PCIe IP,实现的是PCIe的物理层、数据链路层,提供给用户的是以AXI4-stream接口定义的TLP包。它是这三种IP中资源使用最小,最灵活,也是开发难度最大的。用户如果要往主机发数据,需要在逻辑端组好MEM_WR事务包送到AXI4-stream接口,同样要从主机获取数据,就要发送MEM_RD事务包,然后获取到COMPLETE事务包,再从COMPLETE事务包中提取出数据。使用该IP核,需要对PCIe协议有清楚的理解,特别是对事务包 TLP 报文格式。

图3:AXI Memory Mapped To PCI Express IP核框图

**AXI Memory Mapped To PCI Express:**如图3所示,它对第①中IP核进行了增强封装,简化设计,提供了AXI MM/S桥接,该桥不仅实现了AXI4 to stream的功能,还提供了事务层包TLP的组装和拆卸、地址转换、错误处理等功能。使用该IP时,用户只需通过AXI4接口接收和发送PCIe数据,不需要组装和拆卸事务包。从逻辑资源消耗的角度来看,居三种IP之中,开发难度也是居三种IP之中。

图4:AXI Memory Mapped To PCI Express IP核框图

**DMA/Bridge Subsystem for PCI Express:**如图4所示,它也叫做 XDMA,相较于上一种IP,该IP不仅完成了事务层的组包解包,还添加了完整的DMA引擎。虽然在资源利用方面居三者之最,但开发难度也是三种IP最小的,完全不了解PCIe总线协议也可使用该IP开发PCIe。XDMA虽然简单易用,但XDMA也有它的局限,主要表现在两个方面:

1)XDMA正如其名字中的DMA一样,适用与大批量的数据传输场景,不适合小数据场景;

2)XDMA只能用于PCIe的终端(endpoint)设备,不能用于Root Port,另外二个IP既可以用于终端(endpoint)设备,也可以用与Root Port。

2. 7 Series Intergrated Block for PCI Express IP核特性

该IP核集成块是一种可扩展、高带宽和可靠的串行互连构建块,适用于Xilinx®Zynq®-7000 SoC和7系列FPGA系列。该集成块支持5Gb/s(Gen2)速度的x1、x2、x4和x8通道端点配置和根端口配置,所有这些配置都符合PCI Express基本规范2.1版。该解决方案支持AMBA®AXI4 Stream接口户用户界面。凭借更高的每引脚带宽、低开销、低延迟、减少的信号完整性问题和CDR架构。其主要特性如下:

●高性能、高度灵活、可扩展、可靠的通用I/O内核;

●采用Xilinx Smart IP技术,保证关键时序;

●7系列FPGA系列使用GTXE2或GTPE2收发器:

○支持2.5 GT/s和5.0 GT/s线速度

○支持x1、x2、x4和x8通道

○弹性缓冲和时钟补偿

○自动时钟数据恢复

●支持端点(EP)和根端口配置(RC);

●8B/10B编码和解码;

●根据PCI Express规范要求支持通道反转和通道极性反转;

●标准化用户界面;

●符合PCI/PCI Express电源管理功能和事务排序规则;

●支持高达1024字节的最大事务有效载荷;

●支持最多32个矢量的多矢量msi和msi-x;

●升级配置功能实现了应用程序驱动的带宽可扩展性。

3. 典型应用领域

PCIe典型应用领域包括:

●电信网络;

●宽带有线和无线应用程序;

●网络接口卡;

●芯片到芯片和背板接口卡;

●用于各种应用程序的服务器 add-in 附加卡。

●数据通信网络。

4. PCIe硬核资源利用

7 Series Intergrated Block for PCI Express支持的线速及用户接口位宽如表2所示。

表2:7 Series Intergrated Block for PCI Express支持的线速及用户接口位宽

表3显示了针对不同通道配置,PCIe硬核资源使用情况。

表3:针对不同通道配置,PCIe硬核资源使用情况

表4显示了针对不同通道、线速配置,PCIe硬核BUFG资源使用情况。

表4:针对不同通道、线速配置,PCIe硬核BUFG资源使用情况

相关推荐
∑狸猫不是猫12 小时前
数字图像处理(13):图像裁剪
图像处理·fpga开发
Anin蓝天(北京太速科技-陈)17 小时前
160-两路14位400Msps AD,两路16位400Msps DA FMC子卡模块
嵌入式硬件·fpga开发
DFT_bug_king20 小时前
sram测试注意讨论
嵌入式硬件·fpga开发
第二层皮-合肥1 天前
FPGA设计-基于SJA1000的can控制器设计
fpga开发
杨德杰1 天前
开源ISP介绍(1)——开源ISP的Vivado框架搭建
图像处理·fpga开发·嵌入式·isp·vitis
嵌入式大圣1 天前
嵌入式 FPGA开发
fpga开发
∑狸猫不是猫2 天前
数字图像处理(12):灰度二值化
图像处理·计算机视觉·fpga开发
fei_sun2 天前
【Verilog】实验六 移位寄存器的设计
fpga开发·verilog
北城笑笑2 天前
FPGA系列,文章目录
fpga开发·fpga