基于ZYNQ的Lvds收发仿真实验
1.工程概述:
图1.1
我们通过分别建立LVDS发送和接收模块,将两者进行互联,实现LVDS数据收发实验。数据源通过编写数据产生模块来实现所需传输的数据。时钟源采用VIVADO自带的IP核。从图1.1可以看出,LVDS发送模块具备serialization功能,它是将Dater_generate发送过来的并行数据进行串化处理,接收模块具备deserializer功能。
为什么要进行serialization和deserializer 处理呢?原因是因为一般通过LVDS传输的数据速率都比较快,一般的FPGA IO接口是难以读取较高速率的数据信号。例如摄像头输出的LVDS信号速率会达到600M以上。又有一个问题,为什么不直接采用并行数据进行传输呢,并行传输速率不应该更快吗?其实在Serdes之前,芯片之间的互联通过系统同步或者源同步的并行接口传输数据。如图1.2和图1.3所示,分别是系统同步和源同步并行接口。
图1.2 system synchronous interface
图1.2为系统同步接口方式,该方式随着频率的增加,有以下几个因素限制了有效数据窗口宽度。
(1)时钟到达两个芯片的延时不相等。
(2)并行数据各个bit的传播延时不相等。
(3)时钟的传播延时和数据的传播延时不一致。
这几种因素限制了有效数据窗口宽度,从而不能够传输高速数据信号。
图1.3 source synchronous interface
图1.3为源同步接口,该方式是在发送端Tx把时钟伴随数据一起发送出去, 限制了时钟延时差对有效数据窗口的危害。通常在发送端芯片内部,源同步接口把时钟信号和数据信号作一样的处理,也就是让它和数据信号经过相同的路径,保持相同的延时。这样PVT变化时,时钟和数据会朝着同一个方向增大或者减小相同的量,对skew最有利。
利用源同步接口,数据的有效窗口可以提高很多。通常频率都在1GHz以下。在实际应用中可以见到如SPI4.2接口的时钟可以高达700MHz x 16bits位宽。DDR Memory接口也算一种源同步接口,如DDR3在FPGA中可以做到大约800MHz的时钟。
要提高接口的传输带