- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Spartan-6的16路高速串行传输的设计与实现
摘要:高速串行传输的设计是FPGA设计的一个重要方面。在串行传输的设计中摒弃了采用FPGA内部逻辑资源实现从而限制了串并转换速度的传统设计方法,SelectIOTM接口技术给FPGA实现高速串行传输提供了良好的舞台,本文详细阐述了1:8 DDR模式下16路高速串行传输的实现,并通过了16路高速串行传输达到12.8Gbit/s传输速率的板级试验。
关键词:低电压差分信号;串并转换;现场可编程门阵列;串化器/解串器
0 引言
用现场可编程门阵列(FPGA)开发高速系统时常常需要实现高速串行传输,传统的做法是直接利用FPGA的内部逻辑资源来进行设计,但这样做往往使得传输的时钟的最高频率受FPGA内部资源利用率、布局布线等因素的影响,难以满足设计要求,并最终影响整个系统的性能。随着工艺技术的不断进步与市场需求的日益增加,超大规模、高速、低功耗的新型FPGA不断推出,给高速电路的设计带来了极大的方便。赛灵思(Xilinx)公司在其新的面向低端的partan-6系列产品中集成了输入串并转换器(ISEKDES)和输出并串转换器(OSERDES),能够提供高速的I/O处理能力,不受FPGA内部资源的限制,不占用系统逻辑资源。
本文以两片XC6SLX150之间以16路高速数据通信为例,介绍了SERDES(串化器/解串器)的工作原理与具体应用。其中每片FPGA需要接收并发送高速的16路串行数据并在接收时将其转换为128位并行数据做其它处理,为了实现高速串行传输,同时又不占用芯片内部的逻辑资源,我们用Xilinx的SERDES源语方便、快速地实现了该设计。
1 Spartan-6简介
Xilinx目标设计平台的芯片基础融合了行业领先的工艺,可编程的逻辑技术和收发器功能以及用于高级存储支持的控制器,从而可以为成本敏感应用提供高性能的FPGA。高级功耗管理技术的创新,结合以更低的1.0V电源操作的核心选项,让新的Spartan-6 FPGA系列比前几代Spartan系列的功耗降低了65%。该公司的partan-6系列正是一款为满足低成本和低功耗设计要求而推出的系列产品。
运用第六代Spartan FPGA系列产品,系统开发人员可以在将系统成本减半,开发出功耗更低的“更环保”的产品的同时,达到新的功能要求。Spartan-6 FPGA支持汽车信息娱乐、平板显示器、多功能打印机、机顶盒、家庭网络、视频监控等应用,它能对低风险、低成本、高性能进行最优平衡。
Spartan-6 FPGA系列双寄存器、六输入的高效LUT逻辑结构采用了行业领先的Virtex架构,可以跨平台兼容和提高系统性能。由于增加了Virtex系列的系统级模块,其中包括DSP slice、高速收发器以及PCI Express端点模块,因此实现了比以往更大的系统级集成。Spartan-6 FPGA系列由两个领域优化的子系列组成,该系列所提供的功能组合,可以达到价格敏感的大批量应用的严苛要求:Spartan-6 LX FPGAs和Sp-artan-6 LXT FPGAs。
Spartan-6 LX FPGAs针对需要绝对最低成本的应用而优化。该平台器件支持高达147k逻辑密度、4.8Mb存储器、集成存储控制器、DSP slice以及易用的高性能硬IP,同时采用了创新的基于开放标准的配置。
Spartan-6 LXT FPGAs扩展了LX系列,可提供多达八个3.125Gb/s GTP收发器和一个集成的PCI Express模块,它们都采用了成熟的Vir-tex FPGA系列技术,可以为串行连接提供业界风险最低、成本最低的解决方案。
本文中采用Spartan-6 LX FPGAs中的XC6SLX150-EG(G)4.84进行板级验证测试。该芯片内的SelectIOTM接口技术(多电压、多标准Selec-tIO模块组)有如下性能:
·每个差分I/O具有最高1050 Mb/s的数据传输速率
·可选输出驱动,最高每针脚24mA
·3.3V到1.2V I/O标准和协议
·低成本HSTL和SSTL内存接口
·符合热插拔标准
·可调整I/O转换速率,改进信号完整性
2 SERDES的结构与工作原理
所有Spartan-6型号的器件的I/O Tile都包括两个IOBs、两个ILOGICs、两个OLOGICs和两个IODELAYs。其中ILOGICs和OLOGICs可以配置为输入SerDes(ISERDES)或者输出SerDes(OSERDES)模块或者其他I/O接口。如图1所示为Spartan-6 FPGA的I/O Tile。
每一款该型号的FPGA的输入/输出模块(IOB)包含一个4-bit输入SerDes和一个4-bit输出SerDes,两个相邻的SerDcs模块(主模块和从模块)级联在一起可以生成一个8bit IOB,这使得每一个IOB不论在SDR模式下或是在DDR模式下其数据的输入输出串并转换速率从2:1到8:1都成为可能。
2.1 ISERDES
每一款Spartan-6型号FPGA的IOB的输入SerDes都可以甩ISERDES2源语来实例化。
ISERDES2是Spartan-6内部集成的输入串并转换器源语,支持单倍数据速率(SDR)和双倍数据速率(DDR)两种模式。这两种模式均可以进行编程操作,在SDR模式下,可以实现1bit串行数据到生成2、3、4bit的并行数据的转换;在DDR模式下,可以实现1bit串行数据到5、6、7及8bit并行数据的转换。当生成数据的位宽大于6时,需要采用主从模式将两个相邻的ISER2DES2模块连接在一起。每一个ISERDES2还包括一个由设计者提供BITSL IP(比特偏移控制)操作的并行数据字对齐逻辑。SerDes的串并转换速率之比指的是用于捕捉数据的高速I/O时钟和用于处理并行数据的低速内部逻辑时钟之比,例如,一个500MHz的单端I/O 时钟接收500MHz的数据,ISERDES2的串并转换速率为4:1指的是FPGA采用125MHz时钟来处理接收的并行数据。 [p]
ISERDES2的结构如图2所示。
当两个ISERDES2级联时,其中一个是主模式,一个是从模式,表1显示了两个ISERDES2源语级联时的数据位高低连接方式:
[p]
2.2 OSERDES
同样,每一款Spartan-6型号FPGA的IOB的输出SerDes都可以用OSERDES2源语来实例化。其结构和源语操作方式以及转换速率比与ISER-DES2源语类似,在SDR模式下,可以实现1bit串行数据到生成2、3、4bit的并行数据的转换;在差分输出方式下,可以实现1bit串行数据到5、6、7及8bit并行数据的转换。下图为OSERDES2模块以8:1的转换率配置下差分输出的级联图。
图3 OSERDES 8:1差分输出级联拓扑图
当两个OSERDES2级联时,其中一个是主模式,一个是从模式,表2显示了两个OSERDES2源语级联时的数据位高低连接方式
3 Spartan-6的1 6路高速串行传输的设计
两片XC6SLX150 FPGA之间以16路高速数据相互通信,其中还需要一路源同步时钟,一路标志信号用来使能片间数据的收发控制,每片FPGA需要一个400MHz的时钟输入作为高速数据发送时钟。其基本的发送拓扑图如下:
接收时钟直接使用源同步时钟,发送时钟采用输入到FPGA的400MHz的时钟。接收的数据送到一个128×1024的fifo中,然后进行处理,将数据送到发送模块,发送给相连的FPGA中,另一片FPGA做同样的处理。
3.1 发送模块
发送模块采用输入到FPGA的400MHz的时钟作为发送时钟源,首先经BUFI02后送入PLL,产生一个800MHz的采样发送时钟和一个100MHz的FPGA内部逻辑时钟,再通过一个BUFPLL驱动用于后续的逻辑。发送时钟的产生模块如图5所示。
[p]
产生好发送时钟后,将800MHz的发送时钟和100MHz的FPGA内部逻辑时钟送到发送数据模块开始数据的发送。送到所有输出OSERDES2源语的时钟和SerDes使能信号可以满足安全的捕捉FPGA内部并行的慢速数据到输出SerDes,这些并行的数据然后通过高速的发送时钟发送出去。其中一路的数据发送如图6,共有16路相同的模块组成128bit的高速串行数据的传输,每路数据发送速率为800MHz,则每路的数据传输速率为8bit×100MHz=800b/s,共16路数据线,则总的传输速率为12.8Gb/s。
源同步时钟的发送不能直接将时钟信号通过OBUFDS类似的源语直接发送,因为Spartan-6是面向低成本的低端产品,不支持高速信号的处理,所以,发送时钟要像发送数据一样发送出去,通过发送一个固定常数序列“10101010”来完成时钟的发送。
3.2 接收模块
接收模块的源同步时钟是上面发送模块发出的400MHz的时钟,该时钟根据需要在PLL内部产生一个高速采样时钟,通过PLL和BUFFPLL来产生ISERDES2源语所需要的接收时钟和使能信号。接收源同步时钟首先经过一个延迟单元。然后经过一个BUFIO2到PLL,PLL产生一个800MHz的采样时钟和一个100MHz的FPGA内部逻辑时钟,再通过一个BUFPLL驱动用于后续的逻辑。接收时钟的产生模块如图7所示。它和发送时钟不同之处也是在于Spartan-6是面向低成本的低端产品,对于400MHz的时钟该系列FPGA无法接收,首先要将该时钟当成数据一样进行接收,收到“10101010”比特串后,作为时钟信号送给PLL。
产生好接收时钟后,将800MHz的采样时钟和100MHz的FPGA内部逻辑时钟送到接收数据模块开始数据的接收。其中一路的接收如图8,共有16路相同的模块组成128bit的高速串行数据的传输,每路数据采样速率为800MHz,内部FPGA逻辑时钟为100MHz,则每路的数据传输速率为8b-it×100MHz=800b/s,共16路数据线,则总的传输速率为12.8Gb/s。
4 实验结果分析
在上述的结构中,首先在FPGA1的逻辑中将Rec-FIFO初始化为满数据状态,当发送了数据使能信号后,系统就开始自循环测试,一旦出现错误将会置错误标记,在验证板上有状态灯指示该状态,经过实际测试,送到两片FPGA的时钟为400MHz,完全满足在16路高速串行传输的传输速率达到12.8Gb/s的板级试验。只是ChipScope不能对管脚的高速信号进行采样观察,所以我们在ISE11.5和ModelSim SE 6.5的环境下,仿真可以看到管脚高速信号和FPGA内部逻辑之间收发数据的关系。图9是发送数据的仿真结果,图10是接收数据的仿真结果。其中,所有的输出是差分输出,为了便于观察,一对的差分信号只显示其中一个。
从图中可以看出,源同步时钟是400MHz,按照DDR方式传送数据,数据的传输速率为800MHz,即经过PLL后的采样时钟(或者高速发送时钟)为800MHz,而产生的FPGA内部逻辑的时钟为100MHz,从上两图中的波形可以看出,该设计实现了高速串行传输的功能。在FPGA设计中,输入输出管脚的锁定是重要的一环,一个合理的管脚分配方案不仅可以降低布线复杂度,而且可以减少布线的延迟,并有利于PCB板的制作。X-C6SLX150有四个bank,本文中的串行传输采用LVDS 2.5V标准,我们将收发信号线分别放在不同的bank上,在布线时,为尽量保持同一组差分信号线间的等长,对管脚分配进行调整,做到最优化布线。
5 总结和展望
本文介绍了基于Xilinx公司XC6SLX150的16路高速串行传输的设计,此设计充分利用了Spartan-6的特点及其所含的IP核,不仅能够最大限度地提高芯片性能,而且缩短了开发周期,减少了设计复杂度,有益于高速FPGA的开发。通过试验,结果表明,采用Xilinx Spartan-6 SerDes设计的每路高速串行传输可以实现800Mb/s的传输速率,但Spartan-6本身具有每个差分I/O的最高数据传输速率为1050Mb/s的性能,由于硬件的限制未能验证,在今后的设计中希望可以进行弥补。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:异步电动机控制系统开发平台设计研究
下一篇:LED电子显示屏的数据存储和处理