library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity counter_tb is end counter_tb; architecture test of counter_tb is signal clk, reset, enable, direction : std_logic; signal s_count_out : std_logic_vector(7 downto 0); signal count_out : unsigned(7 downto 0); begin uut: entity work.counter port map ( clk => clk, reset => reset, enable => enable, direction => direction, count_out => s_count_out ); count_out <= unsigned(s_count_out); simulate: process begin clk <= '0'; reset <= '1'; enable <= '0'; wait for 30 ns; assert count_out = 0; reset <= '0'; clk <= '0'; wait for 10 ns; clk <= '1'; wait for 10 ns; assert count_out = 0; enable <= '1'; direction <= '0'; clk <= '0'; wait for 10 ns; clk <= '1'; wait for 10 ns; assert count_out = 255; direction <= '1'; clk <= '0'; wait for 10 ns; clk <= '1'; wait for 10 ns; clk <= '0'; wait for 10 ns; clk <= '1'; wait for 10 ns; assert count_out = 1; wait for 30 ns; wait; end process; end test;