内容

1、将一幅图片制成mif文件,初始化rom,图片像素为 120 * 60

2、驱动VGA,将图片显示在屏幕上


1、VGA 时序

下面是我的笔记截图,感觉更好理解。


2、640*480 60hz

VGA 为什么要选用 25Mhz 的时钟进行驱动呢?

1s时间内显示60幅图像,每幅图像的像素总数为 800 *525 (640*480是指的有效像素,800*525是包含了所有的,具体情况见下图)

因此完成一幅图像的时间为 1s/60 =16.6ms

完成一行需要 16.6ms / 525 =31.75us

完成一个像素 16.6ms / 800 = 40 ns

40ns对应的时钟频率为25Mhz.

从上面这副图可以提取的信息如下,我们将它参数化

//行时序参数
`define H_FRONT 'd16 //显示前沿
`define H_SYNC 'd96 //同步脉冲
`define H_BACK 'd48 //显示后沿
`define H_DISP 'd640 //有效时间
`define H_TOTAL 'd800 //总的
//场时序参数
`define V_FRONT 'd10
`define V_SYNC 'd2
`define V_BACK 'd33
`define V_DISP 'd480
`define V_TOTAL 'd525

行时序参数的单位是像素,场时序参数的单位是一行,根据这一点,设计两个计数器

//----------------------------------------------------------------------
//行时序设计
always @(posedge clk or negedge rst_n)begin
if(rst_n=='b0)begin
h_cnt <= ;
end
else if(h_cnt == `H_TOTAL - 'b1)begin
h_cnt <= ;
end
else
h_cnt <= h_cnt + 'b1 ;
end
assign hs=(h_cnt >= && h_cnt < `H_SYNC )? 'b0 : 1'b1 ; //----------------------------------------------------------------------
//场时序设计
always @(posedge clk or negedge rst_n)begin
if(rst_n=='b0)begin
v_cnt<=;
end
else if(h_cnt == `H_TOTAL - 'b1) begin
if(v_cnt == `V_TOTAL - 'b1)
v_cnt <= ;
else
v_cnt <= v_cnt + 'b1;
end
end assign vs = (v_cnt >= && v_cnt< `V_SYNC)? 'b0 : 1'b1 ;

以上就完成了VGA的驱动,非常简单。

本次设计的难点在于rom地址的设计,什么情况下改变地址的值。

首先设计像素左标,640*480个有效像素,第一行第一个坐标为(0,0),第二个为(0,1)以此论推,横坐标为 x_pose ,纵坐标为 y_pose 。

至于为什么是 260 和 210太难解释了,不过我会把所有工程打包,提供下载,大家可以参考分析。

assign address_1 =(area_1)? (x_pose-)+*(y_pose-) : 'b0 ;

结果:

程序代码:链接:http://pan.baidu.com/s/1mi0eSNu 密码:8g64

由于资源的限制,只能显示很小的图片,表示很不舒服,我一定要学会设计SDRAM,走向巅峰!!

ROM+VGA 图片显示的更多相关文章

  1. 4.C#WinForm基础图片(显示和隐藏)

    要求: 软件上有一张图片,默认是隐藏的.用户在文本框中输入身份证号(131226198105223452),点击按钮,如果年龄大于18岁,则显示图片. 知识点: 取当前年份,Date Time Now ...

  2. jQuery css3鼠标悬停图片显示遮罩层动画特效

    jQuery css3鼠标悬停图片显示遮罩层动画特效 效果体验:http://hovertree.com/texiao/jquery/39/ 效果图: 源码下载:http://hovertree.co ...

  3. Latex图片显示问题(1)

    用latex编译后,若用dvipdf生成pdf文件,则其中有个eps图的左侧会显示不完全:若是用dvips--pspdf生成pdf文件,图像显示没问题. 这种情况的问题出在,加载 graphicx 宏 ...

  4. WPF 图片显示中的保留字符问题

    在WPF中显示一张图片,本是一件再简单不过的事情.一张图片,一行XAML代码即可. 但是前段时间遇到了一件奇怪的事: 开发机上运行正常的程序,在某些客户机器上却显示不了图片,而且除了这个问题,其它运行 ...

  5. JS控制图片显示的大小(图片等比例缩放)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Android ListView滑动过程中图片显示重复错乱闪烁问题解决

    最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...

  7. java web图片显示到浏览器

    今天研究了一下午,图片显示问题. jsp中获取绝对路径的方法:String contextPath = request.getContextPath();String path = request.g ...

  8. Android相机、相册获取图片显示并保存到SD卡

    Android相机.相册获取图片显示并保存到SD卡 [复制链接]   电梯直达 楼主    发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图  本帖最后由 happy小妖同学 ...

  9. cocos2d-x如何解决图片显示模糊问题

    转载http://zhidao.baidu.com/link?url=JTUKP5quGfMQixLZSvtC2XlKMkQDyQbYW72_DRyD6KDRpkLs8_6poQtKkwsyqzU8q ...

随机推荐

  1. pat乙级1052

    输出“\”字符: cout << "\\"; 因为‘\’是转义字符,例如“\n”代表换行. 同理,printf输出“%”: printf("%%") ...

  2. vs2010 opencv2.4.10 配置过程出现的问题 & mfc打开图片

    配置参考网址: http://blog.csdn.net/zy122121cs/article/details/49180541 无法启动程序,系统找不到指定的文件:原因是程序编译有错误(不是路径之类 ...

  3. 日常入新坑,py一下

    首先是IDE,因为我经常在Ubuntu 18和win 10两个系统换来换去,所以IDE必须要能跨平台,所以这里就选了PyCharm.Py划重点—— 从Jet Brains的网站下载安装包,直接跟着默认 ...

  4. Android(java)学习笔记89:Bundle和Intent类使用和交互

    1. Bundle 和 Intent:    Bundle只是一个信息的载体 将内部的内容以键值对组织 ,Intent负责Activity之间的交互自己是带有一个Bundle的.Intent.putE ...

  5. 关于SIGSEGV错误及处理方法

    http://blog.csdn.net/brace/article/details/1102422 今天编程遇到了SIGSEGV错误,比较困惑,所以找了些资料,总结一下: (1)官方说法是: SIG ...

  6. 五、react中父子组件间如何传值

    1.父组件向子组件传递数据:父组件绑定属性值传给子组件,子组件通过this.props()接受. 2.子组件向父组件传递数据:子组件绑定一个方法,方法中通过this.props.父组件方法名(参数)传 ...

  7. 如何着手学习一个新的PHP框架

    如今的PHP框架层出不穷,名气也各不相同.如何快速掌握一种框架?看看本文吧~ 如今的PHP框架层出不穷,名气也各不相同.我不是这方面的专家,甚至不能熟练地使用其中的一种,所以就不作推荐了.这里我要讨论 ...

  8. java基础编程——重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  9. oc不可变数组创建

    //创建数组 //1.快速创建数组  @[] NSArray *week=@[@"MON",@"TUE",@"WED",@"THU ...

  10. unix环境高级编程一书中部分错误处理函数

    #include <unistd.h> #include <errno.h> #include <string.h> #include <stdio.h> ...