基于Xilinx FPGA的LVDS高速串行通信系统(四)--数据测试【文末源码】

章节合集:

基于Xilinx FPGA的LVDS高速串行通信系统(一)

基于Xilinx FPGA的LVDS高速串行通信系统(二)

基于Xilinx FPGA的LVDS高速串行通信系(三)

核心功能模块

1. LVDS接收端

物理层接收(lvds_rx_recv.v)

训练同步模块(lvds_rx_training.v)

8b/10b解码器(lvds_receive.v)

2. LVDS发送端

8b/10b编码器(lvds_send.v)

物理层发送(lvds_tx_top.v)

3. 系统集成(lvds_top.v / gsds_LVDS.v)

01 数据通信测试

LVDS数据通信的测试采用软逻辑分析仪测试方法,其原理是在FPGA逻辑代码 设计阶段或综合完成后在工程中插入一个软逻辑分析仪的核,软逻辑分析仪通过综 合块RAM资源,用工作时钟把内部的LVDS相关信号采集到块RAM里,采完以后 再通过FPGA的JTAG接口把块RAM里的LVDS相关数据读到外部PC上显示。最 后通过PC上的显示数据,判定发送端和接收端之间的LVDS 通讯是否正常。

LVDS帧加载器的格式测试结果如下图所示。

由测试结果可知,在整个数据传输的中,分别抓取到数据的帧头、帧位、数据 域、校验位。符合 LVDS 数据帧格式的定义。完成了帧格式的测试,接下来需要对 8B/10B 编码进行测试。首先,对于10B编码后,特殊字符的编码结果如下表所示。

对于发送端,10bit数据的帧格式如下图5-5所示。

如图所示,从蓝色标签的104开始到146结束表示一帧数据的编码,同时此时数据的极性为负。接收端,10 bit数据的帧格式如下图所示。

从蓝色标签的 436 开始到 480 结束表示一帧数据的编码,同时此时数据的极性为正。

数据交互测试,PC 端的发送读取指令,发送端通过 LVDS 通讯接口向接收端下发接收数据指令。通过发送端的软逻辑分析仪,当PC上显示的发送端下发接收数据指 令数据时,表明发送端发送接收数据指令成功。当数据线接收到接收端返回的数据包时,表明 LVDS 数据通讯功能测试完成。 数据交互的逻辑控制及寄存器定义为:对应的信号指令为0x0100FF01时,表示读取接收端固化版本号;对应的信号指令为0x08000002作为数据读取。测试结果如下图所示。

如图所示。当接收端接收到的指令为0x08000002时,data_flag 标志位拉高,此时加载的数据为连续的数据,当接收到的指令为0x0100FF01时, flag 标志位拉高,此时加载的数据为代码的固件版本号 20230421。为了验 证 LVDS 数据传输的过程中没有出现数据丢帧和数据误传的错误,对数据稳定的长时间测试,首先,接收端和发送均发送相同的数据 10'b0010010011,将接收到的数据与 10'b0010010011 作对比,当不相等时, err_flag 标志位拉高,否则保持低电平。测试时间为 12 小时,采用 VIVADO 的 trigger 触发模式,当抓取到err_flag发生状态跳转时,立即停止采样,并将标签停止在状态跳变处。测试结果如图所示。

源码:

1、IP核版本:【IP核 】Xilinx FPGA LVDS 高速接口完整解决方案IP,含验证工程与板级测试用例

2、所有源码版本:【LVDS工程源码】LVDS 高速接口完整解决方案,含验证工程与板级测试用例(所有源码均包含)

相关推荐
幻智星科技1 天前
蒙哥马利模乘FPGA优化实战
fpga开发·密码学
星夜离尘561 天前
FPGA 多通道 DAC 目标码影子寄存器:成组提交、同拍写入与快照边界
fpga开发
t_niu_niu1 天前
基于多帧累加平均的图像传感器暗电流抑制方法与 FPGA 实现
fpga开发·ram·fpn·固定模式噪声·image sensor
幻智星科技1 天前
FPGA纯硬件UDP桥接:微秒级响应新范式
c++·fpga开发·硬件架构
小蘇的FPGA1 天前
基于FPGA实现PCIe H2C过程中TAG的一种管理方法
fpga开发
威嵌神州1 天前
一台加固平板,能替掉几台现场设备?
嵌入式硬件·fpga开发·电脑·平板
幻智星科技2 天前
树形架构破解FPGA扇出瓶颈
fpga开发·硬件架构
FPGA小迷弟2 天前
FPGA开发Vivado Block Design/Vitis/SDK/xlinx/开发教程,保姆级别,一看就会!
网络协议·tcp/ip·fpga开发·verilog·fpga
FPGA小迷弟2 天前
基于FPGA实现智能网卡的概念,什么是智能网卡
网络协议·tcp/ip·fpga开发·verilog·fpga
好焊孙辉2 天前
螺柱焊机哪家质量好
python·fpga开发