电子设计自动化课程设计VGA图像控制器.docx

上传人:b****7 文档编号:8895524 上传时间:2023-02-02 格式:DOCX 页数:34 大小:485.87KB
下载 相关 举报
电子设计自动化课程设计VGA图像控制器.docx_第1页
第1页 / 共34页
电子设计自动化课程设计VGA图像控制器.docx_第2页
第2页 / 共34页
电子设计自动化课程设计VGA图像控制器.docx_第3页
第3页 / 共34页
电子设计自动化课程设计VGA图像控制器.docx_第4页
第4页 / 共34页
电子设计自动化课程设计VGA图像控制器.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

电子设计自动化课程设计VGA图像控制器.docx

《电子设计自动化课程设计VGA图像控制器.docx》由会员分享,可在线阅读,更多相关《电子设计自动化课程设计VGA图像控制器.docx(34页珍藏版)》请在冰豆网上搜索。

电子设计自动化课程设计VGA图像控制器.docx

电子设计自动化课程设计VGA图像控制器

摘要

 

该报告简述了QuartusⅡ仿真软件的基本操作方法,同时介绍FPGA逻辑器件的相关知识和Verilog硬件描述语言的相关知识,在基于FPGA逻辑器件、QuartusⅡ仿真软件和Verilog硬件描述语言下,设计了VGA显示控制器。

该VGA图象显示控制器是用模块设计并通过它们的级连实现的,具体是通过硬件电路的设计且能实现的方案来用Verilog语言对硬件电路进行描述,同时把Verilog语言在QuartusⅡ中进行仿真,并在显示器中显示出图像。

关键词:

VGA显示控制;Verilog;QuartusⅡ

 

目录

1.课程设计目的…………………………………………………………1

1.1.课程设计目的……………………………………………………1

2.课程设计题目描述和要求……………………………………………1

2.1.课程设计题目描述………………………………………………1

2.2.课程设计要求……………………………………………………1

2.3.实验环境…………………………………………………………2

3.课程设计报告内容……………………………………………………2

3.1.课程设计原理方案论证…………………………………………2

3.2.系统设计详述……………………………………………………2

3.3.系统设计工作进程………………………………………………14

4.设计总结和心得体会…………………………………………………15

参考文献注释……………………………………………………………15

附录………………………………………………………………………16

 

1、课程设计目的

1.1课程设计目的

1、熟悉VGA显示器的实现原理

2、加深对VHDL语言的设计编程和设计语言规则的应用

3、熟悉集成电路设计的流程,学习使用EDA集成电路设计软件QuartusII进行模拟综合,然后在FPGA上实现。

4、通过VGA项目的实现,让学生对图像处理有一定的了解,通过视觉冲击来进一步提高大家的学习热情。

同时作为一个比较复杂的项目,在实现过程中学生可以很好地锻炼自己发现问题、解决问题的能力。

2、课程设计题目描述和要求

2.1.课程设计题目描述

课程设计名称:

VGA显示

本设计采用EDA技术,通过CPLD芯片实现了实现VGA彩条信号的显示的设计,本文采用Verilog硬件描述语言描述VGA彩条信号的显示电路,完成对电路的功能仿真。

通过按键来实现横彩条、竖彩条、棋盘式方格图案的选择,并能进一步设计出文字、图像的显示。

与传统的设计方式相比,本设计由于采用了CPLD芯片来实现,它将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。

2.2.课程设计要求

通过两周的时间,小组成员进行学习和讨论,来设计一个VHDL/Verilog程序来实现以下功能:

(1).利用FPGA实现VGA彩条信号发生器.

(2).可以产生彩色横条,彩色竖条信号,彩色棋盘格信号.

(3).由一个按键按照顺序选择不同模式的信号输出.

