ROM+VGA 图片显示
内容
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 图片显示的更多相关文章
- 4.C#WinForm基础图片(显示和隐藏)
要求: 软件上有一张图片,默认是隐藏的.用户在文本框中输入身份证号(131226198105223452),点击按钮,如果年龄大于18岁,则显示图片. 知识点: 取当前年份,Date Time Now ...
- jQuery css3鼠标悬停图片显示遮罩层动画特效
jQuery css3鼠标悬停图片显示遮罩层动画特效 效果体验:http://hovertree.com/texiao/jquery/39/ 效果图: 源码下载:http://hovertree.co ...
- Latex图片显示问题(1)
用latex编译后,若用dvipdf生成pdf文件,则其中有个eps图的左侧会显示不完全:若是用dvips--pspdf生成pdf文件,图像显示没问题. 这种情况的问题出在,加载 graphicx 宏 ...
- WPF 图片显示中的保留字符问题
在WPF中显示一张图片,本是一件再简单不过的事情.一张图片,一行XAML代码即可. 但是前段时间遇到了一件奇怪的事: 开发机上运行正常的程序,在某些客户机器上却显示不了图片,而且除了这个问题,其它运行 ...
- JS控制图片显示的大小(图片等比例缩放)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...
- java web图片显示到浏览器
今天研究了一下午,图片显示问题. jsp中获取绝对路径的方法:String contextPath = request.getContextPath();String path = request.g ...
- Android相机、相册获取图片显示并保存到SD卡
Android相机.相册获取图片显示并保存到SD卡 [复制链接] 电梯直达 楼主 发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图 本帖最后由 happy小妖同学 ...
- cocos2d-x如何解决图片显示模糊问题
转载http://zhidao.baidu.com/link?url=JTUKP5quGfMQixLZSvtC2XlKMkQDyQbYW72_DRyD6KDRpkLs8_6poQtKkwsyqzU8q ...
随机推荐
- 签证-L1/L2
http://blog.sina.com.cn/s/blog_7664b7f70102uweb.html 14年4月我接到公司通知,要从MICROSTRATEGY中国研发中心内部transfer到美国 ...
- linux 命令——5 rm(转)
昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...
- kubernetes-ingress(十)
ingress https://kubernetes.io/docs/concepts/services-networking/ingress/ pod与ingress的关系 •通过label-sel ...
- java基础编程—统计二进制数中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 题目代码 /** * 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. * Created by YuKai ...
- React后台管理系统-商品列表搜索框listSearch组件
1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap"> <div classN ...
- centos 6 安装VMware Tools
开启虚拟机的centos系统, 在虚拟机工具栏点击 “虚拟机”=>VMwareTools安装, centos系统内的桌面会有一个VMware Tools的驱动光驱, 双击打开后,有一个tar. ...
- JavaScript 遍历对象查找指定的值并返回路径
问:JavaScript 如何查找对象中某个 value 并返回路径上所有的 key? let obj = { key1: 'str1', key2: { key3: 'str3' }, key4: ...
- MySQL - FIND_IN_SET 函数使用方法
SELECT * FROM xxxTableName x WHERE FIND_IN_SET(x.id, '1,2,3,4,5,6,7,8'); 如上查询,意为:xxxTableName 表中 x ...
- k8s的认证和service account简述
k8s的认证: 与API server通信的客户端大致有两类: 1.集群客户端工具(kubectl.kubeadm.kubelet等) 2.集群内pod. 任何客户端访问k8s时的过程: 1.认 ...
- Vue-Router基础学习笔记
1.安装vue-router npm install vue-router yarn add vue-router 2.引入注册vue-router import Vue from 'vue' imp ...