在FPGA中实现源同步LVDS接收正确字对齐

上传人:hs****ma 文档编号:558351016 上传时间:2022-09-29 格式:DOC 页数:8 大小:371.50KB
返回 下载 相关 举报
在FPGA中实现源同步LVDS接收正确字对齐_第1页
第1页 / 共8页
在FPGA中实现源同步LVDS接收正确字对齐_第2页
第2页 / 共8页
在FPGA中实现源同步LVDS接收正确字对齐_第3页
第3页 / 共8页
在FPGA中实现源同步LVDS接收正确字对齐_第4页
第4页 / 共8页
在FPGA中实现源同步LVDS接收正确字对齐_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《在FPGA中实现源同步LVDS接收正确字对齐》由会员分享,可在线阅读,更多相关《在FPGA中实现源同步LVDS接收正确字对齐(8页珍藏版)》请在金锄头文库上搜索。

1、在FPGA中实现源同步LVDS接收正确字对齐时间:2009-08-03 19:03:02 来源:电子系统设计作者:韦俊伟Altera公司在串行数据传输中,数据接收端需要一些特定的信息来恢复岀正确的字边界,以确定串行码流 中哪些比特属于原始并行数据里的同一时钟节拍里的数据,这一处理过程称为字对齐(Word Alig ner)一些标准的协议会定义特殊的码型(常见的码型如8B/10B编码中的K28.5)用于字对齐处理。另一些 带源同步时钟的LVDS接口,通常会利用低频的源同步时钟来携带字对齐信息,用于接收端的正确恢复。FPGA对上述两种方案都可以进行正确处理。那么,如何FPGA中利用低频源同步时钟实

2、现低压差分信号(LVDS)接收字对齐呢?在串行数据传输中,数据接收端需要一些特定的信息来恢复岀正确的字边界,以确定串行码流中哪些比特属于原始并行数据里的同一时钟节拍里的数据,这一处理过程称为字对齐(Word Alig ner)。一些标准的协议会定义特殊的码型(常见的码型如8B/10B编码中的K28.5)用于字对齐处理。另一些带源 同步时钟的LVDS接口,通常会利用低频的源同步时钟来携带字对齐信息,用于接收端的正确恢复。 FPGA对上述两种方案都可以进行正确处理。对于标准协议,FPGA通常都会有知识产权(IP)模块提供。本文主要讨论在FPGA中利用低频源同步时钟实现低压差分信号 (LVDS)接收

3、字对齐的设计方法 及步骤。LVDS已经成为业界高速传输最普遍应用的差分标准。LVDS的优势包括:由于采用差分信号带来的对共模噪声的免疫能力,进而提高了抗噪声能力;功率消耗较小,噪声较小等。由于LVDS有比较好的抗躁声特性,它可以采用低至几百毫伏的信号摆幅,进而可以支持更高的数据速率。LVDS串行器/解串器(SERDES)可以完成多位宽度的并行信号到 LVDS串行信号的转换以及反方向操 作,如图1所示。有些器件提供图1中的随路时钟,但有些器件可能并不提供,这时LVDS解串器还必须具有时钟恢复(CDR)功能。市面上有各种规格的LVDS SERDES器件,此外FPGA或其它一些器 件也都能集成LVD

4、S SERDES模块。图1: LVDS串行器/解串器的功能示意图。为确保正确的数据传送,通过LVDS接收器后必须能恢复字顺序,即输入到LVDS串行器的最高比特 能够正确地出现在解串器恢复输出数据的最高比特位置上,至少是需要预先知道出现在哪个比特位置上后再进行调整。图2和图3分别给岀了 4位宽度下字顺序得到保留和没有得到保留的例子。对于图3的情况,需要采用一种方法找把字顺序调整过来。图2:字顺序得到保留。EVDS图3:字顺序没有得到保留。字顺序的调整通常采用寻找训练码来进行。一些标准的协议通常会定义特殊的码型来进行字对齐处理, 比如8B/10B编码中K28.5码型的主要功能就是字对齐处理。发送端

