打印

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

[复制链接]
8848|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梅花望青竹|  楼主 | 2013-5-13 23:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的数据需求,其额外的容量还可用于所需开销。

相关帖子

沙发
梅花望青竹|  楼主 | 2013-5-13 23:37 | 只看该作者
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的接收锁相环无法稳定地锁定发送时钟。

Rocket IO采集数据的同步时钟则是通过时钟/数据恢复电路来提取的,该电路由一个单片的PLL集成块实现,不需要任何外部组件。恢复电路从接收的数据流中提取出时钟的频率和相位,并通过20倍分频后送到输出管脚RXRECCLK上。


图10-7 Virtex-2 Pro系列Rocket IO模块说明

使用特权

评论回复
板凳
梅花望青竹|  楼主 | 2013-5-13 23:37 | 只看该作者
当高精度输入到FPGA中后,吉比特发送器对参考时钟输入管脚REFCLK的信号完成20倍倍频操作后,来作为自己的工作时钟。同样,该倍频器已集成在芯片中,不需要额外的组件。RXRECCLK和REFCLK二者之间没有固定的相位关系,且都为专用时钟信号,不能连接到其他管脚上作为他用。当使用4字节或1字节数据接收路径时,RXUSRCLK和RXUSRCLK2具有不同的频率,但是频率低的时钟下降沿要和频率高的时钟下降沿对齐。同样的关系也适用于TXUSRCLK和TXUSRCLK2信号。

例如,在Virtex-2 Pro系列FPGA中,由于Rocket IO模块内部将输入参考时钟20倍频,而Rocket IO模块可容忍的输入参考时钟抖动公差仅为40ps,可见参考时钟的抖动对其性能有直接影响。

典型的时钟输入如图10-8所示,外部时钟由差分或单端引脚馈入后,只经过一级全局时钟缓冲(BUFG)布设到时钟树上,再连接到Rocket I/O的参考时钟上,可最大幅度地减小抖动。


图10-8 Rocket I/O的时钟、复位连接示意图
2) 时钟和数据恢复器

如果没有数据存在,时钟/数据恢复器(CDR)电路会自动锁相到参考时钟上。为了使操作达到最佳性能,参考时钟的精度必须在100ppm之内。同时要满足供电系统的低噪声。如果有数据,则恢复电路会自动同步锁相到输入数据上。

3)发送器

发送器模块包括发送接口、8B/10B编码器、不均匀控制、发送FIFO、串行器、发送终端以及预加重电路。

(1)FPGA发送接口

发送接口可发送1、2或4个数据字符到发送器,每个字符都是8比特或10比特位宽。当选择8比特位宽时,多出的两比特就变成8B/10B编码器的控制信号。如果同时将8B/10B编码旁路后,10比特字符的顺序如图10-9所示。


图10-9 旁路掉8B/10B编码后的字符顺序
(2)8B/10B编码器

8B/10B编码器是一个可选的硬件组件,意味着它可以被旁路掉。在吉比特以太网、光纤信道以及infiniBand应用中,编码器都是用256个字数据符和12个控制字符。编码器在K-字符(单比特)后读入8个数据比特,由这9个比特数据生成10比特编码输出。当K-字符为高时,数据将被编码成8B/10B码中可用的12个K-字符组合中的1个;当K-字符为低时,8比特数据将被标准编码。

线路编码将8个数据位转换为不连续五个以上的“1”或“0”的10位比特码,以获取更好的直流平衡性,能提高数据传输速率、平衡码流中“0”、“1”概率,并且可以减小码流中长连“0”和长连“1”串。

使用特权

评论回复
地板
梅花望青竹|  楼主 | 2013-5-13 23:37 | 只看该作者
8b/10b编码是属于基于块编码的mbnb线路码中的一种,很多串行标准Infiniband、光纤通道千兆以太网ATM ESCON和DVB-ASI都针对原始数据流采用8B/10B编码和解码。其编码过程是将8个比特分成5B/6B与3B/4B两部分分别编码,如图10-10所示。


图10-10 8B/10B线路编码原理
8b/10b编码集合中包括数据字串和控制字串两部分数据字串,包括256个可能数值。其中,包括可作为控制字串K23.7 K28.0~K28.7 K27.7 K29.7 K30.7的码字。当传送的字串作为控制字串时,由Rocket IO模块相应的控制字标志输入引脚,如TX_CHARISK指定该字为控制字串。尽管8B/10B编码后,数据的传输效率只有80%,但还是在各类应用中获得广泛应用,其原因在于下面几个方面:

① 转换密度:其目的是保证在发送数据流中有足够的信号转换,以保证PLL正常工作。如果没有8B/10B 编码方法,数据中的一串1或0有可能引起接收时钟漂移或同步丢失,从而引起数据丢失。

② DC 补偿:8B/10B还保证对信号进行DC补偿,这意味着链路中不会随着时间推移而出现DC偏移,8B/10B编码将用户数据按字节8位块变换成多个10位的输出值,用这些值进行DC补偿。

③ 纠错:8B/10B编码遵循特定规则,根据这些规则,很多信号传输错误都可立即检测出来。

