基于FPGA的VGA显示设计及仿真实现_第1页
基于FPGA的VGA显示设计及仿真实现_第2页
基于FPGA的VGA显示设计及仿真实现_第3页
基于FPGA的VGA显示设计及仿真实现_第4页
基于FPGA的VGA显示设计及仿真实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科毕业论文(设计)论文题目 : 基于FPGA的VGA显示设计及仿真实现姓名:XXX学号:XXX班级:XXX年级:XXX专业:通信工程学院:信息工程学院指导教师:XXX完成时间:XXXX 年 X月 XX 日作者声明本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。毕业论文(设计)成果归XXX所有。特此声明。作者专业:作者学号:作者签名:年 月 日基于FPGA的VGA显示设计及仿真实现XXXThe Design

2、and Implementation of the VGA display based on FPGAXXXX 年 X月 XX 日摘 要本文简述了VGA显示的特点和工作原理,重点介绍了采用自顶向下层次化、模块化的设计方法,在FPGA上实现VGA的显示设计。显示绘图阵列(video graphic array,VGA)接口是LCD液晶显示设备的标准接口,VGA具有分辨率高、显示速率快、颜色丰富等优点。显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在FPGA的设计中可以使用很少的资源,就产生VGA各种信号,再加上VHDL语言灵活的描述方法以及与硬件无关的特点,使

3、得使用VHDL语言基于FPGA芯片实现VGA显示控制成为研究的方向。本文对基于VHDL的VGA的显示控制进行了研究,并设计了VGA显示器彩条信号发生器。所做的主要工作为:(1)在设计中采用了自顶向下的层次化、模块化的设计思想,将整个接口划分为多个模块,利用VHDL语言的描述方法进行了各个功能模块的设计,最终完成了VGA显示的系统设计。(2)运用ISE软件进行仿真。关键词: VHDL;VGA;ISE;彩条信号 - 7 -AbstractThis paper briefly describes the characteristics and working principle of VGA dis

4、play, focus on using the top-down hierarchical and modular design method, realization of VGA display design on FPGA.Display graphics array (video graphic array, VGA) interface is a standard interface LCD liquid crystal display device, VGA with high resolution, fast display rate, color rich, etc. Dis

5、play output because of its large amount of information, the output forms characteristics has become the most commonly used output device design now.In the design of FPGA can use less resources, and produce VGA signals, flexible coupled with VHDL language description method and has nothing to do with

6、 the hardware characteristics, make use of VHDL language based on the FPGA chip to realize VGA display control become the direction of research.In this paper, based on VHDL VGA display control is studied, and VGA display color bar signal generator is designed. The main work done as follows:(1)In the

7、 design USES the top-down hierarchical, modular design thought, will the whole interface is divided into several modules, use of VHDL language description method for the design of each functional module, finally completed the VGA display system design.(2) Using ISE software simulation.Keywords: VHDL

8、 ;VGA; ISE; Color bar signal 目 录1 概 述11.1 本选题研究的目的及意义11.2 本选题国内外研究状况综述21.3 本选题研究的主要内容32 VGA显示的理论研究42.1 VGA显示特点42.2 VGA显示原理43 ISE工具概述73.1 硬件描述语言73.2 ISE使用方法124 VGA显示的设计与仿真164.1 模块结构设计164.2 VHDL代码设计164.3 仿真验证17结 语18主要参考文献1附 录2附录1 接口设计程序21 概 述1.1 本选题研究的目的及意义VGA的英文全称是Video Graphic Array,即显示绘图阵列。VGA支持在64

