Line 255... |
Line 255... |
-- inputs : s_mode, s_prng_data, s_message_rom_data
|
-- inputs : s_mode, s_prng_data, s_message_rom_data
|
-- outputs: s_send_fifo_data
|
-- outputs: s_send_fifo_data
|
send_data_mux: process (s_mode, s_prng_data, s_message_rom_data)
|
send_data_mux: process (s_mode, s_prng_data, s_message_rom_data)
|
begin -- process send_data_mux
|
begin -- process send_data_mux
|
case s_mode is
|
case s_mode is
|
when "00" => s_send_fifo_data <= s_message_rom_data;
|
-- we have to change here the "16bit word order" else the data is
|
when "01" => s_send_fifo_data <= s_prng_data;
|
-- transmitted in the wrong order
|
|
when "00" => s_send_fifo_data <= s_message_rom_data(15 downto 0) &
|
|
s_message_rom_data(31 downto 16);
|
|
when "01" => s_send_fifo_data <= s_prng_data(15 downto 0) &
|
|
s_prng_data(31 downto 16);
|
when others => s_send_fifo_data <= (others => 'X');
|
when others => s_send_fifo_data <= (others => 'X');
|
end case;
|
end case;
|
end process send_data_mux;
|
end process send_data_mux;
|
|
|
|
|
Line 457... |
Line 461... |
elsif s_send_data_request = '1' then
|
elsif s_send_data_request = '1' then
|
next_state <= st3_load_total_transfer_size;
|
next_state <= st3_load_total_transfer_size;
|
end if;
|
end if;
|
|
|
when st2_get_data =>
|
when st2_get_data =>
|
|
if s_receive_fifo_empty = '0' then
|
s_receive_fifo_rd_en <= '1';
|
s_receive_fifo_rd_en <= '1';
|
|
end if;
|
|
|
if s_receive_fifo_empty = '1' then
|
if s_receive_fifo_empty = '1' then
|
next_state <= st1_idle;
|
next_state <= st1_idle;
|
end if;
|
end if;
|
|
|
Line 476... |
Line 482... |
s_send_transfersize_en <= '1';
|
s_send_transfersize_en <= '1';
|
|
|
next_state <= st5_send_data;
|
next_state <= st5_send_data;
|
|
|
when st5_send_data =>
|
when st5_send_data =>
|
|
if s_send_fifo_full = '0' then
|
s_send_fifo_wr_en <= '1';
|
s_send_fifo_wr_en <= '1';
|
s_send_counter_en <= '1';
|
s_send_counter_en <= '1';
|
if s_mode = "01" then
|
if s_mode = "01" then
|
s_prng_en <= '1';
|
s_prng_en <= '1';
|
end if;
|
end if;
|
|
end if;
|
|
|
if s_send_counter_equals_transfer_size = '1' and
|
if s_send_counter_equals_transfer_size = '1' and
|
s_send_have_more_data = '0'
|
s_send_have_more_data = '0'
|
then
|
then
|
next_state <= st1_idle;
|
next_state <= st1_idle;
|