第1节 高速数据连接功能简介
10.1.1 高速数据传输的背景
由于现代通信以及各类多媒体技术对带宽的需求迅猛增长,促使一系列基于差分、源同步、时钟数据恢复(clock and data recovery,CDR)等先进技术的互连方式应运而生。在传统设计中,单端互连方式易受干扰、噪声的影响,传输速率最高只能达到200~250Mbps/Line;在更高速率的接口设计中,多采用包含有源同步时钟的差分串行传输方式(如LVDS、LVPECL等),但在传输过程中时钟与数据分别发送,传输过程中各信号瞬时抖动不一致,破坏了接收数据与时钟之间的定时关系,因而传输速率很难超越1Gbps/通道。因此迫切需要新的高速数据传输技术。
在目前系统级互连速率已达到Gbps的设计中,先进的高速串行技术迅速取代传统的并行技术,成为业界的主流。高速串行技术不仅能够带来更高的性能、更低的成本和更简化的设计,克服了并行的速度瓶颈,还节省了I/O资源,使印制板的布线更简单。因此,被越来越广泛地应用于各种系统设计中,包括PC、消费电子、海量存储器、服务器、通信网络、工业计算和控制、测试设备等。高速串行传输一般采用差分线,迄今业界已经发展出了多种串行系统接口标准,例如千兆以太网、万兆以太网、PCI-Express、串行RapidIO、串行ATA 等。 10.1.2 Xilinx公司高速连接功能的解决方案
基于高速的需求和传统技术的弊端,Xilinx公司在Virtex 2 Pro以及更高系列的部分FPGA内部集成了能实现高速数据收发Rocket I/O模块,采用了CML(CurrentMode Logic)、CDR、线路编码(8B/10B)和预加重等技术的Rocket I/O硬核模块,可极大地减小时钟扭曲、信号衰减和线路噪声对接收性能的影响,从而使传输速率进一步提高,最高可达10Gbps以上,可用于实现吉比特以太网、PCI-Express等常用接口。
除了底层的物理层技术,Xilinx还提供带32 bit LocalLink用户接口的Aurora协议引擎参考设计。Aurora协议是为私有上层协议或标准上层协议提供透明接口的串行互连协议,它允许任何数据分组通过Aurora协议封装,并在芯片间电路板间甚至机箱间传输。Aurora链路层协议在物理层采用千兆位串行技术,每物理通道的传输波特率可从622Mbps扩展到3.125 Gbps。Aurora还可将1至16个物理通道绑定在一起,形成一个16个通道绑定而成的虚拟链路,可提供50Gbps的传输波特率和最大40Gbps的全双工数据传输速率。Aurora可支持广泛的应用范围,如:路由器和交换机、远程接入交换机、HDTV广播系统、分布式服务器和存储子系统。在协议中,每个高速串行链接被称为―弄‖。 协议引擎通过与高速收发器配合,可创建带LocalLink用户接口逻辑的串并、并串收发器。通过这一串行接口方案,用户无须自己设计有关串行接口所涉及的编解码、同步、速率匹配等问题。用户接口部分包含了所有必要的信号,如协议引擎的状态信号等。
Xilinx通过高品质的技术支持材料来支持其先进的芯片产品,这些材料包括广泛的知识产权核、参考设计、模拟电路模块、信号完整性(SI)设计套件、数字仿真的质量行为模型等。此外,Xilinx还提供了众多设计服务、开发平台以及最佳的FPGA实现工具,可确保用户的所有设计需求都能获得最佳产品和技术支持。
第2节 实现吉比特高速串行I/O的相关技术
10.2.1 吉比特高速串行I/O的特点和应用
吉比特收发器(MGT)是吉比特级串行器/解串器(SERDES)的别名。
1.优点
1)速度高。高速串行I/O的线速可超过吉比特,甚至数十吉位。而并行传输线速不可能超越吉比特。吉比特串行I/O的主要优势是速度。在从片内/片外、板内/板外或盒内/盒外获取数据时,没有任何技术可以超越高速串行链路。高速串行链路的线速范围为1Gb/s~ 12Gb/s,有效负载范围为0.8Gb~10Gb。
2)节省管脚数。将大量数据传入/出芯片或电路板时所遇到的第一个问题是引脚数,电路板设计时间和成本会随着管脚数的增加而急剧增加。在大数据量应用下,串行I/O可节省大量的管脚(在低速以及小数据量应用中,MGT比传统并行模式需要更多的电源和接地引脚)。
3)简化同步转换输出。采用单端并行总线时,设计者应考虑同步转换输出(SSO,即大量寄存器的值在某一时刻同时翻转,会对电源和地平面产生一定的影响,甚至影响到器件内部时钟和逻辑的正常工作)。如果出现太多的同步转换,触地反弹会产生大量噪声。设计者还可以在所有I/O上都使用差分信号处理技术,以此来消除SSO问题,但是这样做就会使引脚数翻倍。如果数据流需求比较适中,设计者可以使用具有适当引脚数的并行接口。
4)EMI指标优。经验表明:时钟越快,放射测试就越难进行,因此,吉比特设计的EMI测试看起来是不可能实现的。但是,通常高速串行链路的辐射量比以较低速度工作的大型总线低。这是因为运行时的吉比特链路需要出色的信号完整性,正如经典论断―辐射问题实际上就是信号完整性问题‖所言,因此吉比特串行IO具有更好的EMI指标。
5)成本低。采用MGT通常会降低系统总成本。连接器采用较小、较经济的封装时,引脚数较少,电路板设计也更简单。
6)预设协议。采用MGT的另一个好处是可以使用预先定义好的协议和接口标准。如Xilinx提供了从Aurora到XAUI的多种协议,满足不同的用户需求。
2.缺点
吉比特高速串行I/O的最大缺点在于对信号完整性的严格要求。而且,阻抗控制的PC(印刷电路)板、高速连接器和电缆的费用较高。因此,必须处理数字仿真中的复杂性和时基较小的问题。并且,在利用预设协议的时候,必须为集成过程计划时间,以及为协议的开销安排额外的逻辑电路或CPU时钟周期。
3.应用范围
起初,吉比特级串行器/解串器(SERDES)仅局限于用在电信行业和少数缝隙市场(如广播视频)。如今,MGT应用出现在电子行业的各个角落——军事、医疗、网络、视频、通信等等。MGT也可以用于背板或机箱之间的PCB上。对于电子行业的发展前景而言,MGT至关重要。下面是采用吉比特级SERDES的行业标准示例。
? 光纤通道(FC) ? PCI Express ? RapidIO串行
? 先进的交换互连(Advanced Switching Interface) ? 串行ATA ? 1Gb以太网
? 10Gb以太网(XAUI) ? Infiniband 1X、4X、12X
吉比特级通信似乎强加了一些苛刻限制。串行设计者必须考虑信号完整性、较小的时基以及可能出现的对额外门电路和CPU周期的需求。但是,在盒间以及芯片间通信中采用吉比特级技术的优势远远超过了那些可以察觉到的缺点。例如:高速、引脚数少、低EMI和低成本等,这些都使它成为了众多高速设计的理想之选,并保证了其在未来通信系统中得到广泛的使用。
10.2.2 吉比特串行I/O系统的组成
吉比特串行传输是一种通用的传输标准,虽然不同FPGA厂家的模块和组件名不同,但其关键技术都具备下列共同点。
1.系统整体结构
吉比特串行传输的系统整体结构如图10-1所示。下面对其中的主要模块进行简要介绍。
图10-1 吉比特高速串行I/O的系统结构示意图
串行器:将速率为y的n位宽并行数据转变成速率为n*y的串行数据。 解串器:将速率为n*y的串行数据转变成速率为y的n位宽并行数据。
Rx(接收)对齐:将接收的数据对齐到合适的字边界。可以使用不同的方法,从自动检测和对齐特殊
的预留比特序列(通常也称作comma字符),到用户控制的比特调整。 时钟管理器:管理各种时钟操作,包括时钟倍频,时钟分频,时钟恢复。 发送FIFO(先进先出):在输入数据发送之前,暂时保存数据。
接收FIFO:在接收数据被提取之前,暂时保存数据。在需要时钟修正的系统中,接收FIFO是必须的。 接收线路接口:模拟接收电路,包括差分接收器,还可能包括有源或者无源均衡电路。 发送线路接口:模拟发送电路,可以支持多种驱动负荷。通常还带有转换的预加重部分。 线路编码器:将数据编码成适应不同线路的格式。编码器通常会消除长的无转变位的序列,同时还可以平衡数据中0、1的出现次数。需要注意的是,线路编码器是一个可选模块,某些SERDES可能没有。
线路译码器:将线路上的编码数据分解成原始数据。(这是一个可选模块,编码可能在SERDES外完成)。
时钟修正和通道绑定:修正发送时钟和接收时钟之间的偏差,同时也可实现多通道间的歪斜修正。(通道绑定是可选的,并不一定包含在SERDES中)。
其他可能包括的功能模块有:循环冗余检测(CRC)码生成器、CRC检测器、多种编码
和解码(4b/5b、8b/10b、64b/66b)、可调的扰码器、各种对齐和菊花链选项、可配置的时钟前端和后端以及不同等级的自环。
2.参考时钟的要求
1)时钟精度
吉比特级收发器的输入时钟、或是参考时钟的规格定义是非常严格的。其中包含非常严格的频率要求,通常用每百万次容许频率错误的单位PPM来定义。抖动要求也是十分严格的,通常用时间(皮秒)或者时间间隔(UI)定义。下面给出这些相关定义。
? PPM:百万分之一;用来描述非常小的比率。
? UI:时间间隔;等价于一个符号的时间长度,例如:0.2UI = 20%的符号时间。 ? 抖动:理想传输位置的偏差。
如此严格的规定才使得PLL和时钟提取电路能够正常工作。通常系统的每一个印刷电路板都需要有一个精确石英晶体振荡器供MGT使用。这些晶体振荡器的精确度比大多数用在数字系统中的晶体振荡器要高一个级别,而且价格也要高出一截。很多情况下,一般的时钟 发生芯片和PLL因为带有很大的抖动,而不能用于MGT。
2)时钟修正策略
传输时钟有非常严格的抖动要求,所以吉比特SERDES通常不能将恢复时钟作为传输时钟。每一个PCB集合都有唯一的振荡器和唯一的频率。如果两个1GHz的振荡器仅仅有1PPM的频差,同时我们提供1/20的参考时钟,则数据流的时钟每秒钟可能会增加或者缺失20,000个周期。因此,在8b/10b编码的系统中,每秒将会额外增加或者损失2万个符号。
大多数的SERDES都有时钟修正选项。时钟修正需要使用唯一的符号或者符号序列,它们在数据流中是不会出现的。因为时钟修正是对齐的后续处理,所以可以比较容易地通过保留一个K字符、或者一组有序的K字符、或者一个时钟修正数据序列来实现。时钟修正进行的频数必须足够多,从而可以通过丢弃或者重复来补偿时钟的差异。当然,有些系统并不需要时钟修正。例如,相同的参考时钟和相同的速率意味着不需要进行时钟修正。同样,如果所有接收电路的时钟都来自恢复时钟,那么时钟修正也是不需要的。如果FIFO的写入速率和读出速率相等,也没有必要进行时钟修正。如果所有的传输参考时钟都是通过一个外部的PLL锁定在一个公共的参考频率上,那么也不需要时钟修正。
3线路编码机制
线路编码机制将输入的原始数据转变成接收器可以接收的格式。同时,线路编码机制还必须保证有足够的切换提供给时钟恢复电路。编码器还提供一种将数据对齐到字的方法,同时线路可以保持良好的直流平衡。线路编码机制也可选择用来实现时钟修正、块同步、通道绑定和将带宽划分到子通道。线路编码机制主要有两种:数值查找机制和自修改数据流或扰码器机制。目前常用的有:8B/10B编码、4B/5B编码以及扰码。
1)8b/10b编码
8b/10b编码机制是由IBM开发的,已经被广泛采用。8b/10b编码机制是Infiniband,吉比特以太网,FiberChannel以及XAUI 10G以太网接口采用的编码机制。它是一种数值查找类型的编码机制,可将8位的字转化为10位符号。这些符号可以保证有足够的跳变用于时钟恢复。8b/10b编码具有良好的直流平衡特性,通过―运行不一致性‖的方法来实现,即只使用有相同个数0和1的符号,但这会限制符号的数量。同时,8b/10b中的comma字符(用于表示对齐序列的一个或两个符号)可辅助数据对齐。
8b/10b机制能带来字对齐、时钟修正机制、通道绑定机制和子通道生成等功能,其唯一的缺陷是开销。为了获得2.5Gbit的带宽,它需要3.125Gb/s的线路速率。从减小开销的角度讲,下面所讲述的扰码技术可以很容易地解决时钟发送和直流偏置问题,并且不需要额外的带宽。
2)4b/5b编码
4b/5b和8b/10b是类似的,但是要简单些,将4个比特编码成5个比特。4b/5b的控制字符要少一些,但不能处理直流平衡和不一致性问题。由于编码开销相同但是功能却比较少,4b/5b编码机制并不经常使用。它的最大优势是设计的尺寸,不过随着逻辑门价格的降低这个优势也不再明显。目前,4b/5b仍用在各种低速标准中,包括低速率版本的光纤通路、音频标准AES-10以及多通道数字音频复接标准MADI接口中。 3)扰码
扰码是一种将数据重新排列或者进行编码以使其随机化的方法,但要求必须能够通过解扰恢复。加扰的目的就是打乱长的连0和长的连1序列,将数据随机化。一般将那些在解扰时不需要额外对齐信息的扰码称作自同步码。扰码发生器通常由移位寄存器组成,所占用的硬件资源很少。