9、0×480的较高分辨率下同时显示16种色彩或256种灰度,同时在320×240分辨率下可以同时显示256种颜色。VGA显示控制器控制图像信号通过电缆传输到显示器上并显示出来。目前的显示器技术主要包括两种:CRT(Cathode Ray Tube,阴极射线管)和LCD(Liquid Crystal Display,液晶显示屏)。CRT通过帧同步信号和行同步信号控制电子枪的电子束逐行逐点地扫描,将电子打在荧光点上,使之发光。通过视觉暂留的作用,看到的就是一副完整的画面。LCD与CRT类似,但CRT是模拟方式的,通过电路控制,电子束可以任意移动;而LCD是数字方式的,只有位置固定

10、的电流通路,所以只能通过电路矩阵逐行扫描,而不能逐点,即一行上所有的点同时工作。VGA接口是一种D型接口,上面共有15针空,分成三排,每排五个。VGA接口是显卡上应用最为广泛的接口类型,多数的显卡都带有此种接口。有些不带VGA接口而带有DVI(Digital Visual Interface数字视频接口)接口的显卡,也可以通过一个简单的转接头将DVI接口转成VGA接口,通常没有VGA接口的显卡会附赠这样的转接头。目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R,G,B三原色信号和行、场同步信号,信号通过电缆

11、传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于LCD、DLP等数字显示设备,显示设备中需配置相应的A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A/D2次转换后,不可避免地造成了一些图像细节的损失。VGA接口应用于CRT显示器无可厚非,但用于连接液晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降。显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在FPGA的设计中可以使用很少的资源,就产生VGA各种信号。为了通过VGA端口连接显示器显示前端采集到的图像数据,本课

12、题在Xilinx公司的SPARTAN-3E开发板上使用VGA接口在显示器上显示简单的彩条,可以作为整个采集系统显示设计的参考,具有一定的实用价值。1.2本选题国内外研究状况综述自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今,FPGA历史已经经历了十几年的发展历史。FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,是FPGA成为首选。自发明PFGA以来,就不断的推出新器件和开发工具,力求芯片的速度更高、功耗更低。主要推出了Virex

13、系列和SparanTM系列的FPGA,Vriex系列突破了传统FPGA密度和性能限制,使FPGA不仅仅是逻辑模块,而成为一种系统元件。而Spartan系列为替代ASIC的大容量FPGA树立了一个新的低成本标准。本课题使用的就是该公司的SPARTAN-3E开发板。VGA是IBM于1987年提出的一个使用模拟信号的电脑显示标准。在性能上,VGA将16色模式的分辨率提高到了640×480,同时VGA新提供了一种具有320×200分辨率、256种颜色的图形模式,且所显示的每一种颜色都可从262144(18位)种颜色中选择,VGA的这种色彩显示能力对微机图形/图象软件的发展起到了很大

14、的促进作用先后分别经历了EGA, EGA, VGA, SVGA, XGA, SXGA, UXGA, QXGA, WQXGA, QSXGA, WQSXGA, QUXGA, WQUXGA, 1080P。1920×1080分辨率(1080P)是美国电影电视工程师协会(SMPTE)制定的最高等级高清数字电视的格式标准,有效显示格式为:1920×1080,像素数达到207.36万。美国电影电视协会将数字电视扫描线的不同分为:1080p、1080i和720p。1080p是逐行扫描下达到1920×1080分辨率的显示格式,1080i是隔行扫描达到1920×1080分辨

15、率的意思,720p是1280×720分辨率下逐行扫描的意思。原NTSC国家采用的是108060Hz格式,与NTSC模拟电视场频相同;而欧洲及中国等PAL制国家则采用108050Hz的模式。VGA由于良好的性能迅速开始流行,厂商们纷纷在VGA基础上加以扩充,如将显存提高至1M并使其支持更高分辨率如800×600或1024×768,这些扩充的模式就称之为VESA(Video Electronics Standards Association,视频电子标准协会)的Super VGA模式,简称SVGA,现在的显卡和显示器都支持SVGA模式。VGA技术的应用主要基于VGA显

