基于Xilinx FPGA的PCIE接口实现

随着系统性能、功能和带宽的日益增长,总线技术也在迅速的发展。海量存储,卫星通讯,高速数据采集与记录以及其他数据处理的数据吞吐量现以KMbp s为量级,未来计算机系统对带宽和扩展性的要求已经超越了第二代总线技术。由英特尔提出的第三代高性能I/O总线技术—PCIE总线解决了PCI总线的不足,它的发展将取代PCI成为新型的数据总线,其提供了更加完善的性能,更多的功能,更强的可扩展性和更低的成本。

本文研究了采用NXP公司的PC I Exp ress接口协议芯片PX1011A和Xilinx公司Spartan - 3 FPGA实现PC IE接口的硬件电路设计以及使用Xilinx公司提供的PC I Exp ress LogiCORE IP核的软件设计。

2 PCIE总线和PX1011A的介绍
2. 1 PCIE总线的介绍
PC I Exp ress是用来互连诸如计算和通信平台应用中外围设备的第三代I/O总线技术,第一代总线包括ISA、E ISA、VESA和微通道(Micro Channel)总线,而第二代总线则包括了PCI、PC I - X和AGP。PCI Exp ress是一种能够应用于一种设备、台式电脑、工作站、服务器、嵌入式计算机和通信平台等所有周边I/O设备互连的总线。

PC IE最初由Intel发展,并于1992年在市场发布。PC IE的体系结构继承了第二代总线体系结构最有用的特点,并且采用了计算机体系结构中新的开发成果。它保留了原先的通讯模型和下载配置机制,但抛弃了共享总线的方式,采用点到点的总线连接方式。由于它提供了更高的性能特点和越来越大的带宽,从而解决了PC I、PCI - X和AGP的许多缺点,是以后PC发展必然采用的接口总线,其必将取代PCI, PC I - X以及图形加速器(AGP) 。

PC IE总线保留了对于PCI局部总线协议全部软件的向下兼容性,即只要是PC IE的卡都可以插到带有PCI的操作系统使用;在硬件上,两者不兼容, PCIE取代PC I、PCI - X的并行多路总线结构,采用了一种串行、点到点的总线连接结构,需要的接口更少。

2. 2 单通道物理层收发器PX1011A
NXP公司的PX1011A 是一款与低成本FPGA一起使用而优化的单通道2. 5Gbp s的PC I Exp ressPHY器件。它具有很小的封装,可提供卓越的发射和接收性能,符合PCI Exp ress规范v1. 0a和v1. 1。它通过采用用于传输和接收数据的同步时钟源来提高片外应用的性能。

数据由接收器的差分输入接口进入PX1011A,在被传送到解串化电路之前,这些数据将小振幅的差分信号变为轨对轨的数字信号。一个载波检测电路将检测线路上是否有数据并将这些信息传送到SERDES和PCS上。SERDES将这些数据串行为10位并行数据。然后PCS采用8位/10位解码器来恢复成8位数据格式。

在发送过程中,来自P IPE接口的8位数据通过一个8位/10位编码算法进行编码。8 位/10 位编码确保串行数据被直流平衡以避免交流耦合系统中的基带漂移,它同时确保足够的数据转换以避免接收端的时钟恢复。

PX1011A的MAC接口采用独立的时钟,由片内100MHz的基准时钟的锁相环来产生。锁相环有一个相对较高的带宽来实现可选的扩频并减少EM I。8bit 数据接口在250MHz 上运行并进行SSTL2信号发送,这种模式与流行的FPGA I/O接口兼容。

3 基于PX1011A收发器芯片的硬件电路设计
3. 1 PX1011A收发器芯片硬件电路设计
PC IE接口硬件电路如图1 所示,包括三个部分:第一部分是PX1011A 与FPGA 的连接信号线,包括8位的接收发送信号TXD [ 7: 0 ]和RXD [ 7: 0 ] ,控制信号RX_DATAK、RX_VAL ID、RX_CLK、RX_E IDLE、RX_POLAR、RX_PHY_STAT、TX_DATAK、TX_CLK、TX_EIDLE、TX_COMP、TX_DET_LOOP、TX_PWRDN0、TX_PWRDN1,状态信号STAT0、STAT1、STAT2和复位信号RESET。第二部分是PX1011A与PCIE接口的连接信号线,包括差分接收信号,差分发送信号, 差分时钟信号。第三部分是PCIExp ress的配置接口,包括PCIE _ TMS、PCIE _ TCK、PCIE_TDO、PCIE_TD I和PCIE_TRST。