④ 特殊字符:8B/10B编码采用10位字符,其数量是8位字符空间中字符数的4倍,这样可以将特殊字符编码放入数据流中,它们不会被解码成数据字符,这些特殊字符可用作分隔符或其他命令。

8B/10B模块在设计中可以旁路掉,也可以用其余的线路编码方式代替,如64B/66B编码等。将发送器的TXBYPASS8B10B[n]控制信号设置成1,则可将发送端的线路编码模块旁路;在接收器中将RX_DECODE_USE设置为FALSE,就可把接收端的解码模块旁路。
在实际设计中,依据互连双方接口的电气标准的不同,有两种耦合方式:直流耦合和交流耦合。在直流耦合方式下,并不一定要求采用8b/10b编码,可以选择其它的线路码型或不用线路编码。但在较高的传输速率条件下,如2.5Gbaud以上,为了达到良好的抗干扰性能和低的误码率,应该考虑采用8b/10b编码。而在交流耦合方式下必须要选择8b/10b编码,否则接收端的漂移会使接收器无**常工作。

(3)不均匀性控制(Disparity Control)

8B/10B编码器被连续的“-”不均匀初始化,统一控制当前状态为不均匀性运行状态。TXRUNDISP表明了不均匀性的状态。

TXCHARDISPMODE和TXCHARDISPVAL可控制对每个接收字节使能不均匀性控制。例如,收发器可通过反向指定第二、第四字节的running disparity,产生以下序列:

K28.5+ K28.5+ K28.5– K28.5– 或 K28.5– K28.5– K28.5+ K28.5+

(4)发送FIFO

发送FIFO的长度为4,可通过配置旁路掉。只要当信号TXUSRCLK锁频到参考时钟REFCLK上,就可以使用FIFO,允许1个时钟周期的相位差。

使用特权

评论回复
5
梅花望青竹|  楼主 | 2013-5-13 23:37 | 只看该作者
(5)串行化输出接口

由于Rocket IO将参考时钟完成20倍频作为自身的工作时钟,因此数据需要经过并串转换后,才能通过TXP和TXN这一对差分端口发送出去,其中时隙0发送第一个比特,时隙19发送最后一个比特。TXP和TXN的电气连接特性是配置可改变的,可通过发送端的控制输入信号TXPOLARITY来实现。如果PCB上连线接反的话,可通过对TXPOLARITY信号的编程来修正。

(6)发送终端

发送器提供了发送终端,有75欧姆和50欧姆两种可编程终端,无需额外的片外终端。默认值为50欧姆。

(7)预加重

预加重的原理如10.2.3节所述,在Rocket I/O中,预加重电路有4个可选程度:10%、20%、25%以及33%,默认值为10%,可通过编程实现。选择最佳的预加重参数,可使发送器以最高波特率驱动20英寸的FR4。

4)接收器

接收器模块主要包括解串器、接收终端和8B/10B解码器。下面进行简要介绍。

(1)解串器

Rocket I/O收发器核通过RXP和RXN这一对差分接口接收差分数据,并通过芯片内部的锁相环从中提取时钟,再按照此同步时钟来采样数据,无需片外PLL芯片。从数据中提取的同步时钟包括频率和相位信息,经过20分频后送到RXRECCLK。
接收端不仅可以处理跳变丰富的8B/10B编码流或加扰流,也可以处理没有跳变的连续的75比特数据流。如果使能了comma检测器,收发器可能识别的字符最多为两个10比特预编码字符。如果检测到字符/字符串,comma检测器输出将被拉高,并且数据将被同步排列,这时不会发生队列更替的现象。如果收到一个comma且队列需要重排时,数据则会被重新排列,并在接收端给出指示信息,此时,收发器会连续检测数据,寻找10比特预编码字符。如果将comma检测旁路掉,数据将不会在任何模式下重排。
可编程选项允许用户以comma+、comma-、comma+与comma-混合或用户自定义的序列来排列数据。此外,接收器也允许更改RXP和RXN上差分信号的极性,在PCB电路设计极性颠倒的情况下非常有用。

(1)接收终端

接收机提供了片上的接收终端,可配置为50欧姆或75欧姆,默认为50欧姆。

(2)8B/10B解码器

8B/10B解码器是和编码器配对出现的,如果发送端存在编码器,则接收端也必须具备该模块,不能旁路。

5)环回器

为了便于测试Rocket I/O,提供了两类可编程的环回器,它们无需在外部添加吉比特的数据端和测试终端。

一种方法是串行环回,将吉比特发送端的数据直接送到吉比特接收端,可以验证Rocket I/O模块发送端和接收端的完整性,该环回路径在发送端的输出端口上。

另一类是并行环回,用于检查整个传输电路的正确性。当使能并行环回时,串行环回的功能将失效。但是发送端的输出仍然保持有效,且可将数据通过链路发送出去,如果将TXINHIBIT拉高,则TXP将被强制为0直到TXINHIBIT重新拉低为止。

6)弹性传送缓冲器

(1)接收缓冲器

