
-- Test Bench for KK03-30 Windshield Wiper 1				E235   11 1103

--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
 
ENTITY wiper_tb IS
END wiper_tb;
 
ARCHITECTURE behavioral OF wiper_tb IS 
 	COMPONENT wiper
	port 
	(
		cw_sw: 	in		std_logic;	--Clockwise switch
		ccw_sw: 	in 	std_logic;	--Counterclockwise switch
		run_sw:	in		std_logic;	--Run switch
		
		cw_out: 	out 	std_logic;	--CW signal to motor driver
		ccw_out: out 	std_logic;	--CCW signal to motor driver
		run_out:	out	std_logic	--Enable signal to motor driver
		); 
	END COMPONENT;
  
	signal cws: 	std_logic := '0';
	signal ccws:	std_logic := '0';
	signal runs: 	std_logic := '0';
	signal cwo: 	std_logic := '0';
	signal ccwo: 	std_logic := '0';
	signal runo: 	std_logic := '0';

	BEGIN
		uut: wiper PORT MAP (
		cw_sw		=> cws,
		ccw_sw	=> ccws,
		run_sw	=> runs,
		
		cw_out	=> cwo,
		ccw_out	=> ccwo,
		run_out	=> runo
		);
		
		process
		begin
			runs <= '1';
			cws <= '1';
			wait for 10 ns;
			runs <= '0';
			wait for 10 ns;
			cws <= '0';
			wait for 40 ns;
			ccws <= '1';
			wait for 10 ns;
			ccws <= '0';
			wait for 40 ns;
			cws <= '1';
			wait for 120 ns;
		end process;
END ARCHITECTURE;
