引 言
目前,多数计算机、嵌入式处理设备和通信设备都采用并行总线,但随着芯片性能不断提升和系统越来越复杂,数据传输带宽已成为提高系统性能的瓶颈。虽然增大并行总线宽度可以提高芯片与芯片之间、背板与背板之间的数据吞吐量,但是数据线的增多和传输速率的加快会使PCB布线的难度提高,并且增加了信号延时和时钟相位偏移。高速串行互连技术成为提高数据传输带宽的有效解决途径。
新的串行总线技术不断涌现,如新推出的串行总线标准有PCI-express、RapidI()、10Gigabit Ethernet Attachment Unit Interface(XAUI)、HyperTransport、Infini-Band、SATA等。新标准的快速发展及网络与通信领域不断增强的数字统一趋势,对系统设计人员桥接这些标准和适应不断演化的标准提出了新的挑战,需要具有新一代系统集成和灵活性的可编程解决方案。Xilinx公司的Vir-tex-4 FX系列FPGA芯片内置了RocketIO收发器,能够提供622 Mb/s~6.5 Gb/s的数据传输速率,并且支持多种高速串行通信协议,可以帮助设计人员方便、灵活、可靠地实现高速通信。
1 设计要素
1.1 时 钟
在Virtex-4 FX系列FPGA中每个RocketIO Multi-Gigabit Transceiver(MGT)有多个时钟输入。其中,参考时钟有3种,根据不同的传输速率选择不同的参考时钟。GREFCLK适用于单个MGT组且数据传输率低于1 Gb/s的情况。REFCLK1和REFCLK2一般用于数据传输率高于1 Gb/s、低于6.5 Gb/s的情况。
时钟精度和时钟抖动是评价时钟质量的两个重要指标。MGT模块要求高精度的参考时钟,MGT要求的时钟精度为±350×10-6,MGT可容忍的输入参考时钟抖动公差最大为40 ps,所以从DCM中出来的时钟(大于±100ps)不能够作为MGT的参考时钟输入。MGT的时钟一般采用以下方案解决:从片外输入的差分时钟必须经过RocketIO模块指定的差分时钟引脚接入,然后经过Rock-etIO模块中的时钟管理模块GTllCLK_MGT转化成单端时钟,送到REFCLK1或REFCLK2作为MGT的参考时钟。
MGT模块的输出时钟TXOUTCLK1、TXOUT-CLK2、RXRECCLK1、RXRECCLK2可以作为4个用户使用的时钟TXUSRCLK、TXUSRCLK2、RXUSRCLK、RX-USRCLK2的时钟源;也可以作为DCM模块的输入,从而生成用户所需的特定频率的时钟,提供给系统其他模块使用。参考时钟的频率由串行传输速率和时钟参数设置来决定。表1是该实验中关于时钟参数的设置。
1.2 复 位
MGT模块中的复位分为发送部分的复位和接收部分的复位。发送部分的复位主要包括TXPMARESET和TXPCSRESET;接收部分的复位主要包括RXPMARE-SET和RXPCSRESET。TXPMARESET复位用于复位PMA和重新初始化PMA功能。其引脚电平为高时,复位PLL控制逻辑和内部的PMA分频器,同时也使发送器PLL LOCK信号为低并且迫使TX PLL进行校验。TXP-MARESET引脚电平为高至少要持续3个USRCLK时钟周期。
当TXPCSRESET引脚电平为高时,TX PCS模块被复位。TX PCS模块包括:TX Fabric接口,8B/10B编码器,10GBASE-R编码器,TX缓冲器,64B/66B扰码器和10GBASE-R自适应同步器。TXPCSRESET复位与TXPMARESET复位是相互独立,互不影响的。
TXPCSRESET复位的要求如下:
①在TXPCSRESET复位时,TXUSRCLK和PCS的TXCLK时钟必须已经保持稳定,以便初始化发送缓冲器。
②TXPCSRESET引脚电平为高,至少要持续3个TXUSRCLK或TXUSRCLK2时钟周期。
③在TXPCSRESET复位结束后,TX PCS模块至少需要5个时钟周期(以TXUSRCLK或TXUSRCLK2中最长的时钟周期为准)来完成各个子模块的复位。
图1是发送部分的复位时序图。接收部分的复位时序图和复位要求与接收部分类似,请参见Xilinx公司技术文档ug076.pdf。
2 MGT的模块及原理介绍
发送的并行数据经过8B/10B编码后,写入发送端FIFO,然后转换成串行差分数据发送出去。接收端接收到的串行差分信号首先经过接收端缓冲,然后经过串并转化器转换成并行数据,再经过8B/10B解码,写入弹性缓冲,最后并行输出。
2.1 8B/10B编解码器
8B/10B编码机制是由IBM公司开发的,已经被广泛采用。它是一种数值查找类型的编码机制,可将8位的字符转化为10位字符。转化后的字符可以保证有足够的跳变用于时钟恢复。8B/10B编码具有“0”和“1”出现的概率相等,直流基线漂移小,低频分量小,功率谱带宽较窄,抖动小,以及能够检测输入数据中的错误等许多优点。