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

相关推荐
MDYFPGA2 小时前
明德扬 Kintex-7 FPGA核心板及多接口扩展底板介绍
fpga开发·fpga
I'm a winner2 小时前
【源码】一文读懂 TDOA 无源时差定位原理
fpga开发
FPGA小迷弟3 小时前
FPGA复位策略深度解析:异步复位、同步释放与设计最佳实践
fpga开发·fpga
MDYFPGA3 小时前
Arria 10 10AX027 核心板适合哪些高速数据处理项目
fpga开发·fpga
Terasic友晶科技20 小时前
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(一)——GIC控制器介绍
fpga开发·hps·agilex 5·gic控制器
芯路行者2 天前
4.4 HDLBits —— 更多时序逻辑电路
fpga开发·verilog·fpga·hdlbits
HUSTCH20212 天前
有符号数无符号数加法器逻辑
fpga开发
LCMICRO-133108477462 天前
国产长芯微LP4807完全P2P替代ADA4807,1mA、300MHz 增益带宽、电压反馈运算放大器
arm开发·嵌入式硬件·fpga开发·硬件工程·运算放大器·ada4807
LCMICRO-133108477462 天前
国产长芯微LP8628完全P2P替代AD8628,零漂移、单电源、输入输出轨到轨高精度运放
arm开发·嵌入式硬件·fpga开发·硬件工程·精密运放·ad8628