16、示卡的计算机、笔记本等设备,而在一些既要求显示彩色高分辨率图像又没有必要使用计算机的设备上,VGA技术的应用却很少见到。1.3 本选题研究的主要内容在撰文之前大量阅读了FPGA和VGA显示的有关资料,学习了相关的硬件知识和原理知识。深入学习和研究了VHDL的应用实例。在了解和对比VGA显示的几种实现方法后,经过思考、比较和讨论,决定以VHDL为VGA显示的描述语言,采用自顶向下层次化、模块化的设计方法,编写VHDL程序。本文主要分为5章,章节安排如下:第1章:绪论。主要介绍了开题的背景和研究意义,以及VGA显示的国内外研究现状。第2章:VGA显示的理论研究。主要介绍VGA显示实现的基本原理。第

17、3章:Xilinx ISE软件的具体使用。主要描述VHDL硬件语言以及介绍Xilinx ISE软件的具体使用。第4章:VGA显示的设计与仿真。VGA显示的VHDL语言实现,并在spartan-3E开发板上实现VGA显示功能,进行综合仿真并验证。第5章:后记。主要介绍本文的优点和不足之处。2 VGA显示的理论研究显示绘图阵列(video graphic array,VGA)接口是LCD液晶显示设备的标准接口,大多应用在显示器与显卡之间,同时还可以用在等离子电视输入图像的模数转换上。VGA具有分辨率高、显示速率快、颜色丰富等优点,同时VGA显示系统还具有成本低、结构简单、应用灵活的优点。VGA显示

18、输出RGB三原色信号,RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色,目前在图像显示领域中应用非常广泛。2.1 VGA显示特点 VGA的显示特点是:(1) 扫描格式繁多,分辨率从320×200一直延伸到1280×1024,行频15.870Hz,场频50100Hz。常见的行频有31.4Hz,37.8Hz,57.9Hz,62.5Hz等,常见场频有50Hz,60Hz,70Hz,100Hz,16700K种颜色之分。(2) 显示器的显示方式有两种:A/N显示方式和APA显示方式,即文本显示方式和图

19、形显示方式。A/N方式已淘汰不用,目前微机都采用APA图形方式。(3) VGA接口为显示器提供两类信号,一类是数据信号,一类是控制信号。数据信号包括红(Red)、绿(Green)、蓝(Blue)信号,简称RGB信号,控制信号包括水平同步信号和垂直同步信号。输出不同分辨率时,水平同步信号和垂直同步信号的频率也不相同。2.2 VGA 显示原理2.2.1 VGA 显示的工作原理常见的彩色显示器一般由CRT(阴极射线管)构成,彩色是由R(红)、G(绿)、B(蓝)3基色组成。显示是采用逐行扫描的方式,阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生RGB三色基,最后合成一个彩色图像。从荧幕的左上方开

20、始自左向右扫描,每扫完一行图像电子束回到下一行的最左端,每行结束后电子枪回扫的过程中进行消隐。然后重新开始行扫描,消隐,直到扫到荧幕的右下方,电子束回到荧幕的左上方重新开始新的图像扫描,并且在回到荧幕左上方的过程中进行消隐。在消隐过程中不发射电子束。每一行扫描结束时,用HS(行同步)信号进行同步;扫描完所有的行后用VS (场同步)信号进行同步。它的行场扫描时序示意图2.1所示。现以正极性为例,说明CRT的工作过程:R、G、B为正极性信号,即高电平有效。当VS=0,HS=0时,CRT显示的内容为亮的过程,即正向扫描过程约为26us。当一行扫描完毕,行同步HS=1,约需6us,期间,CRT扫描产生

