基于FPGA驱动VGA显示图片的小问题
学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示。
出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那肯定是有问题的,然后仿真了一下看看,时序图如下。

正确的时序

错误的时序
我这是的是当行计数器记到200和场计数器记到200的时候显示ROM中的数据,在显示屏中开出一个60x60的正方形显示区域,对比上两幅图可得,第二幅图在当行计数器计数到200的时候lcd_data本应该是ROM里的数据,但是却输出的是16’h00,这是因为我原始的代码写的是当行计数器记到200的时候给ROM地址加1,然后有个使能信号将ROM的输出读出,但是实际上行计数记到200的同时ROM地址已经加1,那么ROM的第一个数据就没法读出来,然后从第二个数据开始显示,即每一行的第一个数据都没有给出所以最终会显示出一个竖黑边,那么这个问题怎么解决呢?很简单,就是在行计数器记到199的时候给使能信号,所以当显示屏显示第200个数据的时候,ROM的第一个数据正好读出,代码如下:显示结果如下
//---------------------------------------------
//addra
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
addra <= 'd0;
else if(addra == - 'b1)
addra <= 'd0;
else if(lcd_x >= && lcd_x < && lcd_y >= && lcd_y < )
addra <= addra + 'b1;
else
addra <= addra;
end //-----------------------------------------------------------------------
//pic_en
reg pic_en;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
pic_en <= 'b0;
else if(lcd_x >= && lcd_x < && lcd_y >= && lcd_y < )
pic_en <= 'b1;
else
pic_en <= 'b0;
end //-----------------------------------------------------------------------
//data_en
reg data_en;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
data_en <= 'b0;
else if(lcd_x >= && lcd_x < && lcd_y >= && lcd_y < )
data_en <= 'b1;
else
data_en <= 'b0;
end //lcd_data
reg [:] lcd_data_r0;
reg [:] lcd_data_r1; always @(posedge clk or negedge rst_n)begin
if(!rst_n)
lcd_data_r0 <= 'b0;
else if(lcd_y > && lcd_y <= )
lcd_data_r0 <= `WHITE;
else if(lcd_y > && lcd_y <= )
lcd_data_r0 <= `GREEN;
else if(lcd_y > && lcd_y <= )
lcd_data_r0 <= `BLUE;
else
lcd_data_r0 <= 'b0;
end always @(posedge clk or negedge rst_n)begin
if(!rst_n)
lcd_data_r1 <= 'b0;
else if(pic_en == 'b1)
lcd_data_r1 <= douta;
else
lcd_data_r1 <= 'b0;
end //assign lcd_data = (pic_en == 1'b1)? `CYAN: lcd_data_r0;//开出一个紫颜色的框 assign lcd_data = (pic_en == 'b1)? lcd_data_r1: lcd_data_r0;


转载请注明出处:NingHeChuan(宁河川)
个人微信订阅号:开源FPGANingHeChuan
如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号
知乎ID:NingHeChuan
微博ID:NingHeChuan
原文地址:http://www.cnblogs.com/ninghechuan/p/7577224.html
基于FPGA驱动VGA显示图片的小问题的更多相关文章
- 基于FPGA的VGA显示设计(二)
上一篇:基于FPGA的VGA显示设计(一) 参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码 的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层 ...
- 基于FPGA的VGA显示实验设计
基于FPGA的VGA显示实验设计 成果展示(优酷视频): 视频: 基于FPGA的VGA显示技术(手机控制) http://v.youku.com/v_show/id_XNjk4ODE3ODUy.htm ...
- 基于FPGA的VGA显示静态图片
终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...
- FPGA驱动VGA显示静态图片
一 .前言 本文设计思想采用明德扬至简设计法.VGA是最常见的视频显示接口,时序也较为简单.本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采 ...
- 基于FPGA的VGA显示设计(一)
前言 FPGA主要运用于芯片验证.通信.图像处理.显示VGA接口的显示器是最基本的要求了. 原理 首先需要了解 : (1)VGA接口协议:VGA端子_维基百科 .VGA视频传输标准_百度 引脚1 RE ...
- 基于FPGA的HDMI显示设计(三)
上一篇:基于FPGA的VGA显示设计(二) 10月10日 ~ 20日期间实习,令我万万没想到的是实习题目是 “便携式高清电视显示屏测试系统原型设计” 也就是 “基于FPGA的视频显示”. 实习要求用 ...
- 纠错:基于FPGA串口发送彩色图片数据至VGA显示
今天这篇文章是要修改之前的一个错误,前面我写过一篇基于FPGA的串口发送图片数据至VGA显示的文章,最后是显示成功了,但是显示的效果图,看起来确实灰度图,当时我默认我使用的MATLAB代码将图片数据转 ...
- 基于FPGA的VGA可移植模块终极设计【转】
本文转载自:http://www.cnblogs.com/lueguo/p/3373643.html 略过天涯 基于FPGA的VGA可移植模块终极设计 一.VGA的诱惑 首先,VGA的驱动,这事, ...
- [置顶]
基于FPGA的VGA简易显存设计&NIOS ii软核接入
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...
随机推荐
- linux下使用自带mail发送邮件(超简单)
linux 发邮件最简单的办法 ,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序. 具体步骤如下: 1.安装 [root@001 ~]# yum install mai ...
- mysql+mybatis递归调用
递归调用的应用场景常常出现在多级嵌套的情况,比如树形的菜单.下面通过一个简单的例子来实现mysql+mybatis的递归. 数据模型 private Integer categoryId; priva ...
- Django的Models
Django的数据库配置: 1 django默认支持sqlite,mysql, oracle,postgresql数据库 2. 在django的项目中会默认使用sqlite数据库,如果要使用 ...
- 由一道bash jail题引出的琐事@_@
关键词:Terminal devices.shell.stdio 题目入口: (需要注册) root@kali:~# ssh level1@24.37.41.154 -p 1016 level1@24 ...
- 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)
一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时 ...
- Iframe 自适应高度
网页中,经常遇见嵌套问题.我们怎么解决好点,我个人喜欢使用 Html 中的 Iframe 标签.忘记在哪里找的代码了. Iframe 的代码: <iframe src="indexpa ...
- iOS tableViewCell 在cell赋值、网络加载照片位置偏移大小错乱,做一个类似qq列表的tableview 更新3
更新3: 问题 加载慢!(一时间给的处理负载过大,要分散)在下载图片,判断状态后 对每个cell对图片灰置图片处理保存,影响了主线程的操作 :上拉加载时,无法上下滑动tableview 无法点击cel ...
- iOS 数据加密方案
iOS安全攻防(二十三):Objective-C代码混淆 提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中 ...
- python学习日记:day11----装饰器进阶
1.wraps from functools import wraps def wrapper(func): #func = holiday @wraps(func)#输出holiday的函数名 de ...
- geoserver发布地图服务WMTS
WMTS: 切片地图web服务(OpenGIS Web Map Tile Service) WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案.WMTS弥补了WMS不能提供分块地图的 ...