1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
library IEEE;
use IEEE.std_logic_1164.all;
entity bug is
port (
clk : in std_ulogic;
src : in std_ulogic_vector(15 downto 0);
dst : out std_ulogic_vector(16 downto 0)
);
end bug;
architecture rtl of bug is
begin
process(clk)
function fun(val : std_ulogic_vector) return std_ulogic_vector is
variable tmp : val'subtype; --this causes the crash
begin
return val;
end function;
begin
if rising_edge(clk) then
dst <= '0' & fun(src);
end if;
end process;
end architecture;
|