接收缓冲器为深度64、位宽13比特的FIFO,写时钟为恢复时钟RXRECCLK,读时钟为RXUSRCLK,其作用有两个:一是用来调节读、写时钟的相位差和频率差;另一个是支持通路绑定,允许将接收流重组,以便被多个收发器读取。此外,接收缓冲器是一个弹性缓冲,其“弹性”特征指的是,可以修正其读取指针。

当然,接收缓冲器可以被旁路掉,其控制属性为:

RX_BUFFER_USE = FALSE

使用特权

评论回复
6
梅花望青竹|  楼主 | 2013-5-13 23:38 | 只看该作者
在该模式下,不能完成时钟校正和通路绑定,RXUSRCLK必须由RXRECCLK直接产生,但由于布线等因素,二者的相位是无法预测的,无法保证接收端可靠地接收数据。因此,一般不允许将该缓冲器旁路。

(2)接收端时钟校正器

在发送端,每隔一定的包长都会插入一些特定的修正字符,在接收端这些字符仅用来实现时钟校正,然后就会被丢掉。恢复时钟RXRECCLK的频率反映了到来数据的速率,时钟RXUSRCLK定义了FPGA接收数据的速率,在理想情况下,二者应当是同步的,即频率和相位都一致。但由于在实际中,它们来自不同的时钟源,属于异步时钟,再加上抖动,因此频率、相位上肯定存在一定的偏差,二者需要通过接收缓冲来调节。常见的异步时钟情况如图10-11所示。


(a) 理想情况下(读时钟=写时钟)缓冲器半满示意图


(b) 读时钟>写时钟时,缓冲器少于半满示意图


(c) 读时钟<写时钟时,缓冲器多于半满示意图

图10-11 不同读写时钟模式下缓冲器状态示意图
其中,(a)是理想情况,弹性缓冲器的读时钟RXUSRCLK和写时钟RXRECCLK保持同步,缓冲器处于半满状态;当没有接收到有效数据时,接收数据将插入空闲(Idle)字符以及其余无效数据。(b)情况下读时钟快于写时钟,缓冲器将出现读空的状态,为了避免这个后果,需要进行一些重复读取或空读的操作,调整读数数据指针,对时钟完成降低校正;如果字节序列长度大于1,且属性CLK_COR_REPEAT_WAIT为0,则接收端会重复读取相同的内容,一直到缓冲器的长度达到理想的半长。(c)情况下,读时钟慢于写时钟,缓冲器将出现溢出的状态,为避免该后果,需要丢掉一些数据,调整数据指针,对时钟完成加快校正;当CLK_COR_REPEAT_WAIT为1时,接收端会跳过两个连续的、可删除的字节序列来清空缓冲器。因此,时钟校正器总是保持缓冲器处于半满状态。

以上操作要求时钟校正逻辑能够识别那些需要重复和删除的字节序列,这些冗余序列都是在发送端插入的。此外,时钟校正和振荡器的频率、关系很大,因此晶振的精度一般应该在50ppm以内。

(3)通道绑定

通道绑定是指将多个串行通道组合在一起构成一个并行通道,以此来提高收发的数据吞吐率。由于每个通道在收发器互连时钟再生和数据接收延迟上各不相同,会使接收到的数据产生“错位”的情况,因此要在发送端数据流中加入一个特殊的序列——通道绑定序列,如图10-12中的“P字符”。每个绑定通道都设定“P字符”为通道绑定序列,在接收端指定一个通道为主通道,其余通道都依据主通道的CHBONDO有效指示进入绑定状态,进而锁定本通道在Elastic Buffer中接收到通道绑定序列的位置。由弹性缓冲向内部逻辑电路输出数据时,所有经过绑定的通道都以绑定序列指定的弹性缓冲中的偏移位置进行对齐输出。通道绑定完成后,为了使绑定维持在稳定状态,各通道收发器也要以主通道收发器为基准进行时钟修正操作。

在实现时,FPGA的布线原则是使绑定指示信号在模块间传输的延迟尽量小,尽量使两个互连模块间的连线不要穿越整个芯片。在FPGA布线时要对绑定指示互连线设置严格的时延约束参数。

典型的通道绑定的示意图如图10-12所示,左边为原始数据,右边为经过通道绑定的数据示意图。


图10-12 通道绑定原理图
(4)发送缓冲期

发送缓冲器为深度4、位宽20比特的FIFO,写时钟为恢复时钟TXUSRCLK,读时钟为收发器的参考时钟,其作用是用来调整读、写时钟之间的相位差,完成发送端时钟校正。

发送缓冲器也可以被旁路掉,其控制属性为:

TX_BUFFER_USE = FALSE

在该模式下,不能完成时钟校正和通路绑定,TXUSRCLK和REFCLK的相位是无法预测的,无法保证发送端可靠发送数据。因此,一般不允许将该缓冲器旁路。

使用特权

评论回复
7
梅花望青竹|  楼主 | 2013-5-13 23:38 | 只看该作者
7)CRC校验模块

Rocket I/O收发器支持固定的32比特CRC校验算法,其编码公式为:
该算法可支持Infiniband、光纤信道以及吉比特以太网等传输协议。在发送端,CRC逻辑识别出CRC校验字节应添加的位置,统计包头和包尾,并在数据包尾上添加四个计算出的CRC占位符,因此需要在发送缓冲器预留4字节的CRC码空间。在接收端,CRC完成CRC值的校验。同样,CRC逻辑也支持用户模式,以用户定义的包头和包尾来定义简易数据包。

