电子信息工程专业综合设计(报告)(课程设计)题目基于FPGA的VGA图像显示设计(图像旋转、放大、单步步进移动和屏保移动)二级学院电子信息与自动化学院专业电子信息工程班级学生姓名学号指导教师时间2011.12.26-2012.01.13基于FPGA的VGA图像显示设计及应用摘要:VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用。本文依据VGA显示原理,介绍了利用FPGA实现对VGA图形控制器VHDL设计方法。详细描述了各硬件模块的工作原理及实现途径,并给出了软件设计思路及部分代码。关键词:VGA;FPGA;VHDL0.引言随着可编程逻辑器件的不断发展及其价格的不断下降,EDA开发软件的不断完善,可编程逻辑设计的应用优势逐渐显示出来,特别是大规模可编程器件。而FPGA具有功能强大,开发过程投资小、周期短等特点,成为当今硬件设计的首选方式之一。VGA(视频图形阵列)作为一种标准的显示接口得到广泛地应用。利用FPGA芯片和EDA设计方法,可以灵活地根据用户需求,设计出针对性强的VGA显示控制器,不仅降低了生产成本也可以快速地对产品进行升级换代。本文设计采用QuartusII9.0软件工具,并以Altera公司的Cyclone系列FPGA的器件EP1C12F324C8为主实现硬件平台的设计。1.方案设计及工作原理1.1方案设计VGA时序控制模块ROM内存地址控制模块ROM按键扫描控制模块50MHz5Hzaddrdata首坐标xx、yyVGA接口RGBHS、VSD/ACRT采用模块化设计方法,我们对VGA图形控制器按功能进行层次划分。本设计的VGA控制器主要由以下模块组成:VGA时序控制模块、ROM内存地址控制模块、RO内存模块、按键扫描控制模块。如图1所示。图1.方案模块框图1.2工作原理根据VGA的显示协议,可以选择不同的显示分辨率。本设计选择的是800*600的分辨率。根据相应协议,在“VGA时序控制模块”对行扫描信号HS和场扫描信号VS进行相应的时序控制(具体控制详细信息见“VGA驱动原理”资料文档)。“ROM内存地址控制模块”根据“按键扫描控制模块”获得的图片显示首坐标xx、yy信息和“VGA时序控制模块”传送过来的hcnt(列计数器值)、vcnt(行计数器值)及相关控制信号计算出正确的内存地址,从rom中取出所需要的像素点的三基色数据。本设计的功能实现包括:图像旋转、放大、单步步进移动和屏保移动功能。其中图像的旋转运用了矩阵的转置原理,通过对图像的内存存储地址矩阵进行转置运算获得图像90°旋转的效果。图像的放大是通过将包括原像素点在内,相邻的4个点填写相同的颜色来实现的。2.模块设计及仿真2.1VGA时序控制模块VGA时序控制模块是整个显示控制器的关键部分,其实质就是完成VGA显示卡的功能。主要作用就是在一定的工作频率下,产生准确的时序关系(VS-垂直同步信号,HS-水平同步信号,消隐信号之间的关系)。及其在准确的时序下对ROM存储器数据进行读取。其中产生准确的时序关系为此模块重点,在VGA显示过程中,完成一行扫描所需要的时间称为水平扫描时间,完成一帧(一屏)扫描所需要的时间称为垂直扫描时间。每扫描完一行用行同步信号进行同步;扫描完所有行后用场同步信号进行同步。本文设计采用的是800×600×75Hz模式。依据时序标准,每显示行包含1056点,其中800点为有效显示区,256点为消隐区,每行的行同步脉冲低电平宽度为80个像素点;同理每场有625行,有效行为600行,其中场同步脉冲低电平宽度为3行。其行、场时序如表1,时序图见图2。表1行扫描、场扫描时序FormatPixelClockMHzHorizontal(inPixels)Vertical(inlines)ActiveVideoFrontPorchSyncPulseBackPorchActiveVideoFrontPorchSyncPulseBackPorch800,600,75Hz49.5080016801606001321依照这个标准,正好与开发板EP1C12外部晶振频率50MHz相近,可以直接引用外部晶振时钟作为其驱动时钟(只要所用时钟和协议要求的时钟相差不大,不会影响显示效果,最多就是显示的刷新频率不是真正等于75Hz而已)。图2行HS、场VS时序图2.2ROM内存地址控制模块整个显示思路是在800*600分辨率的显示器上开辟一256*64的显示区域来显示图片,因为显示的图片的大小为256*64。在此区域以外显示指定颜色,例如黑色、蓝色等,作为一个背景色显示。在本模块中,通过在对ROM内存地址的控制...