把大小为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场同步信号、背光控制信号、输出颜色。
实战显示:
根据代码:
因此图片显示在屏幕中央位置。