零基础学FPGA(十三)先来说说VGA

来源:本站
导读:目前正在解读《零基础学FPGA(十三)先来说说VGA》的相关信息,《零基础学FPGA(十三)先来说说VGA》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《零基础学FPGA(十三)先来说说VGA》的详细说明。
简介:本文为大家介绍了笔记本电脑上的VGA接口。

标准的VGA接口有15个接口,但是真正用到的只有5个接口,分别是三个色彩信号,R,G,B,场同步信号VSYNC,行同步信号HSYNC,时序部分要通过控制行同步信号和场同步信号,色彩部分要控制RGB,先来看时序部分。

零基础学FPGA(十三)先来说说VGA

对于一个分辨率为800*600的显示器,简单的说像素的刷新是从左到右,从上到下一行一行的刷新的,每一行要刷新的点成为行同步信号的帧长,有多少行称为场同步信号的帧长,从上到下刷新完一遍称为一帧,我们电脑上说的屏幕刷新频率就是说屏幕一秒钟能够刷新多少帧,当达到一定的帧数,我们的肉眼也就分辨不出来了,这样我们就看到我们的电脑屏幕,我们在操作的时候是连续的了。下面是时序表:

零基础学FPGA(十三)先来说说VGA

先来解释一下这个表

第一行表示行同步信号的时序表,前187个计数点表示的在消影区,即还没开始进入显示区,从188开始进入显示区,到987结束,后面的52个计数点又在消影区

第二行表示场同步信号。同理。前31个计数点和后56个计数点表示在消影区,是不显示的,下面是我画的一个图帮大家理解

零基础学FPGA(十三)先来说说VGA

知道了这一点我们就可以开始写时序部分的程序了

零基础学FPGA(十三)先来说说VGA

当行计数器计满一行1039个点时清零,场计数器加1,当场计数器计满687行时,一帧结束,场计数器清零

零基础学FPGA(十三)先来说说VGA

当计满一行时,行同步信号会拉低一个120个时钟周期的低脉冲,通俗的理解就是计满一行有一个低脉冲出现,这个脉冲的长度是120个时钟周期,同理,计满一个场之后会有6个场周期的低脉冲出现,这个低脉冲就不是时钟周期了,是相当于场计数器计6行的时间

时序写好了之后就要确定显示区域,根据上面那个我画的图,即只有在行计数器计到187到987,场计数器计到31到631时才是有效区域

零基础学FPGA(十三)先来说说VGA

为了好确定坐标,我们可以将坐标转换一下,换成我们习惯的样子,避免消影区坐标的干扰

零基础学FPGA(十三)先来说说VGA

这样一切准备工作就做好了,剩下的就是我们自己设计想要显示的画面了,例如,我要在屏幕中间显示一个矩形框,在这个矩形里面显示一个小矩形

零基础学FPGA(十三)先来说说VGA

这个地方我刚开始看的时候没看懂,我再画一个图帮大家理解

零基础学FPGA(十三)先来说说VGA

下面显示小矩形

零基础学FPGA(十三)先来说说VGA

画完图形最后显示颜色

零基础学FPGA(十三)先来说说VGA

最后按照硬件原理图分配好管脚,下载就可以了

零基础学FPGA(十三)先来说说VGA

下面来说说显示字符

时序部分是一样的就不多说,直接说字符显示部分

显示字符当然要用到取模软件,相信大家都用过

零基础学FPGA(十三)先来说说VGA

然后将字模进行拼接,因为我们刷新是从左向右,从上到下刷新的,所以要把每一个字模的同一行拼接在一起,这样每刷新一行,同时刷新三个字模的一行,从上到下刷新一边,三个字模也就刷新出来了

零基础学FPGA(十三)先来说说VGA

这里要定义一个减法计数器,当像素点从某个位置从左到右开始刷新时开始计数,知道计数到要显示的字模结束为止。这里我用到了32个像素点表示一个字模的一行,4个字模就需要128个像素点来表示一行,共有32列

零基础学FPGA(十三)先来说说VGA

下面是当计数到需要显示的字模时,给字加上颜色,x_dis,y_dis用来确定在哪显示字符

零基础学FPGA(十三)先来说说VGA

下面是演示结果

零基础学FPGA(十三)先来说说VGA

提醒:《零基础学FPGA(十三)先来说说VGA》最后刷新时间 2024-03-14 00:55:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《零基础学FPGA(十三)先来说说VGA》该内容的真实性请自行鉴别。