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

一、 概述

本章节通过仿真来观察EDID的读取数据波形,可以观察主机与从机的交互流程。

二、仿真示例

仿真模块:给主机和从机产生50MHz时钟和复位。

`timescale 1ns / 1ps

module ddr_tb(

);

reg sclk;

reg reset_n;

wire hdmi_rx_hpd;

wire hdmi_rx_ten;

wire scl;

wire sda;

initial begin

sclk = 0;

reset_n = 0;

#1000;

sclk = 1;

reset_n = 1;

end

always # 10 sclk = ~sclk;

复制代码
ddc_ctrl inst_ddc_ctrl (
		.sclk        (sclk),
		.reset_n     (reset_n),
		.hdmi_rx_hpd (hdmi_rx_hpd),
		.hdmi_rx_ten (hdmi_rx_ten),
		.scl         (scl),
		.sda         (sda)
	);

ddc_master  inst_ddc_master (
		.sclk        (sclk),
		.reset_n     (reset_n),
		.hdmi_rx_hpd (hdmi_rx_hpd),
		.hdmi_rx_ten (hdmi_rx_ten),
		.scl         (scl),
		.sda         (sda)
	);

Endmodule

DDC主设备模块(主动读取EDID),ddc_master.v模块。

主机启动读指令波形:

上图为主机通过IIC协议启动读取的波形,先发出启动信号,再发起虚拟写入操作,写入器件地址0,'hA0为写指令,之后写入寄存器地址'h00。再开始读寄存器,'hA1为读指令。

1、主机读取数据波形:

主机输入读指令后,开始读取数据,根据sda的二进制数据,可以看出第一个字节为00,后边为6个ff,后边依次跟着edid的数据。

结束读数据波形:

当最后的EDID数据读出来后,发起不应答信号(将sda_out拉高),输出sda位1,表示非应答,之后再产生停止指令。定值指令是指在SCL为高时,出现SDA上升沿表示停止信号。

2、从机被读取数据波形:

Sda_oe为高时表示可以把sda_out作为sda发送,作为被读取的从机接口,需要做好从机应答过程。并输入被读取数据。输入的数据就是EDID数据。

在从机发送EDID数据的最后,接收到不应答标志,再接收到停止标志表示读取完成。

三、总结

本章节给出了IIC协议的主机和从机的读数据的仿真流程,ddc_ctrl:作为从设备,存储并提供EDID数据,ddc_master:作为主设备,主动读取显示设备的EDID。

本文章由威三学社出品

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

相关推荐
小眼睛FPGA12 小时前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程1-基于紫光FPGA 的LED 流水灯
fpga开发
不会武功的火柴12 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
Kent Gu13 小时前
Lattice FPGA选型
fpga开发
Terasic友晶科技17 小时前
答疑解惑|为DE25-Nano开发板配置Linux kernel时.config文件没有起作用是什么原因?
linux·服务器·fpga开发·linux kernel·de25-nano
8K超高清19 小时前
CCBN展会多图回顾
人工智能·算法·fpga开发·接口隔离原则·智能硬件
小眼睛FPGA20 小时前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程5-DDR3 读写实验例程
fpga开发
unicrom_深圳市由你创科技20 小时前
如何做FPGA的功耗优化?动态功耗管理怎么实现?
fpga开发
不会武功的火柴20 小时前
SystemVerilog语法(9)-验证基础与简单Testbench
嵌入式硬件·fpga开发·fpga·systemverilog·硬件描述语言·rtl·uvm验证
kaizq20 小时前
MuleRun助力MakerChip-FPGA在线编程模拟仿真操练
fpga开发·verilog·龙虾机器人·mulerun·makerchip·在线模拟仿真
c-u-r-ry3020 小时前
vivado处理硬件设计差分对布线极性翻转的问题
经验分享·fpga开发