1VGA.docx
《1VGA.docx》由会员分享,可在线阅读,更多相关《1VGA.docx(17页珍藏版)》请在冰豆网上搜索。
![1VGA.docx](https://file1.bdocx.com/fileroot1/2023-7/9/fe20c9f4-e2bc-4042-85ca-3dd97acf3cb8/fe20c9f4-e2bc-4042-85ca-3dd97acf3cb81.gif)
1VGA
VGA设备显示实验
一.实验原理:
本实验中的VGA设备为通用电脑显示器。
VGA接口如图1所示。
图1VGA接口
标准VGA接口一共有15个接口。
真正用到的就5个。
HSYNC是行同步信号,VSYNC是场同步信号,同步信号是为了让VGA显示器接收部分知道送来的数据是对应哪一行那一列的哪一个像素点的。
VGA_R,VGA_G,VGA_B是三原色信号,向三原色信号接口输入10位数字信号,可以实现多种颜色显示。
在做本实验时,由于没有任何显示器驱动,所以显示器工作在默认状态,分辨率:
640×480,刷新率:
60Hz,因此VGA时钟频率应约为25MHz。
在此状态下,当VS和HS都为低电平时,VGA显示器显示亮的状态,其正向扫描过程约为26us。
当一行扫描结束后,行同步信号HS置高电平,持续约6us后,变成低电平,在HS为高电平期间,显示器产生消隐信号,这就是显示器回扫的过程。
当扫描完一场后,也就是扫描完480行以后,场同步信号VS置高电平,产生场同步,此同步信号可以使扫描线回到显示器的第一行第一列位置。
显示器显示的时序图如下图2所示:
图2VGA显示时序图
上图中T1为同步消隐信号,约为6us脉宽,T2为行显示过程,约为
26us,T3为场同步信号,宽度为两个行同步周期,T4为显示时间,约为480
行周期。
二.实验内容:
本实验要完成的任务就是通过FPGA在显示器上显示一些条纹或图案,要求显示器上能够显示横条纹、竖条纹、棋盘格子等图案,并在VGA显示器中间显示一个方框。
同时用按键控制背图案转换及方框的运动。
实验中系统时钟选择时钟模块的50MHz。
实验的输出就直接输出到VGA接口,通过显示器显示出来。
三.实验步骤:
1.建立工程
(1)首先,打开Quartus,点击File->NewProjectWizard新建一个工程。
(2)依次填入工程所在文件夹及顶层文件名(注意不要出现中文),单击next。
(3)再单击next,选择实验器件,本实验中选用CycloneII中的EP2C70F896C6。
单击finish。
(4)在File->new中选择VerilogHDLFile。
点击OK。
(5)保存文件到工程文件夹下,此verilog文件需与工程名一致。
(6)在Device窗口下点击DeviceandPinOptions。
(7)在弹出的窗口中进行如下更改。
2.VGA基本显示
(1)如下图所示,在前面新建的verilog文件中写入程序。
其中,下面的程序为用计数器产生行坐标及水平同步信号,同理,用计数器产生列坐标及垂直同步信号,这样就生成了一帧图像的控制信号。
背景颜色部分描述如下所示,分别定义了三种背景。
如果待显示颜色与纵坐标V_Cont有关,即根据纵坐标分区,则显示的图案为横条纹,同理与横坐标H_Cont有关,则显示的图案为竖条纹,若与两个坐标都有关,则显示的是棋盘格子的图案。
在保证颜色与坐标相关联的情况下,可修改相应的背景颜色。
Draw_en信号为使能信号,定义了在小框所在的像素点。
再根据Draw_en信号选择颜色输出。
(2)在本实验中,屏幕分辨率为640×480,所以时钟频率应为25MHz,应加入一个PLL。
点击Tools->MegaWizardPlug-InManager。
(3)选择第一项。
点击next。
(4)选择I/O->ALTPLL,选择文件类型,填入PLL名。
单击next。
(5)将输入时钟改为50MHz,点击next。
(6)做如下更改,点击next。
(7)再点击next,选择c0时钟,将输出时钟改为25MHz。
点击next。
(8)编写程序,实现用按键iKEY及iSW控制小框位置移动及背景图案切换。
(9)点击
进行编译。
成功后如图所示。
如不成功,查看TypeMessage窗口进行错误更正。
(10)点击
进入Pinplanner。
(11)对照管脚分配表,进行管脚分配。
分配结束后如图所示。
(12)再次编译。
(13)点击
弹出下载界面。
(14)点击start进行下载。
若下载失败,点击HardwareSetup进行设置。
(15)选择USB,若无此项,检查设备管理器中驱动是否安装。
(16)在下载页面可通过Delete和AddFile删除和加入下载项。
详细程序见“VGA设备显示实验”。