- refactored

git-svn-id: http://moon:8086/svn/vhdl/trunk@1583 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2021-03-29 16:38:07 +00:00
parent 2808f7e893
commit 1f4de98cea
2 changed files with 89 additions and 89 deletions
+56 -56
View File
@@ -45,51 +45,51 @@ ARCHITECTURE behavior OF tb_vga_ctrl IS
);
PORT
(
sys_rst_in : IN std_logic;
sys_clk_in : IN std_logic;
rst_in : IN std_logic;
clk_in : IN std_logic;
-- VGA signals
sys_vga_clk_in : IN std_logic;
sys_vga_clk_ce : IN 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;
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
sys_dip : in unsigned(7 downto 0);
sys_btn : in unsigned(4 downto 0);
sys_led : out unsigned(8 downto 0)
dip : in unsigned(7 downto 0);
btn : in unsigned(4 downto 0);
led : out unsigned(8 downto 0)
);
END COMPONENT;
--Constants
constant tsvga : vga_timespec_t := ts_vga_testbench;
constant PERIOD : time := 10 ns;
constant SYS_CLK_PERIOD : time := 10 ns;
constant CLK_PERIOD : time := 10 ns;
constant VGA_CLK_PERIOD : time := (integer(1E9) / tsvga.f_pxl_clk) * 1 ns;
--Inputs
SIGNAL sys_rst_in : std_logic := '1';
SIGNAL sys_clk_in : std_logic := '0';
SIGNAL sys_color_en : unsigned(2 downto 0) := (others => '0');
SIGNAL sys_dip : unsigned(7 downto 0) := (others => '0');
SIGNAL sys_btn : unsigned(4 downto 0) := (others => '0');
SIGNAL rst_in : std_logic := '1';
SIGNAL clk_in : std_logic := '0';
SIGNAL color_en : unsigned(2 downto 0) := (others => '0');
SIGNAL dip : unsigned(7 downto 0) := (others => '0');
SIGNAL btn : unsigned(4 downto 0) := (others => '0');
--Outputs
SIGNAL sys_vga_clk_ce : std_logic := '1';
SIGNAL sys_vga_clk_in : std_logic := '0';
SIGNAL sys_vga_red : unsigned(7 downto 0);
SIGNAL sys_vga_green : unsigned(7 downto 0);
SIGNAL sys_vga_blue : unsigned(7 downto 0);
SIGNAL sys_vga_blank_n : std_logic;
SIGNAL sys_vga_sync_n : std_logic;
SIGNAL sys_vga_hsync : std_logic;
SIGNAL sys_vga_vsync : std_logic;
SIGNAL sys_led : unsigned(8 downto 0);
SIGNAL vga_clk_ce : std_logic := '1';
SIGNAL vga_clk_in : std_logic := '0';
SIGNAL vga_red : unsigned(7 downto 0);
SIGNAL vga_green : unsigned(7 downto 0);
SIGNAL vga_blue : unsigned(7 downto 0);
SIGNAL vga_blank_n : std_logic;
SIGNAL vga_sync_n : std_logic;
SIGNAL vga_hsync : std_logic;
SIGNAL vga_vsync : std_logic;
SIGNAL led : unsigned(8 downto 0);
constant f_sys : real := 100.0;
constant f_vga : real := 130.0;
-- SIGNAL test_M : natural := VGA_FREQ_M(f_sys, f_vga);
@@ -105,33 +105,33 @@ BEGIN
)
PORT MAP
(
sys_rst_in => sys_rst_in,
sys_clk_in => sys_clk_in,
rst_in => rst_in,
clk_in => clk_in,
sys_vga_clk_in => sys_vga_clk_in,
sys_vga_clk_ce => sys_vga_clk_ce,
sys_vga_red => sys_vga_red,
sys_vga_green => sys_vga_green,
sys_vga_blue => sys_vga_blue,
sys_vga_blank_n => sys_vga_blank_n,
sys_vga_sync_n => sys_vga_sync_n,
sys_vga_hsync => sys_vga_hsync,
sys_vga_vsync => sys_vga_vsync,
vga_clk_in => vga_clk_in,
vga_clk_ce => vga_clk_ce,
vga_red => vga_red,
vga_green => vga_green,
vga_blue => vga_blue,
vga_blank_n => vga_blank_n,
vga_sync_n => vga_sync_n,
vga_hsync => vga_hsync,
vga_vsync => vga_vsync,
sys_dip => sys_dip,
sys_btn => sys_btn,
sys_led => sys_led
dip => dip,
btn => btn,
led => led
);
sys_clk : PROCESS
clk : PROCESS
BEGIN
sys_clk_in <= not sys_clk_in;
wait for SYS_CLK_PERIOD/2;
clk_in <= not clk_in;
wait for CLK_PERIOD/2;
END PROCESS;
vga_clk : PROCESS
BEGIN
sys_vga_clk_in <= not sys_vga_clk_in;
vga_clk_in <= not vga_clk_in;
wait for VGA_CLK_PERIOD/2;
END PROCESS;
@@ -139,17 +139,17 @@ BEGIN
BEGIN
-- Wait 100 ns for global reset to finish
wait for 100*SYS_CLK_PERIOD;
sys_rst_in <= '0';
wait for 100*CLK_PERIOD;
rst_in <= '0';
wait for SYS_CLK_PERIOD;
sys_dip <= X"AA";
wait for CLK_PERIOD;
dip <= X"AA";
wait for SYS_CLK_PERIOD;
sys_color_en <= "100";
wait for CLK_PERIOD;
color_en <= "100";
wait for 10*SYS_CLK_PERIOD;
sys_color_en <= "000";
wait for 10*CLK_PERIOD;
color_en <= "000";
-- Wait 100 ns for global reset to finish
wait for 100 ns;