21、消隐,电子束回到CRT的左边下一行的起始位置(X=0,Y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步是扫描线回到CRT的第一行第一列(C=0,Y=0处,约为两个行周期)。HS和VS的时序图。T1为行同步消隐(约为6us);T2为行显示时间(约为26us),T3为场同步消隐(两行周期);T4为场显示时间(480行周期)。图2.1 行场扫描时序示意图2.2.2 VGA 时序分析 通过对VGA显示基本工作原理的分析可知,要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。基于像素时钟,VGA时序控制器必须产生HS和VS时序信号。像素时钟定义了

22、用于显示一个像素信息的时间,VS信号定义了显示的刷新频率,通常刷新频率在50Hz到120Hz之间。给定刷新频率后即定义了水平扫描频率即HS。VGA的标准参考显示时序如图2.2所示。行时序和帧时序都需要产生同步脉冲(Sync)、显示后沿(Back porch)、显示时序段(Display interval)和显示前沿(Front porch)四个部分。其中场频定义了显示的刷新频率,指定场频后所要扫描的行数指定了水平回扫频率即行频。几种常用模式的时序参数如表2.1所示。图2.2 VGA时序参考图表2.1 VGA时序参考表图像模式行时序(µs)场频(lines)1024*768XGA(75

23、Hz)1.22.2130.232876811024*768XGA(60Hz)2.12.515.80.46297683800*600XGA(60Hz)3.22.2201.04236001800*600XGA(75Hz)2.03.820.30.531648013 ISE工具概述随着计算机软件、硬件和集成电路制造技术的飞速发展,数字电路硬件设计复杂程度的快速增长,以及产生的设计成果可继承性的需要,对数字电子系统的设计方法产生了极大的影响,传统的以中小规模集成电路为基础模块、以电路图为表达方式的数字电子系统的设计方法正逐步被EDA技术的设计方法所取代。3.1 硬件描述语言硬件描述语言(HDL,Hard

24、ware Description Language)是EDA技术的重要组成部分,常用的硬件描述语言有VHDL、Verilog、ABEL等。VHDL是EDA技术的主流硬件描述语言之一,也是本文设计所采用的硬件描述语言。3.1.1 VHDL的发展VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣

25、布自己的设计工具可以提供VHDL接口。此后VHDL在电子设计领域逐步取代了原有的各种非标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,并公布了新版本的VHDL,即IEEE标准的1076-1993版本(简称93版)。现在,VHDL和Verilog HDL作为IEEE的工业标准硬件描述语言,在电子工程领域已成为事实上的通用硬件描述语言。3.1.2 VHDL的特点VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特

26、点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分)。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL语言主要具有以下优点:(1)VHDL语言功能强大,设计方式多样VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功

27、能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。(2)VHDL语言具有强大的硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL语言既支持标准定

28、义的数据类型,也支持用户定义的数据类型,这样便给硬件描述带来较大的自由度。(3)VHDL语言具有很强的移植能力对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。(4)VHDL语言的设计描述与器件无关采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样,设计人员可以集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。(5)VHDL语言程序易于共享和复用VHDL语言采用基于库(librar

29、y)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,将这些模块存放在库中,就可以在以后的设计中进行复用。3.1.3 VHDL程序基本结构一般的VHDL程序可以由实体(Entity)、结构体(Architecture)、配置(Configuration)、程序包和程序包体(Package)以及库(Library)5个部分组成,它们是VHDL程序的设计单元。其中实体、配置和程序包属于初级设计单元,主要的功能是进行端口、行为、函数等的定义。结构体和程序包体是次级设计单元,包含了所有行为以及函数的实现代码。其中,程序包和程序包体又属于公用设计单元,即它们是被其他程序模块调用的。库则是一

30、批程序包的集合。图3.1所示为VHDL 程序设计单元之间的关系。 配置Package Body pb is .End Package Bodypkg.Entity demo is .End Entity demo.Configuration cfg for demo is.End Configuration demo.Package pkg is .End Package pkg.Architecture arch of demo is.End Entity demo.调用 实体 程序包 初级设计单元 次级设计单元 程序包体 结构体图3.1 VHDL 程序设计单元关系图无论是复杂的还是简单的数

