找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6216|回复: 0
收起左侧

FPGA控制VGA接口显示图片的VHDL源码及实验过程详解

[复制链接]
ID:432018 发表于 2018-11-23 19:48 | 显示全部楼层 |阅读模式
基于VHDL,通过FPGA控制VGA接口,在液晶显示器上显示图片

在显示器上显示这张图片

在显示器上显示这张图片

显示这张图片

1、 自学PLL锁相环的定制
2、 复习、强化ROM 的定制流程
3、掌握VGA 显示原理
4、在实验室的液晶显示器上显示“龟心似箭”的图片

一、液晶显示原理
目前常见的彩色显示器一般为液晶显示器, CRT显示器虽然已经落伍,但其扫描显示的原理堪称经典,仍被目前的液晶显示器所
采用。彩色是由R、G、B三基色组成,用逐行扫描的方式解决像显示。液晶显示器每个像素由3个液晶单元格构成,其中每个单元格前面都分别有红色、绿色、蓝色的过滤器。加电时,液晶排列有序,允许光透过,不加电时液晶排列混乱,阻止背光源通过。 扫描是从屏幕左上方开始的,从左到右、从上到下进行扫描。每扫描完一行,开启电压回到屏幕左边下一行的起始位置,这期间HS 进行行同步消隐,每行结束都进行一次行同步消隐。扫描完所有行之后用VS 进行场同步消隐。

二、VGA 接口标准显示原理
0.png

3、 制作5/4倍频的锁相环(inclk0为20MHz, c0为25MHz)
0.png

4、 设计VGA 图像显示的顶层文件,编译,引脚锁定,再编译,硬件验证
0.png

1.首先按照课本完成了《VGA》彩条   显示的实验(右图所示) ,从而熟悉VGA 显示的时序控制

2.首次硬件验证时满屏的雪花(右图所示) , 不过还是能分辨小乌龟的颜色的,说明ROM 内的数据确实有发送至VGA 接口。几经摸索,终于发现问题出在分辨率大小不兼容,屏幕设定的分辨率为640x480,而所选图片的分辨率为120x120。

3.修改显示区域分辨率后结果如右图所示, 终于有了小乌龟的雏形, 但屏幕上不显示图片的部分闪烁严重, 而且与图像平行的部分有长长的拖影

4.通过增加非数据输出消隐, 解决了
0.png

闪烁和拖影的问题 (右图所示) , 但发现图像并不是静态的,而是从左下到右上循环播放的,而且图像有畸变。

5.冷静分析之后发现,图像畸变是因为分配给图像显示的空间并不是120x120, 而是119x119,修改后畸 变 问题解决了。  
而图片滚动播放是因为没有考虑到ROM 的空间比图片的数据深度稍大,导致每场扫描并不都是从ROM 的第一位开始读取数据的。将每场扫描的时间严格与图片的数据深度一致,终于的到了像要显示的图片(右图)
0.png

实验过程中所遇到的问题及相应的解决方法

本实验都是自己摸索出来的,没有请教任何人,网上也没有关于VGA 图片显示的代码。就是想借助此次机会,在老师放开手的情况下,自己跑一次,感谢老师的一席话:不能永远抱着你走,你也不再是小孩子了。
0.png

完整的pdf格式文档51黑下载地址:
贾亚超_VGA图片显示_3168010143.pdf (773.6 KB, 下载次数: 103)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表