FPGA高速串行收发器,GTP,GTX - 图文 下载本文

的格式发布这些模型。最流行的格式称作smart模型或者swift。通常,模型经过加密后,仿真器可以读取模型但是用户不能。模型内部的节点和层次对于用户来说是不可见的;用户只能看见模型的输入和输出。

2)数字仿真

MGT数字仿真的另一个问题是仿真速度。通常的数字电路大多数工作在100-300MHz的范围,因此。需要把仿真的时标调整到几个纳秒。但是如果添加一个MGT的线速度模型,则信号速度就会比之前最快的信号还要快20倍以上。MGT模型都有一个并行的输入和输出端口,因此如果在大多数的测试台中使用这些措施,并创建一个实际运行在全数据速率的小型测试组件,则MGT对全局验证时间的影响将会大大减小。

第2节 基于Rocket I/O高速串行技术

10.3.1 Rocket I/O技术简介

Rocket I/O是一种高速的串行收发器,采用两对差分对来进行数据的发送和接收,可以实现两个单工或一对全双工的数据传输。Rocket I/O支持从622 Mbps至3.75Gbps的全双工传输速率,还具有8B/10B编解码(平衡编码)、时钟生成及恢复等功能,可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议,可用于高速线性通路之间的点到点串行数据传输,同时其可扩展的带宽,为系统设计人员提供了所需要的灵活性。

Rocket IO收发器发送和接收串行差分信号,工作于2.5V的直流电压下,采用CML(Current Mode Logic)模式,内部带有50Ω或75Ω的匹配电阻。此外,Rocket IO采用了预加重技术,可以补偿传播媒质中的高频损耗,极大地降低了共模信噪比和线路衰减。由香农公式:

可以得到,当信道容量一定时,信道带宽W的增加会造成信噪比下降。由于Rocket IO单路传输速率最高可达3.75 Gbps,因此可允许很低的信噪比。总体来讲,Rocket IO的显著特点包括:

? 速率范围介于100Mbp到3.75Gbp之间;

? 业内最低的功耗:在3.2Gbps下每个通道的功率均低于100mW; ? 可在单个FPGA中实现多个协议(标准的和定制的);

? 设计用来与Virtex-5 LXT和SXT平台FPGA内的PCI Express?端点与三态以太网 MAC模

块一起使用;

? 符合芯片到芯片、背板与光学器件接口的常见标准和协议; ? 先进的Tx/Rx均衡技术,可以驱动背板和其它困难通道; ? 内置式PRBS发生器/检验器可以加速调试; ? 在Virtex-5 LXT平台器件中的收发器多达24个;

10.3.2 Aurora协议

1.Aurora协议简介

Aurora是一个相对简单的协议,只控制链路层和物理层。Aurora的设计理念是使其它高层协议,例如TCP/IP和以太网,可以很容易的运行在Aurora之上。Aurora协议使用1个或多个高速的串行通道构成更高速的通路,如图10-3所示。

图10-3 Aurora链路结构示意图

Aurora不仅定义了物理接口,而且定义了包结构、嵌入其它协议包的推荐程序、数据提取和流量控制。协议中定义了有效链路的初始化程序,同时还描述了禁止使用发生过量错误的链路的相关程序。由于协议中没有寻址时序,所以不支持交换。协议中也没有定义错误检测、重传或有效载荷的纠错。此协议是由Xilinx开发的,并且无限制地开放给公众自由使用,也可以将Aurora数据包加载到其他协议。

2.定制协议

在某些情况下,用户可能希望制定自己的协议。特别是当标准协议不能满足要求,或者标准协议对于用户的应用来说太过宽泛时,制订用户自己的协议是个很好的选择。当然,有时用户可能也需要一个新的复杂协议,但是这种情况通常留给制定标准的专业协会。这里我们给出一个简单的例子,来了解在制定自己的协议时应当考虑的各种事项。在这个简单的应用中,需要将恒定的1.8 GHz信号流从一块板传送到另一块板。系统的输入输出使用12位的总线,工作在150MHz。针对这个简单的应用需求,协议中需要定义的内容包括:数据帧结构、对齐和idle(空闲)字符。此例中,我们使用8b/10b作为线路编码机制,并从其它8b/10b标准中借用标记及comma字符的定义。链路的基本结构如图10-4所示。

