电子设计自动化课程设计VGA图像控制器Word格式文档下载.docx
- 文档编号:22031682
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:34
- 大小:485.87KB
电子设计自动化课程设计VGA图像控制器Word格式文档下载.docx
《电子设计自动化课程设计VGA图像控制器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子设计自动化课程设计VGA图像控制器Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
(4).编写程序在FPGA上实现并加以验证.
(5).根据VGA国际显示标准,设定屏幕显示像素和刷新频率,在PC液晶显示器上显示出多种彩色条纹或类似电脑屏幕检测程序那样的纯色切换。
2.3.实验环境
开发过程中采用集成工具QuartuaII实现设计,选用实验箱,以及一个显示器,显示所做出的实验结果。
3.课程设计报告内容
3.1.课程设计原理方案论证
方案选择
本设计采用EDA技术和VHDL语言并结合FPGA技术来实现VGA图像控制器。
VHDL以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事件,具有描述由相关和不相关的多维时空组合的复合体系统的功能。
既避免了采用单片机带来图像的失真,又无需浪费太多的资源。
FPGA速度和片上存储器为VGA图像控制提高了可靠性。
采用EDA技术实现VGA图像控制器的实现具备可行性,而且在现有的实验室条件下,可以很容易的实现VGA的图像控制。
本设计硬件部分使用DE2开发板,板上包含VGA接口,并可提供50MHZ的时钟频率经过时钟二分频产生系统要求的25MHZ的频率即(像素输出频率);
开发软件采用Altera公司的QuartusⅡ7.0。
本设计需要重点考虑的是VGA时序控制的准确性。
只要VGA时序控制正确,那么就可以很容易的实现彩条、字符、汉字、单色图像的显示。
3.2.系统设计详述
3.2.1系统原理框图及其工作原理
FPGA是EDA课程设计的整个系统的核心,通过对其编程可输出RGB三基色信号和HS、VS行场扫描同步信号。
通过Verilog编写响应的彩条控制器程序,产生彩条信号,当FPGA接受到彩条控制信号后,内部的数据选择器模块根据控制信号选通相应的图像生成模块,输出图像信号,与行场扫描时序信号一起通过15帧D型接口电路送入VGA显示器,在VGA显示器上便可以看到对应的彩色图像。
FPGA所需工作时钟由外部高精度有源晶振提供。
图为系统原理框图
3.2.2VGA视频显示原理
工业标准的VGA显示模式为:
640×
468×
16色×
60Hz。
常见的彩色显示器,一般由CRT(阴极射线管)构成,彩色是由R、G、B(红、绿、蓝)三基色组成,CRT用逐行扫描或隔行扫描的方式实现图像显示,由VGA控制模块产生的水平同步信号和垂直同步信号控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生R、G、B三基色,合成一个彩色像素。
扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,每扫完一行,电子束回到屏幕下一行的起始位置,在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;
扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。
行同步信号HS和场同步信号VS是两个重要的信号。
显示过程中,HS和VS的极性可正可负,显示器内可自动转换为正极性逻辑。
VGA行同步信号HS和场同步信号VS的时序图如图2所示,T1为行同步消隐(约为6μs);
T2为行显示时间(约为26μs);
T3为场同步消隐(两个行周期);
T4为场显示时间(480个行周期)。
显示器每扫描完一行,再扫描一下行时会花一定时间来准备,因此要满足时序要求,见图2。
从0计数到639
图2.2VGA行扫描时序图
同样每扫描完一帧,再扫描下一帧行时也会花一定时间来准备,因此也要满足其时序要求,见图3。
图2.3VGA场扫描时序图
对于VGA显示器的上述五个信号的时序驱动要严格遵循“VGA工业标准”,即640×
480×
60HZ模式,否则无法显示正确地图象。
VGA工业标准要求的频率:
时钟频率:
25.175MHz(像素输出的频率)
行频:
31469Hz
场频:
59.94Hz(每秒图像刷新频率)
图象信号显示的颜色种类与表示R、G、B三基色的二进制数位数有关,表1列出了8种颜色的编码方式。
3.2.3.单元模块设计
设计方案如下:
将图像控制模块分为这样几部分:
二分频电路(clkdiv.v)、VGA时序控制模块(vga640480.v)、存储器读出模块(Stripes.v)。
其中二分频把50mhz时钟频率分成25mhz并提供给其它模块作为时钟;
VGA时序控制模块用于产生640×
480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值;
存储器读出模块提供给SRAM地址并按地址读出八位数据(灰度值Y),然后得到R、G、B的值(若Y>
中间值,则R=G=B=1;
否则R=G=B=0),并把R、G、B的值通过VGA接口传到CRT显示器,如图。
图为模块设计总体结构
各个子系统电路及功能描述、控制模块的编程(verilogHDL程序清单)
本设计需要三个模块,一个是二分频电路、VGA时序控制模块、存储器读出模块。
(1).二分频电路
二分频把50MHz时钟频率分成25MHz并提供给其它模块作为时钟。
显示器的像素分辨率是640×
480,像素时钟25Mhz,刷新频率60Hz±
1。
开发板提供的系统时钟50MHz,所以要对板载时钟进行分频后才能使用。
分频电路的设计部分程序如下:
moduleclkdiv(
inputwiremclk,
inputwireclr,
outputwireclk25
);
reg[24:
0]q;
//25-bitcounter
always@(posedgemclkorposedgeclr)
begin
if(clr==1)
q<
=0;
else
=q+1;
end
assignclk25=q[0];
//25mhz
endmodule
(2).时序控制模块
VGA时序控制模块用于产生640*480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值。
一般来说,时钟计数器通过像素时钟来控制水平时序信号。
译码计数器的值产生HS信号。
在指定的行,计数器产生当前像素显示的位置。
一个独立的计数器产生垂直时序信号。
垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。
计数器产生当前显示行。
这两个计数器从地址到显示缓冲器连续计数。
开发板的DDRSDRAM提供了一个足够的显示缓冲区。
在HS脉冲的开始和VS脉冲的开始没有具体规定相对的时序关系。
因此,计数器被分配到简单格式的视频RAM地址,或分配到同步脉冲产生器的最小译码逻辑。
设计对时序控制部分的部分代码如下:
modulevga640480(
inputwireclk,
outputreghsync,
outputregvsync,
outputreg[9:
0]hc,
0]vc,
outputregvidon
parameterhpixels=10'
b1100100000;
//行像素点=800
parametervlines=10'
b1000001001;
//行数=521
parameterhbp=10'
b0010010000;
//行显示后沿=144(128+16)
parameterhfp=10'
b1100010000;
//行显示前沿=784(128+16+640)
parametervbp=10'
b0000011111;
//场显示后沿=31(2+29)
parametervfp=10'
b0111111111;
//场显示前沿=511(2+29+480)
regvsenable;
//EnbalefortheVerticalcounter
//行同步信号计数器
always@(posedgeclkorposedgeclr)
begin
hc<
else
begin
if(hc==hpixels-1)
//Thecounterhasreachedtheendofpixelcount
//计数器复位
vsenable<
=1;
//Enabletheverticalcountertoincrement
end
=hc+1;
//Incrementthehorizontalcounter
//Leavethevsenableoff
//产生hsync脉冲
//当hc为0~127时,行同步脉冲为低电平
always@(*)
if(hc<
128)
hsync=0;
hsync=1;
//场同步信号计数器
vc<
if(vsenable==1)
if(vc==vlines-1)
//Resetwhenthenumberoflinesisreached
vc<
=vc+1;
//场计数器加1
end
//产生vsync脉冲
//当hc为0或1时,场同步脉冲为低电平
if(vc<
2)
vsync=0;
vsync=1;
//Enablevideooutwhenwithintheporches
if((hc<
hfp)&
&
(hc>
hbp)&
(vc<
vfp)&
(vc>
vbp))
vidon=1;
vidon=0;
(3).显示彩条模块
modulevga_stripes(
inputwirevidon,
inputwire[9:
0]hc,vc,
outputregred,green,
outputregblue
//输出16行宽的红绿条纹
begin
red=0;
green=0;
blue=0;
if(vidon==1)
red={vc[4]};
green=~{vc[4]};
(4).VGA彩条显示的顶层文件设计
modulevga_initials_top(
inputwire[3:
0]btn,
inputwire[7:
0]sw,
outputwirehsync,
outputwirevsync,
outputwire[2:
0]red,
0]green,
outputwire[1:
0]blue
wireclr,clk25,vidon;
wire[9:
0]hc,vc;
wire[0:
31]M;
wire[3:
0]rom_addr4;
assignclr=btn[3];
clkdivU1(.mclk(mclk),
.clr(clr),
.clk25(clk25)
vga640480U2(.clk(clk25),
.hsync(hsync),
.vsync(vsync),
.hc(hc),
.vc(vc),
.vidon(vidon)
vga_initialsU3(.vidon(vidon),
.M(M),
.sw(sw),
.rom_addr4(rom_addr4),
.red(red),
.green(green),
.blue(blue)
prom_DHMU4(.addr(rom_addr4),
.M(M)
3.2.4.程序在QuartusⅡ下的编译与仿真
本设计利用QuartusⅡ软件进行设计与编译仿真和下载。
(1).程序编译
(2).波形仿真
(3).生成的符号文件组成的电路图及整体编译
(4).管脚分配与下载
采用有源晶体频率为50MHz给FPGA的P23提供时钟。
(第23叫输入时钟)。
独立按键的I/O分配:
KEY1:
PIN144KEY2:
PIN145分别作为复位按钮和SW控制。
VGA接口的分配
R:
PIN151G:
PIN150B:
PIN149VGAVS:
PIN161VGAHS:
PIN152
(5).显示结果
经过上述程序将其下载到开发板上,显示出下图:
3.3系统设计工作进程:
17
12-23
星期二
FPGA芯片、VerilogHDL语言和EDA环境相关知识
准备相关资料
高亮黎强
赵泳卫
12-24
星期三
进行VerilogHDL程序设计
查找研究设计资料
12-25
星期四
12-26
星期五
熟悉相关设计软件
18
12-29
星期一
软硬件结合仿真调试
结合实验箱进行硬件仿真调试
高亮
12-30
1月4号星期日
验收成果
提交设计报告
黎强
4.设计总结和心得体会
这次课程设计让我对EDA软件工具QuartusII的运用有了更深一面的认识。
通过对VGA的学习以及设计,我认识到了VGA的工作原理以及关于VerilogHDL的简单语言思维。
本想让这设计能显示出图片与文字,但学识还未成熟,很遗憾这最后的一个课程设计没有能突破自己的计划。
但是,很高兴能认识到这门具有非常强悍潜力的知识,这门技术的背后非常的广阔,需要更多的知识和创造力。
参考文献
[1]张压平,贺占庄.基于FPGA的VGA显示模块设计[J].计算机技术与发展,2007,17(6).
[2]董兵,朱齐丹,文睿.基于PFGA的VGA图像控制器的设计与实现[J].应用科技,2006,33.
[3]张伟,包乌日吐,闫玉娥.FPGA内部块RAM的应用技巧[J].微处理机,2006(6).
[4]潘松,黄继业.EDA技术与Verilog[M].北京:
清华大学初版设,2007:
22-26.
[5]王诚,薛小刚,钟信潮.FPGA/CPLD设计工具-XilinxISE使用详解[M].北京:
人民邮电出版社,2005:
2-8.
[6]VGA[EB/OL].
[7]袁文波,张皓,唐镇中.FPGA应用开发-从实践到提高[M].中国电力出版社,2007.
[8]北京理工大学ASIC研究所.Verilog语言100例详解北京[M].清华大学出版社,1999.
[9]刘乐善,微型计算机接口技术与应用[M].华中科技大学初版设,1999.
[10]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:
电子工业出版社2002.
[11]杨飞.视频检测中FPGA图像采集预处理系统设计:
[硕士学位论文][M].南京:
河海大学2006.
[12]求是科技.VHDL应用开发技术[M].人民邮电出版社.2005.
[13]赵鑫,蒋亮,齐兆群,李晓凯.Verilog与数字电路设计[M].机械工业出版社.200559.
[14]侯伯亨,顾新.Verilog硬件描述语言与数字逻辑电路设计[M].西安电子科技大学出版,1999.
[15]赵峰,嵌入式系统设计与实践[M].上海交通大学初版设,2008.
[16]何惠如,王燕琼.使用硬件描述语言Verilog设计硬件电路[J].信息技术,2002年04期.
[17]李经智,EDA技术及其应用[J].齐齐哈尔大学学报,2006年03期.
[18]王道宪,Verilog电路设计技术[M].国防工业出版社.2004.
[19]赵俊超.集成电路设计Verilog教程[M].北京:
北京希望电子出版社2002.8.
[20]曾繁泰,陈美金.Verilog程序设计[M].北京:
清华大学出版社,2000.
[21]张文爱等.基于FPGA的高分辨率VGA显示控制器的设计[J].现代显示,2006(9):
55-58.
[22]渥伦斯基.李仁发译.Verilog数字系统设计[M].北京:
电子工业出版社,2004.
[23]ChrisChinnock.Microdisplaysandtheirapplications[J].InformationDisplay,2001,17(10)22-25.
[25]刘会通.利用SVGA实现红外全灰度图像的实时显示[J].华中科技大学学报,2003,31(12)[26]徐欣,于红旗,易凡,卢启中.基于FPGA的嵌入式系统设计[M].2003.
[27]王阿川.基于FPGA高速图像采集卡的研制[J].电子器件2005(6).
附录
源程序
moduleyxy(clk,hsync,vsync,red,green,blue,switch);
inputclk;
input[1:
0]switch;
outputhsync,vsync;
output[2:
0]red;
0]green;
0]blue;
regv_video_on;
regh_video_on;
reghsync,vsync;
reg[2:
reg[9:
0]hcount;
0]vcount;
reg[8:
0]h_dat;
0]v_dat;
0]bg;
0]j;
0]cnt1;
0]cnt2;
0]cnt3;
0]cnt4;
0]cnt5;
0]cnt6;
regclk1;
0]k;
//屏计数器
wireon;
//行计数器处理
always@(posedgeclk)
if(hcount==799)
hcount<
else
=hcount+1;
//场计数器处理
if(vcount==524)
vcount<
elseif(hcount==729)
=vcount+1;
elsevcount<
=vcount;
//行同步场同步信号处理
if((hcount<
=759)&
(hcount>
=663))
hsync<
elsehsync<
if((vcount<
=499)&
(vcount>
=497))
vsync<
=0;
elsevsync<
//行有效区
if(hcount<
639)h_video_on<
elseh_video_on<
//场有效区
if(vcount<
479)v_video_on<
elsev_video_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子设计 自动化 课程设计 VGA 图像 控制器