网站大量收购闲置独家精品文档,联系QQ:2885784924

《华科 基于FPGA的VGA显示实验》.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子线路测试与实验报告 基于FPGA的VGA显示实验 姓名: 专业班级:光电1208 学号:U2012 一、实验要求 功能要求:利用Basys2实验板实现图片在VGA接口显示器上的显示。 基本要求: 1)实现240*160以上像素的图片在VGA接口显示器上的显示; 2)利用算法实现特定图片在VGA接口显示器上的放大、缩小旋转及其他动作的自动变换。 二、实验具体目标 1.首先实现特定图片在显示器上的显示; 2.图片自动旋转90度; 3.实现图片的放大与缩小,同样通过一个按键实现; 4.添加复位键,按下复位键后图片返回最初的状态。 三、实验原理 1.VGA的显示原理 在基于FPGA的VGA控制中,只需考虑行同步信号(HS),场同步信号(VS),以及红绿蓝三基色(R、G、B)这五个信号,即可实现对VGA显示的控制。 2.对图片的旋转与缩放操作 对图片的旋转操作在本质上是对IP核ROM的输入地址addr进行变换的过程。在这里,假定显示的坐标分别为x_vdn以及y_vdn,由于图片是160*40的,在正常的显示时,addr与x_vdn以及y_vdn的对应关系应该为: addr=x_vdn+y_vdn*160 即依次取像素点,图片正常显示。要把图片顺时针旋转90度,那么相当于显示的图片是40*160的,重新考虑addr与两个坐标之间映射关系。容易得到,此时: addr=(39-x_vdn)*160+y_vd 对图片的缩放操作 对图片的缩放操作则只考虑以下两种变化,即放大一倍,此时图片的大小为320*80;缩小一倍,此时图片的大小为80*20。 对于图片的放大一倍,则要考虑不同的像素点对显示信号的共用(在这里即为m信号)。由通常的规则,按照顺序,构成一个正方形的每四个相邻的像素点共用一个m信号。同时,在这里对x_vdn以及y_vdn的最后一位判断,并且形成不同的映射规则。具体的映射规则在源代码中给出。 对于图片的缩小,则相对简单的多。此时的映射关系为: addr=y_vdn*320+x_vdn*2; 3.工程结构与解读 如图,下图为系统的结构框图。 各模块之间的关系为: __________top.v 工程顶层模块 | |______clkdiv.v 时钟分频 | |______my_vga.v 同步信号模块 | |______rom.xco 像素数据 | |______ vga_stripes.v vga 显示 说明:顶层模块只是对各模块的调用;时钟分频是用于产生25MHz的扫描信号;同步信号用来产生相应的VGA显示控制信号;rom.xco是IP核,用来存放、输出要显示图片的数据信息。最后一个模块则是显示模块,同时包括对图片的相关变换。各模块的详细说明会在下文中给出。 四、源码清单 1.顶层模块(top.v) module top(zoom,turn,clk, clr, hs, vs, red, green, blue ); input zoom;//缩放信号 input turn;//模式改变信号 input clk;//时钟信号 input clr;//复位信号 output hs, vs;//水平和垂直输出 output [2:0] red, green;//红绿蓝三色输出 output [1:0] blue; wire clk25; wire [9:0] hc, vc; wire vidon; wire [27:0] cntdyn; wire [7:0] m; wire [12:0] addr; clkdiv u1( .mclk(clk), .clr(clr), .clk25(clk25) );//u1为2分频程序,使时钟信号为25MHz my_vga u2( .clk(clk25), .clr(clr), .hs(hs), .vs(vs), .hc(hc), .vc(vc), .vidon(vidon), .cntdyn(cntdyn) );//u2为160*40VGA图像显示程序 //----160*40-----xilinx------ rom u3( .clka(clk25), // input clka .addra(addr), // input [12 : 0] addra .douta(m) // output [7 : 0] douta ); //----160*40-----xilinx------u3为ROM

文档评论(0)

wangxue1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档