微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 在FPGA中实现源同步LVDS接收正确字对齐

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

时间:05-01 来源:互联网 点击:
atix IIILVDS硬核模块的输出字顺序通常是不确定的,每次上电或者复位后字顺序都有可能发生变化,使用时需要根据特殊码型进行字对齐处理。
当输入到FPGA的数据和时钟之间的倍数关系等于解串器的解串行化因子时,FPGA与单独的LVDS解串器一样,有确定的字顺序输出,可以在没有训练码型的情况下继续正常应用。图6是解串行化因子为7时的时序图。假设随路时钟的上升沿对应数据的最高比特,在FPGA内部,PLL会从随路时钟产生一个进行过相位调整的7倍频率采样时钟。此时钟对输入数据进行采样后送入解串器,通过控制解串器的装载时钟相位,得到确定的并行数据输出字顺序。装载时钟的相位相对随路时钟相位的固定差异是通过接收PLL的相位控制来实现的,因此必须在输入时钟稳定后再释放PLL的复位控制,或者等输入时钟稳定后再复位PLL一次,否则输出的字顺序在每次上电时都可能不固定。


图6:LVDS接收及解串行化时序图。

在具体应用时,还需通过仿真来确定具体应用下的字输出顺序,然后在逻辑设计里面进行调整,使最终的并行输出符合满足需求。下面以与TI的SN65LVDS95 LVDS发送器对接为例来介绍具体的设计方法和步骤。当把StratixIII的LVDS与别的LVDS器件对接时,也可以此为参考。


图7:LVDS95输出时序。

点击查看大图在图7,LVDS95输出的时钟和数据是对齐到输出时钟的上升沿上的,数据的最高比特(MSB)出现在时钟上升沿之在后的第三个比特。这里的目的是使Stratix III 的LVDS接收器输出正确的字顺序,也即图7中的D6出现在并行输出数据的最高比特上。


图8:综合设置页面。

假设并行侧的时钟频率是60MHz,这样串行LVDS的速率是480Mbps。为方便描述,这里只针对1路LVDS数据进行设计。
首先根据LVDS95的时序进行Stratix III中的LVDS模块(ALTLVDS)的调用。


图9:频率和锁相环设置页面。

在图8的综合设置页面中,我们没有选上“Implement Serializer/Deserializer circuitry in logiccells",这样就用到了LVDS SERDES硬核。同样也没有选上“Enable Dynamic Phase Alignmentmode”选项,这表示不使用DPA功能。


图10:接收器设置页面。

在图9中,根据LVDS95的输出时序,在“What is the phase alignment of 'rx_in' with respectto the rising edge of 'rx_inclock'? ”里选择了0度。在图10的设置中,通常情况下需要选上“Registeroutputs”选项。但因为后续设计逻辑包含了这些寄存器,所以这里选择该选项。此外,在这里没有使能“rx_channel_data_align”端口来进行字重新对齐。
接下来需要通过仿真找出串行因子等于7的情况下,LVDS硬核的字顺序情况。图11给出了顶层设计例子,图12是在MODELSIM里的仿真结果。


图11:顶层模块的设计。

从图11的仿真波形可以看到,LVDS时钟上升沿之后的第一个数据将在并行侧的rx_out_tmp[6:0]中的rx_out_tmp[2]出现。结合LVDS95的特性,LVDS95输出的MSB(D6)将在rx_out_tmp[0]出现,于是需要将此输出滑动一位,得到正确的字顺序。


图12:仿真波形。

在图13中,首先将数据进行一拍延时,得到rx_out_tmp_dly[6:0],然后将rx_out_tmp_dly[0]放置在输出数据的最高位,rx_out_tmp[6:1]顺序放置在其他位上,得到数据向右滑动一位的效果。如果需要滑动多位,调整上述的放置位置就可以了。对上述调整逻辑,我们可以进一步通过仿真来验证。在此我们输入了一个计数器数据进行确认。图14给出了仿真的部分输出结果,图中,左边两根竖条标出了LVDS输入的“000001”数据,右边的两个竖条标出了rx_out的正确输出。这证明了我们的调整是正确的。


图13:字顺序的调整逻辑。


图14:内容为计数器的仿真输出波形。

本文小结
在利用StratixIII做LVDS接收时,我们可以将解串行化因子设置成等于输入的LVDS数据和时钟之间的倍数关系,这样就可以得到确定的字输出顺序,从而可以不依赖训练码实现正确LVDS接收的字对齐。此方法不仅适合于FPGA与单独的LVDS发送器进行对接,也可用于FPGA与FPGA之间的数据传送,使用时FPGA的LVDS发送端送出低频的源同步时钟即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top