lemonHe

主要关注FPGA信号处理和数字图像处理技术,欢迎交流 邮箱:heliminlemon@163.com

lvds_tx核与lvds_rx核的使用【连载3】

0
阅读(8284)

我的开发环境: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核。

clip_image002

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

clip_image004

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

clip_image006

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

clip_image008

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)的配对差分管脚

clip_image010

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

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

 

参考文章

1. LVDS SERDES Transmitter/Receiver IP Cores User Guide

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