基于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 高速接口完整解决方案,含验证工程与板级测试用例(所有源码均包含)

相关推荐
Saniffer_SH7 小时前
NAND技术(二):从 Channel、Die/LUN、P/E Cycle 到 LDPC,一次讲透 NAND 里那些最容易误解的概念
人工智能·驱动开发·嵌入式硬件·测试工具·fpga开发·计算机外设·压力测试
千寻xun7 小时前
二、实战篇-NVME SSD控制之ZYNQ实现(四)
fpga开发·nvme·nvme ssd
ALINX技术博客7 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发
喵喵苗11 小时前
FPGA Verilog 入门避坑:寄存器与锁存器的本质区别 & 为什么时序逻辑缺 else 不会生成锁存器
fpga开发
Thinker36112 小时前
笔记本外接创新5.1声卡实战:M.2转PCIe软排线方案 vs 雷电扩展卡方案对比
fpga开发·声卡·笔记本外接pcie·显卡坞
传感器与混合集成电路15 小时前
136通道采集模块SPI接口设计:协议结构、时序要求与多模块级联扩展方案
fpga开发
ALINX技术博客1 天前
AMD MoP 封装策略解读 | HBM 大热,为何 AMD Versal 系列反选 LPDDR5X?
fpga开发·fpga·amd·versal
zlinear数据采集卡2 天前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
Rambo.xia2 天前
AXI-Stream反压与背靠背传输——TREADY反压丢帧、TDEST路由错误、反压死锁,流式数据一反压就出事
fpga开发