《575203495毕业设计(论文)基于NIOS II的俄罗斯方块游戏设计与实现.doc》由会员分享,可在线阅读,更多相关《575203495毕业设计(论文)基于NIOS II的俄罗斯方块游戏设计与实现.doc(49页珍藏版)》请在三一办公上搜索。
1、论文编码(原论文分类号):TP39首都师范大学本科学生毕业论文基于NIOS II的俄罗斯方块设计与实现The Design and Implementation of Russian boxBased on NIOS II 论文作者 院 系 信息工程学院 专 业 计算机科学与技术 学 号 指导老师 完成日期 2010年 5月 10日 提要俄罗新方块游戏是一种古老而又有趣的游戏,游戏软件不计其数,本设计的实现是基于NIOS II的俄罗斯方块设计与实现,采用SOPC技术方案和基于NIOS II处理器开发游戏,尝试着把NIOS II软核处理器系统应用到俄罗斯方块游戏中,实现对游戏的控制功能。SOPC
2、即可编程片上系统,是一种特殊的嵌入式系统,它结合了SOC和PLD、FPGA各自的优点,具有多方面的特点,譬如,至少包含一个嵌入式处理器内核、丰富的IP Core资源可供选择、有足够的片上可编程逻辑资源、低功耗、微封装等优点,提高了应用上的灵活性。同时,在开发周期个价格上具有极大的优势。在构造基于NIOS II嵌入式处理器的俄罗斯方块游戏系统中,通过软核中的VGA显示与DE2-70开发板的硬件连接,成功的在显示器上进行游戏运行。NIOS IDE中并采用C语言设计了运行于该系统上的俄罗斯方块游戏。通过DE2-70开发板上的按钮输入,实现了俄罗斯方块的移动、旋转、消除满行、计分和加速等功能。经过实验
3、和测试结果的验证,证明本系统设计的正确性和基于NIOS II处理器开发游戏的可行性,为NIOS II处理器开发游戏奠定了技术基础。关键词:SOPC NIOS II VGA 俄罗斯方块游戏 DE2-70AbstractRussia is an ancient puzzle game new and fun games, games software countless realization of this design is based on the Russian box NIOS II design and implementation of programs using SOPC tec
4、hnology and develop games based on the Nios processor, try with the Nios soft core processor system applied to the Tetris game, to achieve control of the game. SOPC can be programmed on-chip system, is a special embedded system, which combines the SOC and the PLD, FPGA respective advantages, they ha
5、d many characteristics, for example, contains at least one embedded processor core, rich IP Core Resources to choose from, there are enough resources for programmable logic chip, low power, the advantages of micro-encapsulation to improve the application flexibility. Meanwhile, prices in the develop
6、ment cycle a great advantage. In the structure embedded processor-based Nios Tetris game system, through the soft core of the VGA display and DE2-70 development boards hardware connection, the success of the game running on the display. NIOS IDE and use in the C language designed to run on the syste
7、m on the Tetris game. DE2-70 development board through the button input, to achieve the movement of the Russian box, rotate, eliminate full-line, scoring and accelerated functions.Through experiments and test results have proved the correctness of the system design and develop games based on the Nio
8、s processor feasibility of developing games for the Nios processor technical basis.Keywords: SOPC NIOS II VGA Tetris Games DE2-70 目录第一章 引言1第二章 绪论22.1 研究的目的和意义22.2 研究的基础、背景和现状32.3 应用的相关技术52.3.1 SOPC技术52.3.2 开发环境62.3.3 硬件描述语言Verilog HDL7第三章 VGA显示的实现83.1 VGA显示原理83.1.1 VGA色彩显示103.1.2 VGA时序分析113.1.3 VGA时
9、序实现123.2 用Verilog HDL 描述VGA12第四章 俄罗斯方块硬件设计144.1 系统需求和设计思路144.2 硬件系统结构144.3 基于Nios II的硬件开发设计154.3.1 Quartus II软件设计154.3.2 SOPC Builder组件添加19第五章 NIOS II软件设计305.1 功能描述315.2 功能模块设计335.2.1 游戏执行的主要流程335.2.2 游戏方块功能355.3 数据结构设计365.4 函数功能描述385.5程序实现39第六章 俄罗斯方块结果演示及分析42收获、体验和致谢44参考文献45第一章 引言由莫斯科数学家亚历克西帕杰诺夫(Al
10、exey pajitnov)所设计的“俄罗斯方块”被公认为有史以来最畅销的游戏,至今魅力不减。俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新,演变出各种类似游戏,深受广大玩家喜爱。这个游戏有的简单,有的复杂,但其根本原理是一样的:都是对运动的方块进行组合,来训练玩家的反应能力。谈到游戏软件,大多数人都认为其神妙莫测,高不可及,而一般游戏软件也确实具有很高的技术难度,随着开发工具及软件开发方法学的不断发展,动手开发游戏也不是十分困难的。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。
11、采用SOPC技术方案和基于Nios处理器开发游戏,尝试着把Nios软核处理器系统应用到俄罗斯方块游戏中,实现对游戏的控制功能。本设计的重点之一是如何实现VGA显示,Altera公司为广大设计者提供了一系列的IP内核设计,其中包括VGA的设计和Verilog HDL语言描述。本系统参考了VGA的一些成功案例,完整的实现了Nios对VGA显示器的驱动控制;设计了由Nios处理器、数据传输接口等IP核构成的SOPC系统。采用Altera DE2-70 最新多媒体开发平台,该平台配备了数量高达70,000个逻辑单元的Altera Cyclone II 2C70,并完全承袭了Altera DE2 多媒体
12、平台丰富的多媒体、储存及网络等应用接口的优点。为系统设计提供了很多可支持的内存空间和硬件设计。软件设计在Nios II IDE中完成,采用C语言程序设计实现俄罗斯方块游戏的基本功能,并且将软件与硬件通过接口很好的结合。最后对游戏进行了测试,测试结果验证了本系统方案设计的正确性和基于Nios处理器开发游戏的可行性。第二章 绪论2.1 研究的目的和意义基于Nios II的嵌入式系统的可应用领域很广,包括网络、无线通信、医疗器械、交通、消费电子、工业控制、军事和航空航天等。在巨大的市场需求面前,兼之Nios II本身的众多优势,使Nios II的应用具备了巨大的发展空间。集成电路是中间产品,必须将它
13、装入到整机上才能发挥其作用,具体地说是通过印刷电路版(PCB)来集成到整机上去的。由于PCB板中各种IC芯片之间的连线延迟较大,再加上PCB板体积大、重量大、可靠性差等原因,使得整机系统的性能及可靠性受到严重影响。随着高性能系统对系统复杂度、处理速度、功耗、功能多样化的要求,在现代信息处理与通信系统如网络、多媒体、移动通信和其它电子系统中迫切需要开发高性能的片上系统。而Nios II,正是一个优秀的选择。Nios II处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用Altera Quartus II开发
14、软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。长期以来,Altera一直推行嵌入式处理器战略的原因是,随着应用的ASIC开发日益受到成本的困扰,OEM日渐转向FPGA来构建自己的系统。这些系统中绝大多数需要一个处理器,而Altera正是为设计者提供了为FPGA优化的灵活的嵌入式处理器方案,可以满足16位和32位嵌入式处理器市场的需求。对嵌入式开发而言,开发基于Nios II系统的好处很多。Altera DE2-70多媒体开发平台配备了数量高达70,000个逻辑单元的Altera Cyclone II 2C70,并
15、完全承袭了Altera DE2 多媒体平台丰富的多媒体、储存及网络等应用接口的优点。此开发平台提供多样的产品功能,在广泛的电路设计运用上,从简易的电路设计,到多样化的多媒体项目,使用者都能轻易完成。基于Nios II的系统实现了设计的可复用性,即使是同样一块开发板,根据载入的代码不同,可以实现不同的应用。这也是缩短开发周期、加快产品上市时间的一条捷径。本系统方案设计为基于Nios II处理器的游戏开发奠定了技术基础。2.2 研究的基础、背景和现状本题研究背景: 在集成电路发展初期,电路设计都从器件的物理版图设计入手,后来出现了集成电路单元库,使得集成电路设计从器件级进入逻辑级,这样的设计思路使
16、大批电路和逻辑设计师可以直接参与集成电路设计,极大地推动了IC产业的发展。但集成电路不是最终产品,它只有装入整机系统才能发挥它的作用。IC芯片是通过印刷电路板(PCB)等技术实现整机系统的。尽管IC的速度可以很高、功耗可以很小,但由于PCB板中IC芯片之间的连线延时、PCB板可靠性以及重量等因素的限制,整机系统的性能受到了很大的限制。随着系统向高速度、低功耗、低电压和多媒体、网络化、移动化的发展,系统对电路的要求越来越高,传统集成电路设计技术已无法满足性能日益提高的整机系统的要求。同时,由于IC设计与工艺技术水平提高,集成电路规模越来越大,复杂程度越来越高,己经可以将整个系统集成为一个芯片。正
17、是在需求牵引和技术推动的双重作用下,出现了将整个系统集成在一个集成电路芯片上的系统芯片(System On Chip,简称SOC)概念。系统芯片与集成电路的设计思想是不同的,它是微电子设计领域的一场革命。SOC是从整个系统的角度出发,把处理机制、模型算法、软件(特别是芯片上的操作系统嵌入式的操作系统)、芯片结构、各层次电路直至器件的设计紧密结合起来,在单个芯片上完成整个系统的功能。它的设计必须从系统行为级开始自顶向下。本题研究的基础:游戏电子产品属于嵌入式应用的一个重要门类,嵌入式系统的核心是CPU,以往采用的嵌入式CPU都是硬核器件,比如摩托罗拉公司的Coldfire, PowerPC等。最
18、近几年出现了在FPGA片内实现的软核CPU。硬核CPU以硅片的形式提交给用户,而软核CPU则以设计文件的形式交付给用户,用户再根据自己的需求将其固化在FPGA 芯片内这种新出现的技术有着非常广阔的应用前景。本题研究的现状:随着微电子技术和计算机技术的发展,可编程逻辑器件、EDA技术、嵌入式系统、SOC、SOPC、IP、核等新概念和新技术层出不穷,新技术的应用迅速渗透到电子、通信、信息、机械制造、仪器仪表、航空航天、家用电器等领域,有力地推动了社会生产力的发展和社会信息化程度的提高。软核CPU的本质是一段实现特定功能的代码,需要一款合适的FPGA作为载体。Nios II若配置在Cyclone I
19、I中,只占用35美分的逻辑资源,若配置在Stratix II中,可以实现超过20ODMIPS的高性能表现。在Cyclone II中也可以达到超过lOODMIPS的表现,足以与中低密度的ASIC形成竞争。Nios II不同于16位指令集的Nios,它是真正的32位软核CPU,具有32位的指令集、32位的数据路径和32位的寻址空间。Nios II脱胎于Nios,并分化出7三个版本。一种是Nios II/f,快速型;第二种是Nios II/s,标准型;第三种是Nios II/e,经济型。这三种产品都针对特定的价格和性能范围进行了优化,并都使用同样的指令集架构(ISA),具有100%二进制代码兼容性。
20、快速版本的Nios II具有最强的性能,其运算能力在175MHz时钟频率下可达大约200 Dhrystone MIPS(DMIPS)。它需要占用中等数量的FPGA资源,大约1180个逻辑单元。标准版本的性能略低于快速版本,其175MHz时钟频率下的运算能力为大约90DMIPS,但只需要占用800个逻辑单元。经济版本是三种版本中性能最弱的,其运算能力在190MHz时钟频率下仅能达到28DMIPS,但它所占用的FPGA资源最少,只需大约400个逻辑单元。可以根据自己设计的特定需求选择合适的软核。如果逻辑资源充裕,那么快速版本显然是首选。Nios II处理器能通过Quartus II开发软件中的SO
21、PC Builder系统开发工具添加到设计者的系统中。关于Nios II的开发现状。在baidu或google上用关键词Nios II搜索,只有一些概要性的介绍,并无具体的开发实例报道。也曾经试图通过中国期刊网,以及国内较有影响力的水木清华等高校BBS的嵌入式开发版寻找相关资讯,但是少有收获。这也是正常的。Nios II是Altera近几年新近推出的一款通用32位软核RISC CPU,目前作为开发板做教学、测试、实验的居多,比较著名的开发实例还没有,所以,可以说Nios II还处于开始阶段。作为Altera免费提供的IP(intellectual property),根据Altera自己提供的
22、资料,Nios II软核在配合Stratix II系列FPGA的情况下,可以实现超过20ODMIPS的性能表现。有这样美味的免费大餐可以吃,相信今后会有越来越多的人会加入Nios II开发者的行列。简要介绍一下国内外的几款Nios开发实例:无线阅读器 把Nios嵌入低成本FPGA Cyclone中,有小型化和低功耗两大特点,执行数据处理和无线接收的功能。光多业务节点 这是一款阿尔卡特开发的用于同步数字序列传输的产品。利用Nios的定制指令功能和同步多Master总线结构(Avalon),实现了吉比特(Gigabite)速率码流的可靠传输。ISDN协议处理器 飞利浦公司把Nios处理器运用于综合
23、业务数字网的协议处理器的在线更新。这一应用极大的提高了视频会议和IP网关服务的可靠性。数码相机中的通用控制处理器 柯达公司在某型号的数码相机中成功的应用了Nios处理器,作为DC的控制中枢。国内 对Nios的最高应用可能是某保密项目,该款应用同时使用了八个Nios软核,把Avalon总线的多master功能发挥的淋漓尽致。可以说,Nios是相当成功的。对比Nios,它的第二代Nios II处理器更是青出于蓝而胜于蓝。Nios II具备更强大的灵活性、更高的性能、更低的成本、占用更少的资源,能够满足各种嵌入式应用的性能要求。并且,Altera提供了更易用的Nios II开发套件提供给客户。Alt
24、era曾将其两代软核做了对比,结果显示Nios II只用了50%的逻辑单元就实现了2倍于Nios的性能。2.3 应用的相关技术2.3.1 SOPC技术SOPC(System-on-a-Programmable-Chip)即可编程片上系统,用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。因此,著名的可编程逻辑器件生产厂家美国Altera公司提出了基于PLD的SOC设计方案SO
25、PC。近年来SOPC技术已成为备受众多中小企业、研究所和大学院校青睐的设计技术。SOPC(System on a Programmable Chip)成为可编程片上系统,是Altera公司提出的一种灵活、高校的SOC解决方案,是一种新的软硬件协同设计的系统设计技术。SOPC集成了硬核或软核CPU、DSP、锁相环(PLL)、存储器、I/O接口及可编程逻辑,可以灵活高效地解决SOC方案,而且设计周期短,设计成本低。Nios II是一种软核(Soft-Core)处理器,软核处理器最大的特点就是可由用户需要进行设置。与专用CPU不同的是,Nios II是一个用户可以自行定制的CPU,用户可以增加新的外
26、设、新的指令,分配外设的地址等。Nios II的硬件开发就是由用户制定适合的CPU外设,Altera公司的SOPC Builder提供了大量的IP Core来加快Nios II外设的开发速度。综合来看,SOPC是PLD和ASIC技术融合的结果,可以认为SOPC代表了半导体产业未来的发展方向,对SOPC进行深入的研究不仅有利于半导体产业的发展,同时对微电子技术和计算机技术的发展也具有重要的意义。SOPC技术主要应用以下三个方向:1)基于FPGA嵌入IP硬核的应用。这种SOPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC
27、系统。 2)基于FPGA嵌入IP软核的应用。这种SOPC系统是指在FPGA中植入软核处理器,如:NIOS II核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOS II及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。 3)基于HardCopy技术的应用。这种SOPC系统是指将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。本设计是基于FPGA嵌入IP软核的应用,在硬件设计中植入NI
28、OS II软核处理器,根据俄罗斯方块的设计要求,对对NIOS II及其外围设备进行构建。2.3.2 开发环境1. Quartus II Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II是继承Altera Max+plus II后的新一代开发工具,适合大规模FPGA的开发。Quartus II提供了更优化的综合和适配的功能,改善了对第三
29、方仿真和时序分析工具的支持。Quartus II还包含DSP Builder和SOPC Builder等开发工具,支持系统级的开发,支持NIOS II嵌入式核IP核和用户自定义逻辑。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。SOPC Builder是Quartus II开发套件之一,支持NIOS II嵌入式核的开发与调试,可设置 、评估SOPC体系结构。SOPC Builder避免了手动系统集成任务,使设计者能够将精力集中在定制用户逻辑设计上,在更高级抽象层上进行设计。SO
30、PC Builder能够定制常用的SOPC Builder组件、IP核,高效地连接外部处理器和SOPC Builder可用IP库,自动生成系统HDL,形成优化的系统架构。SOPC Builder评估自动系统开发工具提供了强大的开发平台,可构成包括处理器、外设和存储器接口等常用系统组成的总线系统。通过Altera Quartus II开发软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。本设计采用的是Quartus II 8.0版本进行的系统开发。2 Nios IINios 嵌入式处理器是Altera公司推出的采用哈佛
31、结构、具有32位指令集的第二代片上可编程的软核处理器, 其最大优势和特点是模块化的硬件结构, 以及由此带来的灵活性和可裁减性。相对于传统的处理器, Nios 系统可以在设计阶段根据实际的需求来增减外设的数量和种类。设计者可以使用Altera 提供的开发工具SOPC Builder, 在PLD器件上创建软硬件开发的基础平台, 也即用SOPC Builder创建软核CPU和参数化的接口总线Avalon。在此基础上, 可以很快地将硬件系统(包括处理器、存储器、外设接口和用户逻辑电路)与常规软件集成在单一可编程芯片中。而且, SOPC Builder还提供了标准的接口方式,以便用户将自己的外围电路做成
32、Nios 软核可以添加的外设模块。这种设计方式, 更加方便了各类系统的调试。Nios II处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。Nios II集成开发环境(integrated development environment, IDE)是Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在Nios II IDE下完成,包括编辑、编译和调试程序。Nios II IDE提供了一个统一的开发平台,用于所有Nios II处理器系统。3 DE2-70开发板采用DE2-70开发平台,芯片使用cy
33、clone II EP2C70F896C6。2.3.3 硬件描述语言Verilog HDLVerilog HDL是一种硬件描述语言(hardware description language),是1983年由GDA(Gateway Design Automation)公司的Phil Moorby首创的,之后Moorby又设计了Verilog-XL仿真器,Verilog-XL仿真器大获成功,也使得Verilog HDL语言得到推广使用。由于Verilog HDL语言具有简洁、高效、易用、功能强大等优点,因此,逐渐被众多设计者接受了喜爱。Verilog HDL是目前应用最为广泛的硬件描述语言。Ve
34、rilog HDL是在C语言的基础上发展而来的。从语法结构上看,Verilog HDL继和借鉴了C语言的很多语法结构,两者有许多相似之处。当然,Verilog HDL作为一种硬件描述语言,与C语言还是有着本质区别的。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。Verilog HDL进行设计最大的优点是其工艺无关性这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电
35、路。概括地说,Verilog HDL语言具有以下一些特点:l 既适于可综合的电路设计,也可胜任电路与系统的仿真;l 能在多个层次上对所设计的系统加以描述;l 灵活多样的电路描述风格,可以进行行为描述,也可进行结构描述;支持混合建模,在一个设计中,各个模块可以在不同的设计层次上建模和描述;l Verilog HDL的行为描述语句,如and、or、nand 等可方便进行门级结构描述;内置各种开关级元件,如pmos、nmos、cmos等,可进行开关级的建模;l 用户定义原语(UDP)创建的灵活性;另外,Verilog HDL语言易学易用,可以使设计者更快更好地掌握并用于电路设计。Verilog HD
36、L的功能强可以满足各个层次设计人员的需要。正是以上优良的性能,使得它广泛流行。在ASIC设计领域,Verilog HDL语言一直就是事实上的标准。第三章 VGA显示的实现3.1 VGA显示原理VGA是IBM在1987年随PS2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。VGA的英文全称是Video Graphics Array,即显示绘图阵列。VGA支持在640X480的较高分辨率下同时显示16种色彩或256种灰度,同时在320X240分辨率下可以同时显示256种颜色。VGA接口是一种D型接口,上面共有15针空,分成三排,每排五个。
37、VGA接口是显卡上应用最为广泛的接口类型,多数的显卡都带有此种接口。有些不带VGA接口而带有DVI(Digital Visual Interface数字视频接口)接口的显卡,也可以通过一个简单的转接头将DVI接口转成VGA接口,通常没有VGA接口的显卡会附赠这样的转接头。图3-1 VGA 15针母插座 图3-2 VGA15针公插座 图3-3 VGA15针序号的排列一般在VGA接头上,会1,5,6,10,11,15等标明每个接口编号。如果没有,如上图所示编号。VGA接口15根针,其对应接口定义如表所示:PinNameDescription1REDRed Video (75 ohm, 0.7 V
38、p-p)(红色信号)2GREENGreen Video (75 ohm, 0.7 V p-p)(绿色信号)3BLUEBlue Video (75 ohm, 0.7 V p-p)(蓝色信号)4ID2Monitor ID Bit 2(显示器标识位2)5GNDGround(地)6RGNDRed Ground(红色地)7GGNDGreen Ground(绿色地)8BGNDBlue Ground(蓝色地)9KEY-Key(No pin)(空,无引脚)10SGNDSync Ground(同步地)11ID0Monitor ID Bit 0(显示器标识位0)12ID1or SDAMonitor ID Bit
39、1(显示器标识位1)13HSYNCCSYNCHorizontal Sync (or Composite Sync)(行同步)14VSYNCVertical Sync(场同步)15ID3or SCLMonitor ID Bit 3(显示器标识位3)表3-1 VGA接口定义图3-4 VGA针孔连接图15个管脚里有5个是最重要的,分别是红、绿、蓝三个基本色彩线和水平与垂直两条控制线,由这五条线,可以再屏幕内显示8中不同的色彩,如下表:表3-2 VGA颜色显示显示是采用逐行扫描的方式,阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生RGB三色基,最后合成一个彩色图像。从荧幕的左上方开始向右扫描,每
40、扫完一行图像电子束回到下一行的最左端,每行结束后电子枪回扫的过程中进行消隐。然后从新开始行扫描,消隐,直到扫到荧幕的右下方,电子束回到荧幕的左上方从新开始新的图像扫描,并且在回到荧幕左上方的过程中进行消隐。在消隐过程中不发射电子束。每一行扫描结束时,用HS(行同步)信号进行同步;扫描完所有的行后用VS(场同步)信号进行同步。VGA工业标准要求的频率:时钟频率:25.175MHz(像素输出的频率)行频: 31469Hz场频: 59.94Hz(每秒图像刷新频率)3.1.1 VGA色彩显示RGB 色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色 通道的变化以及它们相互之间
41、的叠加来得到各式各样的颜色的,RGB 即是代表红、 绿、蓝三个通道的颜色,通过三种基本颜色亮度值从 0255 不同产生出其他各种颜色,这种模式叫加色模式。三基色是指红,绿,蓝三色,各自对应的波长分别为700nm,546.1nm,435.8nm从原色的定义出发,或是以实际应用的结果为验证,都足以说明,把黄、品红、青称为三原色,较红、黄、蓝为三原色更为恰当。如下图所示:图3-5 VGA三原色3.1.2 VGA时序分析通过对VGA显示卡基本工作原理的分析可知,要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。几种常用模式的时序参数如表3所示。表3-3 VGA
42、时序参数数据通用VGA显示卡系统主要由控制电路、显示缓存区和视频BIOS程序三个部分组成。控制电路如下图所示。图3-6 通用VGA显示卡控制电路图控制电路主要完成时序发生、显示缓冲区数据操作、主时钟选择和DA转换等功能;显示缓冲区提供显示数据缓存空间;视频BIOS作为控制程序固化在显示卡的ROM中。行时序和帧时序都需要产生同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。VGA的标准参考显示时序如下图所示。图3-7 VGA标准参考时序图3.1.3 VGA时序实现首先,根据刷新频率确
43、定主时钟频率,然后由主时钟频率和图像分辨率计算出行总周期数,再把图1中给出的a、b、c、d各时序段的时间按照主计数脉冲源频率折算成时钟周期数。在CPLD中利用计数器和RS触发器,以计算出的各时序段时钟周期数为基准,产生不同宽度和周期的脉冲信号,再利用它们的逻辑组合构成图3-7中的a、b、c、d各时序段以及DA转换器的空白信号BLANK和同步信号SYNC。3.2 用Verilog HDL 描述VGAVGA工业标准时64048060Hz,主要有5个信号,即三个颜色信号R/G/B、行同步信号HS和场同步信号VS。它是从左上角开始一行接一行的扫描,扫描完一屏后又回到左上角扫描。标准要求是场频59.94
44、Hz,行频31469Hz,时钟频率25.175MHz。在设计时,可以先设计一个底层模块,输入是上层模块提供的屏幕上当前点的RGB值,输出是向VGA接口输出符合VGA时序的RGB、HS、VS信号,并将当前扫描电的值输出给上层模块。再设计上层模块,利用点阵或坐标绘图即可。上层模块收到底层模块的当前坐标,算出RGB传给底层模块。让底层模块负责显示就好了。VGA接口定义定义VGA时钟信号、颜色定义,场、行同步信号等/VGA/oVGA_CLOCK, /VGA ClockoVGA_HS, /VGA H_SYNCoVGA_VS, /VGA V_SYNCoVGA_BLANK_N,/VGA BLANKoVGA_
45、SYNC_N,/VGA SYNCoVGA_R, /VGA Red9:0oVGA_G, /VGA Green9:0oVGA_B, /VGA Blue9:0/VGA/outputoVGA_CLOCK; /VGA ClockoutputoVGA_HS; /VGA H_SYNCoutputoVGA_VS; /VGA V_SYNCoutputoVGA_BLANK_N;/VGA BLANKoutputoVGA_SYNC_N;/VGA SYNCoutput9:0oVGA_R; /VGA Red9:0output9:0oVGA_G; /VGA Green9:0output9:0oVGA_B; /VGA Blu
46、e9:0/ the_VGA 将VGA输入与输出端口进行匹配 .avs_s1_export_VGA_BLANK_from_the_VGA(oVGA_BLANK_N), .avs_s1_export_VGA_B_from_the_VGA(oVGA_B), .avs_s1_export_VGA_CLK_from_the_VGA(oVGA_CLOCK), .avs_s1_export_VGA_G_from_the_VGA(oVGA_G), .avs_s1_export_VGA_HS_from_the_VGA(oVGA_HS), .avs_s1_export_VGA_R_from_the_VGA(oVGA_R), .avs_s1_export_VGA_SYNC_from_the_VGA(oVGA_SYNC_N), .avs_s1_export_VGA_VS_from_the_VGA(oVGA_VS),.avs_s1_export_iCLK_25_to_the_VGA(iCLK_25),