ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:172.96KB ,
资源ID:30480356      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30480356.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计基于FPGA的VGA显示.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

毕业设计基于FPGA的VGA显示.docx

1、毕业设计基于FPGA的VGA显示VGA显示器控制电路论文前言VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用。利用FPGA芯片和EDA设计方法,可以因地制宜,根据用户的特定需要,设计出针对性强的VGA显示控制器,不仅能够大大的降低成本,还可以满足生产实践中不断变化的用户需要,产品升级换代方便迅速。 在本设计中采用Altera公司的EDA软件工具Quartus II,并以Cyclone II系列的FPGA的器件作为主实现硬件平台的设计。一、FPGA的原理FPGA 是Filed Progranmmable Gate Array的缩写,即现场可编程逻辑阵列。FPGA是在CPLD的基础上发展

2、起来的新型高性能可编程逻辑器件它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti_Fuse)工艺等。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入/输出单元,基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核等。FPGA的主要器件供应商有Xilinx、 Altera、 Lattice、 Actel和 Atmel 等。二、 VGA转换接口的简单描述本设计另外自制VGA接口电路。VGA时序控制模块是整个

3、显示控制器的关键部分,最终的输出信号行、场同步信号必须严格按照VGA时序标准产生相应的脉冲信号。对于普通的VGA显示器,其引出线的共含5个信号:G,R,B(三基色信号),HS(行同步信号),VS(场同步信号)。在五个信号时序驱动时,VGA显示器要严格遵循“VGA工业标准”,即640Hz480 Hz60Hz模式。下图(1)为VGA显示控制器控制CRT显示器 VGA(Video Graphic Array)接口,即视频图形阵列,也叫做D-Sub接口,是15针的梯形插头,分3排,每排5个,传输模拟信号。VGA接口采用非对称分布的15针连接方式,其工作原理:是将显存内以数字格式存储的图像(帧)信号在R

4、AMEAC里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像生成图像。而对于LCD、DLP扥数字显示设备,显示设备中需配置相应的A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A/D2次转换后,不可避免地造成了一些图像细节的损失。VGA接口应用于CRT显示器无可厚非,但用于连接液晶之类的显示

5、设备,则转换过程的图像损失会使显示效果略微下降。VGA接口的引脚分配如下图(1)所示 图(1)三、主要功能模块设计注:主要模块为三块,一个二分频模块,一个VGA时序和行点位置模块,一个图形生成模块,本来想利用老师提供的方案进行制作,但在按键去抖模块以及按键累计模块没有能完成,故更改方案,换用读取拨动开关的模式来选择模式显示。1.1 VGA时序控制模块(vgaxm.v)功能:根据VGA显示器的工作原理,提供同步信号(H_SYNC和V_SYNC)及像素位置信息。设计思路:根据VGA显示器的工作原理,以垂直同步信号的出现时刻作为时间的起点(原点),根据时序图算出每一个关键时间点所需的计数器最大值,据

6、此输出H_SYNC和V_SYNC,在此基础上对扫描的行数及像素点数进行计数,从而输出像素位置信息。1.1.1VGA的时序详细讲解对于VGA显示器,每个像素点的输出频率为25.175MHZ,本实验采用50MHz的时钟信号,经过模块divider(二分频模块)的分频得到25MHz的时钟输入信号。依据VGA时序标准,行同步信号HS,行周期为32.2us,也就是H_sync(行)的周期;场同步信号VS,场周期为16.89ms,也就是V_sync(一帧)的周期。刷新1个像素所需时间Tpixel = 1/ fclk =40ns;从(b)水平刷新循环中,可以知道刷新一行所需时间公式:Trow = B+C+D

7、+E=Tpixel 640 + guard bands = 25.6ms + B + C +E = 32.2ms;引入h_count9.0:用于Trow(25MHz)的定时计数,计数清零时由时序可得下面计算式子:h_countend: 同时可以从该时序图确定p_begin_time和 p_end_time的像素点pixel开始计数以及清零计数的时间,计算式子如下:p_begin_time : p_end_time : 还能得出行扫描h_sync在h_count从0805计数期间,从第几计数开始为电平变化。图中,B=3.77us就是说在h_count计数起到3.77us到来之间行信号h_sync

8、保持低电平,在3.77us到32.2us之间为高电平,刚好为一个行信号周期。以下是计算式子(hsync_end代表h_sync的低电平截止时间范围):hsync_end: 程序简单描述如下:h_count计数: always ( posedge clk) /25MHZ/ 在垂直刷新循环内,当h_count计到规定的最大值805时,则清零;否则加1计数h_sync的电平变化:assign h_sync_pulse_w = (h_count hsync_end); /从h_count计数到94(3.77us)为1,95805为0 在v_sync负脉冲宽度内,v_sync_pulse_w为高电平as

