一看就会的VGA图像显示VHDL设计,简单易懂

简介: 一看就会的VGA图像显示VHDL设计,简单易懂

VGA图像显示控制电路VHDL设计

一、实验设计目的

学习VGA图像显示控制电路设计。

要求:

1、VGA正常工作;

2、图像显示;

二、实验设计原理

微信图片_20221013082631.png

1、VGA如果正常工作?

微信图片_20221013082634.png

普通的VGA显示器引出线共含有5个信号:

R、G、B:三基色信号

HS:行同步信号

VS:场同步信号

这五个信号的时序驱动,严格遵循“VGA工业标准”

微信图片_20221013082638.png

微信图片_20221013082640.png

颜色编码如下:

微信图片_20221013082646.png

如果VGA显示真彩色BMP图像,则要R、G、B三个分量各8位,即24位表示一个像素值,很多情况下还采用32位表示一个像素值。

为了节省显存的存储空间,可采用高彩色图像,即每个像素值由16位表示,R、G、B三个分量分别使用5位、6位、5位,比真彩色图像数据量减少一半,同时又能满足显示效果。

(2)VGA行频和场频

时钟频率(Clock frequency) :25.175 MHz (像素输出的频率)

行频(Line frequency):31469 Hz

场频(Field frequency ) :59.94 Hz (每秒图像刷新频率)

(3)VGA实际的行频和场频

我们提供的时钟频率(Clock frequency)是 :20MHz (开发板的频率)

如何得到时钟频率25M Hz ?微信图片_20221013082813.png

利用锁相环来进行分频,得到25MHz的信号

如何得到行频(Line frequency):31469 Hz?答:分频:行频的近似值 25M/800=31250Hz

如何得到场频(Field frequency ):59.94 Hz (每秒图像刷新频率)?答:还是分频:得到场频的近似值 25M/800/525=59.52Hz

那么VGA的工作频率进行分频时,行频分频计数为什么是800?

场频分频计数为什么是525?

(4)VGA的工作时序图微信图片_20221013082817.png微信图片_20221013082819.png

(5)VGA工业标准显示模式

微信图片_20221013082822.png

要求:

1)行周期为800像素时间点,场周期为525像素时间点;

2)行同步、场同步头脉冲要求是负极性脉冲。

(6)VGA正常工作程序设计

A.行频频率和行像素点计数

--this is Horizonal counter 
always@(posedge clk)   begin
  if(hcnt < 800) then
    hcnt <= hcnt + 1;
  else
    hcnt <= (others => '0');
end 

B.场频频率和场像素点计数

--this is Vertical counter 
always@(posedge clk)    begin
  if (hcnt == 640+8 ) then
    if(vcnt < 525) then           
      vcnt <= vcnt + 1;
    else
      vcnt <= (others => '0');  
end

如何得到行、场同步脉冲信号呢?

微信图片_20221013082959.png

--this is hs  pulse
process(clk) begin
     if (rising_edge(clk)) then
         if((hcnt>= 640+8+8) and (hcnt<640+8+8+96 )) then
        hs <= '0';
  else
       hs <= '1';
  end if;
     end if;
end process;
--this is vs  pulse
process(vcnt) begin
  if ((vcnt >= 480+8+2) and (vcnt < 480+8+2+2)) then  
      vs <= '0';
    else
      vs <= '1';
  end if;
end process;

微信图片_20221013083033.png

相关文章
|
19天前
|
数据可视化 测试技术 C++
【软件设计师备考 专题 】设计输入输出:屏幕界面设计和检查方法(二)
【软件设计师备考 专题 】设计输入输出:屏幕界面设计和检查方法
28 0
|
19天前
|
数据可视化 数据安全/隐私保护 UED
【软件设计师备考 专题 】设计输入输出:屏幕界面设计和检查方法(一)
【软件设计师备考 专题 】设计输入输出:屏幕界面设计和检查方法
35 0
|
11月前
【单片机】简易计算器完整代码带电路图
【单片机】简易计算器完整代码带电路图
245 0
【单片机】简易计算器完整代码带电路图
|
19天前
|
传感器 芯片 异构计算
常见的基础模块电路,你都能看懂吗?
常见的基础模块电路,你都能看懂吗?
50 0
|
异构计算
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
599 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
|
传感器 数据采集 算法
基于LabVIEW的温度计程序实现
基于LabVIEW的温度计程序实现
113 0
|
芯片
汇编语言与微机接口课程设计-多功能电子钟
汇编语言与微机接口课程设计-多功能电子钟
271 0
汇编语言与微机接口课程设计-多功能电子钟
|
C语言
复习单片机:单灯闪烁(内含设计思路和原始代码)
复习单片机:单灯闪烁(内含设计思路和原始代码)
178 0
复习单片机:单灯闪烁(内含设计思路和原始代码)
|
编解码 芯片
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)
500 0
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)