EDN首页   博客首页

日志档案

发表于 2007-5-28 17:14:17

2

标签: 无标签

基于PX1011A 和XILINX PIPE CORE的PCIE 总线协议实现

1          前言

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

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

2:PCIE总线和PX1011A的介绍

2.1  PCIE 总线的介绍

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

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

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

2.2  单通道物理层收发器PX1011A

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

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

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

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

3:基于PX1011A收发器芯片的硬件电路设计

 3.1 PX1011A收发器芯片硬件电路设计

PCIE接口硬件电路包括三个部分:第一部分是PX1011A与FPGA的连接信号线,包括8位的接受发送信号TXD[7:0]和RXD[7:0],控制信号RX_DATAK、RX_VALID、RX_CLK、RX_EIDLE、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接口的连接信号线,包括差分接受信号,差分发送信号,差分时钟信号。第三部分是PCI Express的配置接口,包括PCIE_TMS、 PCIE_TCK、PCIE_TDO、PCIE_TDI和PCIE_TRST。

 

PX1011A与FPGA以及PCIE slot的连接图

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

Xilinx Spartan-3 PCI Express设计包括一个PCI Express PIPE Endpoint LogiCore。 Xilinx低成本Spartan-3系列提供PCI Express协议层核。 PCIE PIPE Endpoint LogiCORE整合了分立的PCIE PHY,提供了全面的、完全符合PCI Express基础规范(PCI Express Base 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信号,为了减少信号间的延时误差,每组信号布线时尽量等长。

       6:对于插入的板卡,PX1011A到金手指的距离要小于4inchs;系统底板上,PX1011A到插槽的距离要小于12inchs。

差分布线要求:参考PXA1011A的PCB布线要求

7:SSTL_2信号的布线要求,八位输入和输出信号各自要等长,不要求输入和输出等长。信号的具体布线见下图:

     

4:PIPE Core实现PCIE总线协议

 4.1Xilinx PCI Express PIPE Core

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

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

4.2       数据接受和发送的时序分析

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

发送数据端口包括 PIPE Core 准备接受32位数据的trn_tdst_rdy_n信号,用户有效数据trn_tsrc_rdy_n,发送32位数据trn_td[31:0],帧开始信号trn_tsof_n和帧结束信号trn_tesof_n。接受端口第一个包的长度是其它包的两倍,其余时序与发送信号类似,具体如下图所示。

4.3       FPGA设计

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

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

在Core Generation之后,根据PIPE Core提供的文件加载各模块的源文件。至此,带PCIE总线协议的接口已经建立好,用户应用程序在模块中添加。如右图综合后的RTL示意图所示:

 

5:结语

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

6:参考文献
[1] Ravi Budruk,Don Anderson,Tom Shanley, PCI Express系统体系结构标准教材,电子工业出版社,2005
[2] 基于FPGA的嵌入式系统设计,徐欣 于红旗,机械工业出版社,2005

[3] Xilinx Logicore,PDF,PCI Express PIPE Endpoint 1-Lane Core v1.3

[4] NXP PX1011A datasheet ,PDF,PX1011A/PX1012A PCI Express stand-alone X1 PHY

[5] NXP PCB,PDF,AN10373 PCI Express PHY PCB Layout Guideline

[6] PCI Express总线技术分析,PDF,郭邵日 张振宇,飞利浦半导体公司
                                                  吴建飞
                                              www.runcore.com

系统分类: 嵌入式   |   用户分类: 无分类   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1010)    回复(0)  

投一票您将和博主都有获奖机会!