设计(论文)题目:
基于FPGA的VGA显示控制器的设计与实现
开题日期: 2016年3月16日
1.课题提出
1.1课题背景,目的与意义
现在社会,以计算机技术为核心的信息技术迅速发展,以及信息的爆炸式增长,人类获得视觉信息的很大一部分是从各种各样的电子显示器件上获得的,对这些电子显示器件的要求也越来越高,在这些诸多因素的驱动下,显示技术也取得了飞速度的发展。VGA(Video Graphics Array)是IBM在1987年随PS/2(个人系统)机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。使用FPGA(Field-Programmable gate array现场可编程门阵列)设计的VGA显示控制器具有很高的灵活性,可以根据其不同的类型、尺寸、适用场合,做一些特殊的设计,以最小的代价满足系统的要求,而且可以解决通用的显示控制器本身固有的一些缺点。
随着FPGA现场可编程门阵列不断的发展,其价格也不断的下降,逐渐地显现出FPGA的应用优势。FPGA的运行速度快,管脚资源丰富,容易实现大规模的系统设计,并且它的软核易于移植和升级,便于进行二次开发。因此目前,嵌入式系统中越来越多的采用了基于 FPGA 的设计方案。在设计嵌入式统时,为了实现 VGA 的显示功能,既可以采用专用的如 SPX7111A 一样功能的 VGA 接口芯片,也可以使用基于 FPGA 设计出来的具有 VGA 接口功能的软核。虽然专用的 VGA 接口芯片具有更多的显示模式和更稳定的 VGA时序,但是设计和使用 VGA 接口的软核具有以下优势:(1)使用的芯片较少,这样可以节省板上资源并且减小布线的难度;(2)当进行高速数据传输时,具有更小的高频噪声干扰;(3)采用 FPGA 设计的 VGA 接口可以将要现的数据直接送到显示器,这样便节省了处理器的资源,加快了数据处理速度。(4)摆脱了传统的运用整台计算机来完成显示和控制,减小了系统的体积并节约了成本。
目前,越来越多的行业需要LED或者液晶显示器来工作。例如在军用方面的人机对话操作平台中直观的显示了各项信息,确保作战安全;在民用方面的各种工控产品和消费产品中,需要不同规模的显示系统,其广泛的应用于各种医疗仪器、终端设备、消费电子和汽车电子等领域。可见,利用FPGA来完成VGA显示控制,可以使要显示的信息脱离PC机的控制,形成体积小、消耗低的嵌入式系统,广泛的应用于各个领域,具有重要的现实意义。因此,研究并设计出更加实用、可靠和高速的显示系统非常重要。
1.2 国内外对显示技术的研究
随着国家经济和科技的不断的强大,电子器件也有了迅猛的进展,尤其是各种图形、图像设备的问世,计算机逐渐进入了一个多媒体的时代,信息的载体扩展到了文、图、声等多种类型,进一步的扩大了计算机的应用领域。由于视觉,即图形、图像,最能生动形象、直观明了地传达信息,因此在多媒体领域占据相当重要的地位。
VGA这个术语常常不论其图形装置,而直接用于指640×480的分辨率。VGA装置可以同时储存4个完整的EGA(Enhanced Graphics Adapter增强图形适配器)色版,并且它们之间可以快速转换,在画面上看起来就像是即时的变色。东北师范大学的廖根兴研制出一种基于FPGA的LCD 测试用信号发生器,利用Altera公司的FPGA为主控芯片,将数字图像信号转换成LVDS信号,显示在液晶屏上,从而避免了因信号的传输产生的失真和损耗。中电54所的吕康利用FPGA设计出了VGA图形控制器,可以实现图像和彩条的显示。
从国内外显示系统的发展历程来看,主要出现了以下几种技术方案:(1)基于ARM 的显示控制系统,它是以 ARM 微控制器为处理的核心,结合CMOS和CCD图像传感器,以图像采集芯片为辅助设备来实现。系统虽然具有体积小、接口丰富和功耗低的优点,但是它的开发周期过长,系统不易于移植和升级,而且如果用于如图像这种数据吞吐量比较大的处理,其运行速度受到限制,这个问题不容忽视。(2)基于FPGA的显示控制系统,这种方式不仅运算速度快、电路设计简洁,而且成本相对较低,还便于移植和二次开发。
纵观国内外潮流,对于高速与大数据量的图像显示系统,已从DSP、ARM平台转为 FPGA平台。采用 FPGA 设计的图像显示系统体积小、成本低、功耗低、实时性强、读写方便、可靠性高,并且随时都可以对系统进行裁减或增加功能,从而避免了设计的风险。
1.3研究(设计)内容
此设计要求实现某分辨率下(如640*480@60HZ)的VGA显示驱动,能简单显示彩条、图像等。
1. 熟悉FPGA芯片资料(cyclone系列)、集成开发环境Altera Quartus II仿真软件Modelsim等设计相关器具。
2. 熟悉VGA工作原理及VGA接口协议、工作时序等。
3. 计算出合适的时序,并对原始时钟进行分频处理以获取符合时需要求的频率。
4. 需要显示的图像等可存储于外部存储器,运行时,从外部存储器读取显示数据。
2.设计方案(可行性研究)
2.1 VGA显示技术原理
VGA接口是与显示器进行通信的唯一接口,通过FPGA器件控制RGB信号、行同步信号、场同步信号等信号,并参照有关标准,最后可以实现对VGA显示器的控制。
VGA图像控制器是一个较大的数字系统,传统放入图像显示方法是将图像数据传回电脑并通过显示器显示出来,在传输的过程中就需要CPU不断地对图像数据信号进行控制,这样就造成了CPU资源的浪费,同时系统还需要依赖电脑,因而降低了系统的灵活性。利用FPGA 芯片和EDA设计方法,可以根据用户的需要,设计出针对性强的VGA显示控制器,而且不需要依靠计算机,既能够大大降低成本,又可以满足生产实践中不断变化的需要,同时产品的升级换代也方便迅速。
VGA显示控制主要有五个信号线,分别为R、G、B、VSYNC(场同步)、HSYNC(行同步)信号。红(R)、绿(G)、蓝(B)是大家熟知的三原色,R、G、B这三个模拟信号的电平范围是由0.4V到0.7V,由R、G、B的电压差便可以产生出所有的颜色。如果R、G、B各只用一个位来控制,也就是只有0和1两种电位,所能够形成的颜色种类,就只有8种。若每一种颜色能用多个位来控制,颜色就能多样化。而VSYNC和HSYNC用作显示器的同步信号,依据垂直与水平更新率的不同,不断送出固定频率的信号输出,此时就可以在屏幕上正确地显示色彩。
在显示屏中,为了能显示出颜色,需要建立色彩模型,而使用的最多的色彩模型就是RGB色彩模型。例如:CRT显示器使用的就是RGB色彩模型,显示器的三个电子枪分别对应着红色、绿色和蓝色,一个像素的颜色就是用这三个电子束的强弱来表示的。显示适配器中同样使用RGB色彩模型来描述颜色,以保持与显示器的一致。在 VGA控制器的设计中,也采用了该色彩模型来描述颜色。在RGB色彩模型中,以红色 (R)、绿色(G)、蓝色(B)作为基色,其他的颜色都是由这三种基色混合而成的。
显示器电子枪的扫描过程在行同步、场同步等控制信号的控制下进行,包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程,如图2-1 CRT显示器的电子枪扫描过程所示。屏幕的显示方式,是从最左上角的第一像素开始,然后依次向右显示下一个像素,到显示完第一行的最后一个像素,就跳到第二行的第一个像素又继续开始显示。一直到整个屏幕都显示完毕时,又回到原点来显示,如此就能不断地刷新画面。
图2-1 CRT显示器的电子枪扫描过程
2.2 显示控制器模块
显示控制器是一个较大的数字系统,采用模块化设计原则,借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用Verilog HDL硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过。VGA显示控制器主要由以下模块组成:分频模块、VGA时序控制器模块、彩条图形生成模块、VGA显示模块、存储模块等,如图2-2基于FPGA的VGA显示控制器系统框图所示。
图2-2 基于FPGA的VGA显示控制器系统框图
2.2.1. VGA时序控制器模块
图片想要在显示器上显示出来,它主要需要5个信号,行同步信号(HS)、场同步信号(VS)和RGB三基色信号。VGA时序控制模块是须严格按照VGA时序标准产生相应的脉冲信号。对这5个信号的时序驱动,VGA显示器要严格遵守“VGA工业标准”,即640*480@60Hz模式,否则会损坏VGA显示器。VGA工业标准要求的频率是:时钟频率为25.175MHz,行频为31469Hz,场频为59.94Hz。
VGA的时序不是直接由模拟信号产生的,而是由数字信号控制的,为了将数字信号变成模拟信号,中间要经过D/A转换器(THS8134)处理。VGA接口的显示是通过行、场扫描的方式实现对显示器进行扫描控制实现的。图2-2.1为VGA行扫描、场扫描的时序图
图2-2.1 VGA行扫描、场扫描时序图
2.2.2彩条图形生成模块
作为测试模式,该模式可以测试所连接的显示器以及整个VGA显示系统是否正常工作。在彩条生成模块中产生横彩条和竖彩条,横彩条通过场计数器vcnt计数进行控制,以显示相应的颜色。设计产生16个彩条,将480行的像素16等份,用vcnt来控制计数区域,不同的区域赋予不同的颜色值。竖彩条的显示原理与横彩条相似,只是使用行计数器hcnt来进行计数,把每行的640个像素16等份。
2.2.3显示模块
显示模块是整个显示控制器的重要组成部分,各个模块的输出数据都要经过模块处理后送到显示器。显示模块在VGA显示控制器中起至关重要的作用。显示模块的输出信号通过D/A转换器的转换连到VGA接口,它是控制器和显示器进行通信的桥梁。该模块以可以VerilogHDL语言实现。
2.2.4存储模块
当VGA显示器要显示一帧图像时,就会需要比较大的数据量,FPGA芯片内置的ROM存储器难以满足这么大的数据存储要求,必须把图像数据放入外部的存储器中。FPGA的外部存储器可以有多种选择,如ROM、EEPROM、SDRAM等。采用何种存储器将最终决定读取控制器的数据读取方式。如ROM可以用直接产生地址信号的方式对芯片进行访问,而SDRAM常常利用DMA控制方式配合CPU进行读写操作。本设计采用型号为28C040的4M EEPROM外部存储器,可以在单片内存储整个屏幕的图像。
3. FPGA设计
3.1 FPGA的基本结构
20世纪90年代,国际上电子和计算机技术较为先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
简化的FPGA基本上由六部分组成,分别是可编程输入/输出单元、可编程逻辑单元、嵌入式块RAM、布线资源、底层嵌入功能单元和内嵌专用硬核等。输入/输出单元简称I/O单元,它们是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求;可编程逻辑单元是FPGA中的最小逻辑单位,基本结构包含一个查找表(LUT, Look Up Table)和寄存器(Register);嵌入式块RAM可以配置为单端口RAM、双端口RAM、FIFO等存储结构,大大拓展了FPGA的应用范围和灵活性;布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度;底层嵌入功能单元主要指PLL、DSP和CPU等软处理核;内嵌专用硬核是相对底层嵌入的软核而言,专指FPGA内处理能力强大的硬核,等效于专用集成电路。
3.2 FPGA设计流程
一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤,如图3-1.2所示。
图3-2 完整的FPGA设计流程
(1)电路设计与输入
指通过某些规范的描述方式,将电路构思输入给EDA工具。常用的设计输入包括使用HDL设计、原理图设计和状态图设计等方法。其中采用HDL设计输入法,有利于自顶向下的设计和模块的划分与复用,可移植性和通用性好,设计不因芯片的工艺和结构不同而变化,因而具有广泛的应用。
(2)功能仿真
指使用仿真工具对已经完成的设计进行完整测试,验证电路功能是否符合设计要求。通过仿真能够及时发现设计中的错误,加快设计进度,提高设计的可靠性。
(3)综合优化
指在满足待实现电路的约束条件下,将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接,并根据约束条件优化所生成的逻辑连接,输出标准格式的网表文件。
(4)综合后仿真
综合后仿真的主要目的在于检查综合工具的综合效果是否与设计输入一致。仿真时,把综合生成的标准延时文件反标注综合仿真模型中去,可估计门延时带来的影响,但不能估计线延时,仿真结果与布线后的实际情况还有一定差距。
(5)实现与布局布线
利用FPGA厂商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA器件中,这个过程称之为实现过程。在实现过程中最主要的过程是布局布线,布局是指将逻辑网表中的硬件原语或者底层单元合理的适配到FPGA内部固有硬件结构上,布局的优劣对设计的最终实现结果影响很大;布线是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确连接各个元件的过程。
(6)时序仿真与验证
布局布线之后生成的仿真时延文件包含的时延信息最全,不仅包含门延时,还包含实际布线延时,所以布线后仿真最准确。布局布线后仿真能检查设计时序与FPGA实际运行情况是否一致,确保设计的可靠性和稳定性。
(7)下载配置、调试
下载配置是指在时序仿真正确的前提下,将形成的配置文件下载到具体的FPGA中。可以直接由计算机经专用下载电缆配置或者由外围配置芯片进行上电自动配置。
4.开发环境及系统实现
本设计是在以FPGA为核心的硬件系统上实现VGA显示控制器的设计及前后期的图像处理和图像存储。
在整个设计过程中,主要使用Altera公司提供的Quartus II软件进行前期的模块化设计及功能仿真、综合与实现等,最后使用Altera公司的Cyclone系列的FPGA进行硬件配置与调试。
5.论文计划
毕业设计进度表
序号 起止日期 任务 提交的阶段成果 备注
1 3.10~3.21 查阅资料 开题报告、外文翻译
2 3.22~4.19 学习HDL 掌握语言
3 4.20~5.10 编写程序 FPGA模块化设计
4 5.11~5.20 配置硬件 调试及最终结果
5 5.20~6.1 撰写论文 毕业论文
6 6.1~6.12 准备答辩 答辩材料
6.参考文献
[1]蒋艳红,基于FPGA的VGA图像信号发生器设计[J],电子测量技术,2008,31(3):78-80。
[2]周润景,苏良碧,基于QuartusII的数字系统VerilogHDL设计实例详解,电子工业出版社,TP332.122。
[3]廖根兴,基于FPGA的LCD测试用信号发生器研制,东北师范大学,2010,05,01。
[4]吴戈,VerilogHDL与数字系统设计简明教程,人民邮电出版社,TP312VH-4.31。
[5]张亚平,贺占庄,基于FPGA的VGA显示模块设计[J],计算机技术与发展,2007,17(6)。
[6]董兵,朱齐丹,文睿,基于FPGA的VGA图像控制器的设计与实现[J],应用科技,2006,33。
[7]韩彬,于潇宇,张雷鸣,FPGA设计技巧与案例开发详解,电子工业出版,
TP332.168。