So I have a simple enough clocked process that assigns the value of one std_logic_vector
to another.
capture_proc: process(clk)
begin
if rising_edge(clk) then
captured_data <= sdram_din;
end if;
end process;
My problem is that on the rising edge of clk
the value that is put into captured_data
is readable by other processes on the same rising edge.
My understanding of signal assignment in sequential code is that in a simulation it actually happens right before the next trigger a clock cycle later. This is not what happens in my case as seen below.
In the following simulation I forced the value of sdram_din
to 0x0000 on a falling edge and on the next rising edge the value assignment takes place. Why does the value appear instantly but not a cycle later?
All of the code can be seen here.