292|1

4771

帖子

12

TA的资源

版主

楼主
 

FPGA实现VGA接口驱动设计验证 [复制链接]

 
vga接口驱动设计验证Verilog代码设计
一, 设计要求
根据vga接口协议以及开发板电路原理图,我们编写vga驱动逻辑电路,使其能够正常显示数据。
二, vga接口协议
扫描方式:从左到右,从上到下扫描;那么我们开始扫描的位置就在显示器左上角开始。
VGA(Video Graphics Array,视频图形阵列),是 IBM 于 1987 年提出的一个使 用类比讯号的电脑显示标准。VGA 是最多制造商所共同支持的一个低标准,个 人电脑在加载自己的独特驱动程式之前,都必须支持 VGA 的标准。 今天我们就来学习一下这个接口的驱动时序,让我们的设计从此色彩纷呈。 首先我们看一下 VGA 接口的电路原理图
电路视图
屏幕显示都是通过像素点集合起来形成的。
行脉冲信号:表示扫描完一行都会产生一个脉冲信号表示一行扫描完。
场脉冲信号:表示扫描完所有行(扫描完所有像素点)产生一个脉冲信号。
行脉冲信号产生的次数在扫描完所有像素点时:需要根据我们屏幕里包含多少行来决定。
场脉冲信号扫描完所有像素点只会产生一次。
行脉冲信号时序关系为:
行脉冲信号时序关系
我们扫描完一行所有像素点其包含a,b,c,d这四个区域。a,b,d区域我们称为消隐区域,不显示像素点数据。消隐区域像素点数据信号为低电平。
场脉冲信号时序和行脉冲信号时序一致。
蓝色区域为显示区域,白色区域为消隐区。
不同显示标准对应的行列数据表:
对应行列数据表
显示模式:640*480*60表示显示区域列包含640列,480行,60表示扫描完所有像素点的频率60hz,扫描完一帧的时钟频率。其后面表示的时钟都是以mhz为单位,其表示扫描一个像素点的时钟频率。表示扫描一个像素点时间1/(60*800*525),扫描像素点的频率为:60*800*525=25.2mhz。
设计系统架构
1:如何产生行脉冲信号?
我们如何确定扫描完一行,每一行包含了800个像素点,那么其对应的就是扫描时钟经过800个时钟周期,产生一个列计数器cnt_hs,列计数器的变化范围在0到799,可以根据列计数器产生行脉冲信号,cnt_hs 小于96时行脉冲信号为低电平,其他值时为高电平。
2:如何产生场脉冲信号?
扫描完所有像素点只会产生一次,扫描完所有行就可以表示将所有像素点扫描完,可以产生一个行计数器cnt_vs,行计数器变化一次的条件为:列计数器计数到最大值。表示所有的像素点扫描完:列计数器cnt_hs等于最大值且行计数器cnt_vs等于最大值。可以根据行计数器产生场脉冲信号,cnt_vs 小于2时场脉冲信号为低电平,其他值时为高电平。
3: 我们如何划分显示区域?
划分显示区域
当列计数器cnt_hs < 784且cnt_hs > 143时,同时行计数器cnt_vs>34且cnt_vs< 515时,就表示显示区域。
时序设计
驱动电路的端口信息:
行列脉冲信号以及像素点数据信号都是我们驱动电路产生给到vga接口的,那么就说明vga_hs,vga_vs,vga_rgb[7:0]是我们驱动电路的输出。
输入信号:系统时钟,系统复位。
下午练习:
以显示标准800*600*60为标准,将显示屏幕的范围划分为多个部分,每一个部分显示不同的颜色。
行代码
控制模块
仿真波形
 

最新回复

fpga需要代码量较大,感觉较难学习,自己diy的还是有难度   详情 回复 发表于 2024-10-23 10:51
点赞 关注
 

回复
举报

14

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

fpga需要代码量较大,感觉较难学习,自己diy的还是有难度

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表