I wrote this process in my test bench for a simple 2out/1in reg file entity, here is the relevant part of the test bench: (note - those signals are std_logic_vector(X downto 0))
input : process is
begin
wait for 30 ns;
input_adr1 <= "00000";
input_adr3 <= "00000";
input_data3 <= "00000000000000000000000000000000";
input_en3 <= '1';
wait for 10 ns;
input_en3 <= '0';
wait for 10 ns;
input_adr1 <= "00001";
input_adr3 <= "00001";
input_data3 <= "00000000000000000000000000000001";
input_en3 <= '1';
wait for 10 ns;
input_en3 <= '0';
wait for 10 ns;
input_adr1 <= "00010";
input_adr3 <= "00010";
input_data3 <= "00000000000000000000000000000010";
input_en3 <= '1';
wait for 10 ns;
input_en3 <= '0';
wait for 10 ns;
wait;
end process input;
However, when I go over to ModelSim to check out the waves, the signal input_data3
never changes - even though I assign it values 0000, 0001, 0002 (hex) in the sequential code. Notice that signals input_en3
, input_adr3
both behave properly. Check it:
drivers input_data3
Drivers for /procesor_tstbnch/input_data3(31:0):
U : Signal /procesor_tstbnch/input_data3(31)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(31)
U : Signal /procesor_tstbnch/input_data3(30)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(30)
U : Signal /procesor_tstbnch/input_data3(29)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(29)
U : Signal /procesor_tstbnch/input_data3(28)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(28)
U : Signal /procesor_tstbnch/input_data3(27)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(27)
U : Signal /procesor_tstbnch/input_data3(26)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(26)
U : Signal /procesor_tstbnch/input_data3(25)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(25)
U : Signal /procesor_tstbnch/input_data3(24)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(24)
U : Signal /procesor_tstbnch/input_data3(23)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(23)
U : Signal /procesor_tstbnch/input_data3(22)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(22)
U : Signal /procesor_tstbnch/input_data3(21)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(21)
U : Signal /procesor_tstbnch/input_data3(20)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(20)
U : Signal /procesor_tstbnch/input_data3(19)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(19)
U : Signal /procesor_tstbnch/input_data3(18)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(18)
U : Signal /procesor_tstbnch/input_data3(17)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(17)
U : Signal /procesor_tstbnch/input_data3(16)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(16)
U : Signal /procesor_tstbnch/input_data3(15)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(15)
U : Signal /procesor_tstbnch/input_data3(14)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(14)
U : Signal /procesor_tstbnch/input_data3(13)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(13)
U : Signal /procesor_tstbnch/input_data3(12)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(12)
U : Signal /procesor_tstbnch/input_data3(11)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(11)
U : Signal /procesor_tstbnch/input_data3(10)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(10)
U : Signal /procesor_tstbnch/input_data3(9)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(9)
U : Signal /procesor_tstbnch/input_data3(8)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(8)
U : Signal /procesor_tstbnch/input_data3(7)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(7)
U : Signal /procesor_tstbnch/input_data3(6)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(6)
U : Signal /procesor_tstbnch/input_data3(5)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(5)
U : Signal /procesor_tstbnch/input_data3(4)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(4)
U : Signal /procesor_tstbnch/input_data3(3)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(3)
U : Signal /procesor_tstbnch/input_data3(2)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(2)
U : Signal /procesor_tstbnch/input_data3(1)
1 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(1)
U : Signal /procesor_tstbnch/input_data3(0)
0 : Driver /procesor_tstbnch/input
U : Element /procesor_tstbnch/register_file/in_data3(0)
What am I missing? I'm not sure I understand how come this signal assignment doesn't go through.
EDIT: I've also attempted to move all the assignments to input_data3 in another process, it still never changes.
Here are the drivers of input_data3:
input_data3
somewhere else that is causing a multiple conflicting drivers issue? – scary_jeff