31、字模块,用VHDL来描述都至少需要包括两个部分,即实体申明(Entity Declaration)和结构体(Architecture)。其中实体申明用于说明模块的端口,而结构体用于描述模块的功能。3.1.4 VHDL语言的使用(1)实体的申明方法实体是设计的基本模块和设计的初级单元,在分层次设计中,顶层有顶级实体,含在顶级实体中的较低层次的描述为低级实体,通过配置可把顶层实体和底层实体连接起来。实体语句用关键词ENTITY开头,实体名rsff是描述的符号名,在结束实体语句的END rsff之间,实体语句可以用关键词BEGIN把实体语句分成两部分:即BEGIN之前是实体说明,BEGIN之后是实体

32、语句。在ENTITY语句的实体说明部分,常用PORT付语描述实体对外界连接的端口(数目、方向和数据类型)。实体rsff有4个端口,Set/Reset是输入IN模式,Q/QB是输出BUFFER(缓冲)模式,都为BIT类型。实体描述的格式如下:ENTITY 实体名 IS GENERIC(常数名:数据类型:设定值 ;常数名:数据类型:设定值 ); PORT(端口名:端口模式 数据类型;端口名:端口模式 数据类型);END ENTITY 实体名;其中,GENERIC是用于说明设计实体和其外部环境通信的对象,规定端口的大小、实体中子元件的数目、实体的延时特性等。只能用整数类型表示,如整型、时间型等,其他

33、类型的数据不能逻辑综合。格式如下:GENERIC (CONSTANT属性名称:IN子类型标识:=静态表达式,);PORT 关键字用于定义模块的端口,它的格式如下:PORT(SIGNAL 端口名称:方向类型标识BUS :=静态表达式,SIGNAL 端口名称:方向 类型标识BUS :=静态表达式,SIGNAL 端口名称:方向 类型标识BUS :=静态表达式);SIGNAL:SIGNAL 是关键字,但是由于PORT 之后必须是信号类,所以一般可以将SIGNAL 关键字省略。端口名称:是该端口的标识,通常由英文字母和数字组成,但是必须是英文字母打头。方向:定义了端口是输入还是输出,如IN、OUT。表明

34、端口方向的关键字如表3.1所示。表 3.1 端口方向关键字说明表关键字意义IN输入,信号从此端口输入模块OUT输出,信号从模块的此端口输出INOUT双向端口,既可以输入也可输出BUFFER输出端口,此信号模块可再用LINKAGE不指定方向,无论哪个方向都可以连接类型标识:说明流过该端口的数据类型,常用的数据类型有BIT(位)、BIT_VECTOR(位向量)、BOOLEAN(布尔型)和INTEGER(整数型)4种。BUS关键字:在该端口和多个输出端相连的情况下使用。(2)结构体的描述方法结构体描述实体的行为功能,一个实体可以有多个结构体。结构体是一个基本设计单元,它具体地指明了所设计模块的行为、

35、元件及内部的连接关系,也就是定义了设计单元具体的功能。结构体对其基本设计单元的输入/输出关系可以用3 种方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。不同的描述方式只体现在描述语句上,而结构体的结构是完全一样的。由于结构体是对实体功能的具体描述,因此它一定要跟在实体的后面。结构体的格式如下:ARCHITECTURE 结构体名 OF 实体名 IS定义语句BEGIN并行处理语句END 结构体名;定义语句用于对结构体内部所使用的信号、常数、数据类型和函数等进行定义。信号定义和端口说明的语句一样,应有信号名和数据类型的说明。并行处理

36、语句具体地描述了结构体的行为及其连接关系,它们都可并行执行。VHDL结构体描述常常用到3种语句结构:PROCESS语句结构、BLOCK语句结构和子程序结构。在本设计中主要用到了PROCESS语句结构。PROCESS语句结构是一种并发处理语句,在一个结构体中多个PROCESS语句可以同时并行运行(相当于多个CPU同时运作)。PROCESS语句是VHDL 语言中描述硬件系统并发行为的最基本语句。PROCESS语句的格式如下:进程名:PROCESS(信号1,信号2,)BEGINEND PROCESS;(3)库库(Library)是经编译后的数据的集合,它存放包集合申明、实体申明、构造体申明和配置定义

