基于Rocket IO模块的高速工IO设计_第1页
基于Rocket IO模块的高速工IO设计_第2页
基于Rocket IO模块的高速工IO设计_第3页
基于Rocket IO模块的高速工IO设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于Rocket I/O模块的高速工I/O设计    基于Rocket I/O模块的高速工I/O设计    类别:EDA/PLD      摘要:介绍了采用videx-pr0系列fpca设计的应用于下一代无线通信系统中的高速io。由于充分利用芯片中集成的rocket io模块,并采用差分输入参考时钟、8b10b编码、预加重处理、通道绑定技术等,实现了四个绑定通道的高速互连(25gbaud)。设计结果表明,采用

2、rocket io模块进行高速io设计,可极大简化片上逻辑电路和片外pcb版图设计。由于通信对带宽的需求迅猛增长,促使一系列基于差分、源同步、时钟数据恢复(cdr)等先进技术的互连方式应运而生。在传统设计中,单端互连方式易受干扰、噪声的影响,传输速率最高只能达到200250mbpsline;在更高速率的接口设计中,多采用包含有源同步时钟的差分串行传输方式(如lvds、lvpecl等),但在传输过程中时钟与数据分别发送,传输过程中各信号瞬时抖动不一致,破坏了接收数据与时钟之间的定时关系,因而传输速率很难超越1gbpschannel;xilinx公司推出了内嵌rocket i/o模块的virtex

3、pro系列fpga,使实现更高的传输速率成为可能13。采用了cml(currentmode logic)、cdr、线路编码(8b10b)和预加重等技术的rocket i/o模块,可极大地减小时钟扭曲、信号衰减和线路噪声对接收性能的影响,从而使传输速率进一步提高。本文着重讨论如何配置rocket i0模块,进行fpga的片内、片外设计和仿真,从而在以10英寸差分线组互连的两片fpga间达到25gbaudchannel的传输速率,并实现了四个双向通道的绑定操作。图11 rocket,io特性virtexpro系列fpga内嵌的rocket io模块是基于mindspeed公司四代skyrailtm

4、技术开发的高速串行收发器,该系列fpga单片最多集成了24路rocket i/o收发器,最大可提供75gbps全双工通信带宽。rocket i/o模块灵活的配置方式使其可以提供对光纤通道、千兆以太网、xaui、infiniband、pci express等一系列高速通信标准的支持。其主要特性为:(1)每个通道收发器支持从622mbps至3125gbps的全双工传输速率;(2)收发器内嵌发送时钟生成电路和接收时钟恢复电路;(3)cdr源同步数据发送方式;(4)五级可编程输出电压幅度(8001600mv)控制;(5)四级可编程输出预加重处理;(6)收发器支持交流和直流耦合方式,可兼容多种高速接口标

5、准;(7)片内集成可编程差分终端电阻(50、75);(8)支持片内串行和并行环回测试模式;(9)可编程标界检测符(comma)图样,提供对多种协议标准的支持。rocket i0收发器由物理媒质适配层(pma)和物理编码子层(pcs)构成,如图1所示。其中pma层属于收发器的数模混和部分,包括串并变换器、并串变换器、差分发送驱动器、差分接收器、发送时钟生成电路、接收时钟恢复电路等。而pcs层属于收发器的数字部分,包括发送fifo、8b10b编码器、8b10b解码器、crc生成和校验、用于通道绑定和时钟修正的elastic buffer等。由于要支持多种高速串行通信标准,rocket io模块的p

6、ma和pcs包含了许多配置参数,这些参数可以通过外部端口和内部配置寄存器进行设定。配置过程可以以静态(参数通过fpga配置文件设定)或动态(通过rocket i/o的配置端口进行局部重新配置)的方式进行。2 rocket io的设计要素要达到rocket io模块的最佳性能,需要考虑到诸多设计因素,本文就其最重要的部分展开讨论。21 参考时钟高性能的通信质量要求有高稳定性和高精度的时钟源。抖动和频偏是衡量时钟源的两个重要指标。抖动一般是指一个实际情况下的周期信号每个周期的图样相对于该信号理想情况下一个周期图样的偏差4。抖动产生原因包括时钟晶体本身的机械振动、器件的热噪声和电源串人噪声等。抖动可

