aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-04-16 18:23:44 +0200
committerTristan Gingold <tgingold@free.fr>2020-04-16 18:23:44 +0200
commitb45295888fb56576468d9ead8fe214424f692e25 (patch)
tree99d8bd52b067cd8069576a00a7d542adbd9de15b
parent5e44162730531a83f4458cae6d61170839890b94 (diff)
downloadghdl-b45295888fb56576468d9ead8fe214424f692e25.tar.gz
ghdl-b45295888fb56576468d9ead8fe214424f692e25.tar.bz2
ghdl-b45295888fb56576468d9ead8fe214424f692e25.zip
testsuite/synth: add test for #1230
-rw-r--r--testsuite/synth/issue1230/delayline.vhdl34
-rwxr-xr-xtestsuite/synth/issue1230/testsuite.sh7
2 files changed, 41 insertions, 0 deletions
diff --git a/testsuite/synth/issue1230/delayline.vhdl b/testsuite/synth/issue1230/delayline.vhdl
new file mode 100644
index 000000000..153dd5916
--- /dev/null
+++ b/testsuite/synth/issue1230/delayline.vhdl
@@ -0,0 +1,34 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity DelayLine is
+ generic (
+ Depth : natural := 2;
+ Width : natural := 16
+ );
+
+ port(
+ din : in signed(Width-1 downto 0);
+ clk : in std_logic;
+ ce : in std_logic;
+ dout : out signed(Width-1 downto 0)
+ );
+end DelayLine;
+
+architecture behavioral of DelayLine is
+ type DelayType is array (0 to Depth-1) of signed(Width-1 downto 0);
+ signal DataBuffer : DelayType;
+begin
+ dout <= DataBuffer(Depth-1);
+
+ process (clk)
+ begin
+ if rising_edge (clk) then
+ if (ce = '1') then
+ DataBuffer(0) <= din;
+ DataBuffer(1 to Depth-1) <= DataBuffer(0 to Depth-2); --XX
+ end if;
+ end if;
+ end process;
+end behavioral;
diff --git a/testsuite/synth/issue1230/testsuite.sh b/testsuite/synth/issue1230/testsuite.sh
new file mode 100755
index 000000000..547b21877
--- /dev/null
+++ b/testsuite/synth/issue1230/testsuite.sh
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+synth -gdepth=1 DelayLine.vhdl -e > syn_delayline.vhdl
+
+echo "Test successful"