37、。它的功能类似于UNIX 和MS-DOS 操作系统中的目录,在VHDL 中,库的说明总是放在设计单元的最前面.在VHDL 中可以存在多个不同的库,但是库和库之间是独立的,不能互相嵌套。申明库的格式如下:LIBRARY 库名;在VHDL 语言中存在的库大致可以归纳为5 种:IEEE 库、STD 库、ASIC 矢量库、用户定义库和WORK 库。本设计主要用到了IEEE库。在IEEE 库中的“STD_LOGIC_1164”包集合是IEEE 正式认可的标准包集合。现在有些公司提供的包集合如“STD_LOGIC_ARITH”、“STD_LOGIC_UNSIGNED”等,尽管没有得到IEEE 的承认,但是

38、仍汇集在IEEE 库中。在使用IEEE库前首先要进行说明,格式为:USE 库名.包集合名.项目名;如果项目名为ALL,则表示包集合中的所有项目都要使用,例如:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.ALL;USE WORK.STD_ARITH.ALL;库说明语句的作用范围从一个实体说明开始到它所属的构造体、配置结束为止。当一个源程序出现两个或两个以上的实体时,两条作为使用库的说明语句就在每个实体说明语句前重复书写。例如,在一个VHDL 文件中定义两个实体,库的申明如下:- 第一个实体的库申明LIBRARY IEEE;USE IEEE.

39、STD_LOGIC_1644.ALL;- 第一个实体申明ENTITY ent1 isEND ent1;- 第一个实体的结构体ARCHITECTURE arch1 of ent1 isEND arch1;- 第一个实体的配置CONFIGURATION cfg1 of ent1 isEND cfg1;- 第二个实体的库申明LIBRARY IEEE;USE IEEE.STD_LOGIC_1644.ALL;- 第二个实体申明ENTITY ent2 isEND ent2;- 第二个实体的结构体ARCHITECTURE arch2 of ent2 is3.2 ISE 使用方法3.2.1 ISE的主要功能I

40、SE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了可编程逻辑器件开发的全过程,从功能上讲,完成CPLD/FPGA的设计流程无需借助任何第三方EDA软件。下面简要说明各功能的作用:(1)设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(The ISE Text Editor),用于原理图编辑的工具,用于生成IP Core的Core Generator,用于状态机设计的StateCAD以及用于约束文件编辑的Constraint Editor等。(2)综合:ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌Mentor Grap

41、hics公司的Leonardo Spectrum和Synplicity公司的Synplify,实现无缝链接。 (3)仿真:ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDL Bencher,同时又提供了使用Model Tech公司的Modelsim进行仿真的接口。 (4)实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。(5)下载:下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了IMPACT,功能是进行芯片配置和通信,控制将程序烧写到FPGA芯片中去。3.2.2 ISE的使用方法(1)创建工程用ISE完成一个HDL设

42、计的仿真,必须建立一个ISE工程。启动ISE,单击菜单【File】/【New Project】,就会出现对应的“Create New Project”窗口。单击“Create New Project”窗口上的【Next】按钮,弹出“Device Properties”的窗口。直接单击【Next】进入下一步,一直点击【Next】直到【Finish】完成。完成后在Sources窗口中显示工程文件夹以及工程所用芯片。右击可以新建文件,添加已经写好的文件,添加文件并复制该文件到工程文件夹中。新建文件的类型,不同的类型有着不同的功能和意义。选择“VHDL Module”类型,输入一个名字点击【Next】

