1、基于fpga的vga图像显示控制器设计 大学论文基于FPGA的VGA图像显示控制器设计一实验简介 本实验介绍了一种利用可编程逻辑器件实现VGA图像显示控制的方法,阐述了VGA图像显示控制器中VGA显像的基本原理以及功能演示,利用可编程器件FPGA设计VGA图像显示控制的VHDL设计方案,并在Altera公司的QuartusII软件环境下完成VGA模块的设计。而且给出了VGA模块的设计思路和顶层逻辑框图。最终实现VGA图像显示控制器,VGA图像控制器是一个较大的数字系统,传统的图像显示的方法是在图像数据传输到计算机,并通过显示屏显示出在传输过程中,将图像数据的CPU需要不断的信号控制,所以造成C
2、PU的资源浪费,系统还需要依靠计算机,从而减少了系统的灵活性。FPGA芯片和EDA设计方法的使用,可根据用户的需求,为设计提供了有针对性的VGA显示控制器,不需要依靠计算机,它可以大大降低成本,并可以满足生产实践中不断改变的需要,产品的升级换代和方便迅速。二任务要求2.1课题要求设计一个 VGA 图像显示控制器。1. 显示模式为 64048060Hz 模式;2. 用拨码开关控制 R、G、B(每个2 位),使显示器可以显示64 种纯色;3. 在显示器上显示横向彩条信号(至少 6 种颜色);4. 在显示器上显示纵向彩条信号(至少 8 种颜色);5. 在显示器上显示自行设定的图形、图像等。2.2设计
3、目标根据课题要求,实验中将目标进行了细化,叙述如下:1. 设定4种显示模式:横彩模式、纵彩模式、纯色模式、用户模式;2. 拨码开关最低两位SW1SW0控制4种模式的切换;3. 拨码开关高6位SW7SW2每两位分别控制RGB显示64种纯色;4. 横向和纵向彩条均设置为8种内置的颜色;5. 用户模式中分3种子模式:1) 子模式1是沿固定轨迹运动模式,固定图形沿水平方向运动,行运动到边界后折回到下一行继续水平运动;2) 子模式2是反弹球模式,固定图形在矩形屏幕做内直线运动,到边界后沿反射角方向反弹,周而复始;3) 子模式3是受控运动模式,使用上下左右4个按键控制固定图形在屏幕内的运动方向;4) 子模
4、式间的切换由一个单独的按键进行控制,按键按下后顺序切换子模式。三实验内容3.1 VGA概述伴随着市场上液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端,不过基于VGA标准的显示器仍是目前普及率最高的显示器。如果想要驱动此类显示器,必须得有很高的扫描频率,以及极短的处理时间,综合诸多特点需要,所以选用FPGA来实现对VGA显示器的驱动。本次毕业设计即选用FPGA来实现VGA的显示。现在,基于FPGA的设计方案越来越被用于更多的嵌入式系统,在基于FPGA的大规模嵌入式系统设计中,为了更好的实现VGA显示功能,既能使用专用的VGA接口芯SPX7111A等,又可以设计和使用基于FPGA的V
5、GA接口软核,其优点在于能使用VGA专用芯片具有更稳定的VGA时序和更多的显示模式可供选择。此外设计和使用VGA接口软核更具有以下几点优势: 使用芯片更少,节省板上资源,布线难度大大减少。 当高速数据进行传输时,减少高频噪声干扰。 采用FPGA(现场可编程门阵列)设计的VGA接口可以将要显示的数据直接传送到显示器,跳过计算机的处理过程,加快了数据的处理速度,从而有利的节约硬件成本。 整体设计费用降低,产品更具有价格优势。现代EDA软件发展迅速,设计、仿真 更容易实现,量化设计中各个环节,使得设计周期日益缩短。3.1.1 VGA显示技术的发展概况VGA接口,它是一种被广泛应用的标准显示接口,大多
6、数的显卡和显示器之间,以及二色等离子的电视输入图像模数的转换上使用了VGA接口。它同样还被用于LCD的液晶显示设备,随着微电子制造工艺的发展,可编程逻辑器件也取得了长久的进步,早期的元器件只可以存储很少的数据,逻辑功能实现更为简单,然而发展至今,其完成的逻辑功能相对复杂,规模更大,速度更快,功耗更低!现阶段可编程逻辑器件主要有两大类,现场可编程逻辑器件(FPGA)和复杂可编程逻辑器件(CPLD)。FPGA的运行速度快,管脚资源更加丰富,大规模的系统设计的实现相对简单,大量软核可供使用用,有利于二次开发使用,不仅如此,而且FPGA具备可重构的能力,抗看等特点。因此,工业控制及其他领域也更加重视使
7、用FPGA,利用FPG完成VGA显示控制,可以使图像的显示脱离PC机的控制,形成体积小、功耗低的格式嵌入式系统(便携式设备或手持设备),应用地面勘测,性能检测等方面,具有重要的现实意义1。本设计在FPGA开发板上使用VGA接口的显示器显示彩条及简单的图形,可以成为整个采集系统的参考设计,实用价值良好。3.1.2 VGA显示接口VGA接口是一种D型接口,上面共有15针孔,分成三排,每排五个。 其中,除了2根NC(Not Connect)信号、3根显示数据总线和5个GND信号,比较重要的是3根RGB彩色分量信号和2根扫描同步信号HSYNC和VSYNC针2。VGA接口是显卡上应用最为广泛的接口类型,
8、多数的显卡都带有此种接口。其排列及接口定义如图1.2-1所示:图1.2-1 VGA接口图在基于FPGA的VGA控制中,只需要考虑行场同步信号(Vs)、同步信号(Hs)、蓝基色(R)、红基色(B)、绿基色(G)这5个信号。一旦能够从FPGA发出这5个信号到VGA接口,就表示可以实现对VGA的控制。3.1.3 VGA显示原理VGA显示的图像原理:常见之彩色显示器,一般由CRT(即:阴极射线管)构成。彩色则由R,G,B(红:RED,绿:GREEN,蓝:BLUE这三基色够成。显示则采取逐行扫描得方式解决,使得从阴极射线枪中发出的电子束得以打在具有荧光粉得荧光屏上,产生R,G,三基色的彩色像素。扫描随即
9、开始从屏幕的左上方进行,从左到右,从上到下,进行扫描,每扫完了一行,电子束则返回于屏幕左边下面一行的初始位置,在这期间,CRT把电子束消隐了,每行完成结束时,行同步则采用行同步信号进行,扫描完所有行;场同步则采用场同步信号进行,并使扫描回到屏幕的左上方,同时场消隐进行,准备下一场的扫描。它的行、场扫描时序示意图如图1.3-1所示。现拿正极性分析,说明CRT的全工作过程:R,G,B呈现正极性的信号,即视为高电平是有效的。当VS=O、HS=O时,CRT的内容被显示为亮的过程,即是正向扫描的过程大致为26s,当一行被扫描完成后,行同步HS=I,约需6s;其间,CRT的扫描会产生消隐,电子束即回到CR
10、T的左边的下一行得起始位置(X=O,Y=I),当扫描完成了480行以后,场同步VS=I,场同步的产生使扫描线回到CRT得第一行第一列(X=O,Y=O处,大约两个行周期)。Hs和Vs的时序图。行同步的消隐时间T1(约为6S);行显示的时间T2(约为26s);场同步的消隐时间T3(两行周期);场显示的时间T4(480行周期)3。 图1.3-1 行、场扫描时序示意图VGA得图形模式可以分成三类:CGA、EGA兼容的图形模式,标准的VGA图形模式及VGA扩展图形模式。后两种图形模式统称为VGA图形模式。本设计基于标准VGA模式来实现。通常我们接触的彩色显示器绝大多数是由CRT(阴极射线管)组成的,每个
11、像素得色彩均由红、绿、蓝三基色组成。采用逐行扫描得方式进行显示。阴极射线管中的电子枪在VGA显示模块产生的水平同步信号和垂直同步信号同时控制下产生电子束,使含有荧光粉得屏幕遭到轰击,产生红、绿、蓝三基色,合成一个新的彩色像素点在显示屏上。图1.3-2表示的是VGA显示模块与CRT显示器的控制框图。图1.3-2 VGA显示模块与CRT显示器的控制框图屏幕扫描即是电子束扫描一幅屏幕图像上的各个点的过程。当今的显示器都采用光栅扫描这一方式来进行它的屏幕扫描。电子束在光栅扫描下按照固定的路径扫过整个屏幕,在整个扫描中,电子束所通过的每一个点是否显示或已经显示得颜色是通过判断电子束的通断强弱来进行控制的
12、,电子枪在VGA显示模块产生的行同步和场同步等控制信号的作用下能够进行包括水平扫描,水平回扫,垂直扫描和垂直回扫等过程4。这种光栅扫描一般具备以下路径:在每一行从上到下并从左到右进行扫描。它具有如下过程:电子束首从屏幕的左上角开始向右扫,当达到屏幕得右边缘时,电子束(水平消隐)被关闭,并迅速回到屏幕的左边缘(水平回扫)。如果所有的水平扫描都以完成,电子束被结束并关闭在屏幕的右下角,随即及时回到屏幕得左上角(垂直回扫),启动下一次的光栅扫描。硬件进行编程之后,会输出标准VGA信号(红,绿,蓝三色信号和行、帧同步信号),链接15针VGA接口后输出至显示器,方能具备显示驱动程序的能力,驱动显示器显示
13、各种图像信号。板上的VGA接口只需使用其中的五个引脚,其中行、帧同步信号直接由FGPA输出;红、绿、蓝三色信号使用FPGA上8个引脚,8位数据,其中红色两位,绿色及蓝色各三位,通过电阻网络D/A变换后在显示器显示输出值,DA转换器在这个电阻网络上被模拟,输入信号的电压被分成几段。这样执行的原因,一方面是由于显示24位真彩色很少在实际应用被用到。此外考虑节约成本得想法,由于要用到专用DA转换器,成本必会增加。硬件电路如下图1.3-3所示:图1.3-3 VGA接口与FPGA的硬件电路图3.1.4 VGA时序VGA图像显示控制的设计需要注意两个问题:其中之一便是是时序的驱动,此乃完成设计的关键,时序
14、若有不同,便不正常显示,甚者会损害彩色显示器;最后是VGA信号的电平驱动。针对开发板的条件,若想得到25MHz的像素频率输出,则必须采用50MHz的系统时钟进行分频。FPGA通过串联电阻直接驱动5个VGA信号。每个颜色信号串一个电阻,每位的颜色信号分别是VGA_RED,VGA_BLUE,VGA_GREEN。每个电阻与终端的75欧电缆电阻相结合,保证颜色信号维持在VGA规定的0V0.7V之间。VGA_HSYNC和VGA_VSYNC信号使用LVTTL或LVCMOS3I/O标准驱动电平。通过VGA_RED、VGA_BLUE、VGA_GREEN置高或低来产生8中颜色,如表1.4-1所示:表1.4-1
15、颜色对照VGA_REDVGA_GREENVGA_BLUEResulting color000Black001Blue010Green011Cyan100Red101Magenta110Yellow111WhiteVGA信号的时序由视频电气标准委员会(VESA)规定。以下提供的VGA系统和时序信息作为例子来说明FPGA在640480模式下是如何驱动VGA监视器的。VGA显示器基于CRT,使用调幅模式,移动电子束(或阴极射线)在荧光屏上显示信息。LCD使用矩阵开关给液晶加压,在每个像素点上通过液晶来改变光的介电常数。尽管下面的描述仅限于CRT,LCD已经发展到可以同CRT使用同样的时序信号了。因此
16、,下面的讨论均适合CRT和LCD。在CRT显示器中,电流的波形通过蹄形磁铁产生磁场,使得电子束偏转,光栅在显示屏上横向显示,水平方向从左至右,垂直方向从上至下。当电子束向正方向移动时,信息才显示,即从左至右、从上至下。如果电子束从后返回左或顶边,显示屏并不显示任何信息。在消隐周期电子束重新分配和稳定于新的水平或垂直位时,丢失了许多信息。显示协议定义了电子束的大小以及通过显示屏的频率,该频率是可调的。现在的VGA显示屏支持多种显示协议,VGA控制器通过协议产生时序信号来控制光栅。控制器产生同步脉冲TTL电平来设置电流通过偏转磁铁的频率,以确保像素或视频数据在适当的时间送给电子枪。视频数据一般来自
17、重复显示存储器中一个或多个字节它们被分配到每个像素单元。入门实验板使用每个像素中的3位,产生图8中可能的一种颜色。控制器指定视频数据缓冲器以备电子束通过显示屏。然后,控制器接收并利用视频数据在适当的时间显示,电子束移动到指定的像素点。VGA控制器产生水平同步时序信号(HS)和垂直同步时序信号(VS),调节在每个像素时钟视频数据的传送。像素时钟定义了显示像素信息的有效时间段。VS信号定义显示的更新频率,或刷新屏幕信息的频率。最小的刷新频率是取决于显示器的亮度和电子束的强度,实际频率一般在60120Hz之间。给定的刷新频率的水平线的数量定义了水平折回频率。下表1.4-2的时序信号是640480,像
18、素时钟25Mhz,刷新频率60Hz1。图1.4-2说明了每个时序的联系。表1.4-2 640X480时序信号SymbolParameterVertical SyncHorizontal SyncTimeClocksLiensTimeClocksTSSync pulse time16.7ms4168,80052132s800TDISPDisplay time15.36ms384,00048025.6s640TPWPulse width64s1,60023.84s96TFPFront porch320s8,0001064016TBPBack Porch928s23,200291.92s48图1.4
19、-2 各时序之间的联系3.2 FPGA简介及设计流程3.2.1 FPGA简介目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,经过简单的综合与布局,可以很快的烧录到FPGA上进行测试,是现代IC设计验证的主流技术。这些可编辑的元件可以用来获得一些基本的逻辑门电路(如,AND,XOR,NOT),或更复杂的组合功能,如解码器或数学方程。在大部分的FPGA内,这些可以编辑部件包括记忆元件,如触发器(Flip-flop)或其他更完整的记忆块。系统设计者可以根据需要,通过编辑的逻辑连接FPGA内部链接,就像一个电路测试板是放在一个芯片。他们离开后成品砖和FPGA逻辑连接可以改变根据设计师的
20、设计,可以完成需要的FPGA逻辑功能。FPGA在总体来说比ASIC(专用集成芯片)速度将会放缓,无法完成复杂的设计,消耗更多的能量。但是他们也有许多优势,例如可以很快的成品,可以修改,以纠正错误的程序和便宜的成本。FPGA是在PAL(Programmable Array Log2ic),GAL(Generic PAL)等基础上发展起来,是一种具有丰富的可编程I/O引脚、逻辑宏单元、门电路以及RAM 空间的可编程逻辑器件,大概所有应用了门阵列、PLD与中小规模通用数字集成电路的场合均可应用FPGA 和CPLD器件。CPLD得设计基于E2CMOS工艺,它的基本逻辑单元则是由一些与、或阵列外加触发器
21、构成的,但FPGA则选择SRAM工艺进行设计,基本逻辑单元依据查找表而进行设计。查找表(Look-Up-Table)即LUT,LUT实际上是个RAM,使输入信号的各种组合功能得以一定的次序写入RAM中,然后特定的函数运算结果被输出于输入信号的作用下。目前FPGA中多使用4输入的LUT,为此每一个LUT都被看成一个有4位地址线的161的RAM。一旦用户采用原理图或HDL语言描述一个逻辑电路时,逻辑电路的所有可能出现的结果都可被FPGA开发软件自动计算出,并且会把结果事先写入RAM,为此,每当输入一个信号进行了逻辑运算也就同等于输入一个地址进行查表,找到地址相对应得内容,然后输出便可以。表2.1-
22、1是一个4输入与门得例子。表2.1-1 4输入与门对应的查找表实际逻辑电路LUT得实现方式a,b,c,d,输入逻辑输出地址RAM中存储的内容00000000000001000010001111111111因为进行静态存储器LUT是主要生产过程,截止目前,绝大多数的FPGA是基于静态存储器的过程,在这个过程中静态存储器芯片电源开启和关闭后信息将被丢失,必须需要额外的一个特殊的配置芯片,在通电的时候,通过特殊的配置芯片把数据加载在FPGA,然后FPGA能够正常工作,由于配置一个很短的一段时间里,不会影响到系统正常工作。3.2.2 FPGA设计流程一般来讲, FPGA的完整设计过程,包括电路设计与输
23、入、功能仿真、全面、综合仿真,实现和布局布线、布局仿真与验证,配线板级仿真与验证、调试和加载配置。在系统设计之前,首先要进行方案论证,系统设计,器件选择等一些准备工作。图2.2-1显示一个完整的FPGA设计过程。 图2.2-1 完整的FPGA设计流程QuartusII软件是Altera公司近年来提供的FPGA设计综合集成开发环境,以下以QuartusII软件为例分析FPGA设计过程。电路设计:将电路系统以一定的表达方式输入到计算机里面,即将设计人员的电路构想输入到EDA等工具上,原理图设计输入方法和硬件描述语言(HDL)的电路设计文本是常用的设计输入方法。现阶段进行一项大型工程的设计时,通常采
24、用得设计方法是HDL设计输人法,它利于自顶向下设计以及模块的划分及复用,可移植性和通用性好,设计不会因为芯片的工艺和结构得不同而变化,便于向ASIC移植。功能仿真:其又被称作综合前仿真,它的主要目的在于验证设计的电路结构和功能与设计意图是否相配对。在QuartusII软件中提供了两种工具(Simulator和Waveform Editor)便于进行仿真。此外在使用QuartusII时也可以采取第三方工具(如ModelSim)来导入源程序和testbench进行仿真。经过仿真能迅速发现设计上存在的错误,设计进度得于加快,设计的可靠性得到大幅提高。综合优化:是指将设计输入(HDL语言、原理图)翻译
25、成由基本逻辑单元(与、或、非门,RAM,触发器等)组成的逻辑连接(网表),依照其目标与要求(约束条件),将生成的逻辑连接优化,同时输出edf和edn等格式标准的网表文件,能为FPGA/CPLD厂家的实现布局布线器。此外QuartusII中也能够使用Analysis &Synthesis 命令进行综合,也可采用第三方的综合工具。综合后的仿真:其目的在于检查综合器的综合结果是否与设计输入一致,作综合后的仿真时,要在综合仿真模型中反标注综合生成的标准延时格式SDF(Standard Dela Format)文件,可以估计出门延时所带来的影响。即便综合后仿真虽然比功能仿真更为精确,却也只能估计门延时,
26、达不到估计线延时的效果,仿真结果相对于布线后的实际情况存在着相当的差距。现阶段主流的综合工具越来越趋近于成熟,相比而言,一般简单的设计,假如设计者认定自己表述明朗,不存在综合歧义,如此便可省略此步骤。实现布局及布线:在具体的FPGA/CPLD 器件上适配综合生成的逻辑网表,这么一个个过程呗称之为实现过程。布局布线为此过程中最重要的步骤。布局(Place)即指将在FPGA 内部的固有硬件结构上合理的适配逻辑网表中的硬件源语或者底层单元。布线即指FPGA内部里的各种连线资源被利用,并根据布局的拓扑结构能符合要求正确连接每个元件的过程。布局布线后仿真及验证:又被称为时序仿真或者后仿真。常被用于发现不
27、符合时序的约束条件或者器件的固有时序规则(建立、保持时间等)的时序违规状况。一般来说,布局布线后仿真步骤必须进行,静态时序分析被QuartusII自带的时序分析工具分析完成,此外它也可被第三方工具进行时序分析与验证6。板级仿真及验证:主要选取第三方的板级验证工具进行仿真和验证,这些工具通过对设计的IBIS,HSPICE等模型的仿真,能有效的分析信号在高速设计中是否完整性,电磁是否受干扰,等其他电路特性。加载配置及在线调试:在FPGA/CPLD芯片中进行生产配置文件的测试。在QuartusII 中主要是通过Assemble(生成编程文件)、Programmer(建立包含设计所有器件名称和选项的链
28、式文件)、转换编程文件等功能来支持这一步骤的。3.2.3 VHDL简介VHDL语言是一种被用于电路设计中的高级语言。出现于80年代的后期。它是由美国国防部开发出来的,起初它只供美军用来提高设计的可靠性和减少开发周期的一种小范围使用的设计语言。VHDL中文简称超高速集成电路硬件描述语言,是一种集设计、仿真、综合于一体的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,主要应用于数字电路的设计。VHDL语言作为IEEE的一种工业标准,因此掌握VHDL语言是实现信息系统硬件开发所必备的知识和技能。现阶段,在中国它主要是被用在FPGA/CPLD/EPLD的设计中。但是在一些技术较为先进的单
29、位,它也被用来设计ASIC。 VHDL主要是被用来描述数字系统的结构,行为,功能和接口。除了拥有的语句绝大多数具备硬件特征外,它得语言形式、描述风格以及语法于普通的计算机高级语言基本无异。VHDL的程序结构中最大的特点就是将一项工程设计,或称设计实体(可是单个元件,单一电路模块或一整个系统)分成外部(即可视部分及端口)和内部(即也视为不可视部分),既涉及实体的内部功能和算法完成部分。若设计实体被定义了外部界面后,其内部开发也以完成,那么这个实体就可被之后的设计直接调用。VHDL系统设计的基本点便来源于这种将设计实体分成内外部分的概念。相比与其他硬件描述语言,VHDL具有功能性强大、设计简单;支
30、持面广、修改方便;超强的系统硬件描述能力;设计可以独立于器件并与工艺无关;移植能力强;容易共享与复用等诸多特点,于此VHDL于其他描述性硬件语言更具备如下优势: 相比于其他描述性硬件语言,VHDL拥有更为强大的行为描述能力,因此也使得它成为了系统设计领域最适合的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 VHDL拥有多元化的仿真语句及库函数,因此任何规模的大系统得设计在其早期就能检验设计系统的功能是否可行,并无限制的对设计进行仿真模拟。 VHDL具有将大规模设计进行分解和再次利用已有的设计功能得益于其语句的行为描述能力和程序结构。符合
31、市场的需求,使得规模大的系统高效,高速的完成由有多人或者多个研发组同时并行工作才得以实现。 任何确定性的设计若使用VHDL,其逻辑综合和优化等过程都可用EDA工具进行,优点于EDA工具能自动把VHDL描述设计转变成门级网表。 VHDL可以独立性描述一个设计,即便设计者不懂硬件的结构,也不知道最终设计实现的目标器件是什么,也可以进行独立的设计。3.2.4 Quartus II简介Max+plus II作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+plus II 的更新支持。Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是QuartusII8.0版,该软件有如下几个显著的特点:此软件拥有友好的界面,使用便捷,功能强大,当中可编程逻辑设计环境采用完成集成化,是先进的EDA工具软件。该软件具备诸多特点(例如:开放性,与结构无联系,多平台设计,完全集成化,设计库丰富、工具模块化等),支持原理图、VHDL、VerilogHDL以及AHDL等
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1