T
Topi
Hi,
I don't understand why the following code won't elaborate.
The compiler thinks that v(7 downto 4) is driven by both processes.
But process "a" definitely doesn't touch it.
Tested with GHDL and Active HDL.
Ideas appreciated ...
- Topi
*****************
library ieee;
use ieee.std_logic_1164.all;
entity process_for_tester is
end;
architecture test of process_for_tester is
signal v: std_ulogic_vector(7 downto 0);
signal i: integer;
begin
a: process(i)
variable n: integer;
begin
for n in 0 to 3 loop
if i mod 2 = 0 then
v(n) <= '1';
else
v(n) <= '0';
end if;
end loop;
end process;
b: process
begin
v(7 downto 4) <= "0101";
wait;
end process;
process
begin
i <= 0;
wait for 1 us;
loop
i <= i + 1;
wait for 1 us;
end loop;
end process;
end;
I don't understand why the following code won't elaborate.
The compiler thinks that v(7 downto 4) is driven by both processes.
But process "a" definitely doesn't touch it.
Tested with GHDL and Active HDL.
Ideas appreciated ...
- Topi
*****************
library ieee;
use ieee.std_logic_1164.all;
entity process_for_tester is
end;
architecture test of process_for_tester is
signal v: std_ulogic_vector(7 downto 0);
signal i: integer;
begin
a: process(i)
variable n: integer;
begin
for n in 0 to 3 loop
if i mod 2 = 0 then
v(n) <= '1';
else
v(n) <= '0';
end if;
end loop;
end process;
b: process
begin
v(7 downto 4) <= "0101";
wait;
end process;
process
begin
i <= 0;
wait for 1 us;
loop
i <= i + 1;
wait for 1 us;
end loop;
end process;
end;