基于FPGA的VGA显示控制器设计Word文档下载推荐.docx
- 文档编号:20573130
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:13
- 大小:378.56KB
基于FPGA的VGA显示控制器设计Word文档下载推荐.docx
《基于FPGA的VGA显示控制器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于FPGA的VGA显示控制器设计Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
地址发生器接收VRT显示器B、的值通过VGA接口传送给否则R=G=B=0),并把R、G所要显示的数据读取控制信号,产生与图像数据ROM模块对应得地址,根据VGA显示的像素分布,确定读取对应数据的地址,由于所显示的图形每行需256个像素,而ROM中每个地址存储的数据时64位,故每4个地址取出的数据用于一行的显示。
VGA显示控制模块:
主要分为时序信号和数据颜色的控制,imgrom模块即图像数据ROM模块,在这一模块中需要解决的是图像数据BMP位图文件的来源及转换成HEX文件,利用Image2lcd对本次设计图片处理得到BMP文件,最终在QuartusII得到HEX文件,在已设置LPM_ROM进行加载图像数据。
注意其数据线宽为3,恰好可以放置RGB三信号数据,因此此设计图像仅能显示8种颜色。
此外注意各模块对图像显示的区域控制。
二、系统实现
显示控制模块及图像数VGA此系统设计分主要由,二分频模块,地址译码器模块,
据ROM来实现对图像的显示。
计数器模块设计简单,用计数器计数来控制,以实现某一个区域显示相应的颜色。
具体以VGA显示模块和图像数据ROM为例进行详细分析与操作。
1.VGA显示控制模块
VGA显示控制模块主要通过VGA时序产生640*480显示范围,并控制和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值。
一个独立的计数器产生垂直时序信号。
垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。
计数器产生当前显示行。
这两个计数器从地址到显示缓冲器连续计数。
首先启动QUARTUSⅡ软件,新建vga640480显示扫描模块工程文件,如下图2-1所示:
图2-1创建工程vga640480
单击完成按钮,创建好了设计工程,选择【FILE】>
【NEW】菜单,出现如图2-2所示的新建设计文件类型窗口。
图2-2选择编程VHDL文本文件
在上图2-2中选择【VHDLFile】,单击【OK】建立一个新的文本设计文件,命名为vga640480.vhd。
随即进行程序代码的输入。
图2-3保存设计文件
在图2-3中的【File】菜单中点选【Saveas】存盘并保证该文件添加到了工程中,文件名为默认的即可。
至此,vga640480显示扫描模块文件建立完成。
2.rom载入
当VGA显示器要显示一帧图像,需要较多的数据量,FPGA芯片内置的ROM存储器很难符合如此大的数据存储要求,所以必须借助于外部的存储器存入图像数据。
读取控制模块的数据读取方式决定于采用何种存储器。
然而外部存储器有多种选择,如ROM,、双口RAM、甚至SDRAM等,例如ROM可用直接产生地址信号的方式对芯片进行[6]。
进行读写操作则是利用DMA控制方式配合CPU访问,而SDRAM
中。
rom_b和文件载入开发板的rom接下来将详细介绍如何将已有的rom_r、rom_g:
1-PORT”IProm”作为关键词在目录中进行搜索,选择并双击“ROM:
首先,以“*.v”文件。
在对话框中选择“Verilog”,在默认目录下选择合适的“
ROM2-6所示的对话框中选择地址线位宽和控制线,选择ROM地址线和数据线。
在图Singleclock。
,选择的地址锁存控制信号和数据线分别为865536rom
载入2-4图
rom*.mif”文件,载入。
选择已有的“
二分频模块3.
并提供给其它模块作为时钟。
50MHz在系统进行设计中二分频把时钟频率分成25MHz。
开发板提供的±
,刷新频率60Hz1,像素时钟显示器的像素分辨率是640×
48025Mhz分频难以仿真,故,所以要对板载时钟进行分频后才能使用。
由于50M50MHz系统时钟VGA分频得到将输入时钟clk50m设置为50kHz,clk25m实际为25kHz。
它的模块设计相比显示模块更为简单,在项目中创建新的文件,编写二分频模块代码,保存编译。
顶层设计4.
显示模块、建原理图文件,调用VGA在以上模块设计完成后,整体编译并无错误后,自动生成他们连线组成系统的原、二分频模块,用软件自带的图像数据romRTLViewer所示:
理图,如图2-8
按照开发板手册进行管脚分配,如下图所示:
选择rom模块数据线和地址线宽度图2-6
图2-7载入rom
图2-8RTLViewer自动生成的原理图
开发板管脚分配2-9FPGA图
5.仿真波形
2-10图仿真波形图设计结果6.
显示器连接到开发板通过上述的步骤之后,将系统顶层文件烧写进开发板,将CRT所接口上。
给系统上电,在显示器就可以看见本次设计所选用的图片,如图的VGA1-11:
示
三、结束语
用FPGA来控制VGA,充分利用了FPGA可重构这一优势,克服了以前通用处理器体积较大体系结构不易修改、体系结构不易修改等弊端。
通过rom来存储图片的信息,实现了基于FPGA的图形显示,方便图片信息的输入,更新显示的内容以及修改。
可以使图片的显示脱离计算机的控制,而且使控制器的体积减小很多,对各种便携式设备和小型嵌入式系统的实现具有工程价值现实意义和现实意义。
使用可编程逻辑器件可以很方便地实现数字系统设计,为此基于FPGA器件的VGA控制器可以实现显示器的实时显示。
系统设计方案、硬件描述语言设计以及开发工具的性能决定了该系统性能高低。
随着VGA接口的普遍使用,这种结合FPGA的系统级设计方法已经展现优势。
从整个设计流程来看,系统的可靠性高,灵活性强,,设计周期大大缩减,成本降低,且系统的可扩展性强。
不久的将来,VGA接口的图像与视频监控系统应用定会很有广阔的市场。
经过此次课程设计,我不仅更加学会知识之间的融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了未来电子的发展方向,专业基础知识方面和动手能力方面有了质的飞跃。
做课程设计的同时也是对自己能力的一种提高。
通过此课程设计,我明白了自己原来所掌握的知识太理论化了,面对单独的课题产生着很茫然的感觉,自己要学习的东西还很多。
也让我明白学习是一个长期的过程,需要不断的积累,在以后的工作和生活中都需坚持学习,努力提高自己的知识和综合素质。
总之,不管掌握的了的还是不懂得,困难确实比较多,凡是难开头,不知道从哪入手。
也得到一个结论:
知识也只能通过应用和实践方能实现它应具有的价值!
有些东西自认为会了,然而当到用时才发现其实真的是两回事,为此知识真正能用时才是真的学会了。
感谢三位指导老师们所给予过的帮助。
在设计过程中,我通过查阅大量有关资料,自学和与同学之间经验的交流,并向老师请教等方式。
使自己学到了不少知识,也经历了不少艰辛,因而得以有巨大的收获。
在整个设计,使我懂得了许多东西,不仅培养了我独立工作的能力,而且更加树立了对自己工作能力的信心,定会对今后的学习工作生活有非常重要的影响。
在动手的能力大大提高之余,充分体会在创造过程中探索的艰难和成功时的喜悦。
也许这个设计做的并不是很好,但在设计过程中所学到的东西才是这次课程设计的最大收获和财富,为之受益终身。
完成之后更深体会到课程设计是对前面所学知识的一种总结与检验。
.
附录
显示控制模块代码
moduleVGA_Ctrl(//HostSide
iRed,
iGreen,
iBlue,
oCurrent_X,
oCurrent_Y,
oAddress,
oRequest,
//VGASide
oVGA_R,
oVGA_G,
oVGA_B,
oVGA_HS,
oVGA_VS,
oVGA_SYNC,
oVGA_BLANK,
oVGA_CLOCK,
//ControlSignal
iCLK,
iRST_N);
//HostSide
input[7:
0]iRed;
0]iGreen;
0]iBlue;
output[16:
0]oAddress;
output[10:
0]oCurrent_X;
0]oCurrent_Y;
outputoRequest;
//VGASide
output[7:
0]oVGA_R;
0]oVGA_G;
0]oVGA_B;
outputregoVGA_HS;
outputregoVGA_VS;
outputoVGA_SYNC;
oVGA_BLANK;
output
outputoVGA_CLOCK;
//ControlSignal
inputiCLK;
inputiRST_N;
//InternalRegisters
reg[10:
0]H_Cont;
0]V_Cont;
wire[10:
0]picture_x;
0]picture_y;
////////////////////////////////////////////////////////////
//HorizontalParameter
parameterH_FRONT=16;
parameterH_SYNC=96;
parameterH_BACK=48;
parameterH_ACT=640;
parameterH_BLANK=H_FRONT+H_SYNC+H_BACK;
parameterH_TOTAL=H_FRONT+H_SYNC+H_BACK+H_ACT;
//VerticalParameter
parameterV_FRONT=11;
parameterV_SYNC=2;
parameterV_BACK=31;
parameterV_ACT=480;
parameterV_BLANK=V_FRONT+V_SYNC+V_BACK+32;
parameterV_TOTAL=V_FRONT+V_SYNC+V_BACK+V_ACT;
assignoVGA_SYNC=1'
b1;
//Thispinis
assignoVGA_BLANK=~((H_Cont<
H_BLANK)||(V_Cont<
V_BLANK));
assignoVGA_CLOCK=~iCLK;
assignoVGA_R=iRed;
assignoVGA_G=iGreen;
assignoVGA_B=iBlue;
0]x,y;
assignx=oCurrent_X/3;
assigny=oCurrent_Y/3;
assignoAddress=x*150+y;
//assignoAddress=1;
assignoRequest=((H_Cont>
=H_BLANK&
&
H_Cont<
H_TOTAL)&
(V_Cont>
=V_BLANK
V_Cont<
V_TOTAL));
assignoCurrent_X=(H_Cont>
=H_BLANK)?
H_Cont-H_BLANK:
8'
h0;
assignoCurrent_Y=(V_Cont>
=V_BLANK)?
V_Cont-V_BLANK:
//assignpicture_x=oCurrent_X<
150?
oCurrent_X:
155;
//assignpicture_y=oCurrent_Y<
200?
oCurrent_Y:
HorizontalGenerator:
Refertothepixelclock
//
always@(posedgeiCLKornegedgeiRST_N)
begin
if(!
iRST_N)
begin
H_Cont<
=0;
oVGA_HS<
=1;
end
else
if(H_Cont<
H_TOTAL)
=H_Cont+1'
//HorizontalSync
if(H_Cont==H_FRONT-1)//Frontporch
=1'
b0;
if(H_Cont==H_FRONT+H_SYNC-1)//Syncpulseend
end
//VerticalGenerator:
Refertothehorizontalsync
always@(posedgeoVGA_HSornegedgeiRST_N)
V_Cont<
oVGA_VS<
if(V_Cont<
V_TOTAL)
=V_Cont+1'
//VerticalSync
if(V_Cont==V_FRONT-1)//Frontporch
if(V_Cont==V_FRONT+V_SYNC-1)//Syncpulseend
endmodule
二分频器模块代码
moduleclock(clkin,clkout);
inputclkin;
outputclkout;
regclkout;
always@(posedgeclkin)
clkout=~clkout;
顶层文件代码
moduleVGA_TOP(
clkin,
rst_n);
wire[7:
outputoVGA_HS;
outputoVGA_VS;
outputoVGA_BLANK;
inputclkin;
clk;
wire
inputrst_n;
//internalwire
wire[16:
0]address;
//实例化clock
clocku5(.clkin(clkin),
.clkout(clk));
//实例化VGA控制器
VGA_Ctrlu4(//HostSide
.iRed(iRed),
.iGreen(iGreen),
.iBlue(iBlue),
.oCurrent_X(),
.oCurrent_Y(),
.oAddress(address),
.oRequest(),
.oVGA_R(oVGA_R),
.oVGA_G(oVGA_G),
.oVGA_B(oVGA_B),
.oVGA_HS(oVGA_HS),
.oVGA_VS(oVGA_VS),
.oVGA_SYNC(oVGA_SYNC),
.oVGA_BLANK(oVGA_BLANK),
.oVGA_CLOCK(oVGA_CLOCK),
.iCLK(clk),
.iRST_N(rst_n));
//实例化ROM
rom_ru1(.address(address),
.clock(clk),
.q(iRed));
rom_gu2(.address(address),
.q(iGreen));
rom_bu3(.address(address),
.q(iBlue));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VGA 显示 控制器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)