《基于fpga的vga图像显示控制器设计--本科毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于fpga的vga图像显示控制器设计--本科毕业设计论文.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、可编程逻辑器件综合实验报告基于FPGA的VGA图像显示控制器设计一实验简介 本实验介绍了一种利用可编程逻辑器件实现VGA图像显示控制的方法,阐述了VGA图像显示控制器中VGA显像的基本原理以及功能演示,利用可编程器件FPGA设计VGA图像显示控制的VHDL设计方案,并在Altera公司的QuartusII软件环境下完成VGA模块的设计。而且给出了VGA模块的设计思路和顶层逻辑框图。最终实现VGA图像显示控制器,VGA图像控制器是一个较大的数字系统,传统的图像显示的方法是在图像数据传输到计算机,并通过显示屏显示出在传输过程中,将图像数据的CPU需要不断的信号控制,所以造成CPU的资源浪费,系统还
2、需要依靠计算机,从而减少了系统的灵活性。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、按键进行控制,按键按下后顺序切换子模式。第 25页可编程逻辑器件综合实验报告三实验内容3.1 VGA概述伴随着市场上液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端,不过基于VGA标准的显示器仍是目前普及率最高的显示器。如果想要驱动此类显示器,必须得有很高的扫描频率,以及极短的处理时间,综合诸多特点需要,所以选用FPGA来实现对VGA显示器的驱动。本次毕业设计即选用FPGA来实现VGA的显示。现在,基于FPGA的设计方案越来越被用于更多的嵌入式系统,在基于FPGA的大规模嵌入式系统设计中,为了更好的实现VGA显示功能,既能使用专用的VGA接口芯SPX7111A等,又可以设计和使用基
5、于FPGA的VGA接口软核,其优点在于能使用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的扫描会产生消隐,电
10、子束即回到CRT的左边的下一行得起始位置(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所示:
15、表1.4-1 颜色对照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的时序信号是6
18、40480,像素时钟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.92
19、s48图1.4-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,为此,每当输入一个信号进行了逻辑运算也就同等于输入一个地址进行查表,找到地址相对应得内容,然后输出便可
22、以。表2.1-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公司继
32、Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是QuartusII8.0版,该软件有如下几个显著的特点:此软件拥有友好的界面,使用便捷,功能强大,当中可编程逻辑设计环境采用完成集成化,是先进的EDA工具软件。该软件具备诸多特点(例如:开放性,与结构无联系,多平台设计,完全集成化,设计库丰富、工具模块化等),支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内部镶有自带的综合器和仿真器,能够完成从设计输入到硬件配置的完整PLD设计流程。Quartus II能够在多系统上使
33、用,为用户的设计方式提供了完善的图形界面。具有运行速度快,界面统一,功能集中,学用简单等特点。Quartus II支持Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10K系列,支持MAX7000/MAX3000等乘积项器件。支持MAXIICPLD系列、Cyclone系列、CycloneII、StratixII系列、Stratix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可利用充分成熟的模块,简化了复杂性的设计步骤、设计速度明显加快。支持
34、Altera的片上可编程系统(SOPC)开发,将系统级设计,开发嵌入式的软件,可编程逻辑的设计基于一体,是一款综合性的应用开发平台。其良好的支持第三方EDA工具,让用户能够使用自己了解的第三放EDA工具,并应用于设计流程的各个阶段。Altera公司的Quartus II可编程逻辑软件属于该公司第四代PLD开发平台,其设计要求可在一个工作组环境下,其中也包含支持基于Internet的协作设计。Quartus平台与纵多的EDA供应商所开发的工具能相兼容。LogicLock软件的模块设计功能得到相当的改进,增加了FastFit编译选项,网络编辑性能得于推荐,此外调试能力明显提升很多。四 设计方案4.
35、1 设计的主要内容此设计要求实现某一分辨率下(如640*48060Hz)的VGA显示驱动,能简单显示彩条和图像等。能够熟悉VGA接口协议、工作时序及VGA工作原理,并计算出合适的时序,对原始时钟进行分频处理以获取符合时序要求的各率,此外须要显示的图像等可存储于外部存储器,运行时,从外部存储器读取显示数据。将图像控制模块分为这样几部分;二分频电路、地址发生器、VGA时序控制模块、图像数据存储器读出模块.如图3.1-1所示:图3.1-1 VGA显示控制系统框图4.2 设计原理显示控制器是一个较大的数字系统,采用模块化设计原则、借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用VHDL硬件描
36、述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过。其中二分频把50MHZ实在频率分成25Mhz并提供给其它模块作为时钟;VGA时序控制模块用于产生640X480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号HS和垂直同步时序信号VS的值;存储器读出模块提供给SRAM地址并按地址读出八位数据(灰度值Y),然后得到R、G、B的值(若Y中间值,则R=G=B=1;否则R=G=B=0),并把R、G、B 的值通过VGA接口传送给VRT显示器9。地址发生器接收所要显示的数据读取控制信号,产生与图像数据ROM模块对应得地址,根据V
37、GA显示的像素分布,确定读取对应数据的地址,由于所显示的图形每行需256个像素,而ROM中每个地址存储的数据时64位,故每4个地址取出的数据用于一行的显示。VGA显示控制模块:主要分为时序信号和数据颜色的控制,imgrom模块即图像数据ROM模块,在这一模块中需要解决的是图像数据BMP位图文件的来源及转换成HEX文件,利用Image2lcd对本次设计图片处理得到BMP文件,最终在Quartus II得到HEX文件,在已设置LPM_ROM进行加载图像数据。注意其数据线宽为3,恰好可以放置RGB三信号数据,因此此设计图像仅能显示8种颜色。此外注意各模块对图像显示的区域控制。4.2.1 VGA时序控
38、制器模块图片想要在显示器上显示出来,它主要需要5个信号,行同步信号(HS)、场同步信号(VS)和RGB三基色信号。VGA时序控制模块是须严格按照VGA时序标准产生相应的脉冲信号。对这5个信号的时序驱动,VGA显示器要严格遵守“VGA工业标准”,即640*480*60Hz模式,否则会损坏VGA显示器。VGA工业标准要求的频率是:时钟频率为25.175MHz,行频为31469Hz,场频为59.94Hz。VGA的时序不是直接由模拟信号产生的,而是由数字信号控制的,为了将数字信号变成模拟信号,中间要经过D/A转换器(THS8134)处理。VGA接口的显示是通过行、场扫描的方式实现对显示器进行扫描控制实
39、现的。图2为VGA行扫描、场扫描的时序图。图2 VGA行扫描、场扫描时序图4.2.2彩条图形生成模块作为测试模式,该模式可以测试所连接的显示器以及整个VGA显示系统是否正常工作。在彩条生成模块中产生横彩条和竖彩条,横彩条通过场计数器vcnt计数进行控制,以显示相应的颜色。设计产生16个彩条,将480行的像素16等份,用vcnt来控制计数区域,不同的区域赋予不同的颜色值。竖彩条的显示原理与横彩条相似,只是使用行计数器hcnt来进行计数,把每行的640个像素16等份。4.2.3显示模块显示模块是整个显示控制器的重要组成部分,各个模块的输出数据都要经过模块处理后送到显示器。显示模块在VGA显示控制器
40、中起至关重要的作用。显示模块的输出信号通过D/A转换器的转换连到VGA接口,它是控制器和显示器进行通信的桥梁。该模块以可以VHDL语言实现。4.2.4存储模块当VGA显示器要显示一帧图像时,就会需要比较大的数据量,FPGA芯片内置的ROM存储器难以满足这么大的数据存储要求,必须把图像数据放入外部的存储器中。FPGA的外部存储器可以有多种选择,如ROM、EEPROM、SDRAM等。采用何种存储器将最终决定读取控制器的数据读取方式。如ROM可以用直接产生地址信号的方式对芯片进行访问,而SDRAM常常利用DMA控制方式配合CPU进行读写操作。本设计采用型号为28C040的4M EEPROM外部存储器,可以在单片内存储整个屏幕的图像。