8)配置模块

下面列出可通过配置选择或控制的功能,Xilinx实现软件工具支持16个收发原语,其简要说明如表10-1所列。
表10-1 Rocket I/O可配置的原语说明
以上的每个原语都有其默认值,都允许允许修改,原语的使用方法见3.4节,详细地参数说明和更多的细节可参照文献[1]。

9)复位模块

Rocket I/O模块的复位引脚分为发送复位和接收复位两部分。由于DCM在输出时钟锁定之前处于不稳定状态,不能用作内部逻辑电路时钟,所以要在DCM模块锁定后,再经过适当延迟才能将片内逻辑复位。

发送部分的复位主要包括TXPMARESET和TXPCSRESET,接收部分的复位主要包括RXPMARESET 和RXPCSRESET。TXPMARESET复位用于复位PMA和重新初始化PMA 功能。其引脚电平为高时,复位PLL控制逻辑和内部的PMA分频器,同时也使发送器PLL LOCK信号为低并且迫使TX PLL进行校验。TXPMARESET引脚的高电平至少要持续3个USRCLK时钟周期。当TXPCSRESET引脚电平为高时,TX PCS模块被复位。TX PCS模块包括:TX Fabric接口,8B/10B编码器,10GBASER编码器,TX缓冲器,64B/66B扰码器和10GBASER自适应同步器。TXPCSRESET复位与TXPMARESET 复位是相互独立,互不影响的。Rocket I/O模块要求复位输入至少保持两个USRCLK时钟周期,才能完成FIFO的初始化。

TXPCSRESET复位的要求如下:

(1)在TXPCSRESET复位时,TXUSRCL K和PCS 的TXCL K时钟必须已经保持稳定,以便初始化发送缓冲器。
(2)TXPCSRESET 引脚电平为高,至少要持续3个TXUSRCL K或TXUSRCL K2时钟周期。
(3)在TXPCSRESET 复位结束后,TX PCS 模块至少需要5 个时钟周期(以TXUSRCL K或TXUSRCLK2中最长的时钟周期为准)来完成各个子模块的复位。

发送部分的复位时序图如图10-13所示。接收部分的复位时序图和复位要求与发送部分类似,请参见Xilinx公司的技术文档[13]。


图10-13 发送部分的复位时序图
10)上电顺序

虽然Rocket I/O模块对于上电顺序没有要求,任意的上电顺序也不会损坏芯片,但为了减少上电的瞬间电流,最好按照下面的上电顺序:

(1)首先以任意顺序加载FPGA的VCCINT以及VCCAUX电源;
(2)其次加载AVCCAUXRX电源;
(3)最后以任意顺序加载AVCCAUXRX、VTTX以及VTRX电源。

使用特权

评论回复
8
梅花望青竹|  楼主 | 2013-5-13 23:38 | 只看该作者
3.Rocket I/O硬核模块接口信号说明

1)时钟信号

Rocket I/O时钟信号分为两类:一类用于收发器高质量的时钟,另一类用于接收/发送缓冲器进行数据交换的同步时钟,具体如表10-2所列。
表10-2 Rocket I/O时钟信号简要说明列表

2)数据发送模块信号

数据发送模块的信号类型众多,包括数据信号、发送模块的控制信号、状态控制信号、内部组件的配置信号等,其简要功能如表10-3所列。
表10-3 Rocket I/O数据发送模块信号简要说明列表

使用特权

评论回复
9
梅花望青竹|  楼主 | 2013-5-13 23:39 | 只看该作者
3)数据接收信号

数据接收模块信号和发送模块的信号对应,包括数据信号、发送模块的控制信号、状态控制信号、内部组件的配置信号等,其简要功能如表10-4所列。
表10-4 Rocket I/O数据接收模块信号简要说明列表

4)模块控制信号

模块控制信号主要用于使能Rocket I/O模块以及控制反馈输入,其简要功能如表10-5所列。
表10-5 Rocket I/O模块控制信号简要说明列表

使用特权

评论回复
10
梅花望青竹|  楼主 | 2013-5-13 23:39 | 只看该作者
Rocket I/O的时钟设计方案

Virtex 2 Pro FPGA内嵌的Rocket I/O模块支持全速率(Full Rate)和半速率(Half Rate)两种数据传输速率,前者将外部参考时钟倍频20倍,单周期传输20比特数据,数据速率为1.0Gbps~3.125Gbps;后者将外部参考时钟倍频10倍,单周期传输10比特数据,数据速率为0.5 Gbps~1Gbps。

1.Rocket I/O的时钟简介

每个Rocket I/O的收发器具备8个时钟输入,按照功能可以分为3类:

1)外部输入时钟

REFCLK、REFCLK2、BREFCLK以及BREFCLK2都是由外部时钟源提供的差分参考时钟,但只有一个时钟能驱动Rocket I/O模块,通过REFCLKSET信号来选择,其组成结构如图10-14所示。