7、以分为确定性抖动和随机抖动。确定性抖动是线性可加的,它包括信号在传输中媒质损耗、码间串扰(isi)等周期性因素导致的抖动;随机抖动是均方可加的,它是由半导体器件热噪声、电源波动等共模随机噪声源导致的。频偏是指时钟标称频率与实际频率的偏差,主要受晶体加工精度的影响。由于rocket io模块内部将输人参考时钟20倍频,而rocketio模块可容忍的输人参考时钟抖动公差为40ps,可见参考时钟的抖动对其性能有直接影响。在virtexpro系列fpga中,rocket io模块集中分布在上、下四个通道中。当rocket io工作在25gbaud以上时,参考时钟应采用差分输入方式(如lvds、lvpe

8、cl),由上、四个通道的专用差分时钟引脚输入,至相同或相邻通道中rocket io的brefclk输入端,以避免时钟信号引入不必要的抖动。在25gbaud速率以下应用时,不要用fp-ga内的dcm来生成rocket io的输入时钟, 因为经dcm倍频的时钟会引入较大的抖动,使rocket i0的接收锁相环无法稳定地锁定发送时钟。图2所示的连接方案中,rocket io模块的输入时钟由差分或单端引脚馈入后,应只经过一级全局缓冲(bufg)布设到时钟树上,再连接到rocket io模块的参考时钟输入端,这样可最大限度地降低抖动的引入。    22 复位roc

9、ket io模块的复位引脚分为发送(tx_reset)和接收(rx_reset)两部分。由于dcm在输出时钟锁定在设定值前,输出时钟处于不稳定状态,不能用作内部逻辑电路时钟,所以要在dcm时钟输出锁定有效,并经过适当延迟后才可将片内逻辑复位。rocket io模块要求复位输入至少保持两个usrclk时钟周期来完成fifo的初始化1。如图2所示,图中reset_mgt模块实现的即是上述功能。23 8b10b线路码线路码具有平衡码流中“0”、“1”概率的能力,并且可以减小码流中长连“0”和长连“1”串。8b10b编码是属于基于块编码的mbnb线路码中的一种。经过mbnb编码的码流具有“0”和“1”

10、等概率、连“0”和连“1”数小、直流基线漂移小、低频分量小、功率谱带宽较窄、时钟成分丰富、定时提取方便且抖动小以及能进行运行误码监测等许多优点,因此在rocket io模块内部集成了8b10b编码器和解码器。应用rocket i0模块进行互连时,根据互连双方接口的电气标准的不同,分为直流耦合和交流耦合方式。在直流耦合方式下,并不一定要求采用8b10b编码,可以选择其它的线路码型或不用线路编码。但在较高的传输速率条件下(如25gbaud以上),为了达到良好的抗干扰性能和低的误码率,应该考虑采用8b10b编码。而在交流耦合方式下,必须选择8b10b编码,否则接收端的漂移会使接收器无法正常工作。&#

11、160;   8b10b编码集合中包括数据字串部分和控制字串部分1。数据字串包括256个可能的数值,其中包括可作为控制字串(k237、k280k287、k277、k297、k307)的码字。当传送字串作为控制字时,由rocket io模块相应的控制字标志输入引脚(如tx_charisk)指定该字为控制字串。2.4 通道绑定通道绑定是指将多个串行通道组合在一起构成一个并行通道,以此来提高收发的数据吞吐率。由于每个通道在收发器互连、时钟再生和数据接收延迟上各不相同,会使接收到的数据产生“错位”的情况(如图3所示), 因此要在发送端数据流中加入一个特殊的序列通道绑定序列

12、,如图中的“p”字符。每个绑定通道都设定“p”字符为通道绑定序列,在接收端指定一个通道为主通道,其余通道都依据主通道的chbondo有效指示进入绑定状态,进而锁定本通道在elastic buffer中接收到通道绑定序列的位置。由elastic buffer向内部逻辑电路输出数据时,所有经过绑定的通道都以绑定序列指定的elastic buffer中的偏移位置进行对齐输出。通道绑定完成后,为了使绑定维持在稳定状态,各通道收发器也要以主通道收发器为基准进行时钟修正操作。    rocket i/o模块通道绑定互连的一种参考方案如图4所示。fpga布线原则是使绑

13、定指示信号在模块间传输的延迟尽量小,尽量使两个互连模块间的连线不要穿越整个芯片。在fpga布线时要对绑定指示互连线设置严格的时延约束参数1。25 pcb设计pcb设计中差分线的线型可选为微波传输线和带状线,它们都有较好的性能。微波传输线一般有更高的差分阻抗,不需要额外的过孔;而带状线在信号间提供了更好的屏蔽。pcb差分线模型如图5所示。在通常的铜介质、环氧玻璃纤维基材(fr4)条件下,布线要求为:(1)差分线对内两条线间的距离应尽量小于两倍线宽,即s<2w;(2)pcb板材厚度应大于差分线对内两条线之间的距离,即b>s;(3)相邻差分对之间的距离应大于两倍的差分线对的距离,即d&g

