From eb461d9a6f010d9cb77a0cee6e9850b1aee0dcf7 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 5 Nov 2017 07:49:12 +0100 Subject: Handle complex subtype in unbounded records. --- testsuite/gna/issue418/repro3.vhdl | 37 +++++++++++++++++++++++++++++++++++++ testsuite/gna/issue418/testsuite.sh | 3 +++ 2 files changed, 40 insertions(+) create mode 100644 testsuite/gna/issue418/repro3.vhdl (limited to 'testsuite') diff --git a/testsuite/gna/issue418/repro3.vhdl b/testsuite/gna/issue418/repro3.vhdl new file mode 100644 index 000000000..b9f2182e9 --- /dev/null +++ b/testsuite/gna/issue418/repro3.vhdl @@ -0,0 +1,37 @@ +entity repro3 is + generic (blen : natural := 8); +end; + +architecture behav of repro3 is + -- AXI-Lite Interface signals + type address_channel is record + --DUT inputs + awaddr : bit_vector; + awvalid : bit; + end record; + + + type t_if is record + write_channel : address_channel; + data : bit_vector (blen - 1 downto 0); + end record; + + subtype ST_IF_32 is t_if ( + write_channel ( + awaddr(31 downto 0) ) + ); + + signal s : st_if_32; +begin + s.write_channel.awaddr <= x"0000_1000", x"1000_ffff" after 2 ns; + s.data <= (others => '1'); + process + begin + wait for 1 ns; + assert s.write_channel.awvalid = '0'; + assert s.write_channel.awaddr(12) = '1'; + wait for 2 ns; + assert s.write_channel.awaddr(14) = '1'; + wait; + end process; +end; diff --git a/testsuite/gna/issue418/testsuite.sh b/testsuite/gna/issue418/testsuite.sh index 111e0e6d6..ffbba4d1c 100755 --- a/testsuite/gna/issue418/testsuite.sh +++ b/testsuite/gna/issue418/testsuite.sh @@ -19,6 +19,9 @@ if ghdl_has_feature repro2 ghw; then # How to test the ghw ? Use ghwdump ? fi +analyze repro3.vhdl +elab_simulate repro3 + clean rm -f repro.ghw repro2.ghw tc749.ghw -- cgit v1.2.3