高效8倍过采样异步串行数据恢复
周根成;韩斌;林永才
【摘 要】Asynchronous serial data interface asks the receptor to restore the data,the way it uses is to check the bitstream,and to deter-mine the sampling position of each bit when the sending data has not yet been appended the clock.Tradition sampling data recovery method is to utilise multi-clock phase method,this method uses two or more DCM to generate clock phases,but may cause the reduction in jitter toler-ance and impacts sampling precision.So we employ IDELAY resource built-in each IOB of Virtex-4 and Virtex-5 devices to realise the effi-cient and high performance 8-times oversampler used in asynchronous serial bitstream.Compared with the method generating the clock phase time by multi-DCM,this technology will provide higher sampling precision than the multi-clock phase method.%异步串行数据接口要求接收器恢复数据,方式是对比特流进行检查,并在所发送数据未附带时钟时确定每个位的采样位置。传统的采样数据恢复方法是利用多时钟相位法,此方法利用两个或两个以上的DCM来产生时钟相位,会产生抖动容限的降低,影响采样精度。使用Virtex-4和Virte
x-5器件中各IOB内置的IDELAY资源来实现用于异步串行比特流的高效高性能8倍过采样器。相比用多个DCM生成时钟相位时,这种技术可以提供比多时钟相位法更高的采样精度。
【期刊名称】《计算机应用与软件》
【年(卷),期】2014(000)010
【总页数】4页(P254-257)
【关键词】异步串行通信;过采样技术;采样精度
【作 者】周根成;韩斌;林永才
【作者单位】江苏科技大学计算机科学与工程学院 江苏 镇江212003;江苏科技大学计算机科学与工程学院 江苏 镇江212003;江苏合丰机械制造有限公司 江苏 张家港215628
【正文语种】中 文
【中图分类】TP3
异步串行数据接口要求接收器恢复数据,方式是对比特流进行检查,并在所发送数据未附带时钟时确定每个位的采样位置。Rocket IO收发器就是专门为这一任务设计的,但并非在所有Xilinx FPGA中都可用。根据器件系列和速度级别不同,Select IO的输入端和FPGA逻辑资源可以实现比特率高达近1 Gb/s的异步串行接收器。
Xilinx Virtex-4和Virtex-5器件的每个输入引脚都有与其相关的高精度可编程延迟单元。这些延迟单元被称为IDELAY,可用于实现过采样器,这种过采样器仅利用极少的FPGA逻辑资源,而更重要的是,进行8倍过采样只需一个DCM和两个全局时钟资源。与使用多个DCM的技术相比,此方案可提供更高的抖动容限。
配以适当的数据恢复方案,可将本文的过采样技术用于多种不同的数据协议,Virtex-5器件中采样率可达550 Mb/s,而Virtex-4器件中可达500 Mb/s。
使用过采样的异步串行数据恢复技术要求接收器对输入的比特流进行快速采样,其速度足以在每个位周期中采集多个样本。
图1所示为一典型异步串行数据过采样数据接收器。此接收器由过采样器和数据恢复单元(DR
U)组成。过采样器在每位周期对比特流进行多次采样,采集足够多数据传输给DRU。DRU须取得足够的样本,以确定发生位转换的位置,然后对转换区安全的位置对各个位采样。每个位周期取得较多样本可以提高DRU的抖动容限。
在用Select IO输入端接收异步串行比特流时,通常限制最大可支持比特率的是FPGA的最大时钟速率,而非IOB所支持的最大速率。使用采样时钟的多个时钟相位,即可在不提高时钟频率的情况下增加每个位周期的样本数量,但此法需要以某种方式精确地生成并分配多个时钟相位,而且会用多个全局时钟布线资源。
DCM为串行输入的过采样创建多个时钟相位(参见图2所示的用两个DCM的8倍数据恢复方案)。根据时钟频率和每个位周期样本数不同,需多个DCM才能提供足够的时钟相位。但使用多个DCM,会产生相对抖动,导致降低接收器的抖动容限。图2的方案还要求与四个时钟相位对应的四个全局时钟。
如上所述,图2的方案用两个DCM所设计的数据恢复方案,不同情况时,还需多余两个的DCM,才可提供足够的时钟相位,但同时会降低接收器的抖动容限,针对采样精度的问题,提出一种使用IDELAY实现高效的过采样方法。
2.1 使用IDELAY过采样的硬件设计
图3所示是基于IDELAY的过采样器的内部逻辑电路。一个DCM用来创建间隔90度的两个时钟相位。使用这两个时钟相位的两个边沿,可在一个位周期内给定四个间隔均等的采样点。串行比特流通过IBUFDS_DIFF_OUT的基元进入FPGA。因为此基元仅支持LVDS输入,所以串行数据必须为LVDS格式。一般的LVDS输入基元只向FPGA提供一个信号,但IBUFDS_DIFF_OUT基元会将接收到的真实信号及其反转信号都提供给FPGA。如图4所示,IBUFDS_DIFF_OUT使用两个差分接收器,一个在LVDS对的P输入IOB中,另一个在其N输入IOB。这些差分接收器各向FPGA提供一个信号,N侧IOB发出的信号与P侧IOB提供的信号反相。
图3中,各样本通过由三个触发器构成的流水线送至主时钟域(零度时钟的上升沿)。第一触发器是采样触发器,偶尔会因比特流异步采样而处于亚稳态。为规避亚稳态引起的问题,本设计在流水线中第一与第二触发器之间至少让出四分之三时钟周期,以便给第一触发器留出时间在样本被时钟驱动进入第二触发器之前稳定下来。当样本被时钟驱动进入流水线中第三触发器时,样本已送入主时钟域,而且亚稳态已解除。
若包括流水线中第一触发器上的延迟量,任何样本通过流水线的总延迟都恰是两个时钟周期。以315度的样本为例,第一触发器使用90度时钟的下降沿,所以为该触发器被时钟驱动四分之三时钟周期。第一到第二触发器的延迟是四分之三时钟周期,而第二到第三触发器的延迟是半个时钟周期。加起来是两个时钟周期。
与图2所示的双DCM技术相比,此基于IDELAY的过采样技术在性能及资源使用方面都有优势。这种技术少用了一个DCM和两个全局时钟。只使用一个DCM,各时钟相位之间相对更稳定。因此,这种过采样技术可以提供更精准的可重复性比特流采样,并且可以提高接收器的抖动容限。
正则化相位跟随代码IDELAY基元可提供每tap 78 ps的高精度延迟。延迟值6提供468 ps的延迟,非常接近270 Mb/s位周期的八分之一(463 ps)。270 Mb/s是视频应用的常用比特率,在参考设计中用作示范比特率。
如果FPGA正在接收比特率相同的多个异步比特流,就可以用DCM提供的两个全局时钟相位作为时钟来驱动所有比特流的过采样器。因此,这种技术对于接收比特率相同的多个比特流非常有效。
图3中的DCM不能在进行时钟乘法运算的同时提供两个相隔90度的时钟相位。因此,DCM的输入端需要一个比特率时钟。不过,Virtex-5器件时钟管理管道中的PLL可以同时对输入的时钟进行乘法运算并提供两个不同的时钟相位,并且允许使用较低频率的输入参考时钟。
Virtex-4和Virtex-5器件中的每个IOB都有一个IDELAY基元与之关联。不过,在图4中由于IBUFDS_DIFF_OUT缓冲器从LVDS对的两个不同IOB提供两个输入信号副本,而这两个比特流副本可经不同的IDELAY基元分别发送,这致使它们有不同的延迟量。IBUFDS_DIFF_OUT的P侧提供的比特流真实副本被与其关联的IDELAY延迟八分之一个位周期。用于IBUFDS_DIFF_OUT反相输出的IDELAY设置为零延迟。这两个IDELAY模块提供两个不同的比特流“相位”。过采样器用两个时钟相位的双沿对这两个比特流相位分别采样,所以每个位周期可采集比特流八次,如图5所示。
这里需注意:标为有零相移延迟的数据其实是来自有八分之一位周期延迟的IDELAY模块,而标为有45度相移的数据却是来自有零延迟的IDELAY模块。由图3可知这是正确的。在图5中的CLK0说明了这一示例。比特流的两个相位均在CLK0的上升时钟沿采样。从有八分之一位周期延迟的IDELAY采集的样本代表比从有零延迟的IDELAY采集到的样本“早”八分之一位周期的输入数据。
使用两个IDELAY,却将其中一个设置为零延迟。这样是为了确保两个信号副本使用同等布线资源,从而尽量减轻数据信号两个相位间的歪斜。
图6所示为连接至DRU的基于IDELAY的过采样器设计。这种DRU支持8倍过采样,当初的开发目的是在Rocket IO收发器上用作过采样器。由于这一原因,它预置一个20位的输入矢量,所以需要少量接口逻辑将采样器的8位输出端与DRU的20位输入端衔接起来。DRU在其输出端口生成10位的恢复数据字,同时生成一个信号,一旦数据字生效则该信号被置位。DRU还可以生成20位的输出字。
2.2 软件编程设计
本设计主要分为两个模块:过采样模块、数据恢复模块DRU(os48_1011×20b To 10b_top2)。下面分别说明两个模块的端口定义及功能。
1)过采样模块
过采样模块称为oversample_8x。其端口如表1所示。
oversample_8x模块可接受一个称为IDELAY_45_DEGREES的Verilog参数或VHDL类属参数,其默认值为6。此值设置IDELAY的延迟量,以便在数据上获得一个45度的相移(八分之一位周期)。默认值6是对应270 Mb/s的正确IDELAY值(78 ps×6≈(1/270 MHz)/8)。如果比特率是270 Mb/s以外的其他值,就必须将IDELAY_45_DEGREES的正确值传输到该模块。
2)DRU模块
DRU模块称为os48_1011x20bTo10b_top2。其端口如表2所示。名称以A/B开头的所有端口实际上都是双端口,其中一个对应A通道,另一个对应B通道。
DRU的A_recclk和B_recclk端口必须由连接到各自oversample_8x模块clk0输入端口的同样的比特率时钟驱动。过采样器的dout和dout_rdy端口分别驱动DRU的A/B_din20b和A/B_en端口。
DRU正确指定信号位顺序至关重要。DRU有两个位顺序输入端,一个指定DRU输入数据的位顺序,另一个指定DRU输出数据的位顺序。不能独立地指定DRU两个通道的位顺序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。