⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mouse_tb.vhd

📁 用vhdl实现ps2鼠标的源程序
💻 VHD
字号:

-- VHDL Test Bench Created from source file mouse.vhd -- 10:55:02 07/01/2002
--
-- Notes: 
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test.  Xilinx recommends 
-- that these types always be used for the top-level I/O of a design in order 
-- to guarantee that the testbench will bind correctly to the post-implementation 
-- simulation model.
--
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;

ENTITY testbench IS
END testbench;

ARCHITECTURE behavior OF testbench IS 

	COMPONENT mouse
	PORT(
		clk : IN std_logic;
		reset : IN std_logic;    
		ps2_clk : INOUT std_logic;
		ps2_data : INOUT std_logic;      
		left_button : OUT std_logic;
		right_button : OUT std_logic;
		xsign : OUT std_logic;
		ysign : OUT std_logic;
		x_increment : OUT std_logic_vector(8 downto 0);
		y_increment : OUT std_logic_vector(8 downto 0);
		error_no_ack : OUT std_logic
		);
	END COMPONENT;

	SIGNAL clk :  std_logic;
	SIGNAL reset :  std_logic;
	SIGNAL ps2_clk :  std_logic;
	SIGNAL ps2_data :  std_logic;
	SIGNAL left_button :  std_logic;
	SIGNAL right_button :  std_logic;
	SIGNAL xsign :  std_logic;
	SIGNAL ysign :  std_logic;
	SIGNAL x_increment :  std_logic_vector(8 downto 0);
	SIGNAL y_increment :  std_logic_vector(8 downto 0);
	SIGNAL error_no_ack :  std_logic;

