-- ----------------------------------------------------------------------------- -- Copyright (c) 2013 Benjamin Krill -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and associated documentation files (the "Software"), to deal -- in the Software without restriction, including without limitation the rights -- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -- copies of the Software, and to permit persons to whom the Software is -- furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -- THE SOFTWARE. -- ----------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.dvi_package.all; ENTITY sig_tb IS END sig_tb; ARCHITECTURE rtl OF sig_tb IS constant CLK_PERIOD : time := 20 ns; signal clk : std_logic; signal rst : std_logic; signal rst_n : std_logic; signal en_stb_i : std_logic; signal hsync_o : std_logic; signal vsync_o : std_logic; signal color_en_o : std_logic; signal color_o : color_t(COLOR_CNT-1 downto 0); signal en_stb_iq : std_logic; signal hsync_oq : std_logic; signal vsync_oq : std_logic; signal color_en_oq : std_logic; signal color_oq : color_t(COLOR_CNT-1 downto 0); BEGIN rst <= transport '1', '0' after ( 4 * CLK_PERIOD); rst_n <= not rst; clock: process begin clk <= '1', '0' after CLK_PERIOD/2; wait for CLK_PERIOD; end process; reg: process begin wait until rising_edge(clk); en_stb_iq <= en_stb_i; hsync_o <= hsync_oq; vsync_o <= vsync_oq; color_o <= color_oq; color_en_o <= color_en_oq; end process; dut: entity work.sig generic map ( H_ACTIVE_PIXEL => x"500", H_BLANKING => x"198", H_SYNC_WIDTH => x"070", H_SYNC_OFFSET => x"030", V_ACTIVE_LINES => x"400", V_BLANKING => x"02a", V_SYNC_WIDTH => x"01", V_SYNC_OFFSET => x"03" ) port map ( clk => clk, rst_n => rst_n, en_stb_i => en_stb_iq, hsync_o => hsync_oq, vsync_o => vsync_oq, color_en_o => color_en_oq, color_o => color_oq ); dut2: entity work.vga port map ( pixelClock => clk, Red => open, Green => open, Blue => open, hSync => open, vSync => open, blank => open ); beh: process begin en_stb_i <= '0'; wait for 20*CLK_PERIOD; en_stb_i <= '1'; --wait for CLK_PERIOD; --en_stb_i <= '0'; wait; end process; end rtl; configuration sig_tb_rtl_cfg of sig_tb is for rtl end for; end sig_tb_rtl_cfg;