一看就会的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

相关文章
|
存储 开发工具 异构计算
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(下)
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑
936 0
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(下)
|
2月前
|
芯片
关于LDO,读懂这一篇就够了
【10月更文挑战第10天】在电子设计中,我们经常需要用到不同的直流电压给不同器件供电,其中广泛常见的就是通过LDO稳压芯片来实现得到不同的直流电压输出,因为成本低、性能好,且使用起来也很简单,让低压差线性稳压器(下文简称LDO)用的也越来越多,几乎每款电子产品里都有其身影。
109 10
|
7月前
|
数据格式
LabVIEW编程LabVIEW控制JJ天平例程与相关资料
LabVIEW编程LabVIEW控制JJ天平例程与相关资料
51 1
【单片机】简易计算器完整代码带电路图
【单片机】简易计算器完整代码带电路图
447 0
【单片机】简易计算器完整代码带电路图
|
7月前
动图搞懂三极管的工作原理
动图搞懂三极管的工作原理
59 0
|
异构计算
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
966 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
|
7月前
|
传感器 芯片 异构计算
常见的基础模块电路,你都能看懂吗?
常见的基础模块电路,你都能看懂吗?
103 0
|
传感器 数据采集 算法
基于LabVIEW的温度计程序实现
基于LabVIEW的温度计程序实现
164 0