HDMI数据的接收发送实验(二十四)

概述

我们创建一个HDMI_OUT模块,在这个模块中,把1024768像素的图片传输给HDMI_TX模块,经过8b转10b,10b转1b,再转化为差分信号与HDMI_RX模块相连。通过仿真观察b通道的10bit数据是否有354、0ab、354这一组固定的数据。如果在HDMI_RX模块中出现了这一组数据,后边就会接收到1024 768像素图片的时序。

二、仿真测试HDMI数据传输

仿真结构如图所示:

HDMI_TX模块需要clk_1x和clk_5x的时钟,所以在HDMI_OUT模块中使用PLL配置输入的时钟sclk,输出一个周期为原时钟五倍的时钟clk_5x和一个周期不变的时钟clk_1x。

在HDMI_TX中,把8bit的RGB数据通过encoder模块转化为10bit数据,再通过serializer模块把10bit数据转化为1bit数据,经过OBUFDS转化为差分信号输出送给HDMI_IN模块用作仿真。

在tb中,只需要给出像素时钟和时钟动态相移使用的时钟和复位即可。

仿真测试激励模块:

`timescale 1ns / 1ps

module tb_hdmi();

reg sclk ;

reg rst_n ;

reg clk_200 ;

//in

wire tmds_clk_p ;

wire tmds_clk_n ;

wire tmds_r_p ;

wire tmds_r_n ;

wire tmds_g_p ;

wire tmds_g_n ;

wire tmds_b_p ;

wire tmds_b_n ;

wire r_hdmi_en ;

initial

begin

sclk = 1'b1;

rst_n = 1'b0;

clk_200 = 1'b1;

#200

rst_n = 1'b1;

end

always #5 sclk = ~sclk;

always #2.5 clk_200 = ~clk_200;

复制代码
hdmi_in  inst_hdmi_in (
		.clk        		(sclk		),
		.rst_n      		(rst_n		),
		.clk_200    		(clk_200	),
		.tmds_clk_p 		(tmds_clk_p	),
		.tmds_clk_n 		(tmds_clk_n	),
		.tmds_r_p   	(tmds_r_p	),
		.tmds_r_n   	(tmds_r_n	),
		.tmds_g_p   	(tmds_g_p	),
		.tmds_g_n   	(tmds_g_n	),
		.tmds_b_p   	(tmds_b_p	),
		.tmds_b_n   	(tmds_b_n	),
		.clk_1x     		(clk_1x	),
		.r_pixel    		(r_pixel	),
		.g_pixel    		(g_pixel	),
		.b_pixel    		(b_pixel	),
		.h_sync     		(h_sync	),
		.v_sync     		(v_sync	),
		.vga_de     	(vga_de	),
		.r_hdmi_en  	(r_hdmi_en	)
	);

hdmi_out inst_hdmi_out
	(
		.clk        		(sclk			),
		.rst_n      		(rst_n			),
		.HDMI_CLK_P 	(tmds_clk_p		),
		.HDMI_CLK_N 	(tmds_clk_n		),
		.HDMI_D2_P  	(tmds_r_p		),
		.HDMI_D2_N  	(tmds_r_n		),
		.HDMI_D1_P  	(tmds_g_p		),
		.HDMI_D1_N  	(tmds_g_n		),
		.HDMI_D0_P  	(tmds_b_p		),
		.HDMI_D0_N  	(tmds_b_n		)
	);

三、总结

本次实验围绕 HDMI 数据传输的仿真验证展开,构建了一个完整的发送--接收链路测试平台。实验的核心目标是验证 HDMI 发送端(hdmi_out)产生的差分信号能否被接收端(hdmi_in)正确解码,并恢复出 1024×768 像素的图像时序。

后边我们主要介绍图像时序的产生过程。

本文章由威三学社威三学院出品

对课程感兴趣可以私信联系

课程官网:www.v3edu.com

相关推荐
Riwuarua2 小时前
从近似0基础开始FPGA开发 -- part.11 AXI总线协议与工程应用
fpga开发
自小吃多3 小时前
高云 FPGA 添加时序约束笔记
笔记·fpga开发
学习FPGA的电气小兴兴9 小时前
基于FPGA的CORDIC旋转模式实现sin和cos运算
fpga开发·信号处理·数字信号处理·verilog·fpga·verilog hdl·cordic
blue_ice .12 小时前
DDS原理及简易实现
开发语言·经验分享·笔记·嵌入式硬件·fpga开发
明德扬12 小时前
AD9653采集模块怎样连接FPGA底板?从ADC采样到数据处理
学习·fpga开发·fpga
上海芯聚电子1 天前
ADC与FPGA之间,如何减少板级设计复杂度?
fpga开发·adc
自小吃多1 天前
高云FPGA ModelSim中的仿真
笔记·嵌入式硬件·fpga开发
通信王661 天前
适用于 FPGA 和 SoC 的UltraFast 设计方法指南(1)-UG949
fpga开发
明德扬1 天前
AD9653采集模块、PCIe采集卡和完整采集系统怎么选?
fpga开发·fpga
智塑未来1 天前
FPGA开发板选型:研发交付能力怎么看
人工智能·fpga开发