有谁懂这个怎么搞,935f,安卓6.0模拟器,显示有信号

现在位置:
基于EDA的VGA彩条信号显示系统 详细内容
基于EDA的VGA彩条信号显示系统
基于EDA的VGA彩条信号显示系统
[摘要] :本设计是用 FPGA 来实现 VGA 图像控制器,控制显示器显示彩条信号,用VHDL语言,在QuartusII上实现软件仿真。本文首先介绍了VGA显示的基本原理,然后提出了一种VGA图像控制器的设计方案,并用VHDL硬件描述语言和原理图输入的方法完成了该方案的设计,通过显示横彩条、竖彩条、棋盘格,验证了VGA_SYNC同步信号功能模块时序的正确性, 软件实验环境为 Quartus II 6.0 开发软件。
本系统尝试用FPGA实现 VGA图像显示控制器,这一过程通过编程实现,之后通过软件的测试和仿真,当软件验证无误后完成硬件的下载验证,最终在显示器上实现输出,基本原理就是利用FPGA的可编程原理和VGA的时序控制原理,这在产品开发设计中有许多实际应用。例如显示器,电视等的维修,可以期望采用FPGA设计的VGA接口可以将要显示的数据直接送到显示器,就可以可靠的找到故障的大致原因等。从而省掉每次都要接信号源的麻烦,同时也节约了成本。节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本。同时亦可将其作为信号源,应用于电视机或计算机等彩色显示器的电路开发,方便彩色显示器驱动控制电路的调试。
在实际应用中,若对本系统稍作扩展,还可以对彩条信号产生模块方便地进行修改。比如,可以修改行、场计数器的判断值来调整彩条的大小,增加控制信号的位数,以及增加延时跳变的功能,使输出的彩条信号产生各种变化。这样,既可以用于调试彩色PDP电路,也可以用来作为PDP显示器的检测信号源。
此外,与VGA信号类似,改变行、场状态机的转换值和行、场计数器的设置,还可以产生其他各种模式的图像信号,以适应不同分辨率图像显示的需要。希望这些方法能为国内的显示器及相关产品在电路研制方面起到一点抛砖引玉的作用。
&[关键词]: VGA ;FPGA ;图像控制器
1&&&&&&&&&&& 前言
1.1 &&选题背景
现如今,随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。但基于VGA标准的显示器仍是目前普及率最高的显示器。若驱动此类显示器,需要很高的扫面频率,以及极短的处理时间,正是由于这些特点,所以可以用FPGA来实现对VGA显示器的驱动。
在许多图像处理系统中,需要将经过处理的图像显示出来,如果采用传统的办法将图像数据传回电脑并通过显示器显示出来,那么在传输的过程中就需要嵌入式系统的CPU不断的对所传输的图像数据信号进行控制,这样就造成了CPU资源的浪费,同样系统还需要依赖电脑,降低了系统的灵活性。如果采用FPGA对显示器的VGA接口进行设计,数据流只需要在整个系统的内部流动,而不需要依靠计算机,实现了系统的最小化,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性[1]。
VGA( 视频图形阵列) 作为一种标准的显示接口, 因为其输出信息量大, 输出形式多样等特点已经成为现在大多数设计的常用输出设备。与此同时, 各种大规模集成电路的出现也为大量数字化信息的处理提供了有效的手段。其中, FPGA( 现场可编程逻辑阵列) 即是其中比较有代表性的一种。FPGA( 现场可编程门阵列) 是可编程逻辑器件, 它是在PAL, GAL 等逻辑器件的基础上发展起来的, 同以往的PAL, GAL 等相比, FPGA 的规模比较大,它可以替代几十甚至几千块通用IC 芯片。它以操作灵活、开发迅速、投资风险低、可多次编程擦写和系统可编程等特点而成为一种可优化硬件电路设计且具竞争力的产品。
本设计依据Altera公司Cyclone II系列的FPGA进行设计,最终实现横彩条、竖彩条、棋盘格、字符、汉字及单色图像的显示。设计的硬件部分采用DE2开发板DD内含Altera Cyclone II 系列的EP2C35F672C6 FPGA芯片,并集成了许多外设,其中包含VGA显示接口。软件部分用VHDL语言进行编程,并在Altera公司的EDA软件工具Quartus Ⅱ进行程序编译、调试、波形仿真和下载。1.2&& &&开发环境介绍 1.2.1&&&&&&&&& &VHDL语言的概述
VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL主要用于描述数字系统的结构,行为,功能和接口。与其他硬件描述语言相比,VHDL具有以下特点:
(1)功能强大、设计灵活。
(2)支持广泛、易于修改。
(3)强大的系统硬件描述能力。
(4)易于共享和复用。
(5)独立于器件的设计、与工艺无关。
(6)很强的移植能力。1.2.2&&&&&&&&&& Quartus II6.0设计的方法
Quartus II design 是很高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。 QuartusII design 提供完善的基于块的设计流程。QuartusII design是唯一一个包括以timing closure 和基于块的设计流为基本特征的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。Altera Quartus II设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。
1.3&& &&实验步骤
(1)建立新工程项目:
打开 Quartus& II 软件,进入集成开发环境,点击 File→New project wizard 建立一个工程项目 VGA。
(2)建立文本编辑文件:
点击 File→New..在该项目下新建 Verilog HDL 源程序文件 VGA.v,输入试验程序中的源程序代码保存后选择工具栏中的按钮启动编译,若在编译中发现错误,则找出并更正错误,直到编译成功为止。
(3)选择器件型号及引脚的其他设置:
选择所用的 FPGA 器件----EP2C8Q208C8,以及进行一些配置。选择配置器件 EPCS4,设置不需要使用的 IO 功能为 As inputs,tri-stated。点击两次 ok,回到主界面。
(4)配置 FPGA 引脚:
在 Quartus II 软件主页面下,选择 Assignments→Assignment Editor 或选择工具栏上按钮,配置 clk 及相关引脚。
(5)编译工程项目:
在 Quartus II 主页面下,选择 Processing→Start Compilation 或点击工具栏上的按钮启动编译,直到出现“Full Compilation Report”对话框,点击 OK 即可。
(6)波形仿真。
(7)下载设计程序.sof 文件到目标 FPGA,下载采用 JTAG 方式。
2&&&&&&&& VGA 显示原理介绍 2.1&&&&&&&&&&&& &&VGA 接口简介
VGA(Video Graphics Array)是IBM于1987年提出的一个使用模拟信号的电脑显示标准,这个标准对于现今的个人电脑市场已经十分过时。即使如此,VGA仍然是最多制造商所共同支援的一个低标准,个人电脑在加载自己的独特驱动程式之前,都必须支援VGA的标准。VGA(Video Graphic Array)接口,即视频图形阵列,也叫 D-Sub 接口,是15 针的梯形插头,分成 3 排,每排 5 个,传输模拟信号。VGA 接口采用非对称分布的 15 针连接方式,其工作原理:是将显存内以数字格式存储的图像(帧)信号在 RAMDAC 里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。目前大多数计算机与外部显示设备之间都是通过模拟 VGA 接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为 R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟 CRT 显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于 LCD、DLP 等数字显示设备,显示设备中需配置相应的A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A/D2 次转换后,不可避免地造成了一些图像细节的损失。VGA 接口应用于 CRT 显示器无可厚非,但用于连接液晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降。VGA 接口的引脚分配如下图所示。
VGA接口为显示器提供两类信号, 一类是数据信号, 一类是控制信号。数据信号包括红(Red)、绿(Green)、蓝(Blue)三色信号, 简称RGB信号, 控制信号包括水平同步信号和垂直同步信号。
按照 VGA 接头(15HD)的标准,各引脚的定义如下(按倒梯形来看,从上到下,从右到左分别是 1-5 脚,6-10 脚,11―15 脚):
1 ――Red――模拟信号“红”
2 ――Green――模拟信号“绿”
3 ――Blue――模拟信号“蓝”
4 ――ID Bit――地址码
5 ――N/C――自测试(各家定义不同)
6 ――R.GND――模拟信号“红”的接地端
7 ――G.GND――模拟信号“绿”的接地端
8 ――B.GND ――模拟信号“蓝”的接地端
9 ――No.――保留(各家定义不同)
10――GND ――数子信号的接地端
11――ID Bit――屏幕与主机之间的控制或地址码
12――ID Bit ――屏幕与主机之间的控制或地址码(用于一个主机多个显 示屏)
13――H Sync―― 数字的水平行场信号
14――V Sync ――数字的垂直行场信号
15――N/C――地址码(各家定义不同)
按输出不同分辨率时, 水平同步信号和垂直同步信号的频率也不同。下表是在部分分辨率条件下使用的相应频率。&&
&&&&&&&&&&&&&&&&&&&& &&&&&&&&表1& 不同分辨率对应频率&
垂直同步信号频率
&&&&&&& Hz
水平同步信号频率
&&&&&& kHz
图像时钟频率
当分辨率为640*480时, 显示器每行占用840(31.5MHz/37.5kHz)个数据位, 其中640个数据位用于显示像素, 另外200(840-640)个数据位用干输出水平同步信号和水平消隐信号。垂直方向有行, 其中行用于显示像素, 其余一行用于输出垂直同步信号和垂直消隐信号。垂直方向有500(37.5kHz/75Hz)行,其中480行用于显示像素,其余20(500-480)行用于输出垂直同步信号和垂直消隐信号。水平同步信号和垂直同步信号都采用低电平同步方式。水平同步信号低电平约保持2us 相当于63数据位长度。垂直同步信号低电平约保持80us,相当于3行数据位长度。
当显示时,存于ROM的RGB信息应该转换成模拟量,然后输入给VGA的R、G、B三个端口,这时可以把显示器看成一个大型点阵,通过控制坐标就能控制区域显示,以及一些简单的变化。
对于普通的 VGA 显示器,共有 5 个信号:R、G、B 三基色信号,行同步信号 HS 场同步信号 VS。对于时序驱动,VGA 显示器要严格遵循“VGA 工 业标准”,即 600*480*60HZ 模式,否则可能会损害 VGA 显示器。VGA 的时序根据不同的显示分辨率和刷新频率会有变化。
2.2&&&&&&&& 三基色混色原理
常见的彩色显示器一般都是由CRT (阴极射线管) 构成,每一个像素的色彩由R ( 红, Red) 、G( 绿,Green) 、B(蓝,Blue) 三基色构成。显示时采用的是逐行扫描的方式。由VGA 显示模块产生的水平同步信号和垂直同步信号控制阴极射线管中的电子枪产生电子束,轰击涂有荧光粉的屏幕,产生RGB 三基色,于显示屏上合成一个彩色像素点。图1-1表示的是VGA 显示模块与CRT 显示器的控制框图 [5] 。
图1-1 VGA 显示模块与CRT 显示器的控制框图
像素是产生各种颜色的基本单元。根据物理学中的混色原理,三色发光的亮度比例适当,可呈现白色。适当的调整发光比例可以出现不同的颜色。三基色混色原理示意图如图1-2所示,编码如表1-1 [6] 。
图1-2 三基色混色原理
表1-1 三基色颜色编码
2.3&& &&行场扫描
电子束扫描一幅屏幕图像上的各个点的过程称为屏幕扫描。现在显示器都是通过光栅扫描方式来进行屏幕扫描。在光栅扫描方式下,电子束按照固定的路径扫过整个屏幕,在扫描过程中通过电子束的通断强弱来控制电子束所经过的每个点是否显示或显示的颜色。电子枪在VGA 显示模块产生的行同步、场同步等控制信号的作用下进行包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程。由图1-3可以看出,扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行行消隐,每行结束时,用行同步信号(HS)进行行同步;扫描完所有行,用场同步信号(VS)进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐[7] 。
图1-3 屏幕扫描原理
3&&&&&&&&&&&&& 系统设计方案及硬件选型 3.1&& &&方案论证
EDA技术指的是以计算机硬件和系统软件为基本工作平台,继承和借鉴前人在电路和系统、数据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最新科技成果而研制成的商品化EDA通用支撑软件和应用软件包。
硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言, VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。
FPGA即现场可编程门阵列,也是EDA技术的重要组成部分。它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
采用EDA技术自顶向下的设计方法将需要设计的系统分成若干模块,对各个模块进行独立设计,最后将各个模块集成为最终的系统模块,并对其进行综合测试和评估,给系统的设计带来方便。自顶向下设计方法流程如图2-1[3]。
综上,采用EDA技术实现VGA图像控制器。首先,编写VHDL程序来实现RGB、HS、VS的信号控制;其次,在EDA开发工具--Quartus Ⅱ软件中仿真;再次,调用FPGA片上ROM来存贮要显示的数据;最后下载到FPGA上实现VGA图像控制器。
&SHAPE& \* MERGEFORMAT
图2-1 自顶向下的设计流程3.2&& &&方案选择
本设计采用EDA技术和VHDL语言并结合FPGA技术来实现VGA图像控制器。VHDL以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事件,具有描述由相关和不相关的多维时空组合的复合体系统的功能。既避免了采用单片机带来图像的失真,又无需浪费太多的资源。FPGA速度和片上存储器为VGA图像控制提高了可靠性。采用EDA技术实现VGA图像控制器的实现具备可行性,而且在现有的实验室条件下,可以很容易的实现VGA的图像控制。
本设计硬件部分使用DE2开发板,板上包含VGA接口,并可提供50MHZ的时钟频率经过时钟二分频产生系统要求的25MHZ的频率即(像素输出频率);开发软件采用Altera公司的Quartus Ⅱ6.0。
本设计需要重点考虑的是VGA时序控制的准确性。只要VGA时序控制正确,那么就可以很容易的实现彩条、字符、汉字、单色图像的显示。3.3&& &&开发板及开发软件简介
本设计硬件下载采用DE2开发板;软件设计采用Altera公司的FPGA开发软件DDQuartus Ⅱ6.0。 首先,在Quartus Ⅱ6.0软件上进行系统的编程、编译及仿真;然后在实验开发板上进行硬件下载调试。3.3.1&&&&&&&&&& DE2开发板实物图片
图3-1 DE2开发板图片
(1)USB Blaster电路
DE2平台上内置了USB Blaster电路,使用方便而且可靠,只需要一根USB电缆将电脑和DE2平台连接起来,就可以进行调试。DE2平台上的USB Blaster提供了JTAG下载与调试模式、主动串行(AS)编程模式。使用该编程器之前,必须安装其驱动程序方可使用。该编程器相当于一个USB外设,支持即插即用,为程序的下载调试带来许多方便。
DE2平台提供了两个时钟源:一个是晶振Y1提供的50MHz时钟,连接在EP2C35芯片的N2引脚上;另一个是晶振Y3提供的27MHz时钟,连接在EP2C35芯片的D13引脚上;还可以从接口J5输入外部时钟,连接到EP2C35芯片的P26引脚上。本设计采用Y1提供的50MHZ频率经过二分频后产生25MHZ来作为系统的时钟频率,以满足系统的时钟要求。
(3)VGA接口
开发板上的VGA接口,为本设计的硬件下载调试带来了极大的方便。开发板上的EP2C35F672C6芯片通过D/A转化芯片ADV7123连接到VGA接口来控制一个外接的显示器。VGA接口,也称D-sub接口,上面共有15针空,分成三排,每排五个,如图3-2所示。FPGA将产生以下信号:十位的RGB三基色信号、HS(行同步信号)、VS(场同步信号),BLANK(消隐信号),SYNC(同步信号)来控制外接的显示器。VGA接口与ADV7123的原理图连接如图3-3所示。
1:红基色& 2:绿基色& 3:蓝基色& 4:地址码& 5:自测试
6:红地&&& 7:绿地&&& 8:蓝地&&& 9:&&&&&& 10:数字地
11:地址码 12:地址码 13:行同步 14: 场同步 15:地址码
图3-2 VGA接口引脚信号图
3.3.2&&&&&&&& VGA接口与ADV7123的原理图
图3-3 VGA接口与ADV7123的原理图
DE2开发板选用的FPGA芯片EP2C35F672C6是Altera公司的Cyclone II系列产品之一。芯片封装为672引脚的Fineline BGA,是2C35中引脚最多的封装,有475个I/O引脚供用户使用。该芯片由33 216个LE组成。片上有105个M4K RAM块,每个M4K RAM块由4K位的数据RAM加512位的校验位组成,共有483 840位。端口数据宽度根据需求进行配置,可以是1、2、4、8、9、16、18、32或36位。在1、2、4、8、9、16、18等模式下,是真正的双端口操作,即可以配置成一读一写、两读或两写。EP2C35片内有35个18x18的硬件乘法器,利用Altera 公司提供的DSP Builder和其他DSP的IP库,可以低成本地实现数字信号处理。EP2C35片上有4个PLL,可实现多个时钟域。本设计使用到的教学开发板板载此芯片,利用Quartus Ⅱ将VHDL程序下载到此芯片进行硬件调试。4&&&&&&&&&&&&& VGA彩条控制器的硬件设计 4.1&& &&系统设计框图
根据自顶向下的程序设计思想,采用模块化设计,对VGA图形控制器进行功能分离并按层次设计。利用VHDL硬件描述语言逐一对每个功能模块进行描述,并逐个通过编译仿真,最后下载到硬件平台调试。本设计的VGA控制器主要由以下模块组成:
分频模块:由于实验室提供的FPGA开发板的时钟源为50MHZ,而VGA工业标准要求为25.175MHZ约等于25MHZ;因此必须对50MHZ进行二分频,本设计采取Quartus Ⅱ自带的PLL锁相环技术来进行50MHZ的二分频,以符合VGA工业标准要求的25MHZ的频率。
VGA时序控制模块:此模块是本设计的最重要的模块。根据VGA工业标准的要求:行频:31469HZ,场频:59.94HZ,进行VHDL语言设计,以产生符合工业标准的行同步信号和场同步信号并添加一些输出端口,以方便验证模块的正确性。
LPM_ROM模块:设计此模块的目的在于,结合二分频模块和VGA时序控制模块构成一个完整的VGA控制器,并在VGA显示器上实现出字符、汉字及单色图像的显示,以验证VGA图像控制器的正确性。本设计利用实验室开发板板载的FPGA片上ROM存储数据,并利用Quartus Ⅱ软件上的LPM宏模块定制工具来设计FPGA片上ROM的读取控制。
图4-1显示系统整体框图[8],图4-2为DE2板上的实际连线图。
图4-1 VGA图像控制器硬件设计框图
图4-2 硬件连接图4.2&& &&时钟二分频模块设计
由于DE2开发板提供50MHZ的时钟信号,不提供25MHZ的时钟,通过Quartus Ⅱ的MegaWizard Plug-In Manager工具中的ATLPLL锁相环模块对50MHZ时钟信号进行二分频设计。
设计步骤如下:
(1)打开Quartus Ⅱ软件,选择tools菜单栏下的MegaWizard Plug-In Manager工具,弹出下图4-3对话框,选中Create a new custom....单选按钮,单击next产生图4-4对话框,在左栏选择I/O项下的ATLPLL,再选择Cyclone II器件和VHDL语言方式;最后输入PLL文件存放的路径和文件名:E:\vhdl_file\82\PLL\pll.vhd,单击NEXT按钮。
图4-3 定制新的宏功能块
图4-4 ATLPLL宏功能块设定
(2)在图4-5所示窗口中设置参考时钟频率为50MHZ(就是要分频的时钟),单击next显示图4-6窗口,在Lock output设置框里去掉locked;单击NEXT,弹出图4-7对话框,不需要进行设置;直接在单击NEXT,弹出图4-8对话框,设置C0的倍频为1/2;接着一直单击NEXT,最后点击finish完成二分频模块设置。
图4-5 选择参考时钟为50MHZ
图4-6 删除locked输出线
图4-7 无需增加内部时钟
图4-8 设置分频系数为1/2
图4-9 二分频模块时序仿真波形图
图4-10 复位时的时序仿真波形图
图4-11 时钟二分频模块图
inclk0为外部输入时钟,c0为分频后输出时钟,areset为高电平复位。由图4-9的波形仿真图可知,输出时钟c0是输入时钟inclk0周期的两倍,即对inclk0进行了二分频。由此表明了设计的正确性。由于PLL锁相环由门电路构成,故有波形中有一段时间的延迟。复位时不产生时钟信号,如图4-10所示。设计好了时钟二分频模块就可以进行其他模块的设计 [3] 。4.3&& &&VGA时序控制模块
时序控制模块主要用来产生符合工业标准的HS,VS信号的输出。4.3.1&&&&&&&&&& VGA信号的工业标准
VGA时序控制模块是整个显示控制器的关键部分,最终的输出信号及行、场同步信号必须严格按照VGA时序工业标准产生相应的脉冲信号。对于CRT显示器的VGA接口,其中的R,G,B(三基色信号),HS(行同步信号),VS(场同步信号)必须严格遵循“VGA工业标准”,即640 Hz×480 Hz×60Hz模式。图4-12所示是计算机VGA(640 ×480 ,60 Hz) 图像格式的信号时序图, 其点时钟DCLK 为25.175 MHz , 场频为59.94 Hz。图中, Vsync 为场同步信号, 场周期TVsync 为16.683 ms ,每场有525 行,其中480 行为有效显示行,45 行为场消隐期。场同步信号Vsync 每场有一个脉冲,该脉冲的低电平宽度twv为63μs (2 行) 。场消隐期包括场同步时twv 、场消隐前肩tHV (13 行) 、场消隐后肩tVH (30 行) ,共45 行。行周期THsync为31.78μs ,每显示行包括800 点,其中640 点为有效显示区,160 点为行消隐期(非显示区) 。行同步信号Hsync 每行有一个脉冲,该脉冲的低电平宽度tWH为3.81 μs (即96 个DCL K) ;行消隐期包括行同步时间tWH ,行消隐前肩tHC (19 个DCL K) 和行消隐后肩tCH(45 个DCL K) ,共160 个点时钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域是低电平[9]。
图4-12  VGA 信号时序图
具体的行、场扫描时序图4-13、图4-14及表4-1、表4-2。
图4-13 行同步信号的时序
图4-14场同步信号的时序
表4-1 行扫描时序要求:(单位:像素)
时间(像素)
表4-2 场扫描时序要求:(单位:行)
时间(行)
说明:由于实验室开发板无法提供25.175MHZ精确的时钟,故采用实验板50MHZ二分频得到25MHZ的时钟进行波形仿真和硬件下载。4.3.2&&&&&&&&&& VGA时序模块设计
本模块的编程思想为:在程序中定义两个计数器,分别进行行计数和场计数。在规定的行周期和场周期下进行计数;当计数器值达到行同步信号和场同步信号规定值时就进行行/场同步信号的输出,并控制其他信号的输出。根据图4-13、图4-14、表4-1、表4-2及程序流程图4-15进行程序编写[10、11、12、13]。
图4-15 时序模块的程序框图4.3.3&&&&&&&&&& VGA时序模块程序
时序模块的程序详细分析如下各个程序段所示:
行计数控制程序段一:
AA:PROCESS(clkin,reset)
&&& if reset='1' then
&&&&&& hcnt&=(others=&'0');--复位时点计数器清零
&&& elsif (clkin'event and clkin='1') then
&&&&&& if hcnt&h_period then
&&&&&&&&& hcnt&=hcnt+1;
&&&&&& else
&&&&&&&&& hcnt&=(others=&'0');--当点计数到达计数周期时将重置
&&&&&& hcntout&=
程序分析:程序中定义一个信号:hcnt为点计数器,若reset为高电平则点计数器清零。否则在行扫描周期内(0-799像素),时钟信号的上升沿到达时点计数器就加1,当点计数到达计数周期时点计数器将清零。最后把信号指向hcntout端口输出。
场计数控制程序段二:
BB:PROCESS(hsync,reset)
&&& if reset='1' then
&&&&&& vcnt&=(others=&'0');--复位时行计数器清零
&&& elsif (hsync'event and hsync='1') then
&&&&&&&&& if vcnt&v_period then
&&&&&&&&&&&& vcnt&=vcnt+1;
&&&&&&&&& else
&&&&&&&&&&&& vcnt&=(others=&'0');--当行计数到达计数周期时将重置
&&&&&& &&&vcntout&=
程序分析:程序中定义一个信号:vcnt为行计数器,若reset为高电平则行计数器清零。否则在场周期(0-524行)内,时钟信号的上升沿到达时行计数器就加1,当行计数到达计数周期时行计数器将清零。最后把信号指向vcntout端口输出。vcntout、hcntout两个信号的引出主要用于VGA时序验证(通过彩条实验)及字符、汉字模块的地址,数据信号的选通。
行同步程序段三:
CC:PROCESS(clkin,reset)
&&& if reset='1' then
&&&&&& hsync&='1';--复位时不产生行同步脉冲
&&& elsif (clkin'event and clkin='1') then
&&&&&&&& if (hcnt&=(h_pixels+h_front) and hcnt&(h_pixels+h_synctime+h_front)) then
&&&&&&&&& hsync&='0';--产生行同步信号
&&&&&&&& else
&&&&&&&&& hsync&='1';
程序分析:程序中定义一个信号:hsync为行同步信号, 若reset为高电平则行同步信号输出高电平。在时钟信号的上升沿到来时,当点计数器在计到行同步脉冲区时才产生行同步时间(低电平),否则不产生行同步信号。行同步信号宽度为96个外部时钟脉冲,即表4-1中的Ta。
场同步程序段四:
DD:PROCESS(hsync,reset)
&&& if reset='1' then
&&&&&& vsync&='1';--复位时不产生场同步脉冲
&&& elsif (hsync'event and hsync='1') then
&&&&&&&& if (vcnt&=(v_lines+v_front) and vcnt&(v_lines+v_synctime+v_front)) then
&&&&&&&&& vsync&='0';--产生场同步信号
&&&&&&&& else
&&&&&&&&& vsync&='1';
程序分析:程序中定义一个信号:vsync为场同步信号, 若reset为高电平则场同步信号输出高电平。在行同步信号的上升沿到来时,当行计数器在计到场同步脉冲区时才产生场同步信号(低电平),否则不产生场同步信号。场同步信号的宽度为2行,即表4-2中的Ta。
行使能程序段五:
EE:PROCESS
&&& WAIT until clkin'event and clkin='1';
&&&&&& if (hcnt&=h_pixels) and (hcnt&=h_period) then
&&&&&&&& ena_vedio_h&='0';--在行图像消隐区,行图像输出信号不使能
&&&&&& else
&&&&&&&& ena_vedio_h&='1';
程序分析:在时钟信号的上升沿到来时,若点计数器在行图像消隐区(分为消隐前肩、同步脉冲区和消隐后肩)时,行图像输出信号不使能。
场使能程序段六:
FF:PROCESS
&&& WAIT until hsync'event and hsync='1';
&&&&&& if (vcnt&=v_lines) and (vcnt&=v_period) then
&&&&&&&& ena_vedio_v&='0';--在场图像消隐区,场图像输出信号不使能
&&&&&& else
&&&&&&&& ena_vedio_v&='1';
程序分析:在行同步信号的上升沿到来时,若行计数器在场图像消隐区(分为消隐前肩、同步脉冲区和消隐后肩)时,场图像输出信号不使能。引入ena_vedio_h和ena_vedio_v两个信号的作用是用以控制RGB三基色的输出保证在图像有效区640×480下。
信号输出控制程序段七:
ena_vedio&=ena_vedio_h and ena_vedio_v;
&&&&&&& async&=
&&&&&&& BLANK &=ena_
&&&&&&& SYNC &=
&&&&&& R_out(0) &= R AND ena_
&&&&&& R_out(1) &= R AND ena_
&&&&&& R_out(2) &= R AND ena_
&&&&&& R_out(3) &= R AND ena_
&&&&&& R_out(4) &= R AND ena_
&&&&&& R_out(5) &= R AND ena_
&&&&&& R_out(6) &= R AND ena_
&&&&&& R_out(7) &= R AND ena_
&&&&&& R_out(8) &= R AND ena_
&&&&&& R_out(9) &= R AND ena_
&&&&&& G_out(0) &= G AND ena_
&&&&&& G_out(1) &= G AND ena_
&&&&&& G_out(2) &= G AND ena_
&&&&&& G_out(3) &= G AND ena_
&&&&&& G_out(4) &= G AND ena_
&&&&&& G_out(5) &= G AND ena_
&&&&&& G_out(6) &= G AND ena_
&&&&&& G_out(7) &= G AND ena_
&&&&&& G_out(8) &= G AND ena_
&&&&&& G_out(9) &= G AND ena_
&&&&&& B_out(0) &= B AND ena_
&&&&&& B_out(1) &= B AND ena_
&&&&&& B_out(2) &= B AND ena_
&&&&&& B_out(3) &= B AND ena_
&&&&&& B_out(4) &= B AND ena_
&&&&&& B_out(5) &= B AND ena_
&&&&&& B_out(6) &= B AND ena_
&&&&&& B_out(7) &= B AND ena_
&&&&&& B_out(8) &= B AND ena_
&&&&&& B_out(9) &= B AND ena_
&&&&&& HS &=
&&&&&& VS &=
程序分析:ena_vedio信号是在ena_vedio_h and ena_vedio_v同时使能时输出才为高电平(允许视频输出使能)。由于视频输出不使能时即为消隐区,此时把ena_vedio指向BLANK端口输出,即可实现对消隐信号的控制。而async信号是只要hsync信号或 vsync信号其中一个为低电平时就输出低电平,并且指向SYNC端口输出控制同步信号。由于DE2板上的芯片ADV7123是十位的D/A转换器,故时序模块的R、G、B输出也必须为十位的,R、G、B信号分别与ena_vedio信号相与后指向R_out、G_out、B_out端口输出。hsync信号指向HS端口输出,vsync信号指向VS端口输出。4.3.4&&&&&&&&&& VGA时序模块的软件仿真
选择EP2C35F672C6芯片,在Quartus Ⅱ中进行编译,编译通过后,进行波形仿真。时钟周期设定如图4-16,即设置时钟频率为25MHZ(即为40ns);波形仿真结果如图4-17到4-21。其中R、G和B为RGB三基色原始数据,R_out、G_out和B_out为RGB数据输出,在引脚配置时分别连接到ADV7123的VGA_R、VGA_G和VGA_B端口;BLANK为消隐信号,SYNC为同步信号,引脚配置时分别连接到ADV7123的VGA_BLANK和VGA_SYNC端口;HS为行同步信号输出, VS为场同步信号输出,引脚配置时分别连接到ADV7123的VGA_HS和VGA_VS端口;hcntout为行计数器输出,vcntout为场计数器输出,该两个输出可作为RGB三基色原始数据的输入,字符或汉字显示地址。观察时序仿真波形图可知,RGB输出波形与RGB输入波形一致,说明能产生同步信号且RGB数据无丢失。在误差允许范围内,行扫描周期也接近31.78us;图4-22为VGA时序模块图。
图4-16 25MHz时钟设定
图4-17 VGA时序模块的时序仿真之一
从图4-17可见,行扫描同步脉冲HS的周期约为125.54-93.5=32.04 us,接近31.78 us的VGA工业标准,其误差是因为时钟频率选择为25MHZ,而不是VGA标准的25.175MHZ导致的。
图4-18 VGA时序模块的时序仿真之二
从图4-18可见,VS信号有个低电平的输出。
图4-19 VGA时序模块的时序仿真之三
从图4-19可见,HS信号有个低电平的输出。
图4-20 VGA时序模块的时序仿真之四
从图4-20可以看出当行计数器计到799后,又从0开始计数。
图4-21 VGA时序模块的时序仿真之五
从图4-21可以看出当场计数器计到524后,又从0开始计数,场时间接近16.683 ms。
图4-22 VGA时序模块图5&&&&&&&& VGA彩条控制器系统调试 5.1&& &&引脚的配置
设计好时钟二分频模块,VGA时序控制模块及LPM_ROM模块就可以在实验室提供的开发板上进行硬件下载验证。
首先把DE2_pin_assignments.csv文件存放到所要下载验证的工程文件夹下,接着打开Quartus Ⅱ软件,打开已经建好的工程。然后点击菜单栏Assignment中的Import Assignment出现如图5-1所示的对话框,指定DE2_pin_assignments.csv的存放目录后点击“ok”就可以完成引脚的配置。
图5-1 导入引脚的配置文件5.2&& &&VGA彩条的显示
为了验证VGA时序控制模块的正确性,进行了彩条图像显示的实验:根据图1-3三基色颜色编码,可以知道,只要给予RGB三基色输入信号从000-111的变化,那么VGA显示器将顺序显示:黑-蓝-绿-青-红-品-黄-白。5.2.1&&&&&&&&&& 横彩条的显示
根据VGA逐行扫描原理,程序中场计数器vcntout是每扫描完一行则加一的,所以只要将vcntout信号的任意连续三位分别接入R、G、B,就能按照黑-蓝-绿-青-红-品-黄-白的顺序显示横彩条:硬件连接图如图5-2,图中PPL为时钟二分频模块,输入时钟clk0为50MHZ,显示器显示如图5-3到5-4所示。
图5-2 横彩条模块连接图
图5-3 当R、G、B分别接V[7],V[6],V[5]时的横彩条输出
图5-4 当R、G、B分别接V[8],V[7],V[6]时的横彩条输出
由此可见,改变vcntout的高地址作为RGB三基色的输入,横彩条的宽度发生变化,彩条变宽。相反地,如果低地址接入R、G、B则彩条宽度变窄。5.2.2&&&&&&&&&& 竖彩条的显示
跟显示横彩条原理一样,将行计数器hcntout(一个外部时钟,其值加一)信号的任意连续三位分别接入R、G、B,就能按黑-蓝-绿-青-红-品-黄-白的顺序显示竖彩条:硬件连接图如图5-5,显示器显示如图5-6和图5-7所示。
图5-5 竖彩条模块连接图
图5-6 当R、G、B分别接H[8],H[7],H[6]时的竖彩条输出
图5-7 当R、G、B分别接H[7],H[6],H[5]时的竖彩条输出
由此可见,改变hcntout的高地址作为RGB三基色的输入,横彩条的宽度发生变化,彩条变宽。相反地,如果低地址接入R、G、B则彩条宽度变窄。5.2.3&&&&&&&&&& 棋盘格的显示
实验中,将R、G、B三基色的输入定义为R接高电平,把G和B接在一起,然后把H[5] XOR V[5]的输出连接到G和B连接的端点就能显示棋盘格。真值表的输出如表5-1,其中的“100”代表显示红色,而“111”代表显示白色。硬件连接图如图5-8,显示器显示如图5-9所示。
表5-1 H[5] XOR V[5] 的真值表的输出
H[5]XORV[5]
图5-8 棋盘格模块连接图
图5-9 红白两色的棋盘格
图5-10 绿白两色的棋盘格
当G接高电平,R和B连接在一起,然后把H[5] XOR V[5]的输出连接到R和B连接的端点时显示器的输出如图5-10所示。
图5-11 蓝白两色的棋盘格
当B接高电平,R和G连接在一起,然后把H[5] XOR V[5]的输出连接到R和G连接的端点时显示器的输出如图5-11所示。6&&&&&& 结论及致谢 6.1&& &&设计成果
本设计采用DE2开发板板载的EP2C35F672C6芯片,通过VHDL语言编程,配合QuartusⅡ 6.0软件来实现。本设计的关键是生成VGA_SYNC同步信号的功能模块,接着用计数器得到的像素的行、列地址值当作RGB三基色的输入,产生原始的颜色编码数据,并最终在显示屏上实现彩条信号。彩条信号包括横彩条和竖彩条的显示,并且可以实现不同宽度的彩条输出。而对于棋盘格,可以实现两种颜色的棋盘格输出,本设计验证了绿白、蓝白、红白三种棋盘格。另外把行列地址的对应位通过逻辑门输出到RGB三基色的输入端,实现了符合逻辑编码的多色棋盘格图形的显示,从而验证了VGA时序模块的正确性。
经过硬件平台的验证,基于FPGA的VGA图像控制器已达到设计要求,可实现横彩条、竖彩条、棋盘格 。
6.2&& &&不足与展望
在设计过程中,我难免的遇到了很多困难,例如程序中数据参数的传递,仿真中出现的时序问题,某些特殊的参数等等。特别是关于VHDL的赋值问题。传统概念上,软件编程中变量的赋值非常简单,两个变量的交换,只需要一个第三方介入即可。但是,在用VHDL编写程序时,变量的赋值往往没有想象的那么简单,当第三方介入换值时,三个数据的值就会变成一个值。这时我咨询了我们的指导老师,曾老师的一句话使我豁然开朗,“VHDL是软件化的硬件链接。”那么,赋值过程实际上是链接的过程,所以没有办法像C语言之类处理方法来处理VHDL的问题。
本设计只能显示出液晶式的彩条。在实际应用中,可以在本设计的基础上,通过使用SDRAM等外部存储器,利用DMA控制方式,并且配合Altera的Nios嵌入式软核CPU,可以在SOPC开发平台上实现彩色图像、动态图像,实现256色甚至真彩色图像的显示,并还可实现兼容SVGA,TVGA标准等的更复杂的显示控制器。6.3&& &&致谢
首先衷心的感谢指导老师,在一个学期的设计过程中,他给予了耐心的指导、帮助和大力的支持,不仅成功的指导我完成了本系统,更让我了解到,完成一个设计应有清晰的思路和查阅相关资料的方法,还有对待工作的严谨态度,这一切,都为我在将来的设计、工作过程积累了丰富的经验。同时,还要感谢其他老师及电子实验室老师在本职工作之余给予了我们无条件的支持,是老师们的辛劳工作和其他同学的帮助,使得我较为顺利的完成了本次设计。在此,我再次对各位致以最衷心的感谢。 7&&&&&&&& 参考文献
[1] 潘松,黄继业编著.EDA技术与VHDL(第2版)[M].清华大学出版社,2007.1
[2] 王振红.VHDL数字电路设计与应用实践教程[M].机械工业出版社,2003.6
[3] 包明.EDA技术与可编程逻辑器件的应用[M].北京航空航天大学出版社.2006.8
[4] 江国强.EDA技术习题与实验[M].哈尔滨工程大学电子工业出版社,2005.1
[5] 刘昌华.数字逻辑EDA设计与实践[M].国防工业出版社.2007.10
[6] 江思敏.VHDL数字电路及系统设计[M].机械工业出版社,2006.8
[8] 潘松,黄继业,曾毓.SOPC技术实用教程[M].北京:清华大学出版社,.
[9] 肖 炀,卿粼波,罗代升.基于FPGA 的多显示模式VGA接口研究与设计[J].计算机工程与科学,):62-65.
[10] 吴蓬勃,张启民,王朝阳,牛斗.基于FPGA的VGA图像控制器设计[J].东北电力大学学报,):90-92.
[11] 侯继红,李向东. EDA实用技术教程[M]. 北京:中国电力出版社,2004.
[12] 杨恒,卢飞成. FPGA/VHDL快速工程实践入门与提高[M]. 北京:北京航空航天大学出版社,2003.
[13] 黄仁欣. EDA技术实用教程[M]. 北京:清华大学出版社,2006.
[14] I. S. Uzun , A. Amira , A. Bouridane. FPGA implementations of fast fourier transforms for real2time signal and image processing& [J]. IEE Proc.2Vis. Image Signal Process,(3) :2832296.
[15] S. M. Kay modern spectral estimation theory and application[M]. Prentice2Hall , 1988.
没有相关文章
推 荐 阅 读
阅 读 排 行
专 题 列 表
Corporation </small Inc. 网站备案号:鄂ICP备号-2 
基于架构  }

我要回帖

更多关于 v6.0r02f03sp06 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信