tb_fpu.vhd

来自「Java Op Processor java vhdl processor」· VHDL 代码 · 共 1,389 行 · 第 1/5 页

VHD
1,389
字号
			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "10";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000000000000000000000000000..1			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000001"; 			opb_i <= "00011001000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "10";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;			-- round down						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000010000000000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "11";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;			-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000110000000000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001110000000000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "11";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;			-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000010000001000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000001000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "11";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 0000000000000000000000000100000000000000000000001			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000001"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "11";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000000000000000000000000000..1			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000001"; 			opb_i <= "00011001000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "11";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;									-- round to zero						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000010000000000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "01";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;			-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000110000000000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001110000000000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "01";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;			-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000010000001000000000000000			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000001000000000000000"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "01";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 0000000000000000000000000100000000000000000000001			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000001"; 			opb_i <= "00110010100000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "01";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;						-- 			xx00000000000000000000000xxxxxxxxxxxxxxxxxxxxxxx			-- fract2a= 000000000000000000000000000000000000000000000000..1			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000001100000000000000000000001"; 			opb_i <= "00011001000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "01";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y and underflow_y=underflow_o			report "Error!!!"			severity failure;									-- inf 2^100x1.0 * 2^128x1.0 =			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01110001100000000000000000000000"; 			opb_i <= "01001101100000000000000000000001"; 			fpu_op_i <= "010";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						-- inf * 0			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01111111110000000000000000000000"; 			opb_i <= "00000000000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						-- Qnan * n			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01111111110000000000000000000001"; 			opb_i <= "00000010000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						-- Snan * n			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01111111100000000000000000000001"; 			opb_i <= "00000010000000000000000000000000"; 			fpu_op_i <= "010";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;			--************* Division Test Vectors************************************************************			    -- round to nearset even 		    --		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01000001101010000000000000000000"; --21 			opb_i <= "01000000010000000000000000000000"; --3			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;			    --		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01000001111111111111111111111111";  			opb_i <= "01000000000000000000000000000000"; 			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00111111100000000000000000000000";  			opb_i <= "01000000010000000000000000000000"; 			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						-- 0 / x			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "00000000000000000000000000000000";  			opb_i <= "01000000010000000000000000000000"; 			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;						-- x / 0			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01000000000000000000000000000000";  			opb_i <= "00000000000000000000000000000000"; 			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y and underflow_o=underflow_y and inf_o=inf_y and zero_y=zero_o and div_zero_o=div_by_zero_y and qnan_o=qnan_y and snan_o=snan_y			report "Error!!!"			severity failure;									-- overflow			--		  seeeeeeeefffffffffffffffffffffff		    wait for CLK_PERIOD; start_i <= '1'; 		    opa_i <= "01000000000000000000000000000000";  			opb_i <= "00000000010000000000000000000000"; 			fpu_op_i <= "011";			rmode_i <= "00";			wait for CLK_PERIOD; start_i <= '0'; wait until ready_o='1';			assert output_o=fpout_y and ine_o=ine_y and overflow_o=overflow_y

⌨️ 快捷键说明

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