File: bug.vhdl

package info (click to toggle)
ghdl 5.0.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,000 kB
  • sloc: ada: 309,826; vhdl: 209,727; ansic: 31,072; python: 19,213; sh: 14,214; cpp: 2,345; makefile: 1,542; pascal: 585; asm: 45; exp: 40; fortran: 33
file content (27 lines) | stat: -rw-r--r-- 499 bytes parent folder | download
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;