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

一、概述

本章节利用FPGA模拟EEPROM的从机响应程序,并创建hex文件写入EDID编码。

二、设计流程

我们可以在FPGA利用代码模拟EEPROM的响应程序,给HDMI主机返回正确的EDID编码。FPGA端把预设的EDID储存在片上ROM中,根据HDMI主机发送的IIC读写请求信号,利用IIC通信标准的时序将主机所读取的EDID编码传输给电脑端。电脑端接收到正确的EDID编码后,就会通过HDMI输出端口,输出所选尺寸的视频输出。该视频输入到FPGA开发板后,经过解码,编码再输出,最后在显示屏上显示出所输出的画面。

三、获取EDID编码

为了获取显示器的原EDID信息,这里提供了一款softMCCS软件,打开软件后左上方的位置可以选择显示器,(如果主机只连接一个显示器就只有一个选项)。里面也可以看到显示器的信息,其中Raw data就是该显示器的EDID内容,点击右边数据可以看到具体的EDID编码。这里只显示了128位的基础EDID内容,不过我们也不用关心扩展的EDID信息。

接下来可以先修改显示器的名称和推荐分辨率的编码内容。H36-H47位置为推荐分辨率,00 00 00 FC 00这5个字节是显示器名称的标志,后边的编码内容为显示器名称,根据ASCII码修改,共13位。倒数第二个字节为扩展标识,因为我们没有用到扩展码,所以扩展标志设置为00。最后一个字节的校验码再进行计算修改。到此我们的EDID内容已经修改完毕,接下来要把修改完的EDID编码储存在hex文件中,初始化加载到自定义的ROM模块中。利用'"$readmemh"语句即可将hex文件中的数据初始化到内存阵列中。

hex文件中的编码内容按照一个字节一行,顺序进行排列。ROM模块如下所示:

module BRAM

#( parameter MEMWIDTH = 8, //256 * data

parameter DATAWIDTH = 32

) // Size = 32KB

(

input wire clk,

input wire wen,

input wire MEMWIDTH-1:0 waddr,

input wire MEMWIDTH-1:0 raddr,

input wire DATAWIDTH-1:0 data_in,

output reg DATAWIDTH-1:0 data_out

);

// Memory Array

reg DATAWIDTH-1:0 memory0:((2\*\*(MEMWIDTH))-1);

initial

begin

$readmemh("edid_data.hex", memory);

end

always@(posedge clk)

begin

if(wen)

memorywaddr <= data_in;

end

always@(posedge clk)

begin

data_out <= memoryraddr;

end

endmodule

工程中添加hex文件:

在工程文件里创建一个新的文件夹:
文件夹中创建hex文件:

vivado工程中添加设计文件:

添加已创建文件:

文件类型选择所有类型,点击hex文件并确认:

在vivado工程中选中hex文件,在源文件属性框里选择类型Memory initialization files。

添加hex文件后文件目录如下:

四、总结

现在EDID已经可以存储到rom中,之后的章节来使用仿真模拟主机发送IIC读时序,来验证FPGA端发送的EDID信息。电脑端接收到正确的EDD编码后,会通过HDMI将显示器的视频输出到fpga,视频流经过FPGA后再输出到另一个显示器上。

本文章由威三学社出品

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

相关推荐
szxinmai主板定制专家1 小时前
ARM+FPGA 数控机床控制器:选 CODESYS SoftMotion CNC,还是基于 LinuxCNC 自研搭建?架构、授权、实时性、量产风险深度对比
arm开发·fpga开发·codesys·数据采集卡·linuxcnc·rk3576
女神下凡1 小时前
芯参谋(79):嵌入式学习进阶_(硬件与软件)深入实践指南
arm开发·单片机·嵌入式硬件·学习·fpga开发·设计规范
路上有只喵3 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇5
单片机·嵌入式硬件·fpga开发
爱吃汽的小橘4 小时前
FPGA/数字IC设计的时序优化
fpga开发
FPGA小迷弟4 小时前
FPGA 与无线电:从软件定义无线电到 5G 基带的硬件实现之路
5g·fpga开发·架构·dsp开发·fpga·无线电
yingheceping4 小时前
2026 国产 FPGA 核心板怎么选?工控/视觉/通信/科研,四场景对板指南
fpga开发·fpga
樱木花道長4 小时前
AMD Ross 深度系列 7:六组对照实验看Ross如何赋能AI完成Vivado 硬核IP配置
人工智能·fpga开发
花月mmc1 天前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
幻智星科技1 天前
UDP桥接IP产品简介
tcp/ip·fpga开发·udp·硬件架构
女神下凡1 天前
芯参谋(76):电源监控复位芯片电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范