图10-14 外部差分时钟的内部选择结构示意图
当数据速率高于2.5Gbps时,必须选择BREFCLK(BREFCLK2)作为参考时钟;在其它情况下可任意挑选。BREFCLK(BREFCLK2)要求低抖动的时钟源,用来驱动串/并、并/串以及DCM模块的时钟输入。

2)接口时钟

接收时钟包括TXUSRCLK2和RXUSRCLK2,主要用于控制Rocket I/O和FPGA的接口逻辑,包括缓冲器和数据交换器,由DCM模块提供。

3)内部时钟

内部时钟包括TXUSRCLK和RXUSRCLK,主要用于Rocket I/O模块发送、接收缓冲器数据的处理和时钟修正,一般由DCM模块提供,可以利用外部参考时钟。

Rocket I/O的速度等级由SERDES_10B选择,若SERDES_10B = FALSE,则为全速率数据传输;否则为半速率数据传输。此外,TXUSRCLK2和RXUSRCLK2控制着Rocket I/O和FPGA的交互接口,当数据位宽不同时,其与TXUSRCLK和RXUSRCLK的频率值比值也是不同的,如表10-6所示,默认情况下TXUSRCLK2=TXUSRCLK,即支持两字节数据传输。
表10-6 数据位宽和TXUSRCLK/RXUSRCLK列表
2.全速率的时钟方案

全速率模式下,需要将SERDES_10B设为FALSE,REFCLK时钟的倍频倍数为20倍。

1)单字节位宽全速率的时钟方案

单字节位宽全速率方案中,TXUSRCLK2和RXUSRCLK2的频率是TXUSRCLK和RXUSRCLK的2倍,相位差180度。REFCLK、TXUSRCLK和RXUSRCLK的时钟频率为40MHZ~85MHz,相应的TXUSRCLK2和RXUSRCLK2的时钟频率为80MHz~170MHz,时钟提供方案如图10-15所示。


图10-15 单字节位宽全速率时钟解决方案示意图
2)双字节位宽全速率的时钟方案

双字节位宽全速率方案中,TXUSRCLK2和RXUSRCLK2的频率和TXUSRCLK和RXUSRCLK的频率相等,无相位差。REFCLK、TXUSRCLK和RXUSRCLK的时钟频率为40MHZ~156.25MHz,TXUSRCLK2和RXUSRCLK2直接由REFCLK经过DCM模块的CLK0信号提供,相应的时钟提供方案如图10-16所示。


图10-16 双字节位宽全速率时钟解决方案示意图

使用特权

评论回复
11
梅花望青竹|  楼主 | 2013-5-13 23:39 | 只看该作者
3)四字节位宽全速率的时钟方案

四字节位宽全速率方案中,TXUSRCLK2和RXUSRCLK2的频率是TXUSRCLK和RXUSRCLK的一半。 REFCLK、TXUSRCLK和RXUSRCLK的时钟频率范围为40MHZ~156.25MHz,相应的TXUSRCLK2和RXUSRCLK2的时钟频率范围为280MHz~78.125MHz,相应的时钟提供方案如图10-17所示。


图10-17 四字节位宽全速率时钟解决方案示意图
3.半速率的时钟方案

半速率模式下,需要将SERDES_10B设为TRUE,REFCLK时钟的倍频倍数为10倍。

1)单字节位宽半速率的时钟方案

在该方案中,REFCLK的倍频倍数为10,RXUSRCLK2/TXUSRCLK2=2*RXUSRCLK/ TXUSRCLK=REFCLK,REFCLK、TXUSRCLK以及RXUSRCLK的频率范围为50MHz~ 100MHz,TXUSRCLK2/RXUSRCLK2的时钟频率范围为25MHz~50MHz,相应的时钟解决方案如图10-18所示。


图10-18 单字节位宽半速率时钟解决方案示意图
2)双字节位宽半速率的时钟方案

在该方案中,REFCLK的倍频倍数为10,RXUSRCLK2/TXUSRCLK2=RXUSRCLK/ TXUSRCLK=REFCLK/2,REFCLK、TXUSRCLK、RXUSRCLK以及TXUSRCLK2、RXUSRCLK2的时钟频率范围为25MHz~50MHz,相应的时钟解决方案如图10-19所示。


图10-19 双字节位宽半速率时钟解决方案示意图
3)四字节位宽半速率的时钟方案

在该方案中,REFCLK的倍频倍数为10,2*RXUSRCLK2/2*TXUSRCLK2 =RXUSRCLK/ TXUSRCLK=REFCLK/2,REFCLK的时钟频率范围为50MHz~100MHz、TXUSRCLK和RXUSRCLK的时钟频率范围为25MHz~50MHz,TXUSRCLK2和RXUSRCLK2的时钟频率范围为12.5MHz~25MHz,相应的时钟解决方案如图10-20所示。


图10-20 四字节位宽半速率时钟解决方案示意图
10.3.5 Rocket I/O的开发要素

1.时钟和数据恢复

1)时钟考虑

Rocket I/O对于参考时钟的要求是较为苛刻的,其精度一般要求在几十个ppm以下。例如EPSON EG-2121CA 2.5V的振荡器可以满足要求,振荡器的供电方案可参考其数据手册。此外,将振荡器的LVPECL输出转化成收发器的LVDS参考时钟,必须利用图10-21所示的参考电路。


