您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > VGA图象显示控制器设计
华北水利水电学院NorthChinaInstituteofWaterConservancyandHydroelectricPower课程设计报告题目VGA图象显示控制器设计学院信息工程学院专业通信工程学号、姓名指导教师2011-1-6摘要该论文简述了QuartusⅡ仿真软件的基本操作方法,同时介绍FPGA逻辑器件的相关知识和VHDL硬件描述语言的相关知识,在基于FPGA逻辑器件、QuartusⅡ仿真软件和VHDL硬件描述语言下,设计了VGA图象显示控制器。该VGA图象显示控制器是用模块设计并通过它们的级连实现的,具体是通过硬件电路的设计且能实现的方案来用VHDL语言对硬件电路进行描述,同时把VHDL语言在QuartusⅡ中进行仿真。关键词:VGA显示控制;VHDL;QuartusⅡ;EDA6000前言在电子电路领域中,设计自动化工具已经被广大电子工程师所接受,它必将取代人工设计方法并成为主要的设计手段。目前,VHDL已经成为各家EDA工具和集成电路厂商认同和共同推广的标准化硬件描述语言,随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展,这种发展必将导致集成电路的设计规模日益增大。该论文的设计是用VHDL硬件描述语言设计出一个VGA图象显示控制器,用VHDL硬件描述语言进行编程,把VHDL语言描述的VGA图象显示控制器所需的程序在QuartusⅡ软件环境下进行模拟仿真,以此来验证所设计的结果是否满足设计的要求。在结果符合要求的情况下把VHDL程序下载到FPGA器件上,利用FPGA器件内部存储器存储所需要的数据,再通过VGA接口输出到显示器上,从而达到设计的要求。VGA显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备,FPGA以其结构的优势可以使用很少的资源产生VGA的各种控制信号。目录1设计任务书----------------------------------------------------------------32方案论证-------------------------------------------------------------------33系统设计详述-------------------------------------------------------------43.1VGA显示其原理--------------------------------------------------------43.2VGA图象显示控制器的设计原理-----------------------------------43.3VHDL源程序------------------------------------------------------------43.4VHDL程序在QuartusⅡ编译结果-----------------------------------73.5QuartusⅡ时序仿真波形------------------------------------------------84配置到EDA6000实验箱-----------------------------------------------85系统设计工作进程-----------------------------------------------------106收获和体会---------------------------------------------------------------117参考文献------------------------------------------------------------------111设计任务书1.1课程设计目的通过《EDA与数字系统设计》课程设计,使学生能够掌握FPGA应用系统的开发过程。要求学生经过课程设计的教学环节进一步理解FPGA应用系统的工作原理。使学生理解课题教学的理论内容,针对所选课题,能够按照FPGA的开发流程和VHDL语言建模、仿真、综合、下载、配置,用EDA6000试验箱上的FPGA系统实现相应功能,可以起到综合运用各种技术和知识的作用。1.2课程设计的题目、内容和要求设计题目:VGA图象显示控制器设计在EDA6000实验平台上实现一个VGA图象显示控制器,利用FPGA器件内部存储器存储所需要的数据,再通过VGA接口输出到显示器上。2方案论证本控制器是把64位色彩图像存入FPGA器件的电可擦除只读存储器中,存入的数据时串行数据。由于显示器接收的R,G,B三基色信号是8位并行数据,因此要将采集的串行数据转化成并行数据,再去驱动显示器。系统总体结构示意图如下:设计方案如下:将图像控制器分为这样几个模块:通用异步收发器(UART)模块、缓存器模块和显示控制模块。其中通用异步收发器模块用于接收采集的串行数据,并将其转化为并行数据(8位);缓存器模块用于接收并行数据,接收满三个并行数据再进行转发,送往显示控制模块;显示控制模块用于产生正确的行、场同步信号,并再产生R,G,B三基色信号。显示控制模块的输出信号直接连接到VGA接口,它是控制器与显示器进行通信的桥梁。3系统设计详述3.1VGA显示器原理常见的彩色显示器一般由CRT(阴极射线管)构成,彩色是由R(红),G(绿),B(蓝)3基色组成。显示采用逐行扫描的方式,阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生RGB三色基,最后合成一个彩色图像。从屏幕的左上方开始自左向右的扫描,每扫完一行电子束回到下一行的最左端,每行结束后电子枪回扫的过程中进行消隐。然后从新开始行扫描,消隐,直到扫描到屏幕的右下方,电子书回到屏幕的左上方重新开始新的图像扫描,并且在回到屏幕的左上方过程中进行消隐,在消隐的过程中不发射电子束。每一行扫描结束时,用HS(行同步)信号进行同步;扫描完所有的行后用VS(场同步)信号进行同步。3.2VGA图象显示控制器的设计原理VGA显示器总共需要五根信号线,分别为R\G\B三原色信号和行同步(HSYNC)、场同步(VSYNC)信号。在通用的标准中,VGA的像素输出频率为25.175MHz,行频率是31.496KHz,场频率是59.94Hz。分辨率为640*480,即每行显示640个像素,每场显示480行。这640*480是显示器的有效显示区(Visiblearea),除此之外,还有行、场消隐区(BackPorch),以及行、场同步区(SyncPulse)以实现行列的同步操作。[1]如果利用实验室的液晶屏,可以增加分辨率至800*600,在这个标准下屏幕的刷新频率设为72Hz,行频率是48.08KHz。FPGA需实现的扫描时序如下图:3.3VHDL源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYvgaISPORT(clk:INSTD_LOGIC;--25Mclock--IO30hs:OUTSTD_LOGIC;--IO46vs:OUTSTD_LOGIC;--IO47dout:OUTSTD_LOGIC_VECTOR(5DOWNTO0);--RRGGBBmem_d:INSTD_LOGIC_VECTOR(7DOWNTO0);--IO15..IO08mem_a:OUTSTD_LOGIC_VECTOR(14DOWNTO0);--IO06..IO00--IO63..IO56mem_rd:OUTSTD_LOGIC;--IO16mem_wr:OUTSTD_LOGIC--IO17);ENDvga;ARCHITECTUREbehvOFvgaISSIGNALh_cnt:INTEGERRANGE0TO799;SIGNALv_cnt:INTEGERRANGE0TO523;SIGNALi_hs:STD_LOGIC;SIGNALi_vs:STD_LOGIC;SIGNALv_hs:STD_LOGIC;SIGNALv_vs:STD_LOGIC;SIGNALaddr:STD_LOGIC_VECTOR(14DOWNTO0);BEGINhs=i_hs;vs=i_vs;PROCESS(clk)BEGINIFclk'EVENTANDclk='1'THENIFh_cnt=799THENh_cnt=0;ELSEh_cnt=h_cnt+1;ENDIF;IFh_cnt=96THENi_hs='1';ELSIFh_cnt=0THENi_hs='0';ENDIF;IFh_cnt=783THENv_hs='1';ELSIFh_cnt=144THENv_hs='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(i_hs)BEGINIFi_hs'EVENTANDi_hs='1'THENIFv_cnt=524THENv_cnt=0;ELSEv_cnt=v_cnt+1;ENDIF;IFv_cnt=2THENi_vs='1';ELSIFv_cnt=0THENi_vs='0';ENDIF;IFv_cnt=514THENv_vs='1';ELSIFv_cnt=35THENv_vs='0';ENDIF;ENDIF;ENDPROCESS;mem_a=addr;mem_rd='0';--显示固定图象,存储器做ROM用mem_wr='1';PROCESS(clk,v_hs,v_vs)BEGINIFv_hs='1'THENaddr(7DOWNTO0)=00000000;--行消隐时复位地址低7位ELSIFclk'EVENTANDclk='1'THENaddr(7DOWNTO0)=addr(7DOWNTO0)+1;ENDIF;IF(v_vs='1')OR(v_hs='1')THENdout=000000;--场消隐或行消隐时,不输出图象信号ELSIFclk'EVENTANDclk='0'THENdout=mem_d(5DOWNTO0);--将存储器内容读出显示ENDIF;ENDPROCESS;PROCESS(i_hs,v_vs)BEGINIFv_vs='1'THENaddr(14DOWNTO8)=0000000;--场消隐时复位地址高8位ELSIFi_hs'EVENTANDi_hs='1'THENaddr(14DOWNTO8)=addr(14DOWNTO8)+1;ENDIF;ENDPROCESS;ENDbehv;3.4VHDL程序在QuartusⅡ编译结果3.5QuartusⅡ时序仿真波形4配置到EDA6000实验箱引脚设置:配置下载:输出结果:5系统设计工作进程12月28日:选择课题及查找资料;12月29日~31日:VHDL源代码编写、调试;1月4日~6日:在EDA6000实验箱上调试,画原理框图,撰写报告。设计小组分工:方案论证、系统框图:200712107王慧敏、200712109刘莎莎、200712117李莎VHDL程序编写:200712113宋寒涛、200712133鄢稳平VHDL程序调试、QuartusⅡ及EDA6000实际仿真、论文整理:200712130韩斌6收获和体会VGA显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备,FPGA以其结构的优势可以使用很少的资源产生VGA的各种控制信号。本次课程设计使我们重温了课本知识,并把理论付诸于实践,不但让我们深入的领悟EDA设计的精髓和VHDL程序的要领,而且极大得提高了我们的实际动手能力。尽管在设计过程中遇到了诸多困难,但是小组各成员齐心协力,通过查找资料、讨论等多种方式一一克服。但正是这些挫折的磨练,使我们懂得了科学的严谨性。我们必须以十分认真的态度和坚持不懈的精神,才能使我们在自己的学术领域中真正的学有所成。7参考文献[参考文献][1]曾繁泰,陈美金编著.VHDL程序设计[M].北京
本文标题:VGA图象显示控制器设计
链接地址:https://www.777doc.com/doc-7207929 .html