(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<=q+1;

end

assignclk25=q[0];//25mhz

endmodule

(2).时序控制模块

VGA时序控制模块用于产生640*480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值。

一般来说,时钟计数器通过像素时钟来控制水平时序信号。

译码计数器的值产生HS信号。

在指定的行,计数器产生当前像素显示的位置。

一个独立的计数器产生垂直时序信号。

垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。

计数器产生当前显示行。

这两个计数器从地址到显示缓冲器连续计数。

开发板的DDRSDRAM提供了一个足够的显示缓冲区。

在HS脉冲的开始和VS脉冲的开始没有具体规定相对的时序关系。

因此,计数器被分配到简单格式的视频RAM地址,或分配到同步脉冲产生器的最小译码逻辑。

设计对时序控制部分的部分代码如下:

modulevga640480(

inputwireclk,

inputwireclr,

outputreghsync,

outputregvsync,

outputreg[9:

0]hc,

outputreg[9:

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

if(clr==1)

hc<=0;

else

begin

if(hc==hpixels-1)

begin

//Thecounterhasreachedtheendofpixelcount

hc<=0;//计数器复位

vsenable<=1;

//Enabletheverticalcountertoincrement

end

else

begin

hc<=hc+1;//Incrementthehorizontalcounter

vsenable<=0;//Leavethevsenableoff

end

end

end

//产生hsync脉冲

//当hc为0~127时,行同步脉冲为低电平

always@(*)

begin

if(hc<128)

hsync=0;

else

hsync=1;

end

//场同步信号计数器

always@(posedgeclkorposedgeclr)

begin

if(clr==1)

vc<=0;

else

if(vsenable==1)

begin

if(vc==vlines-1)

//Resetwhenthenumberoflinesisreached

vc<=0;

else

vc<=vc+1;

//场计数器加1

end

end

//产生vsync脉冲

//当hc为0或1时,场同步脉冲为低电平

always@(*)

begin

if(vc<2)

vsync=0;

else

vsync=1;

end

//Enablevideooutwhenwithintheporches

always@(*)

begin

if((hchbp)&&(vcvbp))

vidon=1;

else

vidon=0;

end

endmodule

(3).显示彩条模块

modulevga_stripes(

inputwirevidon,

inputwire[9:

0]hc,vc,

outputregred,green,

outputregblue

);

//输出16行宽的红绿条纹

always@(*)

begin

red=0;

green=0;

blue=0;

if(vidon==1)

begin

red={vc[4]};

green=~{vc[4]};

end

end

endmodule

(4).VGA彩条显示的顶层文件设计

modulevga_initials_top(

inputwiremclk,

inputwire[3:

0]btn,

inputwire[7:

0]sw,

outputwirehsync,

outputwirevsync,

outputwire[2:

0]red,

outputwire[2:

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),

.clr(clr),

.hsync(hsync),

.vsync(vsync),

.hc(hc),

.vc(vc),

.vidon(vidon)

);

vga_initialsU3(.vidon(vidon),

.hc(hc),

.vc(vc),

.M(M),

.sw(sw),

.rom_addr4(rom_addr4),

.red(red),

.green(green),

.blue(blue)

);

prom_DHMU4(.addr(rom_addr4),

.M(M)

);

endmodule

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环境相关知识

准备相关资料

高亮黎强

赵泳卫

17

12-24

星期三

进行VerilogHDL程序设计

查找研究设计资料

高亮黎强

赵泳卫

17

12-25

星期四

进行VerilogHDL程序设计

查找研究设计资料

高亮黎强

赵泳卫

17

12-26

星期五

熟悉相关设计软件

查找研究设计资料

高亮黎强

赵泳卫

18

12-29

星期一

软硬件结合仿真调试

结合实验箱进行硬件仿真调试

高亮

赵泳卫

18

12-30

星期二

软硬件结合仿真调试

结合实验箱进行硬件仿真调试

高亮

赵泳卫

18

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;

output[2:

0]green;

output[2:

0]blue;

regv_video_on;

regh_video_on;

reghsync,vsync;

reg[2:

0]red;

reg[2:

0]green;

reg[2:

0]blue;

reg[9:

0]hcount;

reg[9:

0]vcount;

reg[8:

0]h_dat;

reg[8:

0]v_dat;

reg[8:

0]bg;

reg[9:

0]j;

reg[9:

0]cnt1;

reg[9:

0]cnt2;

reg[9:

0]cnt3;

reg[9:

0]cnt4;

reg[9:

0]cnt5;

reg[9:

0]cnt6;

regclk1;

reg[9:

0]k;//屏计数器

wireon;

//行计数器处理

always@(posedgeclk)

begin

if(hcount==799)

hcount<=0;

else

hcount<=hcount+1;

end

//场计数器处理

always@(posedgeclk)

begin

if(vcount==524)

vcount<=0;

elseif(hcount==729)

vcount<=vcount+1;

elsevcount<=vcount;

end

//行同步场同步信号处理

always@(posedgeclk)

begin

if((hcount<=759)&&(hcount>=663))

hsync<=0;

elsehsync<=1;

if((vcount<=499)&&(vcount>=497))

vsync<=0;

elsevsync<=1;

end

//行有效区

always@(posedgeclk)

begin

if(hcount<639)h_video_on<=1;

elseh_video_on<=0;

end

//场有效区

always@(posedgeclk)

begin

if(vcount<479)v_video_on<=1;

elsev_video_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1