基于FPGA的VGA显示系统的设计与实现
2.3 图像信息存储模块设计
本文引用地址:https://www.eepw.com.cn/article/201603/287500.htm图像信号包括数字彩条、棋盘格和ROM中定制的图形等。要在屏幕上显示图像,除VGA时序之外,还需要设计底层存储器以建立图像信息库。FPGA定制ROM一般有两种方法:第一种方法是利用FPGA器件的嵌人式存储器定制LPM-ROM,用.mif文件或.hex文件对其对其进行初始化,这种方法获得的ROM最大寻址空间为212,可以存储一幅分辨率为64x64的图像信息;第二种方法是在FPGA逻辑资源的限度内利用硬件描述语言Verilog HDL定制一个ROM,采用case语句对其进行初始化,这种方法获得的ROM在存储深度较大时,编译时对时间的开销较大且浪费FPGA的逻辑资源。ROM初始化完成 后在 40MHz的时钟频率下输出存储的图像信息,其图像颜色种类的多少取决于ROM存储空间的大小。
本设计需要显示一副64(宽)x64(高)x1(颜色)像素点阵的“比卡丘”卡通图像。要存放这一副图像,可采用FPGA嵌入的存储器定制数据线宽64位、地址线宽6位的LPM-ROM,其初始化文件如图4所示。这样的配置使得设计简单化,通过对行信号和列信号的有效组合对存储器的地址进行访问而来输出图像像素点阵从而显示图像。
2.4 图像显示控制模块设计
该部分设计的思路是在前三步的基础上实现。有关 RGB三基色信号的控制、行与列地址的控制、图像显示控制、帧控制,都是在这个模块中完成操作。首先,通过读取当前的行和列地址信号对ROM进行寻址,读取图片像素信息从而完成整个图片信息的扫描。其次,当有效区域信号产生时,通过RGB三基色信号实现图像的正确显示。
图像显示控制模块vga_control_module.v的部分代码如下:
module vga_control_module
(
input CLK, RSTn, Ready_Sig;
input [10:0] Column_Addr_Sig, Row_Addr_Sig,
input [63:0] Rom_Data;
output [5:0] Rom_Addr,
output Red_Sig, Green_Sig, Blue_Sig
);
………………………
…………
assign Rom_Addr = m;
assign Red_Sig = Ready_Sig ? Rom_Data[ 6'd63 - n ] : 1'b0;
assign Green_Sig = Ready_Sig ? Rom_Data[ 6'd63 - n ] : 1'b0;
assign Blue_Sig = Ready_Sig ? Rom_Data[ 6'd63 - n ] : 1'b0;
endmodule
2.5 VGA显示顶层模块设计
在各模块功能实现的基础上,通过实例化的方式把它们有机地整合在一起,即为VGA显示顶层模块vga_module.v,对其编译后生成的RTL级网表如图5所示。
3 仿真与测试结果
利用modelsim对VGA 显示顶层模块进行功能仿真,所得到的时序驱动信号和RGB图像信号的关系如图6所示。HSYNC_Sig在前128个时钟周期内保持低电平,后面保持高电平的时间为928个CLK,而VSYNC_Sig在HSYNC_Sig第5个下降沿到来时由低电平变为高电平,可以说明 VGA模块工作是正确的。利用VGA适配器将FPGA板载的VGA接口与液晶显示器接口连接好,利用Quartus II软件将程序下载到FPGA中验证,硬件测试结果如图8所示。最终,VGA输出的图像与图像源是一致的。
4 结论
本文基于FPGA设计了VGA图像显示器,采用LPM-ROM完成图像信息的存储, 在FPGA中合成了对VGA图像显示所需的各种时序控制信号和图像接口信号, 用较省逻辑资源的方式, 完成了VGA显示模块的设计,为图像运算节省了更多的逻辑资源。经过仿真验证,设计是正确可行的。该设计可以很好的实现我们在简单应用系统中对图像或字符显示的需要。
本设计还可以做一些扩展,当显示的图像信息量较大时,可对FPGA内部逻辑结构的数字图像处理实用算法进行深入研究,如添加CCD摄像头图像采集模块[3];还可以外接大容量的存储器,采用8位的二进制数据表示RGB三基色,实现256色输出,使显示的图像色彩更加丰富。
参考文献
[1] 蒋艳红.基于FPGA的图像信号发生器的设计[J].电子测量技术,2008,3(31):78-80
[2] 杨开陵,徐巧玉,王志慧.FPGA那些事儿:Verilog HDL建模设计[M].北京:北京航空航天大学出版社,2013:163-187
[3] 郑容,朱宏辉.基于FPGA的图像采集及VGA显示[J].交通信息与安全,2009,4(27):154-157
[4] 贾伟伟,吴小艳,王威廉.基于FPGA的VGA接口实现和字符显示[J].仪器仪表学报,2008,4(29):561-563
[5] 王曼珠,路而红,王传海.VGA图像控制器的CPLD/FPGA设计与实现[J].电子产品世界,2003,12(19):32-36
[6] 于宝堃. VGA控制器的设计与验证[D].北京交通大学.2008
[7] Altera Corporation. Cyclone IV EP4CE6F17C8 Device Datasheet [Z]. 2010
本文来源于中国科技期刊《电子产品世界》2016年第2期第48页,欢迎您写论文时引用,并注明出处。
评论