3VGA显示图片

把大小为100*100的图片显示到分辨率为640*480的屏幕,刷新速率为60Hz。图片通过.mif方式存在rom中,然后输入读rom的地址,把地址对应的数据输出给显示模块,显示模块再将数据传给驱动模块。

由于屏幕是640*480,所以VGA的驱动时钟是25.175MHz,近似到25MHz。

去掉这个勾选:

勾选pll_inst.v:pll_inst.v的描述是 instantiation template file也就是实例化模板文件

例化ROM:

由于正点原子的转换软件是需要图片大小100*100,因此网上找的照片不符合,需要改变分辨率:

编辑图片:

一键转换,并保存.mif文件

由于数据是16位的,所以这里'q'选择16bits,另外图片的大小是100*100=10000个字,只能选择16384words,选择不了8192words,并且100*100的图片占用的存储空间为100*100*16bits=160000bits=156.25kbit(这里由于数据总线是16位,所以一个字有两个字节,一个字节有8bits,所以一个字有16bits),小于开发板上fpga的片上资源。

创建一个读使能:

把.mif文件加载进来:

选择例化:

VGA与fpga一共连接5个引脚:vga_clk、vga_hs、vga_vs、vga_blank、vga_rgb,对应作用是:VGA驱动时钟、VGA行同步信号、VGA场同步信号、背光控制信号、输出颜色。

实战显示:

根据代码:

因此图片显示在屏幕中央位置。

原文地址:https://www.cnblogs.com/FPGAer/p/13923674.html