43、,进入下一级的添加实体端口,输入端口名和端口的类型及位数点击【Next】,就进入了最后的Summary窗口,上面给出了该文件的概要。输入要运行的程序,这样一个工程就建立完成了。(2)编译代码编写好后,点击保存,然后检查看编写代码是否有错误,如图3.2所示,Synthesize XST, Check Syntax, 点击检查后是绿色的勾,则代码没有错误,可以进行下一步功能仿真。图3.2 代码的编译(3)行为(功能)仿真同样在Sources区域右键添加New Source如图3.3所示,添加图形仿真文件:图3.3 添加图形仿真文件选择测试程序vga_controller,点【Next】,【Fini

44、sh】,双击测试文件,到如图3.4所示界面:图3.4 测试程序界面删除此段程序,添加如图3.5所示程序:图3.5 修改程序界面双击Simulate Behavioural Model,得到仿真波形,如图3.6所示:图3.6 波形编辑界面4 VGA显示的设计4.1 模块结构设计在ISE环境下用VHDL语言写出VGA显示器彩条信号发生器三种模式的产生过程,横彩条、竖彩条、行同步、场同步所对应的过程设计。通过外部拨动开关SW0控制,产生三种模式的显示变化。图4.1 VGA 控制电路时序产生原理框图如图4.1所示,为VGA控制电路时序产生原理框图。clk divid模块为分频电路,对50MHz系统时钟

45、进行分频产生50M/7Hz的像素时钟。VGA control模块为VGA显示控制电路模块,在像素时钟的驱动下首先产生行频信号,而后对行频信号进行分频产生58Hz场频信号。4.2 VHDL代码设计由于VS与HS信号具有严格的时序匹配,即VS信号必须为HS信号的整数倍,以保证在场频信号有效期间,能够完整数行的扫描,利用对行频信号进行计数分频来产生场频信号。在模式控制开关的控制下,三基色信号分别在不同的模式下输出不同的信号。表4.1为模式控制说明。表4.1 VGA显示控制器模式控制模式1SW0拨动第一次竖彩条:黑青红紫绿蓝黄白模式2SW0拨动第二次横彩条:白黄青绿紫红蓝黑模式3SW0拨动第三次棋盘格

46、显示模式模式开关:SW0上下拨动一次,产生高电平,改变显示模式,依次拨动SW0,显示模式在竖彩条模式、横彩条模式和棋盘模式之间循环切换。竖彩条的产生:利用行频产生计数器,分别在计数的不同时段赋予三基色信号不同的色彩信号。例如程序当中行频计数器029计数,当计数器值03时,三基色信号赋予“111”;当46计数时,三基色信号赋予“110”,如此类推,直到计数器值2123期间赋予三基色信号“000”,23以后进行消隐以完成回扫过程。横彩条的产生:例如场频计数器0481计数,当060计数时,三基色信号赋予“111”;当61120计数时,三基色信号赋予“110”,如此类推,直到421479期间,三基色信

47、号赋予“000”,479以后场频信号变低,以进行消隐,完成回扫。棋盘格式显示的产生:将以上两种情况进行异或,即相当于将横彩条和竖彩条进行叠加即可产生棋盘格式显示模式。程序中各引脚分配如表4.2所示。表4.1 VGA 显示控制器引脚分配信号名及对应板上资源信号名FPGA引脚分配全局时钟clkP80模式控制(SW0)mdP43行频hsP139场频vsP138红色分量1r<0>P153红色分量2r<1>P152红色分量3r<2>P151绿色分量1g<0>P150绿色分量2g<1>P147绿色分量3g<2>P146蓝色分量1b&l

48、t;0>P145蓝色分量2b<1>P144蓝色分量3b<2>P1404.3 仿真验证本文在ISE 14.4环境下对VGA显示控制进行仿真。仿真图如图4.2所示。图4.2 仿真图结 语近年来,随着社会的发展,电子产品越来越多的进入人们的生活和工作中,成为了我们生活中必不可少的一部分,随着计算机的普及,以及电子设备之间相互沟通的更加频繁,本论文实现VGA显示完成了以下研究:在设计中采用了自顶向下的层次化、模块化的设计思想,将VGA显示控制划分为多个子模块,利用VHDL进行了各个子模块的设计,并最终完成了VGA显示的系统设计。为了更好的验证仿真结果的正确性,文中应用了I