5、在有效数据中插入K28.5码型,接收端在收到的数据中寻 K28.5码型,找到之后以这个码型为参考得到正确的并行数据输岀。此外, 诸如SDH协议就利用帧头位置的 A1A2字节来进行字对齐处理。另外一些相对低速的LVDS接口也利用低频的源同步时钟来携带字对齐信息,以便在接收端实现正确的数据恢复。这里的低频源同步时钟也如图1中的随路时钟,LVDS数据和随路时钟之间的倍数关系通常等于LVDS串行化时的倍数因子。比如,德州仪器(TI)的SN65LVDS95 LVDS发送器,不仅可完成21: 3的LVDS串行化发送,还将21位的并行数据和时钟串行化成 3路LVDS数据输岀和1路 时钟输岀。串行化因子的值等

6、于 7,所以输岀时钟的频率是 LVDS数据速率的七分之一。通过这个随 路时钟,配套的解串器SN65LVDS96就能够正确恢复并行数据。与这类单独的LVDS SERDES器件相比,FPGA集成LVDS模块能提供更高的集成度,并简化硬件设 计、节省PCB面积,从而降低应用成本。高端 FPGA还在I/O单元里固化了 LVDS串行器/解串器, 支持非常高的速率,比如 Altera公司的Stratix III系列。Stratix III FPGA 系列是Altera公司基于TSMC 65nm工艺的高端FPGA,是业界高密度高性能可编 程逻辑器件中,功耗最低的产品系列。Stratix III器件可以同时提

