diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-02-21 08:06:09 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-02-21 08:06:09 +0100 |
commit | 81441654d58fd9f69c1ca694915ffbb40f7fc519 (patch) | |
tree | 97160897450a07f2c453689a76db41533ae75504 /testsuite | |
parent | 83a5f96469efc690da3e86e9983b3dfc84f4fa3c (diff) | |
download | ghdl-81441654d58fd9f69c1ca694915ffbb40f7fc519.tar.gz ghdl-81441654d58fd9f69c1ca694915ffbb40f7fc519.tar.bz2 ghdl-81441654d58fd9f69c1ca694915ffbb40f7fc519.zip |
testsuite/synth: add a reproducer for #1978
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/synth/issue1978/reproducer.vhdl | 45 | ||||
-rwxr-xr-x | testsuite/synth/issue1978/testsuite.sh | 8 |
2 files changed, 53 insertions, 0 deletions
diff --git a/testsuite/synth/issue1978/reproducer.vhdl b/testsuite/synth/issue1978/reproducer.vhdl new file mode 100644 index 000000000..38091541b --- /dev/null +++ b/testsuite/synth/issue1978/reproducer.vhdl @@ -0,0 +1,45 @@ +--:file: Entity.vhd + +library IEEE; +context IEEE.IEEE_std_context; + +entity Reproducer is + generic ( + g_Precision : natural := 11; + g_PulsesPerRevolution : natural := 1000 + ); + port ( + CLK : in std_logic; + RST : in std_logic; + EN : in std_logic; + Z : in std_logic; + POS : out unsigned(g_Precision-1 downto 0) + ); +end entity; + +architecture arch of Reproducer is + + signal Position : unsigned(POS'range); + + signal Direction : std_logic := '0'; + +begin + + PositionCounter: process(RST, Z, CLK) + constant CountLimit : unsigned(Position'range) := to_unsigned(4*g_PulsesPerRevolution-1, Position); + begin + if RST or Z then + Position <= (others => '0'); + elsif rising_edge(CLK) and EN='1' then + Position <= + (others=>'0') when Position = CountLimit and Direction='1' else + CountLimit when Position = 0 and Direction='0' else + Position+1 when Direction else + Position-1; + end if; + end process; + + pos <= position; + direction <= '0'; + +end architecture; diff --git a/testsuite/synth/issue1978/testsuite.sh b/testsuite/synth/issue1978/testsuite.sh new file mode 100755 index 000000000..6755c8a4e --- /dev/null +++ b/testsuite/synth/issue1978/testsuite.sh @@ -0,0 +1,8 @@ +#! /bin/sh + +. ../../testenv.sh + +GHDL_STD_FLAGS=--std=08 +synth_failure reproducer.vhdl -e + +echo "Test successful" |