ImageVerifierCode 换一换
格式:DOCX , 页数:67 ,大小:123.13KB ,
资源ID:138370      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-138370.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华科 基于FPGA的VGA显示实验.docx)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

华科 基于FPGA的VGA显示实验.docx

1、 电子线路测试与实验报告 基于 FPGA 的 VGA 显示实验 姓名: 专业班级:光电 1208 学号: U2012 一、实验要求 功能要求:利用 Basys2 实验板实现图片在 VGA 接口显示器上的显示。 基本要求: 1)实现 240*160 以上像素的图片在 VGA 接口显示器上的显示; 2)利用算法实现特定图片在 VGA 接口显示器上的放大、缩小旋转及其他动作的自动变换。 二、实验具体目标 1.首先实现特定图片在显示器上的显示; 2.图片自动旋转 90 度; 3.实现图片的放大与缩小,同样通过一个按键实现; 4.添加复位键,按下复位键后图片返回最初的状态。 三、实验原理 1.VGA 的

2、显示原理 在基于 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 度,那么相当于显示的图片是

3、 40*160 的,重新考虑 addr 与两个坐标之间映射关系。容易得到,此时: addr=(39-x_vdn)*160+y_vd 对图片的缩放操作 对图片的缩放操作则只考虑以下两种变化,即放大一倍, 此时图片的大小为 320*80;缩小一倍,此时图片的大小为 80*20。 对于图片的放大一倍,则要考虑不同的像素点对显示信号的共用(在这里即为 m信号)。由 通常的规则,按照顺序,构成一个正方形的每四个相邻的像素点共用一个 m 信号。同时,在这里对 x_vdn 以及 y_vdn 的最后一位判断,并且形成不同的映射规则。具体的映射规则在源代码中给出。 对于图片的缩小, 则相对简单的多 。此时的映射

4、关系为: 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 核,用来存放、输出要显示图片的数据信息。最后一个模块则是显示模块,同时包括对图片的相关变换。各模块的详细说明会在下文中给出。 四

5、、源码清单 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

6、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 .dou

7、ta(m) / output 7 : 0 douta ); /-160*40-xilinx-u3 为 ROM 的 IP 核,功能为存储、输出图片 vga_stripes u4 ( .clr(clr), .zoom(zoom), .turn(turn), .vidon(vidon), .m(m), .hc(hc), .vc(vc), .red(red), .green(green), .blue(blue), .cntdyn(cntdyn), .addr(addr) );/u4 对图像的显示进行各种操作 endmodule 说明:顶层模块比较简单,只是对各分模块的调用。 2. 时钟 分频模块(

8、clkdiv.v) 信号 模式 描述 mclk Input 主时钟输入 clr Input 复位键 clk25 output 输出 25MHz 时钟 module clkdiv(mclk,clr,clk25);/对时钟信号进行二分频 input mclk, clr; output clk25; reg 1:0 q; assign clk25 = q0; /25Mhz always (posedge mclk or posedge clr) if(clr) q hbp) else vidon = 0; end endmodule 4.IP 核 rom( rom.xco) 这是一个调用 IP 核的

9、模块,该模块有两个输入,除了 clka 为时钟信号外, addra 是一个地址信号,通过 addra的控制来输出不同的 m 信号。 rom 模块示意图: 5.vga 显示模块( vga_stripes.v) 信号 模式 描述 m7:0 Input 像素数据 zoom Input 缩放信号 turn Input 翻转信号 vidon Input vidon 像素可见 hc Input 行同步 vc Input 场同步 red Output 红色 green Output 绿色 blue Output 蓝色 cntdyn Output vga 控制 addr10:0 Output 地址 modul

10、e vga_stripes(clr,zom,turn,vidon,m,hc,vc,red,green,blue,cntdyn,addr ); input clr; input zoom; input turn; input 7:0 m; input vidon; input 9:0 hc,vc; input 27:0 cntdyn; output 2:0 red,green; output 1:0 blue; output 12:0 addr; /6400 160*40 reg 7:0 red_r; reg 7:0 green_r, blue_r; reg addr; reg 1:0 mode

11、; reg 1:0 set; parameter hbp = 10b0010010000;/144 parameter vbp = 10b0000011111;/31 reg 10:0 y_vdn, x_vdn; assign red = red_r7:5; assign green = green_r7:5; assign blue = blue_r7:6; always(*) begin y_vdn = vc - vbp ; x_vdn = hc - hbp ; end always(posedge turn or posedge clr)/选择模式 begin if(clr) mode=

12、0;/若复位,则选择模式 0 else if(turn)/若无复位,按键则模式加一 mode=mode+1; end always(posedge zoom or posedge clr) /当放大或复位信号处于上升沿时 begin if (clr) set=0;/若复位,大小设定选择 0 else if(zoom)/如果有放大信号 begin if(set=2b10) set=0;/若大小设定为 2,则改为设定 0,否则设定加一 else set=set+1; end end always (*)/当有涉及到的变量改变时 if(vidon = 1) begin if(set=2b01)/设定 1,显示 320*80 begin if(x_vdn=0) red_r = m7:5,5b00000 ; green_r = m4:2,5b00000 ; blue_r = m1:0, 6h00; end else begin /其他地方不显示 red_r = 0; green_r = 0; blue_r = 0; end

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。