git-svn-id: http://moon:8086/svn/vhdl/trunk@1588 cc03376c-175c-47c8-b038-4cd826a8556b
121 lines
2.4 KiB
VHDL
121 lines
2.4 KiB
VHDL
|
|
LIBRARY ieee;
|
|
use IEEE.STD_LOGIC_1164.ALL;
|
|
use IEEE.NUMERIC_STD.ALL;
|
|
|
|
use work.vga_types.all;
|
|
|
|
entity vga_ctrl_sys is
|
|
Generic
|
|
(
|
|
sys_freq_MHz : real := 100.0;
|
|
tsvga : vga_timespec_t := ts_vga_1280_1024_72
|
|
);
|
|
Port
|
|
(
|
|
sys_rst_n_in : in std_logic;
|
|
sys_clk_in : in std_logic;
|
|
|
|
-- VGA signals
|
|
sys_vga_clk : out std_logic;
|
|
sys_vga_red : out unsigned(7 downto 0);
|
|
sys_vga_green : out unsigned(7 downto 0);
|
|
sys_vga_blue : out unsigned(7 downto 0);
|
|
sys_vga_blank_n : out std_logic;
|
|
sys_vga_sync_n : out std_logic;
|
|
sys_vga_hsync : out std_logic;
|
|
sys_vga_vsync : out std_logic;
|
|
|
|
-- Buttons and LEDs
|
|
sys_btn : in unsigned(4 downto 0);
|
|
sys_dip : in unsigned(7 downto 0);
|
|
sys_led : out unsigned(8 downto 0)
|
|
);
|
|
end vga_ctrl_sys;
|
|
|
|
ARCHITECTURE behavior OF vga_ctrl_sys IS
|
|
|
|
-- Component Declaration for the Unit Under Test (UUT)
|
|
COMPONENT vga_ctrl_top
|
|
GENERIC
|
|
(
|
|
tsvga : vga_timespec_t
|
|
);
|
|
PORT
|
|
(
|
|
rst_in : IN std_logic;
|
|
clk_in : IN std_logic;
|
|
|
|
-- VGA signals
|
|
vga_clk_in : IN std_logic;
|
|
vga_clk_ce : IN std_logic;
|
|
vga_red : OUT unsigned(7 downto 0);
|
|
vga_green : OUT unsigned(7 downto 0);
|
|
vga_blue : OUT unsigned(7 downto 0);
|
|
vga_blank_n : OUT std_logic;
|
|
vga_sync_n : OUT std_logic;
|
|
vga_hsync : OUT std_logic;
|
|
vga_vsync : OUT std_logic;
|
|
|
|
-- Buttons and LEDs
|
|
dip : in unsigned(7 downto 0);
|
|
btn : in unsigned(4 downto 0);
|
|
led : out unsigned(8 downto 0)
|
|
);
|
|
END COMPONENT;
|
|
|
|
--Constants
|
|
SIGNAL sys_rst : std_logic;
|
|
SIGNAL vga_clk : std_logic;
|
|
SIGNAL vga_rst : std_logic;
|
|
SIGNAL vga_ce : std_logic;
|
|
constant vga_freq_MHz : real := real(tsvga.f_pxl_clk)/1.0E6;
|
|
|
|
BEGIN
|
|
|
|
sys_rst <= not sys_rst_n_in;
|
|
vga_ce <= not vga_rst;
|
|
sys_vga_clk <= vga_clk;
|
|
|
|
inst_vga_ctrl_top: vga_ctrl_top
|
|
GENERIC MAP
|
|
(
|
|
tsvga => tsvga
|
|
)
|
|
PORT MAP
|
|
(
|
|
rst_in => sys_rst,
|
|
clk_in => sys_clk_in,
|
|
|
|
vga_clk_in => vga_clk,
|
|
vga_clk_ce => vga_ce,
|
|
vga_red => sys_vga_red,
|
|
vga_green => sys_vga_green,
|
|
vga_blue => sys_vga_blue,
|
|
vga_blank_n => sys_vga_blank_n,
|
|
vga_sync_n => sys_vga_sync_n,
|
|
vga_hsync => sys_vga_hsync,
|
|
vga_vsync => sys_vga_vsync,
|
|
|
|
dip => sys_dip,
|
|
btn => sys_btn,
|
|
led => sys_led
|
|
);
|
|
|
|
inst_clockgen_vga : entity work.clockgen
|
|
GENERIC MAP
|
|
(
|
|
clk_in_freq => sys_freq_MHz,
|
|
clk_out_freq => vga_freq_MHz
|
|
)
|
|
PORT MAP
|
|
(
|
|
-- Clocks and Reset
|
|
rst_in => sys_rst,
|
|
clk_in => sys_clk_in,
|
|
rst_out => vga_rst,
|
|
clk_out => vga_clk
|
|
);
|
|
|
|
END;
|