diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-10-03 16:37:16 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-10-03 16:37:16 +0200 |
commit | 35676f5d385d139edc0cf6373c580577c16e6ea5 (patch) | |
tree | e1e3585bf9d5c9a37659da1f3496ae5d0ac6f3a7 /testsuite/synth | |
parent | 926dff10e4ed121e08c18c2f77030e5962308966 (diff) | |
download | ghdl-35676f5d385d139edc0cf6373c580577c16e6ea5.tar.gz ghdl-35676f5d385d139edc0cf6373c580577c16e6ea5.tar.bz2 ghdl-35676f5d385d139edc0cf6373c580577c16e6ea5.zip |
testsuite/synth: add a test for #2204
Diffstat (limited to 'testsuite/synth')
-rw-r--r-- | testsuite/synth/issue2204/crash.vhdl | 35 | ||||
-rw-r--r-- | testsuite/synth/issue2204/crash2.vhdl | 28 | ||||
-rw-r--r-- | testsuite/synth/issue2204/crash3.vhdl | 28 | ||||
-rw-r--r-- | testsuite/synth/issue2204/crash4.vhdl | 28 | ||||
-rw-r--r-- | testsuite/synth/issue2204/crash5.vhdl | 28 | ||||
-rwxr-xr-x | testsuite/synth/issue2204/testsuite.sh | 11 |
6 files changed, 158 insertions, 0 deletions
diff --git a/testsuite/synth/issue2204/crash.vhdl b/testsuite/synth/issue2204/crash.vhdl new file mode 100644 index 000000000..d0628c4ee --- /dev/null +++ b/testsuite/synth/issue2204/crash.vhdl @@ -0,0 +1,35 @@ +library ieee; + use ieee.std_logic_1164.all; + +entity crash is + port ( + clk : in std_logic + ); +end entity crash; + +architecture rtl of crash is + signal index : std_logic := '0'; +begin + + -- process (clk) is + -- begin + -- if rising_edge(clk) then +-- >> This prints an error, but doesn't crash ghdl + -- index <= index = index'LAST_VALUE; + -- end if; + -- end process; + + -- psl default clock is rising_edge(clk); + + -- >> These crash after printing good errors, which still seems undesirable. + -- >> Remove the X to test them + + -- psl crash_my_ghdl1 : cover + -- {index /= index'LAST_VALUE}; + -- Xpsl crash_my_ghdl2 : cover + -- {index'EVENT}; + -- Xpsl crash_my_ghdl3 : cover + -- {index'ACTIVE}; + + +end architecture rtl; diff --git a/testsuite/synth/issue2204/crash2.vhdl b/testsuite/synth/issue2204/crash2.vhdl new file mode 100644 index 000000000..8198403eb --- /dev/null +++ b/testsuite/synth/issue2204/crash2.vhdl @@ -0,0 +1,28 @@ +library ieee; + use ieee.std_logic_1164.all; + +entity crash is + port ( + clk : in std_logic + ); +end entity crash; + +architecture rtl of crash is + signal index : std_logic := '0'; +begin + + -- process (clk) is + -- begin + -- if rising_edge(clk) then +-- >> This prints an error, but doesn't crash ghdl + -- index <= index = index'LAST_VALUE; + -- end if; + -- end process; + + -- psl default clock is rising_edge(clk); + + -- psl crash_my_ghdl2 : cover + -- {index'active or index'EVENT}; + + +end architecture rtl; diff --git a/testsuite/synth/issue2204/crash3.vhdl b/testsuite/synth/issue2204/crash3.vhdl new file mode 100644 index 000000000..491f15be8 --- /dev/null +++ b/testsuite/synth/issue2204/crash3.vhdl @@ -0,0 +1,28 @@ +library ieee; + use ieee.std_logic_1164.all; + +entity crash is + port ( + clk : in std_logic + ); +end entity crash; + +architecture rtl of crash is + signal index : std_logic := '0'; +begin + + -- process (clk) is + -- begin + -- if rising_edge(clk) then +-- >> This prints an error, but doesn't crash ghdl + -- index <= index = index'LAST_VALUE; + -- end if; + -- end process; + + -- psl default clock is rising_edge(clk); + + -- psl crash_my_ghdl2 : cover + -- {index'active and index'quiet}; + + +end architecture rtl; diff --git a/testsuite/synth/issue2204/crash4.vhdl b/testsuite/synth/issue2204/crash4.vhdl new file mode 100644 index 000000000..5513ef296 --- /dev/null +++ b/testsuite/synth/issue2204/crash4.vhdl @@ -0,0 +1,28 @@ +library ieee; + use ieee.std_logic_1164.all; + +entity crash is + port ( + clk : in std_logic + ); +end entity crash; + +architecture rtl of crash is + signal index : std_logic := '0'; +begin + + -- process (clk) is + -- begin + -- if rising_edge(clk) then +-- >> This prints an error, but doesn't crash ghdl + -- index <= index = index'LAST_VALUE; + -- end if; + -- end process; + + -- psl default clock is rising_edge(clk); + + -- psl crash_my_ghdl2 : cover + -- {index'active and (index'active and true)}; + + +end architecture rtl; diff --git a/testsuite/synth/issue2204/crash5.vhdl b/testsuite/synth/issue2204/crash5.vhdl new file mode 100644 index 000000000..21d8b7c64 --- /dev/null +++ b/testsuite/synth/issue2204/crash5.vhdl @@ -0,0 +1,28 @@ +library ieee; + use ieee.std_logic_1164.all; + +entity crash is + port ( + clk : in std_logic + ); +end entity crash; + +architecture rtl of crash is + signal index : std_logic := '0'; +begin + + -- process (clk) is + -- begin + -- if rising_edge(clk) then +-- >> This prints an error, but doesn't crash ghdl + -- index <= index = index'LAST_VALUE; + -- end if; + -- end process; + + -- psl default clock is rising_edge(clk); + + -- psl crash_my_ghdl2 : cover + -- {not index'active or index'event}; + + +end architecture rtl; diff --git a/testsuite/synth/issue2204/testsuite.sh b/testsuite/synth/issue2204/testsuite.sh new file mode 100755 index 000000000..fbfdffe1e --- /dev/null +++ b/testsuite/synth/issue2204/testsuite.sh @@ -0,0 +1,11 @@ +#! /bin/sh + +. ../../testenv.sh + +synth_failure -fpsl crash.vhdl -e +synth_failure -fpsl crash2.vhdl -e +synth_failure -fpsl crash3.vhdl -e +synth_failure -fpsl crash4.vhdl -e +synth_failure -fpsl crash5.vhdl -e + +echo "Test successful" |