图10-21 参考时钟振荡器的接口电路示意图

使用特权

评论回复
12
梅花望青竹|  楼主 | 2013-5-13 23:39 | 只看该作者
2)数据恢复

串行收发器的输入通过内嵌的时钟和数据恢复单元锁存,切断数据的下降沿和上升沿,并驱动一个频率和数据速率相同的时钟信号RXRECCLK。该时钟在FPGA内部表现为数据速率的1/20。只要时钟频率处于一定范围内,才能被收发器提取出来,各项条件如表10-7所列。
表10-7 时钟和数据恢复电路的参数范围
为了使CDR正常工作,在数据流里要有足够多的跳变发生。此外,还要保证CDR电路可以与8B/10B编码协同工作。在上电时,CDR大概需要5000次跳变才可以锁定到输入数据速率上。一旦完成了该锁定,那么在丢失对输入数据流的锁定之前,允许遗漏75个之多的跳变。如果用户对其串行数据流进行设计,那么必须注意满足8B/10B编码所需的跳变频率。CDR的另一个特征是它可以接收一个外部精确时钟(REFCLK)作为一个可选的输入,REFCLK要么是输入数据的时钟,要么是通过同步得到的RXRECCLK。更明确地讲,对于来自FPGA核且送往TX FIFO的数据,使用TXUSRCLK来作为它们的时钟。FIFO的深度决定了这两个时钟之间的微小相位差别,如果时钟在频率上得以锁定,那么FIFO就相当于一个直通的缓存。

2.PCB设计要求

为了保证Rocket I/O收发器的可靠操作,设计者必须注意满足的PCB设计要求,主要涉及电源过滤网络,高速差分信号路径和参考时钟等方面。如果不能满足下列要求,则Rocket I/O可能无**常工作。

1)电源以及电源滤波电路

每个Rocket I/O收发器包括5个电源管脚,所有的管脚对噪声的影响都比较敏感。为保证电路可靠工作,Rocket I/O收发器需要和外围噪声源进行一定的隔离,需要进行专门的供电。为Rocket I/O收发器供电的电压调节器可以和收发器中其它有相同供电电压的管脚共用,但是不能和其他部分电路共用电源,每一个电源管脚必须有自己独立的LC滤波网络。表10-8中列出了其管脚名以及相应的电压。
表10-8 收发器的电源
为了确保Rocket I/O收发器正常工作,必须对周围的噪声源进行隔离。因此,对电源芯片有一定的要求,即需要用专用电压校准器来给Rocket I/O供电。这些电源电路不能被其他任何电源所共享(包括FPGA电源VCCINT,VCCO,VCCAUX和VREF),但电压校准器可以在有相同电压的收发电源之间共享。这里,所需的电压校准器型号为凌特公司(Linear Technology)的LT1963-2.5。在原理图设计时,必须按照数据手册上的说明来完成,如图10-22所示的2.5V电源的示意图,该电源可用于AVCCAUXRX和AVCCAUXTX。读者可以参考网站http://www.linear-tech.com以获得有关该设备的更多信息。


图10-22 Rocket电源电路示意图
为了达到所需的电源噪声隔离,需要在电源管脚处设置滤波网络。在图10-23中给出了这些电容器和铁氧体磁珠电路的结构。


图10-23 收发器的电源滤波电路示意图
每个收发电源管脚都需要一个电容器和一个铁氧体磁珠来构成滤波电路,其中电容为0.22 μF,在X7R绝缘材料的0603 SMT封装中,容许误差为10%,电压为5V,且必须放在距离管脚的1cm内。磁珠型号为Murata BLM18AG102SN1。

使用特权

评论回复
13
梅花望青竹|  楼主 | 2013-5-13 23:40 | 只看该作者
为验证已完成的PCB上的差分阻抗,不仅要利用时域反射(Time Domain Reflectometry,TDR)测量来进行,还要对PCB上的电源和地的线路进行设计,使其有最小的自感系数。为了达到这一目的,必须添加地线专用层。如果转接线路是电源分布线路的组成部分(当连接一个旁路电容到它相应电源和地层时,就会发生这一现象),那么就必须使用多个转接线路来降低电源分布线路上总的自感。如果电源滤波电容与FPGA在板子的同一侧,设计者可使电源层更靠近板子的表面,缩短电源线的路径长度。

2)高速布线设计

对于高速设计来讲,正确布线是一项非常艰巨的任务,因为要克服串扰、电磁辐射以及阻抗匹配以及等长线等诸多不利现象。下面对Rocket I/O的布线进行一定的说明。

(1)串行路径的布线

