aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue2286/tb_test_addsub.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/synth/issue2286/tb_test_addsub.vhdl')
-rw-r--r--testsuite/synth/issue2286/tb_test_addsub.vhdl51
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;