7、供最多276对LVDS串行化发送模 块和276对LVDS解串行化接收模块,每路LVDS最高可以支持1.6Gbps。此外,它还独家提供可编 程的输岀摆幅和预加重功能,以支持长距离背板传送,如图4所示。图4: Stratix III支持可编程的输岀摆幅(Vs(p-p)和预加重(Vpp(p-p)。图5显示了 Stratix III的LVDS接收器中固化在I/O单元里的模块。源同步的低频时钟rx_inclk通过PLL倍频移相后得到DIFFI/OCLK,对输入数据rx_in进行采样,采样后的数据可以进行最高因 子为10的解串行化。ra inDatti_RHligrmiin1$ Crgilj-r=DPA

8、.Ryp4Si 瞅悴打-10lnl#rndLogicSynchrcrwMCEjp#irPJl3JflCTMlfTdiHoc*Regiorwil w*GtotMl Ckwk图5: Stratix III I/O 固化的LVDS接收器。由于FPGA具有非常高的灵活性,比如支持不同LVDS输入数据和输入时钟之间的倍频关系,以及不同的解串行化因子,所以 Stratix III LVDS 硬核模块的输岀字顺序通常是不确定的,每次上电或者复 位后字顺序都有可能发生变化,使用时需要根据特殊码型进行字对齐处理。当输入到FPGA的数据和时钟之间的倍数关系等于解串器的解串行化因子时,FPGA与单独的LVDS解串器

9、一样,有确定的字顺序输岀,可以在没有训练码型的情况下继续正常应用。图6是解串行化因子为7时的时序图。假设随路时钟的上升沿对应数据的最高比特,在FPGA内部,PLL会从随路时钟产生一个进行过相位调整的 7倍频率采样时钟。此时钟对输入数据进行采样后送入解串器,通过控制 解串器的装载时钟相位,得到确定的并行数据输岀字顺序。装载时钟的相位相对随路时钟相位的固定 差异是通过接收PLL的相位控制来实现的,因此必须在输入时钟稳定后再释放PLL的复位控制,或者等输入时钟稳定后再复位 PLL 一次,否则输岀的字顺序在每次上电时都可能不固定。AMTT tlTTTTT 广 T3HTT7 : CJLJLLJWj? A

10、/WWWWWWWW nrmmmnrmnmn _Lj i tk图6: LVDS接收及解串行化时序图。在具体应用时,还需通过仿真来确定具体应用下的字输岀顺序,然后在逻辑设计里面进行调整, 使最终的并行输岀符合满足需求。 下面以与TI的SN65LVDS95 LVDS发送器对接为例来介绍具体的 设计方法和步骤。当把 Stratix III的LVDS与别的LVDS器件对接时,也可以此为参考。CUK4T%私jf图7: LVDS95输岀时序。点击查看大图在图7,LVDS95输岀的时钟和数据是对齐到输岀时钟的上升沿上的,数据的最高比特(MSB)岀现在时钟上升沿之在后的第三个比特。 这里的目的是使Stratix

11、 III的LVDS接收器输岀正确的字顺 序,也即图7中的D6岀现在并行输岀数据的最高比特上。图8 :综合设置页面。假设并行侧的时钟频率是 60MHz,这样串行LVDS的速率是480Mbps。为方便描述,这里只针对1 路LVDS数据进行设计。首先根据LVDS95的时序进行Stratix III中的LVDS模块(ALTLVDS)的调用。图9:频率和锁相环设置页面 在图 8 的综合设置页面中,我们没有选上 “ Implement Serializer/Deserializer circuitry in logic cells 这样就用到了 LVDS SERDES硬核。同样也没有选上 “Enable

12、Dynamic Phase Alignment mode 选项, 这表示不使用DPA功能。图10:接收器设置页面在图 9 中,根据 LVDS95 的输岀时序,在 What is the phase alignment of rx_in with respect to the rising edge of rx_inclock?里选择了 ”度。在图10的设置中,通常情况下需要选上 “ Register outputs选项。但因为后续设计逻辑包含了这些寄存器,所以这里选择该选项。此外,在这里没有使能“ rx_channel_data_align端口来进行字重新对齐。接下来需要通过仿真找岀串行因子等

13、于7的情况下,LVDS硬核的字顺序情况。图11给岀了顶层设计例子,图12是在MODELSIM 里的仿真结果。.* 1 握.pl3flw - t irr图11:顶层模块的设计。从图11的仿真波形可以看到,LVDS时钟上升沿之后的第一个数据将在并行侧的rx_out_tmp6:0中的 rx_out_tmp2 岀现。结合 LVDS95 的特性,LVDS95 输岀的 MSB(D6)将在 rx_out_tmp0 岀 现,于是需要将此输出滑动一位,得到正确的字顺序。nJikiL Murl_nn_1LJ11_JI1L】扌El#网整曲询心bfljL_I L_i1 Lj: 11_I 旧 _2DI =r 用现tyh

14、di斗 皿讣港.mmi ifH ,t i i.npoitt-1 打: -LI图12:仿真波形。在图13中,首先将数据进行一拍延时,得到rx_out_tmp_dly6:0,然后将 rx_out_tmp_dly0置在输出数据的最高位,rx_out_tmp6:1顺序放置在其他位上,得到数据向右滑动一位的效果。如果需要滑动多位,调整上述的放置位置就可以了。对上述调整逻辑,我们可以进一步通过仿真来验证。在此我们输入了一个计数器数据进行确认。图14给岀了仿真的部分输岀结果,图中,左边两根竖条rx out的正确输岀。这证明了我们的调标岀了 LVDS输入的“000001”数据,右边的两个竖条标岀了整是正确的。nJj, ii&juLI1 ih_-_jd11J扌丿说MUI11L產曾dmcIck 1”1k_l1h*ds,1* HPhlitTI n J图13:字顺序的调整逻辑。珂口.蟹.b_PH B. Hi=i: I:klB-in图14:内容为计数器的仿真输岀波形本文小结在利用Stratix III做LVDS接收时,我们可以将解串行化因子设置成等于

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号