所有Rocket I/O收发器的I/Os都位于BGA封装的外围,这可方便布线和检查(因为在串行I/O管脚没有JTAG)。在Rocket I/O收发器里有两个可选的输出/输入阻抗,分别为50Ω和75Ω,因此可用受控的阻抗线路以及相应的阻抗,将Rocket I/O收发器连接到其他可匹配的收发器上。在芯片-芯片的PCB应用中,推荐使用50Ω的终端和100Ω的差分传输线。在布线一个差分对时,必须使互补的线路在走线上等长,否则长度的不匹配会导致普通模式的噪声和辐射,而严重的长度不匹配则导致接收端处的抖动和无法预测的时序问题。一般来讲,如果在50mils(1.27mm)内匹配了差分线路,是比较稳定的。由于FR4 PCB线路中的信号大概以每英寸180ps的速度传送,因此50mils的差别就会导致大约9ps的时序偏移。在具体板设计时,可以利用相应的CAD工具来验证上述的假设条件。

所有的信号线路在其之下都必须有一个完整的参考面,该面板可采用带状线或微波传输带结构。而参考面到线路任何一边的延伸距离不可以超过五倍线路宽度,以保证可以预测传输线的特性。差分对的布线要以点到点的最优方式来完成,并且最好在相同的PCB布线层上,这是由于转接线路会带来阻抗的不连续性。因此应当尽可能地避免层到层的变化,但可以横穿PCB的多层结构而直接到达发送和接收封装的管脚。
如果串行线路必须换层,那么必须注意应当保证有一个完整的电流回环路径。因此,高速串行线路的布线必须在信号层上,而这些信号层共享一个参考面。如果信号层不共享一个参考面,那么必须在两个参考面板间跨接一个0.01 μF的电容,并且其靠近于信号换层处的转接线路。如果两个参考层都是DC耦合的,它们可以通过转接线路来连接,且该线路靠近信号换层的位置。
为了控制串扰,串行差分线路必须至少与其它PCB布线间隔五个线路宽度,这里的其它PCB布线包括了其它串行对。如果其它PCB布线承载噪声很大的信号,如TTL以及类似的布线,那么该间距就必须更大。利用两个高带宽的连接器,即可让Rocket I/O收发器在20英寸的FR4上实现3.125Gb/s的传输速率。如果线路更长,那么就需要一个低损耗的绝缘体或者是更宽的串行线路。

(2)差分信号的走线设计

Rocket I/O收发器的高速差分信号线,应尽量选用性能良好的微波传输线和带状线。由于传输的差分信号频率很高,两根差分信号线必须在长度上尽量匹配,长度失配会产生共模噪声和辐射,严重的失配会产生时钟抖动(Jitter)和不可预知的时序问题。差分线必须尽量匹配终端电阻50Ω和75Ω,可选50Ω用于芯片和芯片之间互连,75Ω用于芯片和电缆之间互连。高速差分线不要打孔,要布在电路板中的同一层。
Rocket I/O收发器需要100Ω或150Ω的差分线路阻抗(取决于是否选择了50Ω或75Ω终端的可选项)。但实际上差分线路对的特征阻抗不仅与每条线路的宽度有关,而且还与两者间的距离有关。为了实现这一差分阻抗要求,每个线路的特征阻抗必须稍稍高于目标差分阻抗的一半,通过电磁场仿真软件来确定适合于特定应用的准确线路结构,如图10-24所示。


图10-24 单端路径和几何结构示意图
Xilinx公司推荐差分线路采用紧密耦合,相对于宽松耦合它可使得两者在所有位置都与对方很靠近。由于紧密耦合线路的差分阻抗在很大程度上取决于它们和对方的靠近程度,因此它们的间距必须在所有位置都保持不变。如果要使布线通过一个管脚区域或其它PCB障碍,那么就必须分离线路。一个有效的办法是,在靠近障碍处修改线路结构,纠正阻抗的不连续性(在线路分离处,增加每个线路的宽度)。图10-25和图10-26给出了微带线和带状线差分信号的PCB几何结构的示意图,这两种几何结构具有100Ω的差分阻抗。


图10-25 微带线边沿耦合差分对连接示意图                               图10-26 带状线边沿耦合差分对连接示意图
(3)AC、DC耦合

在收发器差分电压兼容时,必须使用AC耦合(在信号路径上使用DC阻塞电容),但是对于普通模式的电压就不需要了。此外,某些设计需要AC耦合以适用热插拔,和/或在不同收发器处有不同电源电压也都需要AC耦合。典型的AC耦合电路如图10-27所示。


图10-27 AC耦合电路示意图
在Rocket I/O收发器与其它Rocket I/O收发器或其它Mindspeed的收发器(该收发器有兼容的差分和普通模式电压规格)连接时,DC耦合更为可取。在使用DC耦合时,不需要额外的无源器件。典型的DC耦合电路如图10-28所示。


图10-28 DC耦合电路示意图

使用特权

评论回复
14
梅花望青竹|  楼主 | 2013-5-13 23:40 | 只看该作者
Rocket IO IP Core的使用

1.支持Rocket IO芯片族

如前所示,Rocket IO作为Xilinx FPGA芯片中内嵌的硬件模块,并不是任何一款FPGA都提供的,只有在Virtex 2 Pro以上的部分高端FPGA内部才具备。支持RocketIO的FPGA型号如表10-9所列。
表10-9 内嵌Rocket IO的FPGA芯片型号列表
2.Rocket IO IP Core的配置页面

