⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vgaf.vhd

📁 vga显示驱动,在EDA中实现对VGA显示器的驱动控制。
💻 VHD
字号:
library IEEE;
use  IEEE.STD_LOGIC_1164.all;
use  IEEE.STD_LOGIC_ARITH.all;
use  IEEE.STD_LOGIC_UNSIGNED.all;

ENTITY VGA IS
	PORT(clock_25Mhz, red, green, blue: IN	STD_LOGIC;
	     red_out,   green_out,    blue_out, 
          horiz_sync_out, vert_sync_out	: OUT	STD_LOGIC;
	     pixel_row, pixel_column: OUT  
                           STD_LOGIC_VECTOR(9 DOWNTO 0);
		z:OUT 	STD_LOGIC_VECTOR(9 DOWNTO 0));
END VGA;
ARCHITECTURE a OF VGA IS
	SIGNAL horiz_sync, vert_sync : STD_LOGIC;
	SIGNAL video_on_h, video_on_v, 
                    video_on                     : STD_LOGIC;
	SIGNAL h_count, v_count :
                             STD_LOGIC_VECTOR(9 DOWNTO 0);

BEGIN
z<=v_count;
-- video_on is high only when RGB data is displayed
video_on <= video_on_H AND video_on_V;
PROCESS
BEGIN
	WAIT UNTIL(clock_25Mhz'EVENT) AND (clock_25Mhz='1');
-- H_count counts pixels (640 + extra time for sync signals)
-- Horiz_sync  ------------------------------------__________--------
-- H_count     0                        640   659            755   799
	IF (h_count = 799) THEN--1919
   		h_count <= "0000000000";--00000000000
	ELSE
   		h_count <= h_count + 1;
	END IF;
	IF (h_count <= 755) AND (h_count >= 659) THEN--1812 1583
 	  	horiz_sync <= '0';
	ELSE
 	  	horiz_sync <= '1';
	END IF;
--Vert_sync    -----------------------------------------------_______-----
-- V_count     0                                     480     493 – 494 524
	IF (v_count >= 524) AND (h_count >= 699) THEN--1259 1679
   		v_count <= "0000000000";--00000000000
	ELSIF (h_count = 699) THEN--1679
   		v_count <= v_count + 1;
	END IF;

	IF (v_count <= 494) AND (v_count >= 493) THEN--1185 1184
   		vert_sync <= '0';
	ELSE
  		vert_sync <= '1';
	END IF;
IF (h_count <= 639) THEN--1535
   		video_on_h <= '1';
   		pixel_column <= h_count;
	ELSE
	   	video_on_h <= '0';
	END IF;

IF (v_count <= 479) THEN--1151
   		video_on_v <= '1';
   		pixel_row <= v_count;
	ELSE
   		video_on_v <= '0';
	END IF;
	red_out     <= red    AND video_on;
		green_out <= green AND video_on;
		blue_out   <= blue   AND video_on;
		horiz_sync_out   <=   horiz_sync;
		vert_sync_out     <=   vert_sync;

END PROCESS;
END a;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -