首页 » 软件开发 » FPGA实现VGA接口驱动设计验证(脉冲扫描信号像素驱动)

FPGA实现VGA接口驱动设计验证(脉冲扫描信号像素驱动)

少女玫瑰心 2024-07-23 22:58:27 0

扫一扫用手机浏览

文章目录 [+]

一, 设计要求

根据vga接口协议以及开发板电路原理图,我们编写vga驱动逻辑电路,使其能够正常显示数据。

二, vga接口协议

FPGA实现VGA接口驱动设计验证(脉冲扫描信号像素驱动) 软件开发
(图片来自网络侵删)

扫描方式:从左到右,从上到下扫描;那么我们开始扫描的位置就在显示器左上角开始。

VGA(Video Graphics Array,视频图形阵列),是 IBM 于 1987 年提出的一个使 用类比讯号的电脑显示标准。
VGA 是最多制造商所共同支持的一个低标准,个 人电脑在加载自己的独特驱动程式之前,都必须支持 VGA 的标准。
今天我们就来学习一下这个接口的驱动时序,让我们的设计从此色彩纷呈。
首先我们看一下 VGA 接口的电路原理图

电路视图

屏幕显示都是通过像素点集合起来形成的。

行脉冲信号:表示扫描完一行都会产生一个脉冲信号表示一行扫描完。

场脉冲信号:表示扫描完所有行(扫描完所有像素点)产生一个脉冲信号。

行脉冲信号产生的次数在扫描完所有像素点时:需要根据我们屏幕里包含多少行来决定。

场脉冲信号扫描完所有像素点只会产生一次。

行脉冲信号时序关系为:

行脉冲信号时序关系

我们扫描完一行所有像素点其包含a,b,c,d这四个区域。
a,b,d区域我们称为消隐区域,不显示像素点数据。
消隐区域像素点数据信号为低电平。

场脉冲信号时序和行脉冲信号时序一致。

蓝色区域为显示区域,白色区域为消隐区。

不同显示标准对应的行列数据表:

对应行列数据表

显示模式:64048060表示显示区域列包含640列,480行,60表示扫描完所有像素点的频率60hz,扫描完一帧的时钟频率。
其后面表示的时钟都是以mhz为单位,其表示扫描一个像素点的时钟频率。
表示扫描一个像素点时间1/(60800525),扫描像素点的频率为:60800525=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]是我们驱动电路的输出。

输入信号:系统时钟,系统复位。

下午练习:

以显示标准80060060为标准,将显示屏幕的范围划分为多个部分,每一个部分显示不同的颜色。

行代码

控制模块

仿真波形

标签:

相关文章

C语言表白代码,编程之美,爱意绵绵

在这个科技飞速发展的时代,编程已经成为了我们生活中不可或缺的一部分。而C语言作为一门经典的编程语言,更是备受青睐。今天,就让我们用...

软件开发 2024-12-04 阅读8 评论0

16倍速生活方式,高效工作与生活的完美融合

随着科技的飞速发展,我们的生活节奏也在不断加快。在这个快节奏的时代,如何高效地平衡工作与生活,成为了许多人关注的焦点。本文将探讨1...

软件开发 2024-12-04 阅读7 评论0

C语言编程猜数游戏,编程与娱乐的完美融合

在科技日新月异的今天,编程已经成为一项重要的技能。作为计算机科学的基础,编程不仅可以锻炼我们的逻辑思维,还能提高我们的动手能力。而...

软件开发 2024-12-04 阅读7 评论0

C语言病毒代码介绍,技术与道德的双重挑战

随着信息技术的飞速发展,网络安全问题日益凸显。病毒作为一种恶意软件,严重威胁着计算机系统的稳定运行。C语言作为一种功能强大的编程语...

软件开发 2024-12-04 阅读5 评论0