Rocket IO和DCM模块、硬核乘法器、块RAM一样,属于FPGA内部的集成固件,可通过原语或者IP Core调用,其相关参数已在10.3.3、10.3.4节进行了详细说明。

该IP Core位于“FPGA Feature and Design” “IO Intrerfaces”目录下,后缀为.xaw,表明其属于FPGA底层基本组件单元。Rocket IO的IP Core有5个配置向导页面,分别如图10-29(a)~(e)所示。


(a) Rocket IO配置向导1 (b) Rocket IO配置向导2


(c) Rocket IO配置向导3 (d) Rocket IO配置向导4 (e) Rocket IO配置向导5

图10-29 Rocket I/O IP Core的用户配置界面
1)配置页面1——General Setup

本页面主要用于配置收发器工作模式、参考时钟以及终端阻抗。在“Select the transceiver”栏下拉框的可选工作模式有:Aurora协议、Custom、Ethernet、FibreChannel、Infiniband以及XAUI等6种模式;Data Width下拉框可设定数据位宽,有1Byte、2Byte和4Byte等3种选择;选中Transmitter和Recevier复选栏,则表示在Rocket IO硬核中使能相应的组件,否则旁路掉相应的组件,默认值为都选中。
“Reference clock selection”栏用于选择时钟,有CLKREF和BCLKREF两种选择,当收发器的工作频率高于2.5Gbps时,则必须选择BCLKREF时钟;选中Bypass PCS features(Uses SERDES with CDR Only)复选框,可旁路PCS功能;选中Half-rate Mode复选框,可启动半速率模式。“Termination impedence”栏用于配置终端阻抗,有50欧姆和75欧姆两种选择。

2)配置页面2——Transmitter Setup

本页面主要配置发送端功能。“Encoding”栏用于线路编码配置栏,有Disable encoding(旁路编码器)、Dynamic encoding control(动态控制编码器)以及Static encoding control(使能8B/10B编码)等3个选项。“Pre-emphasis”栏为预加重控制栏,从弱到强,有10%、20%、25%、33%等4类强度。“Output Voltage swing”为输出电压摆动功率设置栏,有400mW、500mW、600mW、700mW以及800mW等5级数值。“CRC”栏用于配置发端校验编码器,选中“Use CRC for transmitter”复选框后,才能配置相关参数;CRC Format栏用于选择校验模式,有User-Mode、Ethernet、FibreChannel以及Infiniband等4种模式;Start-Of-Packet K-Parameter用于选择起始包的K参数;End-Of-Packet K-Parameter用于选择结束包的K参数。

使用特权

评论回复
15
梅花望青竹|  楼主 | 2013-5-13 23:40 | 只看该作者
3)配置页面3——Receiver Setup

本页面主要配置接收端功能。“Decoding”栏的参数和配置页面两种Encoding栏的选项是一致的,接收端选择的解码方式由输入数据在远端的编码方式决定,二者必须保持一致。“8B/10B Synchronization”栏用于设定检测同步头,选中Decet the loss on RXLOSSODSYNC复选框,可设定同步操作的有效步长以及门限值。同样,USE CRC for recevier复选框由输入数据决定,如果输入数据经过编码,则选中该复选框。

4)配置页面4——Recevier Clock Correction Setup

本页面用于配置接收机时钟修正参数。选中“Retain at least one clock Correction sequence”可以启用至少保持一个时钟修正序列的功能。“The minimum number of RXUSERCLK without clock”栏用于设定没有时钟时,最小的RXUSERCLK周期数。“Length of clock correctuion sequence(in Byte)”栏用于设定时钟修正序列的长度,可选值有1、2、3和4,单位为Byte。“Define clock correction sequence(11-bit vector)”栏用于设定时钟修正序列。

5)配置页面5——Summary

本页面主要显示用户定义Rocket IO的特性。“Feature Summary”栏用于显示用户配置参数的主要特征,如参考时钟的配置。“Files To Be Generated”栏用于显示即将生成的文件,如my_rocketio.xaw。“Block Attributes”栏用于显示模块属性,如CRC起始包和结束包的K-字符、发送数据宽度等。“Show all modifiable attributes”复选框用于显示所有可修改的属性。“Show only the modifiable attributes whose values differ form the default”复选框只显示和缺省值不同的可修改属性。
配置完成后,可在工程管理区选中Rocket I/O,在过程管理区,点击“View HDL Instantiation Template”命令,查看其例化代码,其在代码中的例化方法和一般IP Core的方法是一样的。

使用特权

评论回复
16
HORSE7812| | 2013-5-14 15:48 | 只看该作者
mark

使用特权

评论回复
17
sgj245609615| | 2013-5-14 20:55 | 只看该作者
这么长

使用特权

评论回复
18
wangjunjun2005| | 2013-5-14 21:29 | 只看该作者
mark

使用特权

评论回复
19
梅花望青竹|  楼主 | 2013-5-14 23:38 | 只看该作者
HORSE7812 发表于 2013-5-14 15:48
mark

:lol

使用特权

评论回复
20
梅花望青竹|  楼主 | 2013-5-14 23:38 | 只看该作者
sgj245609615 发表于 2013-5-14 20:55
这么长

资料比较长的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

2589

帖子

7

粉丝