lvds在FPGA中的使用3- lvds_tx核与lvds_rx核的使用

来源:互联网 发布:为知笔记 看别人的笔记 编辑:程序博客网 时间:2024/05/19 00:52

我的开发环境:quartus13.1

 

altlvds_tx/ altlvds_rx核实际上是个并串/串并转换器,在使用altlvds_tx/ altlvds_rx核时,一定要先在quartus ii中新建工程,编译并分配管脚,看编译能否通过,如果通过了再投板,否则可能要更改电路设计了。

我在电路中使用lvds接口发送数据,以前的设计中使用的是DS90CR287完成数据串化,对于base模式,有4对数据和1对时钟,共5对lvds信号。使用FPGA的true lvds transmitters发送数据,需使用altera IP,在quartus中添加altlvds_tx核。

这里选择LVDS transmitter,然后设置4个LVDS通道(channels);每个通道对应7个解串因子,即7并1串处理。最下面的Use External PLL如果勾选上,则这个IP核内的其他两个配置页面不可设置,用户的时序频率方面的配置主要在外部的PLL时钟上下文章了;若不勾选上,则会使用一个PLL,如果资源够用的话,可以不用勾选,我们接着来看后面两个配置页面。

在Frequency/PLL settings中,需要配置好LVDS串行数据传输速率,在我的设计中,并行数据时钟频率为25MHz,对应串行数据频率为25*7=245Mbps,。其他几个选项一般使用默认设置,大家可以参考altlvds_tx Megafunction User Guide中有详细说明。

Transmitter settings中有多个Transmitter outclock配置选项,主要是LVDS输出时钟与输出差分信号的时钟以及相位设置,具体如何配置还是需要根据用户本身这个LVDS信号的传输需求而定。

 

reg    [6:0]    datain3;

reg    [6:0]    datain2;

reg    [6:0]    datain1;

reg    [6:0]    datain0;    

lvds_tx1    lvds_tx1_inst (

    .tx_in ( {datain3 , datain2 , datain1 , datain0} ),

    .tx_inclock ( clk ),

    .tx_out ( cameralinkData ),

    .tx_outclock ( cameralinkClk )

    );

最后,在管脚分配时,需要选择I/O Standard为LVDS,然后会自动参数另一个*(n)的配对差分管脚

编译,如果编译通过,则说明设计ok。

另外,板子画完了,等待投完板回来调试,调试后再补充实验结果。

 

参考文章

  1. LVDS SERDES Transmitter/Receiver IP Cores User Guide

http://bbs.ednchina.com/BLOG_ARTICLE_2116687.HTM