14、t;2s。出于对信号线的屏蔽的考虑,设计的线型选用带状线,计算公式2为:当介电常数r=4.3、t=1mil、w=6mil、s=10mil、b=20mil时,由(1)式得z054.4。由(2)式得差分线阻抗zdiff100,以适配rocket i/o模块设定的50差分输入阻抗。pcb布线时应注意以下几点:(1)差分线对内的长度相互匹配以减少信号扭曲。为使设计传输速率达到25gbaud,在差分线对内部每个走线区间内的实际布线公差应控制在5mil内。(2)差分线对内两条线之间的距离应尽可能小,以使外部干扰为共模特征。差分线对间的距离应尽可能保持一致,以降低差分阻抗分布的不连续性。(3)采用电源层作为

15、差分线的信号回路,因为电源平面有最小的传输阻抗,从而减小噪声。(4)由于每个过孔可带来0510db的损耗,应尽量减少过孔数目。过孔的通孔和焊盘应有尽量小的物理尺寸,并且在通孔穿越的未连接层不加焊盘。差分对内的过孔不仅在数量上要匹配,而且在放置的位置上也要接近,以使阻抗分布尽量一致。(5)避免导致阻抗不连续的90°走线,而要用圆弧或45°折线来代替。走线时应使向左、向右折角的数量接近,这样可减少信号经差分线传输引起的扭曲。    在采用图3所示的交流耦合方式时,可以使rocket i0适配更多的高速io接口标准。设计中要注意耦合电容选用

16、75-500nf的无极性电容,尽量选择体积、esr和esl小的贴片封装方式,并且应放置在差分线靠近接收器一侧邻近位置上,同时布线要保证差分线对间不能交错。3 系统架构系统架构如图6所示,在两片fpga间有4个通道共8对直流耦合差分互连线,每个通道可提供双向25gbaud的线路传输速率。通道绑定模块将每片fpga的4个rocket io模块绑定在一起,在采用8b10b编码条件下提供64x125mbps双向速率。每片的通道绑定模块还提供8x2位的控制接口,指示当前正在发送或接收到的是控制字还是数据。系统的时钟源选用ics8442差分输出(lvds)。频率合成器,它可以提供3125mhz700mhz

17、的频率合成范围和低的抖动 (rms period:27ps;cycle-to-cycle:18ps),可满足设计中rocket io模块对参考时钟性能的要求。设计中由ics8442的两路差分输出驱动器将合成后的时钟送至两片fpga的差分时钟输人端。四个通道rocket io模块发端采用20颐加重,以减小信号高频分量因介质损耗而在收端引起的信号畸变,从而改善接收效果。    图7所示为发送控制状态机,两片fpga以主、从方式工作,主设备在复位后连续发送用于修正接收锁相环时钟的特定“k”字符,同时从设备判断是否成功接收到“k”字符。如从设备成功接收则表明接收

18、时钟正确恢复,然后从设备发送“k”字符以使主设备的接收时钟同步。主设备判断每个通道是否都进入接收时钟同步状态,若是则开始发送通道绑定序列。从设备确定接收通道绑定完成后,停止向主设备发送“k”字符而改发通道绑定序列,使主设备也完成接收绑定。此时主、从设备都维持在通道绑定状态,并且间歇发送锁相环同步“k”字符以维持接收时钟同步。若此时有一侧进入失同步状态,以上同步、绑定过程将由主设备再次发起。在设计中帧的数据段长度固定为1k(8byte),数据段结束后为4字节的crc校验值,如接收crc错误则将该帧丢弃。任何一方要发送数据帧时便在帧的首尾各插入一个空闲时隙,并在发送完成后继续维持同步状态。4 板级设计仿真由于rocket io收发器工作在25gbaud的速率下,基于ibis模型的仿真难以提供足够的精度。为了精确仿真rocketio收发器在板级设计中的性能,采用收发器hspice模型进行接收效果仿真。仿真中选择测试图样为14285d21a'd215,d215d282'd282'd 151d154d105d105,仿真时长为110ns。图8所示依次为发送端输入、差分输出和接收端差分输入的6085ns波形图,其中rocket io发送器输入信号vtx_in的tsetup=6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论