图10-4 基本帧结构

首先需要为SF(帧开始)、EF(帧结束)和idle(空闲)指定字符或者有序的字符集,之后再确定线路速率和数据帧大小。适当设置数据帧的大小,以保证对齐时有充足的SF符号,并且进行时钟修正能够有足够的idle符号。如果要传送1.8 GHz的载荷,那么传输线速率为2.5Gb/s,其有效载荷速率

为2Gb/s,可以满足1.8GHz的数据需求,其额外的容量还可用于所需开销。

10.3.3 Rocket I/O硬核模块的体系结构

Xilinx公司不同的系列芯片中集成的Rocket IO是不同的,本节以经过大量应用的Virtex-2 Pro系列为例进行介绍。

1.Rocket IO架构

Virtex-2 Pro系列FPGA最多可包含16个Rocket IO模块,基本上分布于FPGA的上下两端,如图10-5所示。每通道可提供622Mbps~3.125Gbps的传输能力,且不需要在发送端配置串行数据速率,这是因为接收端的工作时钟是从接收数据中提取出来的。

图10-5 Rocket IO在Virtex-2 Pro芯片中分布示意图

Rocket IO包括PMA(Physical Media Attachment,物理媒介适配层)和PCS(PhysicalCoding Sublayer,物理编码子层)两个子层,其内部结构如图10-6所示。其中PMA子层主要用于串行化和解串,PCS主要包括线路编码和CRC校验编码。

图10-6 Rocket I/O收发器的内部结构示意图

PMA子层中集成了SERDES,发送和接收缓冲,时钟发生器及时钟恢复电路。SERDES是一个串并转换器,负责FPGA中本地的32位并行数据(也可以是16位或8位)与Rocket IO接口的串行数据之间的转换。采用串行数据收发,可以在高频条件下很好地避免数据间的串扰。时钟发生器及时钟恢复电路用于将时钟与数据绑定发送,以及将时钟从接收到的数据流中恢复出来,从而避免了在高速传输条件下时钟与数据分开传输所带来的时钟抖动等问题。

PCS子层负责8B/10B编码解码和CRC校验,并集成了负责channel绑定和时钟修正的弹性缓冲。8B/10B编码可以避免数据流中出现连0连1的情况,便于时钟的恢复。channel绑定通过在发送数据流中加入P字符来将几个RocketIO通道绑定成一个一致的并行通道,从而来提高数据的吞吐率。最多支持24个通道的绑定。弹性缓冲可以解决恢复时钟与本地时钟的不一致问题,并进行数据率的匹配,从而使得channel绑定成为可能。对Rocket IO模块的配置,可以通过下面两种方式进行:静态特性可以通过HDL代码设置;动态特性可以通过Rocket IO的原语端口进行配置。

2.Rocket IO硬核模块说明

Rocket IO硬核模块可通过原语和Core Generator调用,其模块结构如图10-7所示。可以看出,该硬核分为时钟合成器、时钟和数据恢复器、发送器、接收器、环回器、缓冲器、CRC校验模块、配置模块以及复位模块等九个主要组成部分。

1)时钟合成器

在实际设计中,高性能的通信质量要求有高稳定性和高精度的时钟源,而抖动和频偏是衡量时钟源的两个重要指标。RocketI/O内部的工作时钟需要将输入时钟经过数十倍的倍频,但其可容忍的时钟偏差为40ps,因此建议选择高精度的差分时钟。Xilinx公司推荐选用Epson EG22121CA 2.5V(LVPECL Outputs)或者Pletronics LV1145B(LVDS Outputs)晶振。当Rocket I/O在2.5G波特以上时,参考时钟应采用差分输入方式(如LVDS、LVPECL),由专用差分时钟引脚输入,然后引到相同或相邻通道中RocketI/O的参考时钟输入端;当RocketI/O在2.5G波特以下时,不要使用FPGA内部的DCM模块来产生参考时钟,因为经过DCM倍频的时钟会引入较大的抖动,使RocketI/O的接收锁相环无法稳定地锁定发送时钟。