LIBRARY ieee; USE ieee.std_logic_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; ENTITY ph_testbecnch IS END ph_testbecnch; ARCHITECTURE behavior OF ph_testbecnch IS COMPONENT ph_module PORT( din : IN std_logic_vector(12 downto 0); r : IN std_logic; c : IN std_logic; dout : OUT std_logic_vector(26 downto 0) ); END COMPONENT; --Inputs signal din : std_logic_vector(12 downto 0) ; signal r : std_logic :='1'; signal c : std_logic :='0' ; --Outputs signal dout : std_logic_vector(26 downto 0); signal s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21 : std_logic_vector ( 12 downto 0 ); BEGIN -- Instantiate the Unit Under Test (UUT) uut: ph_module PORT MAP ( din => din, r => r, c => c, dout => dout ); -- Stimulus process p1: process begin for i in 0 to 50 loop wait for 4 ns; c <='1'; wait for 4 ns; c <='0'; end loop; end process p1; p2: process begin for i in 0 to 50 loop wait until rising_edge(c); end loop; r <='0'; end process p2; p3: process(c) variable count: integer := 0; begin s1 <= conv_std_logic_vector(0,13); s2 <= conv_std_logic_vector(100,13); s3 <= conv_std_logic_vector(200,13); s4 <= conv_std_logic_vector(300,13); s5 <= conv_std_logic_vector(400,13); s6 <= conv_std_logic_vector(512,13); s7 <= conv_std_logic_vector(400,13); s8 <= conv_std_logic_vector(300,13); s9 <= conv_std_logic_vector(200,13); s10 <= conv_std_logic_vector(100,13); s11 <= conv_std_logic_vector(0,13); s12 <= conv_std_logic_vector(-100,13); s13 <= conv_std_logic_vector(-200,13); s14 <= conv_std_logic_vector(-300,13); s15 <= conv_std_logic_vector(-400,13); s16 <= conv_std_logic_vector(-512,13); s17 <= conv_std_logic_vector(-400,13); s18 <= conv_std_logic_vector(-300,13); s19 <= conv_std_logic_vector(-200,13); s20 <= conv_std_logic_vector(-100,13); s21 <= conv_std_logic_vector(0,13); if (rising_edge(c)) then case count is when 0 => din <= s1; when 1 => din <= s2; when 2 => din <= s3; when 3 => din <= s4; when 4 => din <= s5; when 5 => din <= s6; when 6 => din <= s7; when 7 => din <= s8; when 8 => din <= s9; when 9 => din <= s10; when 10 => din <= s11; when 11 => din <= s12; when 12 => din <= s13; when 13 => din <= s14; when 14 => din <= s15; when 15 => din <= s16; when 16 => din <= s17; when 17 => din <= s18; when 18 => din <= s19; when 19 => din <= s20; when 20 => din <= s21; when others => null; end case; if ( count < 21 ) then count := count + 1; else count := 0; end if; end if; end process p3; END;