BEGIN

	uut: mouse PORT MAP(
		clk => clk,
		reset => reset,
		ps2_clk => ps2_clk,
		ps2_data => ps2_data,
		left_button => left_button,
		right_button => right_button,
		xsign => xsign,
		ysign => ysign,
		x_increment => x_increment,
		y_increment => y_increment,
		error_no_ack => error_no_ack
	);


	PROCESS -- clock process
	BEGIN
		CLOCK_LOOP : LOOP
		clk <= transport '0';
		WAIT FOR 4 ns;
		clk <= transport '1';
		WAIT FOR 4 ns;
		WAIT FOR 16 ns;
		clk <= transport '0';
		WAIT FOR 16 ns;
		END LOOP CLOCK_LOOP;
	END PROCESS;

	process
   BEGIN
		-- --------------------
		reset <= transport '1';
		readone <= transport '0';
		-- --------------------
		WAIT FOR 8 ns; -- Time=8 ns
		CHECK_ps2clk('1',8);
		CHECK_ps2data('1',8);
		-- --------------------
		WAIT FOR 72 ns; -- Time=80 ns
		reset <= transport '0';
		-- --------------------
		WAIT FOR 368 ns; -- Time=448 ns
		CHECK_ps2clk('0',448);
		-- --------------------
		WAIT FOR 80 ns; -- Time=528 ns
		CHECK_ps2clk('1',528);
		-- --------------------
		WAIT FOR 80 ns; -- Time=608 ns
		CHECK_ps2clk('0',608);
		-- --------------------
		WAIT FOR 80 ns; -- Time=688 ns
		CHECK_ps2clk('1',688);
		-- --------------------
		WAIT FOR 80 ns; -- Time=768 ns
		CHECK_ps2clk('0',768);
		-- --------------------
		WAIT FOR 80 ns; -- Time=848 ns
		CHECK_ps2clk('1',848);
		-- --------------------
		WAIT FOR 80 ns; -- Time=928 ns
		CHECK_ps2clk('0',928);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1008 ns
		CHECK_ps2clk('1',1008);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1088 ns
		CHECK_ps2clk('0',1088);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1168 ns
		CHECK_ps2clk('1',1168);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1248 ns
		CHECK_ps2clk('0',1248);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1328 ns
		CHECK_ps2clk('1',1328);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1408 ns
		CHECK_ps2clk('0',1408);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1488 ns
		CHECK_ps2clk('1',1488);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1568 ns
		CHECK_ps2clk('0',1568);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1648 ns
		CHECK_ps2clk('1',1648);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1728 ns
		CHECK_ps2clk('0',1728);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1808 ns
		CHECK_ps2clk('1',1808);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1888 ns
		CHECK_ps2clk('0',1888);
		-- --------------------
		WAIT FOR 80 ns; -- Time=1968 ns
		CHECK_ps2clk('1',1968);
		CHECK_ps2data('1',1968);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2048 ns
		CHECK_ps2clk('0',2048);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2128 ns
		CHECK_ps2clk('1',2128);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2208 ns
		CHECK_ps2clk('0',2208);
		CHECK_ps2data('0',2208);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2288 ns
		CHECK_ps2clk('1',2288);
		-- --------------------
		WAIT FOR 40 ns; -- Time=2328 ns
		CHECK_ps2data('1',2328);
		-- --------------------
		WAIT FOR 160 ns; -- Time=2488 ns
		CHECK_ps2data('0',2488);
		-- --------------------
		WAIT FOR 40 ns; -- Time=2528 ns
		CHECK_ps2clk('0',2528);
		CHECK_ps2data('0',2528);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2608 ns
		CHECK_ps2clk('1',2608);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2688 ns
		CHECK_ps2clk('0',2688);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2768 ns
		CHECK_ps2clk('1',2768);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2848 ns
		CHECK_ps2clk('0',2848);
		-- --------------------
		WAIT FOR 80 ns; -- Time=2928 ns
		CHECK_ps2clk('1',2928);
		-- --------------------
		WAIT FOR 40 ns; -- Time=2968 ns
		CHECK_ps2data('1',2968);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3008 ns
		CHECK_ps2clk('0',3008);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3088 ns
		CHECK_ps2clk('1',3088);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3128 ns
		CHECK_ps2data('0',3128);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3168 ns
		CHECK_ps2clk('0',3168);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3248 ns
		CHECK_ps2clk('1',3248);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3288 ns
		CHECK_ps2data('1',3288);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3328 ns
		CHECK_ps2clk('0',3328);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3408 ns
		CHECK_ps2clk('1',3408);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3488 ns
		CHECK_ps2clk('0',3488);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3568 ns
		CHECK_ps2clk('1',3568);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3608 ns
		CHECK_ps2data('0',3608);
		-- --------------------
		WAIT FOR 40 ns; -- Time=3648 ns
		CHECK_ps2clk('0',3648);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3728 ns
		CHECK_ps2clk('1',3728);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3808 ns
		CHECK_ps2clk('0',3808);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3888 ns
		CHECK_ps2clk('1',3888);
		-- --------------------
		WAIT FOR 80 ns; -- Time=3968 ns
		CHECK_ps2clk('0',3968);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4048 ns
		CHECK_ps2clk('1',4048);
		-- --------------------
		WAIT FOR 40 ns; -- Time=4088 ns
		CHECK_ps2data('1',4088);
		-- --------------------
		WAIT FOR 40 ns; -- Time=4128 ns
		CHECK_ps2clk('0',4128);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4208 ns
		CHECK_ps2clk('1',4208);
		-- --------------------
		WAIT FOR 120 ns; -- Time=4328 ns
		CHECK_ps2data('0',4328);
		-- --------------------
		WAIT FOR 40 ns; -- Time=4368 ns
		CHECK_ps2clk('0',4368);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4448 ns
		CHECK_ps2clk('1',4448);
		-- --------------------
		WAIT FOR 40 ns; -- Time=4488 ns
		CHECK_ps2data('1',4488);
		-- --------------------
		WAIT FOR 40 ns; -- Time=4528 ns
		CHECK_ps2clk('0',4528);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4608 ns
		CHECK_ps2clk('1',4608);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4688 ns
		CHECK_ps2clk('0',4688);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4768 ns
		CHECK_ps2clk('1',4768);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4848 ns
		CHECK_ps2clk('0',4848);
		-- --------------------
		WAIT FOR 80 ns; -- Time=4928 ns
		CHECK_ps2clk('1',4928);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5008 ns
		CHECK_ps2clk('0',5008);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5088 ns
		CHECK_ps2clk('1',5088);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5128 ns
		CHECK_ps2data('0',5128);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5168 ns
		CHECK_ps2clk('0',5168);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5248 ns
		CHECK_ps2clk('1',5248);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5328 ns
		CHECK_ps2clk('0',5328);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5408 ns
		CHECK_ps2clk('1',5408);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5448 ns
		CHECK_ps2data('1',5448);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5488 ns
		CHECK_ps2clk('0',5488);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5568 ns
		CHECK_ps2clk('1',5568);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5648 ns
		CHECK_ps2clk('0',5648);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5728 ns
		CHECK_ps2clk('1',5728);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5768 ns
		CHECK_ps2data('0',5768);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5808 ns
		CHECK_ps2clk('0',5808);
		-- --------------------
		WAIT FOR 80 ns; -- Time=5888 ns
		CHECK_ps2clk('1',5888);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5928 ns
		CHECK_ps2data('1',5928);
		-- --------------------
		WAIT FOR 40 ns; -- Time=5968 ns
		CHECK_ps2clk('0',5968);
		CHECK_ps2data('1',5968);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6048 ns
		CHECK_ps2clk('1',6048);
		-- --------------------
		WAIT FOR 160 ns; -- Time=6208 ns
		CHECK_ps2clk('0',6208);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6288 ns
		CHECK_ps2clk('1',6288);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6368 ns
		CHECK_ps2clk('0',6368);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6448 ns
		CHECK_ps2clk('1',6448);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6528 ns
		CHECK_ps2clk('0',6528);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6608 ns
		CHECK_ps2clk('1',6608);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6688 ns
		CHECK_ps2clk('0',6688);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6768 ns
		CHECK_ps2clk('1',6768);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6848 ns
		CHECK_ps2clk('0',6848);
		-- --------------------
		WAIT FOR 80 ns; -- Time=6928 ns
		CHECK_ps2clk('1',6928);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7008 ns
		CHECK_ps2clk('0',7008);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7088 ns
		CHECK_ps2clk('1',7088);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7168 ns
		CHECK_ps2clk('0',7168);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7248 ns
		CHECK_ps2clk('1',7248);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7288 ns
		CHECK_ps2data('0',7288);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7328 ns
		CHECK_ps2clk('0',7328);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7408 ns
		CHECK_ps2clk('1',7408);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7448 ns
		CHECK_ps2data('1',7448);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7488 ns
		CHECK_ps2clk('0',7488);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7568 ns
		CHECK_ps2clk('1',7568);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7648 ns
		CHECK_ps2clk('0',7648);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7728 ns
		CHECK_ps2clk('1',7728);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7768 ns
		CHECK_ps2data('1',7768);
		-- --------------------
		WAIT FOR 40 ns; -- Time=7808 ns
		CHECK_ps2clk('0',7808);
		-- --------------------
		WAIT FOR 80 ns; -- Time=7888 ns
		CHECK_ps2clk('1',7888);
		-- --------------------
		WAIT FOR 456 ns; -- Time=8344 ns
		-- --------------------
	end process;
-- *** Test Bench - User Defined Section ***
   --tb : PROCESS
   --BEGIN
    --  wait; -- will wait forever
   --END PROCESS;
-- *** End Test Bench - User Defined Section ***

END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -