1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
--------------------------------------------------------------------------------
-- VGA lab
-- Anders Nilsson
-- 16-dec-2015
-- Version 1.0
-- library declaration
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; -- basic IEEE library
use IEEE.NUMERIC_STD.ALL; -- IEEE library for the unsigned type
-- and various arithmetic operations
-- entity
entity VGA_lab is
port ( clk : in std_logic; -- system clock
rst : in std_logic; -- reset
Hsync : out std_logic; -- horizontal sync
Vsync : out std_logic; -- vertical sync
vgaRed : out std_logic_vector(2 downto 0); -- VGA red
vgaGreen : out std_logic_vector(2 downto 0); -- VGA green
vgaBlue : out std_logic_vector(2 downto 1)); -- VGA blue
end VGA_lab;
-- architecture
architecture Behavioral of VGA_lab is
-- picture memory component
component PICT_MEM
port ( clk : in std_logic; -- system clock
-- port 1
we1 : in std_logic; -- write enable
data_in1 : in std_logic_vector(7 downto 0); -- data in
data_out1 : out std_logic_vector(7 downto 0); -- data out
addr1 : in unsigned(10 downto 0); -- address
-- port 2
we2 : in std_logic; -- write enable
data_in2 : in std_logic_vector(7 downto 0); -- data in
data_out2 : out std_logic_vector(7 downto 0); -- data out
addr2 : in unsigned(10 downto 0)); -- address
end component;
-- VGA motor component
component VGA_MOTOR
port ( clk : in std_logic; -- system clock
rst : in std_logic; -- reset
data : in std_logic_vector(7 downto 0); -- data
addr : out unsigned(10 downto 0); -- address
vgaRed : out std_logic_vector(2 downto 0); -- VGA red
vgaGreen : out std_logic_vector(2 downto 0); -- VGA green
vgaBlue : out std_logic_vector(2 downto 1); -- VGA blue
Hsync : out std_logic; -- horizontal sync
Vsync : out std_logic); -- vertical sync
end component;
-- intermediate signals between PICT_MEM and VGA_MOTOR
signal data_out2_s : std_logic_vector(7 downto 0); -- data
signal addr2_s : unsigned(10 downto 0); -- address
begin
-- picture memory component connection
U1 : PICT_MEM port map(clk=>clk, we1=>'0', data_in1=>"00000000", addr1=>"00000000000", we2=>'0', data_in2=>"00000000", data_out2=>data_out2_s, addr2=>addr2_s);
-- VGA motor component connection
U2 : VGA_MOTOR port map(clk=>clk, rst=>rst, data=>data_out2_s, addr=>addr2_s, vgaRed=>vgaRed, vgaGreen=>vgaGreen, vgaBlue=>vgaBlue, Hsync=>Hsync, Vsync=>Vsync);
end Behavioral;
|