diff options
Diffstat (limited to 'testsuite/synth/issue2286/tb_test_addsub.vhdl')
-rw-r--r-- | testsuite/synth/issue2286/tb_test_addsub.vhdl | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/testsuite/synth/issue2286/tb_test_addsub.vhdl b/testsuite/synth/issue2286/tb_test_addsub.vhdl new file mode 100644 index 000000000..da2150ebe --- /dev/null +++ b/testsuite/synth/issue2286/tb_test_addsub.vhdl @@ -0,0 +1,51 @@ +entity tb_test_addsub is +end tb_test_addsub; + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +architecture behav of tb_test_addsub is + signal s_slv : std_logic_vector(3 downto 0); + signal s_nat : natural range 0 to 15; + signal s_add_slvslv : std_logic_vector(3 downto 0); + signal s_add_slvnat : std_logic_vector(3 downto 0); + signal s_add_natslv : std_logic_vector(3 downto 0); + signal s_sub_slvslv : std_logic_vector(3 downto 0); + signal s_sub_slvnat : std_logic_vector(3 downto 0); + signal s_sub_natslv : std_logic_vector(3 downto 0); +begin + dut: entity work.test_addsub + port map (s_slv, + s_nat, + s_add_slvslv, + s_add_slvnat, + s_add_natslv, + s_sub_slvslv, + s_sub_slvnat, + s_sub_natslv); + process + begin + s_slv <= x"6"; + s_nat <= 6; + wait for 1 ns; + assert s_add_slvslv = x"C" severity failure; + assert s_add_slvnat = x"C" severity failure; + assert s_add_natslv = x"C" severity failure; + assert s_sub_slvslv = x"0" severity failure; + assert s_sub_slvnat = x"0" severity failure; + assert s_sub_natslv = x"0" severity failure; + + s_slv <= x"6"; + s_nat <= 10; + wait for 1 ns; + assert s_add_slvslv = x"C" severity failure; + assert s_add_slvnat = x"0" severity failure; + assert s_add_natslv = x"0" severity failure; + assert s_sub_slvslv = x"0" severity failure; + assert s_sub_slvnat = x"C" severity failure; + assert s_sub_natslv = x"4" severity failure; + + wait; + end process; +end behav; |