内容

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. nginx对不存在的文件进行404处理

    location / { try_files $uri $uri/ /?$args 404; } location / { try_files $uri $uri/ /index.html 404; ...

  2. 【BZOJ1216】[HNOI2003] 操作系统(堆+模拟)

    点此看题面 大致题意: 有\(n\)个任务,每个任务有4个属性:编号.到达时间.执行时间和优先级.每个单位时间,会执行一个优先级最高(若有多个优先级最高的,就先执行到达时间较早的)的任务,请你按完成的 ...

  3. python基础一 day16 内置函数

    # 数据类型 :int bool ...# 数据结构 : dict list tuple set str reversed()l = [1,2,3,4,5]l.reverse()print(l)l = ...

  4. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目

    部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...

  5. Oracle数据库学习(三)

    6.关于null 数据库中null是一个未知数,没有任何值:进行运算时使用nvl,但是结果仍为空:在聚集函数中只有全部记录为空才会返回null. 7.insert插入 (1)单行记录插入 insert ...

  6. JavaScript获取时间戳与时间戳转化

    第一种方法(精确到秒): var timestamp1 = Date.parse( new Date()); 第二种方法(精确到毫秒): var timestamp2 = ( new Date()). ...

  7. display :inline-block 处理点小障碍

    使用inline-block之前先处理点小障碍:inline-block元素会有4px左右的空隙,这个是因为我们写代码时候的换行符所致. 解决办法很简单:在inline-block的父元素中设置样式f ...

  8. 第六篇:python中numpy.zeros(np.zeros)的使用方法

    用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和类型的用0填充的数组: 参数:shape:形状 dtype:数据类型,可选参数,默认numpy ...

  9. Linux企业生产环境用户权限集中管理项目方案案例

    企业生产环境用户权限集中管理项目方案案例: 1 问题现状 当前我们公司里服务器上百台,各个服务器上的管理人员很多(开发+运维+架构+DBA+产品+市场),在大家登录使用Linux服务器时,不同职能的员 ...

  10. java设计模式3--观察者模式

    1.初步认识 观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新. 大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了 ...