资料介绍
作者:ALINX
* 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。
适用于板卡型号:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
实验Vivado工程为“hdmi_char”。
在HDMI输出实验中讲解了HDMI显示原理和显示方式,本实验介绍如何使用FPGA实现字符显示,通过这个实验更加深入的了解HDMI的显示方式。
1. 实验原理
实验通过字符转换工具将字符转换为16进制coe文件存放到单端口的ROM IP 核中,再从ROM 中把转换后的数据读取出来显示到HDMI上。
2.程序设计
字符显示例程是在HDMI显示的基础上增加了一个osd_display的模块,“osd_display”模块是用来读取存储在Rom ip核里转换后的字符信息,并在指定区域显示。程序框图如下图所示:
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJbwiABA5_AACDMYqn5qM256.png)
2.1 在“timing_gen_xy”模块是根据HDMI时序标准定义了“x_cnt”和“y_cnt”两个计数器并由这两个计数器产生了HDMI显示的“x”坐标和“y”坐标。程序中用“vs_edge”和“de_falling”分别表示场同步开始信号和数据有效结束信号。其原理如下图所示:
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJb0aAMTdjAABlABjXFZs175.png)
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJb4WAPkl1AAA_z3eNx_A049.png)
timing_gen_xy模块端口
2.2 下面介绍如何存储文字信息的ROMIP,首先需要生成能够被XILINX FPGA识别的.coe文件。
首先在工程文件夹下找到“FPGA字模提取”工具。
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJb82AGcrLAAACb-XdSDs808.png)
双击.exe文件打开工具
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcBWAHKefAAAUTnPO_Q4197.png)
在提取工具的“字符输入”框中输入需要显示的字符,字体和字符高度可以自定义选择。设置完成后点击“转换”按钮,在界面左下角可以看到转换后的字符点阵大小,点阵的宽和高在程序中是需要用到
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJcFOAe0tCAAAUn624Kx8704.png)
点阵的宽和高这里位144x32,需要跟osd_display程序中定义的一致:
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcJGALjJZAAACd2FyqGw689.png)
点击“保存”按钮,将文件保存到本例程源文件目录下,需要注意的是在保存类型下应该选择Xilinx(*.coe),点击“保存”按钮。
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcNCAbo8rAADIQnNtcLQ926.jpg)
找到生成的.coe文件打开后可以看到如下:
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJcQ6AAHDyAAARYbJQeyc512.png)
调用单端口Rom IP核的过程在前面ROM的使用中已经介绍过,设置为Single Port ROM
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJcUyAVopbAACYNffBQbw723.jpg)
在PortA Options栏中设置如下:
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcYqALcpYAACHzeNNFDs538.png)
按如下图添加osd.coe文件(找到前面生成的coe文件),完成后点击“OK”按钮:
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcciABg5oAAB5_kCUbmk566.png)
2.3 osd_display模块包含timing_gen_xy 模块和osd_rom模块。osd_rom里存储的字符数据,如果数据为1,OSD的区域显示ROM中的前景红色(显示ALINX芯驿),如果数据是0,OSD的区域显示数据为背景色(彩条)。
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJchGAOBWMAAAUSFeMZK4808.png)
设置区域有效信号,也就是字符显示在此区域中,起始坐标设置成(9,9),区域大小可以根据字符生成工具设置的区域设置。
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJck-AHimWAAAaMQ9ftS8526.png)
在ROM的读地址部分可能很多人不理解,为什么是[15:3],也就是八个时钟周期才读出一个数据,这是因为字符的一个点只表示1bit,而ROM的存储数据宽度是8位,因此需要八个周期取出一个数据,并比较每个bit位的值,将字符一个点转换成图像上的一个像素。
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJco-Aa47nAAAMJLGS_rE191.png)
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcs2AYy0WAAA3dOkFW5Y690.png)
osd_display模块端口
3.实验现象
连接好开发板和显示器,连接方式参考《HDMI输出实验》教程,需要注意,开发板的各个连接器不要带电热插拔,下载好实验程序,可以看到显示器显示以彩条为背景的字符。开发板作为HDMI输出设备,只能通过HDMI显示设备来显示,不要试图通过笔记本电脑的HDMI接口来显示,因为笔记本也是输出设备。
![](https://file.elecfans.com/web1/M00/DC/15/pIYBAGAJcwyAC1BhAABa3G3UO-c898.jpg)
默认字符显示的位置在坐标为(9,9),另外用户可以修改下面的pos_y和pos_x的判断条件将字符显示在显示屏的任意位置:
![](https://file.elecfans.com/web1/M00/DB/96/o4YBAGAJc0qAbiR9AAAKp6OGA3E495.png)
- Zynq UltraScale+ MPSoC数据手册 0次下载
- 采用Zynq UltraScale+ MPSoC满足汽车ESD和SEED要求
- Zynq UltraScale+ MPSoC中的隔离方法应用笔记
- Zynq UltraScale+ MPSoC生产勘误表
- Zynq UltraScale+ MPSoC数据手册:DC和AC开关特性
- Zynq UltraScale+ MPSoC验证数据手册
- Zynq UltraScale+ MPSoC中的隔离方法
- Zynq UltraScale+ MPSoC的隔离设计示例
- 适用于Xilinx Zynq UltraScale+ MPSoC应用的电源参考设计
- 米尔电子zynq ultrascale+ mpsoc底板外设资源清单分享
- 【正点原子FPGA连载】第十五章 窗口门狗(WWDG)实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【正点原子FPGA连载】第二十五章HDMI方块移动实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第十四章 HDMI输出实验
- 如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介绍
- 针对UltraScale/UltraScale+芯片DFX应考虑的因素有哪些(1) 776次阅读
- Xilinx ZYNQ UltraScale+系列产品介绍 2835次阅读
- FPGAs,Zynq和Zynq MPSoC器件的特点 2671次阅读
- 基于Xilinx Zynq UltraScale+ RFSoC ZCU216评估套件详细内容介绍 1w次阅读
- 基于Xilinx Zynq ultraScale+ 系列FPGA的AXU2CGB 开发板评测 9735次阅读
- 米尔科技Zynq UltraScale+ MPSoC技术参考手册介绍 3246次阅读
- 详解Xilinx公司Zynq® UltraScale+™MPSoC产品 3357次阅读
- Xilinx Zynq UltraScale MPSoC可扩展电源设计 2045次阅读
- Xilinx Kintex UltraScale+ FPGA KCU116评估套件主要性能和优势 6921次阅读
- Zynq UltraScale+ MPSoC ZCU102评估套件解决方案 8865次阅读
- Enea OSE可实现对Xilinx UltraScale+ MPSoC的支持 2925次阅读
- Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞 2686次阅读
- Zynq UltraScale+ MPSoC 上的多个Linux UIO设计 3349次阅读
- 用ZYNQ MPSoC玩DOOM! 2667次阅读
- Ti推出面向Zynq UltraScale+ MPSoC的电源参考设计 3731次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论