diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-04-21 05:46:40 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-04-21 05:46:40 +0200 |
commit | 42c83fcb04b35e4dce3d1675d90f46fbfe144c4a (patch) | |
tree | 319895ce019b7abb1f6bc22c9e966cc7180ba27b /testsuite | |
parent | 5e1607f130ecdd6a228b3329ffc680bd42b486bb (diff) | |
download | ghdl-42c83fcb04b35e4dce3d1675d90f46fbfe144c4a.tar.gz ghdl-42c83fcb04b35e4dce3d1675d90f46fbfe144c4a.tar.bz2 ghdl-42c83fcb04b35e4dce3d1675d90f46fbfe144c4a.zip |
testsuite/synth: add test for #1253
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/synth/issue1253/repro1.vhdl | 24 | ||||
-rw-r--r-- | testsuite/synth/issue1253/repro2.vhdl | 24 | ||||
-rwxr-xr-x | testsuite/synth/issue1253/testsuite.sh | 10 |
3 files changed, 58 insertions, 0 deletions
diff --git a/testsuite/synth/issue1253/repro1.vhdl b/testsuite/synth/issue1253/repro1.vhdl new file mode 100644 index 000000000..d6d951062 --- /dev/null +++ b/testsuite/synth/issue1253/repro1.vhdl @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_arith.all; + +entity repro1 is + port(C, CLR : in std_logic; + Q : out std_logic_vector(3 downto 0)); +end repro1; + +architecture archi of repro1 is + signal tmp: std_logic_vector(3 downto 0); +begin + process (C, CLR) + begin + if (CLR='1') then + tmp <= "0000"; + elsif (C'event and C='1') then + tmp <= std_logic_vector'(1 + signed(tmp)); + end if; + end process; + + Q <= tmp; + +end archi; diff --git a/testsuite/synth/issue1253/repro2.vhdl b/testsuite/synth/issue1253/repro2.vhdl new file mode 100644 index 000000000..cfeb59c78 --- /dev/null +++ b/testsuite/synth/issue1253/repro2.vhdl @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_arith.all; + +entity repro1 is + port(C, CLR : in std_logic; + Q : out std_logic_vector(3 downto 0)); +end repro1; + +architecture archi of repro1 is + signal tmp: signed(3 downto 0); +begin + process (C, CLR) + begin + if (CLR='1') then + tmp <= "0000"; + elsif (C'event and C='1') then + tmp <= 1 + tmp; + end if; + end process; + + Q <= std_logic_vector(tmp); + +end archi; diff --git a/testsuite/synth/issue1253/testsuite.sh b/testsuite/synth/issue1253/testsuite.sh new file mode 100755 index 000000000..a895b4b2f --- /dev/null +++ b/testsuite/synth/issue1253/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + +GHDL_STD_FLAGS=-fsynopsys +synth repro1.vhdl -e > syn_repro1.vhdl +synth repro2.vhdl -e > syn_repro2.vhdl +clean + +echo "Test successful" |