一看就会的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(二) 功能描述-组合逻辑
993 0
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(下)
|
8月前
|
安全 开发工具 芯片
基于VHDL语言的乒乓游戏机电路的设计_kaic
基于VHDL语言的乒乓游戏机电路的设计_kaic
|
异构计算
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
1045 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
224 0
【乌拉喵.教程】进一步学习编写TestBench(VHDL语言),quartus与modelsim时序仿真
|
传感器 算法 IDE
LabVIEW和Arduino的巧妙结合(基础篇—1)
本专栏使用的单片机为:Arduino(本系列专栏使用Arduino UNO控制器),主要原因在于,Arduino简单易上手,老少皆宜,受众面广泛,使用Arduino作为下位机,LabVIEW作为上位机,独立开发者可以快捷开发出一套软硬件联控的演示系统。
|
存储 程序员 开发工具
第三章 硬件描述语言verilog(一)
第三章 硬件描述语言verilog(一)
470 0
第三章 硬件描述语言verilog(一)
|
异构计算
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(中)
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑
335 0
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(中)
|
算法 芯片 计算机视觉
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(上)
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑
934 0
第三章 硬件描述语言verilog(二) 功能描述-组合逻辑(上)
|
C语言
c语言黑白界面射击游戏
c语言黑白界面射击游戏
c语言黑白界面射击游戏
|
文件存储
基于Quartus II 和 ModelSim平台对Verilog HDL硬件描述语言编程仿真操作流程
基于Quartus II 和 ModelSim平台对Verilog HDL硬件描述语言编程仿真操作流程
413 0
基于Quartus II 和 ModelSim平台对Verilog HDL硬件描述语言编程仿真操作流程