hi VHDL guys.
I'm a bit confused regarding the process sensitivity list,
as I've read in this book "McGraw Hill - VHDL Programming by Example - 4th Ed"
they say that " This list enumerates exactly which signals cause the process
statement to be executed. In this example, the list consists of a, b, c, d,
s0,and s1. Only events on these signals cause the process statement to
be executed."
if that was right, then i guess this code:
would not have produced those simulation results:
and that is because as i understand, since din is constantly high, there are no events on "din" signal, thus the process would not be executed, not even if the signal "sel" changes, since it is not on the sensitivity list. is that right?
the problem is, that this process is still executed, even though there are no events on "din". maybe you guys can help me undersand why is this happening. maybe i don't understand the concept of this sensitivity list?
please help...
I'm a bit confused regarding the process sensitivity list,
as I've read in this book "McGraw Hill - VHDL Programming by Example - 4th Ed"
they say that " This list enumerates exactly which signals cause the process
statement to be executed. In this example, the list consists of a, b, c, d,
s0,and s1. Only events on these signals cause the process statement to
be executed."
if that was right, then i guess this code:
Code:
entity test is
port ( din: in bit;
sel: in bit_vector (1 downto 0);
dout: out bit_vector (3 downto 0));
end test;
architecture behave of test is
begin
process (din)
begin
case sel is
when "00" => dout<=('0','0','0',din);
when "01" => dout<=('0','0',din,'0');
when "10" => dout<=('0',din,'0','0');
when "11" => dout<=(din,'0','0','0');
end case;
end process;
end behave;
would not have produced those simulation results:
and that is because as i understand, since din is constantly high, there are no events on "din" signal, thus the process would not be executed, not even if the signal "sel" changes, since it is not on the sensitivity list. is that right?
the problem is, that this process is still executed, even though there are no events on "din". maybe you guys can help me undersand why is this happening. maybe i don't understand the concept of this sensitivity list?
please help...