49、SE软件对设计的电路进行仿真测试,由于某些参数的设置不成功,没有能正确仿真出预先设计的波形指标。从以上对VGA显示控制的模拟仿真结果可以看出,整个波形不完全满足VGA显示控制的预计结果,但是由于个人水平有限,在短时间内没有设置成功。导致在设计中有很多不足之处没有解决,同时在实际中运用,一些理论完美化的设计需通过实际验证来判断接口的顺利传输。 本人认真进行了课题的研究并完成了本论文,由于作者水平有限,论文中可能仍有错误和不足之处,敬请大家批评指正。最后,感谢指导老师的关怀和细心的指导,感谢同学们的帮助。谢谢!主要参考文献1 夏宇闻. Verilog 数字系统设计教程M. 北京:北京航空航天大学出

50、版社,2003.72 田耕,徐文波编著. FPGA 数字电子系统设计与开发实例导航M. 北京:电子工业出版社,2005.63 刘韬,楼兴华主编. FPGA 数字电子系统设计与开发实例导航M. 北京:人民邮电出版社,2005.64 刘福奇主编. FPGA嵌入式项目开发实战M. 北京:电子工业出版社,2009.45 潘松,黄继业,潘明主编. EDA技术实用教程Verilog HDL版M. 北京:科学出版社,2008.116 纪志成,高春能主编. FPGA数字信号处理设计教程System Generater入门与提高M. 西安:西安电子科技大学出版社,2008.47 宋万杰,罗丰,吴顺君主编.CPL

51、D技术及其应用M. 西安:西安电子科技大学出版社,1999.98 孙航主编.Xilinx可编程逻辑器件的高级应用与设计技巧M . 北京:电子工业出版社,1995.29 徐志军,徐光晖编著. CPLD/FPGA的开发与应用M. 北京:电子工业出版社,2002.110 姜立东等编著. Verilog语言程序设计及应用M. 北京:北京邮电大学出版社,2004.611 褚振勇,翁木云编著. FPGA设计及应用M. 西安:西安电子科技大学出版社,2002.712 侯伯亨,顾新编著. VHDL硬件描述语言与数字逻辑电路设计M. 西安:西安电子科技大学出版社,2009.813 Sjoholm,L Lindh

52、主编边计年,薛宝熙译用VHDL设计电子线路M. 北京:清华大学出版社,2004.414 Xilinx 公司主页Spartan-3E FPGA Family:Complete Data SheetEB/OL 15 16 附 录附录 1 VGA显示设计程序Vga_controllor:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity vga_controller isport(clk : in std_logic;md : in s

53、td_logic; -模式hs : out std_logic; -行频vs : out std_logic; -场频r : out std_logic_vector(2 downto 0); -红色信号g : out std_logic_vector(2 downto 0); -绿色信号b : out std_logic_vector(2 downto 0); -蓝色信号end vga_controller;architecture Behavioral of vga_controller is component count6 port(clk:in std_logic; ca:out s

54、td_logic);end component; component vga isport(clk,md : in std_logic;r,g,b : out std_Logic_vector(2 downto 0);hs,vs : out std_logic);end component; signal tempclk : std_logic;begin xst1 : count6 port map (clk,tempclk); xst2 : vga port map(tempclk,md,r,g,b,hs,vs);end Behavioral;Vga:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity vga is port(clk,md : in std_logic; r,g,b : out std_logic_vector(2 downto 0); hs,vs : out std_logic); end vga;architecture a of vga is signal hs1,vs1,fclk,cclk : std_logic; signal mmd : std_logic_vector(1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论