LVDS与IDELAY

摘要:LVDS(Low-Voltage Differential Signaling)低电压差分信号,是一种低功耗、低误码率、低串扰和低辐射的差分信号技术;LVDS会被经常使用到,使用的过程中难免会碰到时序问题,需要借助IDELAY进行简单的时序调整;我在使用4*4lane LVDS传输数据时碰到了很多问题,本篇文章作为记录;

一、LVDS

LVDS对于FPGA侧来说无非就是一对差分线,直接用就行;我使用的场景中,需要用到24对LVDS(外部有4路芯片,每路6对LVDS)

二、IDELAY的使用

2.1 差分转单端

把需要用到的所有差分信号,转单端信号,后面会用到:

2.2 IDELAY CTRL

i_clk_delay目前来看并没有什么特殊要求,这里我给的是主时钟MMCM分出来的300MHz时钟;需要注意这里的IODELAY_GROUP貌似要统一名字;

2.3 IDELAY3

里面连接的i_idelay_clk使用的是芯片2243过来的随路时钟,这个时钟应该是300MHz,2243传送过来的的数据速率是600Mbps;

2.4 IDDRE1

IDELAY3的输出接到IDDRE上面;

i_bitclk是300Mhz时钟;

iddre的输出就可以拿来用了,但是时钟域依旧是i_bitclk;

三、调试

3.1 LVDS时序问题

一般LVDS出现时序问题,会出各种各样的情况,但是总结下来无非就是两点,数据本身和数据量有问题;也就是说,数据要么就是错误的,要么数据量不对,两者很有可能同时出现;

按照经验,在确保物理硬件布线没有问题的情况下,LVDS出现时序问题,很有可能就是布局布线导致的,所以异常的现象并不是固定一致的,应该会随着版本的变化而变化;此时此刻,通过调整idelay是很有希望解决这个问题的。如果物理硬件布线有问题(没遇到过),很难调试;

如图所示,理论上收到的数据应该是1,2,3,4,5,6,7,8,但是现在出现了16,12,0e,0a;理论上收到的数据量是786432个,并且图中784383对应的应该是1,现在对应的是2,证明了数据量也少了(在测试LVDS时序问题的时候,一定要有一套标准证明数据本身不对或者数据量少了);

我的验证标准:

由于雷达2243会传过来bitclk、valid、frameclk、data0、data1、data2、data3;可以选择用valid去计算数据量,理论上valid应该和四路data是严格对齐的;所以可以用多个计数器从不同角度计数valid,可以对比计数器,保证每个计数位置的唯一性,从而验证出数据量是否正确;要验证数据本身正确,一定要让对端发送有规律的数据,才能够比较清晰的判断数据本身有没有发生错误(2243有testpattern模式、testsource模式、真实数据模式);

调节idelay:

调节idelay基本上可以盲试,因为9bit的位宽,一共就512个数,我认为一路data能够对齐的情况下,相邻几路data数据的延时,基本一致;但是芯片和芯片间的LVDS延时或许会有不同;但是即便如此,调delay就是一个尝试的过程,有了标准,多试几次,就能够测出正确的结果;

总结

很久以前做过的东西,写出来加深印象

参考文章:

FPGA内部资源(Xilinx) ---- IDELAY(延时)_idelaye2原语-CSDN博客

相关推荐
ThreeYear_s4 小时前
基于FPGA的FM调制(载波频率、频偏、峰值、DAC输出)-带仿真文件-上板验证正确
fpga开发
ThreeYear_s7 小时前
基于FPGA的2FSK调制-串口收发-带tb仿真文件-实际上板验证成功
fpga开发
亮锅锅来啦19 小时前
如何做含有identify抓信号的fpga版本(image或者Bit)
fpga开发
亮锅锅来啦19 小时前
如何使用identify_debugger去抓取信号
fpga开发
小灰灰的FPGA19 小时前
低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试
fpga开发
fei_sun2 天前
【Verilog】第三章作业
fpga开发·verilog
hexiaoyan8272 天前
FMCJ456-14bit 2通道3/2.6/2GS/s ADC +16bit 2通道12.6GS/s DAC FMC AD/DA子卡
fpga开发·fmc子卡·软件无线电·异构加速服务器·fmc子板·ad da子卡
ThreeYear_s2 天前
FPGA学习-FFT变换-解决频率低信号进行FFT运算的取点问题
学习·fpga开发
Water_Sounds2 天前
【FPGA开发】Vivado自定义封装IP核,绑定总线
fpga开发
FPGA_Linuxer2 天前
基于RFSOC实现LFMCW雷达测距测速
fpga开发