FPGA 选用Xilinx 公司的Spartan - 3 系列XC3S1000,采用90nm 材料生产,容量高、成本低。具有业界一流的区块和分布,具有多达784个I/O、MicroB laze 32位R ISC软处理器和支持乘法累加器(MAC)功能(专用18x18乘法器提供高达3300 亿
次MAC /秒)的嵌入XtremeDSP功能。

Xilinx Spartan - 3 PCI Exp ress设计包括一个PCI Exp ress P IPE Endpoint LogiCore。Xilinx低成本Spartan - 3系列提供PCI Exp ress协议层核。PC IE P IPE Endpoint LogiCORE整合了分立的PCIE PHY,提供了全面的、完全符合PC I Exp ress基础规范( PCIExp ressBase Specification) v1. 1的PCIE端点解决方案。

3. 2 PCB布线
PCB布线时有以下注意点:终端阻抗布线尽量降低容性;一组信号,避免在参考层断续;高速信号尽量在一层布线,不要打孔,否则要在过孔处打一个U形的地孔;微波传输带,差分信号布线线宽5mil,间距7mil;带状传输线,差分信号布线线宽5mil,间
距5mil。信号之间的间距在5 ×4 = 20mil以上,高压和边缘尖锐的信号尽量远离差分线,避免干扰。

接口上数据采用SSTL2信号发送,传送速率达到250MB / s。每组数据发送端需串行一个25欧姆电阻,数据接收端上拉50欧姆电阻,提高信号的阻抗匹配。TD和RX每组为8位250MB / s信号,为了减少信号间的延时误差,每组信号布线时尽量等长。

4 P IPE Core实现PC IE总线协议
4. 1 Xilinx PC I Exp ress P IPE Core
Xilinx PCI Exp ress P IPE Core符合PC I Exp ress Base Specification v1. 1 规范的协议和电特性兼容,提供完整的端点解决方案,包括物理链接与处理和配置管理模块。支持同步点对点通信,上行和下行流程控制,与PCI Exp ress处理排序规则完全兼容。有效的链接带宽利用率,误差检测和恢复。支持最大为512字节的有效负载,经过Xilinx专有的测试平台验证的设计,通过PC I - SIG的认证大会( com2p liance workshop) 。

P IPE Core包括传输层,数据链路层,物理层,配置管理层四个模块。这些模块包括产生和进行传输包、数据流的控制管理,初始化,电源管理,数据保护,误码检测,物理接口初始化,并串转换以及其他的接口操作。各个模块的具体连接关系如图2 所
示。

4. 2 数据接收和发送的时序分析
数据的接收和发送都包含以下接口信号:传输时钟trn_clk,利用PCIE端口的100MHz差分时钟输入,通过Core的内部DCM产生62. 50MHz时钟,传输和配置模块的操作都在trn_clk的上升沿变化;传输复位信号trn_reset_n,低有效;传输链路挂起信号
trn_lnk_up_n,在Core与连接方取消通信时产生,所有存在端口的传输包都会丢失。

发送数据端口包括P IPE Core准备接收32位数据的trn_ tdst_ rdy_n信号,用户有效数据trn _ tsrc _rdy_n,发送32 位数据trn _ td [ 31: 0 ] ,帧开始信号trn_tsof_n和帧结束信号trn_tesof_n。接收端口第一个包的长度是其它包的两倍,其余时序与发送信号类似,具体如图3所示。

4. 3 FPGA设计
选用Xilinx公司的ISE软件并采用Verilog硬件描述语言可对该IP核进行行为级描述和逻辑综合,同时可将生成的网表文件设计实现,包括逻辑综合及布局布线。具体设计过程中,需要先加载P IPE Core,这要求ISE为8. 1 以上版本,同时要取得IP
Core的使用授权。

配置P IPE Core, 需要确定设备的生产厂商Vendor ID,设备编号Device ID,类型Class Code, I/O方式的地址存储器空间BAR,有效载荷大小等信息。

在Core Generation之后,根据P IPE Core提供的文件加载各模块的源文件。至此,带PCIE总线协议的接口已经建立好,用户应用程序在模块中添加。

5 结束语
实验结果表明,以PX1011A 和Xilinx公司的Spartan - 3 FPGA搭建的×1 PCIE平台最高传输速率可达150MB / s,能够满足高速信号传输的性能要求。随着器件的发展和IP 核的开发, 多通道的PCIE总线技术将会迅速发展。PCI Exp ress总线取代捉襟见肘的PCI总线已是大势所趋,它能给电脑硬件的发展提供一种高性能的总线平台,充分发挥各硬件子系统的性能,并为这些子系统今后的性能提升开辟更广阔的空间。

作者:石 峰,吴建飞,刘 凯,徐 欣