aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue1593/element_bug.vhdl
blob: 8a6f25e20ee78b892a0a33040015bff7901c7115 (plain)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
entity e1 is
	port (
		vector : in  bit_vector(3 downto 0);
		output : out bit
	);
end entity;

architecture a1 of e1 is
	signal zero : vector'element;
begin
	zero   <= vector(0);

	process(all) is
		variable z : vector'element;
	begin
		z := zero;

		output <= z;
	end process;
end architecture;


entity e1_tb is
end entity;

architecture top of e1_tb is
    constant c1 : bit_vector(3 downto 0) := (others => '0');
    signal vector : bit_vector(3 downto 0);
    alias vector_type : bit_vector(1 downto 0) is vector(1 downto 0);
    signal output : vector_type'element;
begin
	l1: entity work.e1
		port map (
			vector => vector,
			output => output
		);

    tb_proc: process
        variable v1 : bit_vector(3 downto 0);
        variable v2 : v1'element;
        variable v3 : c1'element;
    begin
        v1 := (others => '0');
        vector <= v1;
        wait for 1 ns;
        v1 := (others => '1');
        vector <= v1;
        wait for 1 ns;
        v1 := (others => '0');
        vector <= v1;
        wait for 1 ns;
        wait;
    end process;

end architecture;