- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
在FPGA中实现源同步LVDS接收正确字对齐
录入:edatop.com 点击:
接下来需要通过仿真找出串行因子等于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:内容为计数器的仿真输出波形。
本文小结
在利用Stratix III做LVDS接收时,我们可以将解串行化因子设置成等于输入的LVDS数据和时钟之间的倍数关系,这样就可以得到确定的字输出顺序,从而可以不依赖训练码实现正确LVDS接收的字对齐。此方法不仅适合于FPGA与单独的LVDS发送器进行对接,也可用于FPGA与FPGA之间的数据传送,使用时FPGA的LVDS发送端送出低频的源同步时钟即可。
作者:Altera公司 来源:维库开发网