话不多说,直接测试

1. OUTPUT:LVDS_TX
2. SDR:代表着速率,测试选的SDR(单速率)
3. 8:串换因子,就是一对LVDS转化几bit的并行数据(和后面的clk,clk_div有关系)
4. 8:8对LVDS
5. LVDS都是差分电压,这个根据板卡上的电压选择
6. 类型肯定是差分的

1. 输出差分时钟
2. 时钟类型选择LVDS,和前面匹配
第三页是数据和时钟的延时,默认
下面说一下测试过程

发送端
1. 发送的数据(需要发送十几个周期的同步码,后面是递增数0~255)
2. 输出的差分时钟(频率和clk_in一致,500M)
3. 串行数据的时钟 (测试的500M)clk_in
4. 并行数据的时钟(测试125M)clk_div_in
clk_in和clk_div的关系就是就是图1中的串换因子以及SDR的关系: 8:1(DDR的话就是4:1)

1. LVDS_TX 核的输出时钟,连接在MMCM上
2. 输出500M和125M,用作LVDS_RX的CLK_IN和CLK_DIV_IN
接收端

LVDS接收需要考虑一个问题是:如何将数据和时钟对齐,这里的bitslip叫位移操作,用它来将同步码找出,进行数据的同步
1. 接收数据,先进行数据的同步
2. bitslip用来同步数据
3. clk_in和clk_div_in分别来自MMCM
4. 复位也来自MMCM
注意: bitslip是一个脉冲信号,产生一个脉冲,数据就移位一次,直到找出同步码为止
下面看下仿真的结果

1. 这是发送数据的同步码:EB90_01DC_EF18_EB90
2. 接收端经过bitslip的同步,最终得到的同步码
3.我用的8通道LVDS,所以bitslip是8bit,每个bit都需要移位,所以是FF
,

可以看到,发送的数据和接收的数据都是连续的,说明LVDS通信OK
附上代码
module lvds_module
#(
// parameter LVDS_DATA_HEAD = 64'hFF00_00FF_FF00_FFFF, // 同步码
parameter LVDS_DATA_HEAD = 64'hEB90_01DC_EF18_EB90, // 同步码
parameter LVDS_DATA_HEAD_CNT = 8'h40, &nb

本文详细介绍了LVDS(低压差分信号)通信的测试过程,包括LVDS_TX的输出、SDR设置、串换因子、时钟配置等。通过发送端和接收端的数据同步码校验以及bitslip位移操作确保数据正确传输。在仿真中,验证了发送和接收数据的连续性,从而确认LVDS通信的正确性。代码示例展示了LVDS模块的实现和测试激励。

4791

被折叠的 条评论
为什么被折叠?



