《VGA显示实验报告——孙小喃.docx》由会员分享,可在线阅读,更多相关《VGA显示实验报告——孙小喃.docx(6页珍藏版)》请在第一文库网上搜索。
1、学学生实验报告实验课名称:VHD1硬件描述语言实验项目名称:VGA显TF专业名称:电子科学与技术班级:32050801学号:05学生姓名:孙小喃教师姓名:程鸿亮2010年11月13日组别第三组实验日期2010年11月13日实验室名称成绩一.实验名称VGA显本二.实验目的与要求目的:通过对VGA接口的显示控制设计,理解VGA接口的时序工作原理,掌握通过计数器产生时序控制信号的方法以及用Megefunction制作锁相环的方法。要求:通过VHD1编程,在VGA显示器上实现竖形彩条的显示,显示模式为64048060HZ刷新率。本实验需要使用25MHz的时钟,而开发平台中并没有这个时钟资源,所以需要通
2、过锁相环来实现。三实验内容1.打开QUartUSI1软件,建立一个新的工程:1)单击菜单Fi1eNewProjectWiZard2)输入工程的路径、工程名以及顶层实体名。3)单击Next按钮,出现以下窗口由于我们建立的是一个空的项目,所以没有包含已有文件,单击Next继续。4)设置我们的器件信息:5)单击Next,指定第三方工具:这里我们不指定第三方EDA工具,单击NeXt后结束工程建立。2 .建立VHD1文件:1)单击Fi1eNew菜单项,选择弹出窗口中的VHD1Fi1e项,单击OK按钮以建立打开空的VHD1文件,注意此文件并没有在硬盘中保存。2)首先编制实体“co1or”的代码,要求输入为
3、25MHZ的时钟信号,输出为行同步、帧同步以及三色数据线RGB2.0信号。注意这个文件的实体名、文件名为“co1or”,不是顶层实体。(参考程序附后)3)生成符号由于此文件是整个工程的一个模块,我们需要把此文件转换为符号,以便后面可以通过绘图方式连接电路,点击Fi1eCreatUpdateCreateSymbo1Fi1esforCurrentFiIe菜单,生成对应的符号。3 .制作锁相环1)单击ToOISMegaWizardP1ugTnManger,在弹出的对话框中选择第1项,以建立一个新的用户自定义的megafunctiono2)点击Next按钮之后,选择列表框中的A1TP11并指定锁相环的
4、输出文件名称,如下图所示:3)指定器件类型和速度等级,并设置锁相环的输入频率,此处选择10MHz:4)点击NEXT后,指定锁相环的其他控制引脚,这里我们不使用其他控制引脚,所以取消所有选项,如下图所示:5)点击NEXT后,所出现的对话框会询问是否添加其他时钟输入端,这里我们只对一个时钟进行倍频,所以不选择其他时钟:6)点击NEXT后,指定锁相环的输出频率,这里选择25MHz,如下图所示:7)一直点击NEXT按钮直到最后一步,如下图所示,确定bsf文件被选中,这个文件就是我们在图形输入的时候所要使用的符号文件。点击FIN1SH按钮完成锁相环的制作。4 .编辑图形文件1)点击Fi1eNew菜单,新
5、建一个原理图文件:2)如下图编辑图形文件并编译保存,所需要的元件通过双击空白区域即可看到:注:每个端口都要设置端口名,此端口名将出现在编辑引脚的列表中。5 .指定引脚:单击ASSignmentSAssignmentEditor,打开引脚分配编辑框:如图所示,为每一个端口指定器件的引脚,在引脚指定过程中需要参照开发系统所给的I/O端口映射表,通过开发平台上每个I/O器件附近的I/O编号,在映射表中找到相应的引脚名,填入上图所示的对话框即可。6 .编译工程由于指定引脚之后并没有进行全编译,有关引脚锁定的信息还没有生成,所以必须重新对这个工程进行编译,点击ProCCSSingStartCOnIPIi
6、atiOn完成编译。7下载程序通过USB-b1aster下载电缆连接PC机和开发平台,如果首次使用下载电缆,此时操作系统会提示安装驱动程序,此USB设备的驱动处于QUartUSH安装目录中的driversusb-b1aster中。单击Too1XProgrammer打开下载窗口:通过对话框中的HardwareSetup按钮,选择下载设备:USB-B1aster0参照上图所示的选项,点击Start完成下载。8.连接显示器把显示器的VGA接口和开发平台的VGA插座相连,可看到程序的运行结果。四实验条件1 .安装WindoWSXP系统的PC机;2 .安装QUartUSII6.0EDA软件;3 .GW4
7、8型SoPC开发平台;五.实验原理通过VHD1编程,在VGA显示器上实现竖形彩条的显示,显示模式为640义48060HZ刷新率。本实验需要使用25MHZ的时钟,而开发平台中并没有这个时钟资源,所以需要通过锁相环来实现,具体接口如下所示:锁相环模块VGAP11:inc1kO:时钟输入端;cO:时钟输出端(25MHz);C1KHSVSRGB2.01or显示控制模块:C1K:同步时钟输入端:HS:行同步输出(低电平有效);VS:帧同步输出(低电平有效);RGB2.0:三色信号输出;hst注:由于RGB2.0输出的是数字量,所以只能够显示8种色彩。VGA时序:对VGA进行编程,必须要知道VGA的相关时
8、序,下面列出640X48060HZ显示模式的时序。行同步信号(HS)帧同步信号(VS)时序名称时钟数(像素数)时序名称行数前沿8前沿2行同步96帧同步2后沿|40后沿25左动界8上功界8数据640数据480右动界8底边界8总像素数8总行数525按照每秒60帧的刷新速度来计算,所需要的时钟频率为:频率=60Hz(帧数)X525(行)X800(每一行像素数)=25.2MHz所以我们通过开发系统的IOMHZ时钟资源,利用FPGA上的锁相环产生25MHZ的频率即可。虽然没有达到精确的25.2MHZ的时钟频率(刷新率可能会是59Hz),但是并不会造成影响。六.源代码ibraryieee;useieee.
9、std_1ogic_1164.a11;useieee.std_1ogic_unsigned.a11;entityco1orisport(e1k:instd_1ogic;hs:bufferstd_1ogic;vs:bufferstd_1ogic;rgb:outstd_1ogic_vector(2downto0);endentityco1or;architectureoneofco1orisbeginprocess(e1k)variab1es:integerrange0to800:=0;variab1et:integerrange0to525:=0;beginif(c1k,eventandc1k=
10、,1,)thenif(s=800)thens:=1;if(t=525)thent:=1;e1set:=t+1;endif;e1ses:=s+1;endif;endif;if(s8ands105)thenhs=0,;e1sehs,;endif;if(t=3ort=4)thenvs=0,;e1sevs37andtrgbrgbrgbrgbrgbrgbrgbrgbrgb=,XXXz,;endcase;e1sergb=,zXXX;endif;endprocess;endarchitectureone;七.实验结果与分析1、编辑图形文件并编译保存,所需要的元件通过双击空白区域即可看到:每个端口都要设置端口名,此端口名将出现在编辑引脚的列表中。2、以下是彩条的显示效果(CRT显示器,以下是部分画面)八.讨论和回答问题及体会:这次实验,通过对VGA接口的显示控制设计,理解了VGA接口的时序工作原理,掌握通过计数器产生时序控制信号的方法以及用MEGEFUNCT1ON制作锁相环的方法。在使用显示器显示时,一直出不来彩色图像,经过学习才明白在VGA显示器上实现竖形彩条的显示,显示模式为640X48060Hz刷新率。开发平台中并没有这个实验需要的时钟资源,所以需要通过锁相环来实现。最后在老师的指导下,调节锁相环的跳线,改变频率,才得以争取的显示图像。