9、sign h_sync=h_sync_pulse_w;S=0.35msR=15.456msQ=1.02msRGBV_SYNCP=64sTscreen =16. 89ms480行h_begin_time此时刻准备刷新第一行h_end_time原点(a)垂直刷新循环从(a)垂直刷新循环,可以知道刷新完480行,并完成一帧所需时间Tscreen =P+Q+R+S= Trow 480 + guard bands = 15.456ms+ P + Q + S = 16. 89ms引入v_count18.0 :用于Tscreen的定时计数,每当h_count计数满805,v_count计数加1一次;计数清零

10、时由时序可得下面计算式子(v_countend为v_count计数清零值):v_countend: 同时可以从该时序图确定h_begin_time和 h_end_time的行计数line开始计数以及清零计数的时间,计算式子如下:h_begin_time : h_end_time : 还能得出场扫描v_sync在v_count从0525计数期间,从第几计数开始为电平变化。图中,P=64us就是说在v_count计数起到64us到来之间场信号v_sync保持低电平,在64us到16. 89ms之间为高电平,刚好为一个场信号周期(一帧)。以下是计算式子(vsync_end代表v_sync的低电平截止

11、时间范围):vsync_end: 程序简单描述如下:v_count计数:always (posedge clk ) / 当垂直刷新循环结束(满480)时v_count清零;否则当h_count计到规定的最大值(805)时加1计数 ;v_sync的电平变化:assign v_sync_pulse_w = (v_count 9d0 & line9d0 & pixel=10d640) /若在有 begin 效区域内 case(cnt) 0:begin/*(1)模式1:4大图形块 */1:begin/*(2)模式2:竖彩条*/ 2:begin/*(3)模式3:横彩条*/ 3:begin/*(4)模式4

12、:棋盘格1 16*16 */ 4:begin/*(5)模式5:小横彩条 */ 5:begin/*(6)模式6:棋盘格2 30*40 */ endcase endelse rgb=3b000;/超出有效区域,则为黑色 end2.1.1VGA竖彩条发生和横彩条发生竖彩条发横模块根据像素点计数器的h_count的计数值来产生彩条,其流程图如(a)所示。它对行点数(像素点)计数器的数值进行判断,每80条竖线生成一种竖彩条,共八种竖彩条。横彩条发生模块与竖彩条发生模块类似。它根据场扫计数器(行)的计数值来残生横彩条,流程图如(b)所示。每60条扫描线为一个彩条宽度,共8色横彩条模式。 YNNYYNNYY

13、YYYYYYNNNNYYYNNNNNNNNPixel80Pixel160Pixel240Pixel320Pixel4000Pixel480Pixel560Line59开 始Line119Line179Line23999Line2999Line3599Line419H_dat=111H_dat=110H_dat=101H_dat=100H_dat=011H_dat=001H_dat=000H_dat=010开 始v_dat=000v_dat=001v_dat=010v_dat=011v_dat=100v_dat=101v_dat=110v_dat=111 横彩条(b) 竖彩条(a)2.1.2对模

14、式6和模式2的简单描述如下: 根据vgacore2.v输出的格线计数器line_cnt、pixel_cnt和strip_cnt的大小,用if-else语句简单地实现。line_cnt对行数进行计数,为32进制计数模式6:/*(6)模式6:横彩条2-从上至下,每6行显示一种颜色, 分别为白、黄、粉、红、浅蓝、绿、黑、蓝,并重复此规律。*/ 5:begin if(strip_cnt=6d6) rgb=3b111; / 白 else if(strip_cnt=6d12) rgb=3b110;/ 黄 end模式2:/*(2)模式2:棋盘格1(与方案1不同) */ 1:beginif(line=9d1)

15、|(line_cnt=5d30)|(pixel=10d1) |(pixel_cnt=6d40) rgb=3b100; /格线为红色 else rgb=3b001; /格内显示蓝色 end NLine=1?NNNYYYY开始(棋盘1模式)Pixel=1?Line_cnt=16?32?Pixel_cnt=16?32?48?64?RGB=100 显示红色线Rgb=001 显示蓝色背景(棋盘2)16*16棋盘小横彩条strip_cnt=7strip_cnt=14strip_cnt=21strip_cnt=28strip_cnt=35strip_cnt=42strip_cnt=56strip_cnt=4

16、9Rgb=100Rgb=011Rgb=010Rgb=001Rgb=000Rgb=000Rgb=111Rgb=110Rgb=101ElseRgb=101strip_cnt=633.1 分频模块本设计有两个分频器,一个是提供标准时钟信号25MHZ的二分频器,一个是提供按键去抖时钟1ms的25000分频器。二分频:分频系数计算公式: 25000分频:分频系数计算公式: 感言: 这次课程设计让我对EDA软件工具Quartus II的运用有了更深一面的认识。通过对VGA的学习以及设计,我认识到了VGA的工作原理以及关于Verilog VHL的简单语言思维。本想让这设计能显示出图片与文字,但学识还未成熟,很遗憾这最后的一个课程设计没有能突破自己的计划。但是,很高兴能认识到这门具有非常强悍潜力的知识,这门技术的背后非常的广阔,需要更多的知识和创造力。 附 录行与点的计数值总电路竖条横条16*16棋盘 . .

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

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