|
发表于 2011-12-30 23:53:23
|
显示全部楼层
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; 时钟50M,800*600 72Hz 疯子王
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY VGA IS
PORT(
CLK:IN STD_LOGIC;
HS:OUT STD_LOGIC;
VS:OUT STD_LOGIC;
R:OUT STD_LOGIC_VECTOR(2 downto 0);
G:OUT STD_LOGIC_VECTOR(2 downto 0);
B:OUT STD_LOGIC_VECTOR(1 downto 0)
);
END ENTITY;
ARCHITECTURE ART OF VGA IS
SIGNAL hcnt,vcnt:STD_LOGIC_VECTOR(10 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF(hcnt=1039) THEN
hcnt<=(others=>'0');
IF(vcnt=665) THEN
vcnt<=(others=>'0');
ELSE
vcnt<=vcnt+1;
END IF;
ELSE
hcnt<=hcnt+1;
END IF;
END IF;
END PROCESS;
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF(hcnt>=119) THEN
HS<='1';
ELSE
HS<='0';
END IF;
END IF;
END PROCESS;
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF(vcnt>=5) THEN
VS<='1';
ELSE
VS<='0';
END IF;
END IF;
END PROCESS;
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF((hcnt>=175 AND hcnt<=975) AND (vcnt>=42 AND vcnt<=642) ) THEN
R<="111";
G<="000";
B<="00";
ELSE
R<="000";
G<="000";
B<="00";
END IF;
END IF;
END PROCESS;
END ART; |
|