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

相关推荐
坏孩子的诺亚方舟16 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐16 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐16 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH17 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡17 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安17 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐18 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯18 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客18 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA18 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发