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资源使用情况

相关推荐
cycf12 小时前
CRC校验
fpga开发
landyjzlai13 小时前
AMBA总线(15)关于AXI-stream(sg模式)
arm开发·fpga开发·amba
白狐_79813 小时前
Quartus Prime 新手完全使用指南
fpga开发
Aaron15881 天前
三种主流接收机架构(超外差、零中频、射频直采)对比及发展趋势浅析
c语言·人工智能·算法·fpga开发·架构·硬件架构·信号处理
博览鸿蒙1 天前
一颗数字系统是如何在 FPGA 上“跑起来”的?
fpga开发
雨洛lhw1 天前
FPGA JTAG接口设计全解析
fpga开发·jtag
minglie12 天前
iverilog 配合 Makefile 搭建 Verilog 仿真工程
fpga开发
芒果树技术2 天前
MangoTree案例分享:基于AtomRIO FPGA平台,客户实现自适应主动减振
测试工具·fpga开发·模块测试
雨洛lhw2 天前
按键电路设计的细节
fpga开发
minglie12 天前
vio_uart的浏览器版上位机
fpga开发