[ZYNQ Ultrascale + MPSOC FPGA教程]第15章HDMI字符显示实验

[ZYNQ Ultrascale + MPSOC FPGA教程]第15章HDMI字符显示实验

原始声明:该原始教程是由信义电子技术(上海)有限公司(ALINX)创建的。

版权归我们公司所有。

如果需要重印,则需要授权并注明出处。

适用于板子型号:AXU2CGA / AXU2CGB / AXU3EG / AXU4EV-E / AXU4EV-P / AXU5EV-E / AXU5EV-P / AXU9EG / AXU15EG实验的Vivado项目为“ hdmi_char”。

在HDMI输出实验中,说明了HDMI显示原理和显示方法。

本实验介绍了如何使用FPGA实现字符显示。

通过此实验,您可以更深入地了解HDMI显示方法。

1.实验原理实验使用字符转换工具将字符转换为十六进制coe文件,并将其存储在单端口ROMIP内核中,然后从ROM读取转换后的数据并将其显示在HDMI上。

2.程序设计字符显示例程将一个osd_display模块添加到HDMI显示器。

“ osd_display”屏幕模块用于读取存储在Romip内核中的转换后的字符信息,并将其显示在指定区域中。

程序框图如下图所示:2.1模块,两个计数器“ x_cnt”和“ y_cnt”根据HDMI定时标准来定义它们,并且这两个计数器产生“ x”信号。

和“ y”表示HDMI显示的坐标。

在程序中,“ vs_edge”和“ de_falling”分别用于表示场同步开始信号和数据有效结束信号。

其原理如下图所示:信号名称方向说明rst_nin异步复位输入,低复位clkin外部时钟输入i_hsin线同步信号i_vsin场同步信号i_dein数据有效信号i_dataincolor_bar数据o_hsout输出线同步信号o_vsout输出场同步信号o_deout输出数据有效信号o_dataout输出数据xout生成X坐标而生成Y坐标Timing_gen_xy模块端口2.2下面介绍了如何存储文本信息的ROMIP,首先,需要生成一个XILINXFPGA可以识别的.coe文件。

首先找到“ FPGA字体提取”。

项目文件夹下的工具。

双击.exe文件以打开该工具,然后在“字符输入”窗口中输入要显示的字符。

提取工具的框。

字体和字符高度可以自定义。

设置后,点击“转换”按钮,您可以在界面的左下角看到转换后的字符点矩阵的大小。

点矩阵的宽度和高度需要在程序中使用。

点矩阵的宽度和高度为144x32,需要紧随其后的是osd_display。

程序中的定义相同:单击“保存”,然后单击“保存”。

按钮将文件保存到此例程的源文件目录。

应当注意,应在保存类型下选择Xilinx(* .coe),然后单击“保存”。

按钮。

找到生成的.coe文件并将其打开后,您将看到以下内容:使用ROM引入了调用单端口RomIP内核的过程,在PortAOptions列中将其设置为SinglePortROM,如下所示:如下所示的osd.coe文件(找到之前生成的coe文件),单击“确定”。

完成后的按钮:2.3 osd_display模块包含Timing_gen_xy模块和osd_rom模块。

对于存储在osd_rom中的字符数据,如果数据为1,则OSD区域在ROM(显示ALINX核心站)中显示前景红色,如果数据为0,则OSD区域将数据显示为背景颜色(颜色栏) )。

设置区域的有效信号,即在该区域中显示字符,将起始坐标设置为(9,9),并且可以根据字符生成工具设置的区域来设置区域大小。

在ROM的读取地址部分,许多人可能不明白为什么会这样[15:3],也就是说,在八个时钟周期中只读取一个数据。

这是因为一个字符的一个点仅代表1位,并且ROM存储数据的宽度为8位,因此获取一个数据并比较每个位的值将一个字符点转换为一个像素需要花费8个周期。

在图像上。

信号名称方向说明rst_nin异步复位输入,低电平复位pclkin外部时钟输入i_hsin线同步信号i_vsin场同步信号i_dein数据有效信号i_dataincolor_bar数据o_hsout输出线同步信号o_vsout输出场同步信号o_deout输出数据有效信号o_dataout输出数据osd_显示模块端口3.实验现象连接开发板和显示器。

有关连接方法,请参阅“ HDMI输出实验”。

教程。

请注意,请勿热插拔开发板的连接器。

下载实验程序后,您可以看到

深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询