From 82278e77cf49cbb144a07ff8c837557f724f79d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20=C3=96rtenberg?= Date: Tue, 11 Mar 2025 14:55:25 +0100 Subject: [PATCH] fixed data not coming through. writes were problematic in tb, reads in socbridge --- src/control_socbridge_merge/control_socbridge_tb.vhd | 3 ++- src/socbridge/socbridge_driver.vhd | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/control_socbridge_merge/control_socbridge_tb.vhd b/src/control_socbridge_merge/control_socbridge_tb.vhd index 53ce62f..af9aa82 100644 --- a/src/control_socbridge_merge/control_socbridge_tb.vhd +++ b/src/control_socbridge_merge/control_socbridge_tb.vhd @@ -173,7 +173,7 @@ begin curr_word <= "00101001"; wait for CLK_PERIOD; curr_word <= "00000000"; - wait for CLK_PERIOD*10; + wait for CLK_PERIOD*20; curr_word <= "01100001"; wait for CLK_PERIOD; curr_word <= "00100000"; @@ -197,6 +197,7 @@ begin int_socbridge_in.payload <= std_logic_vector(to_unsigned(input, int_socbridge_in.payload'length)); input := input + 1 mod 256; wait until rising_edge(clk) and int_socbridge_out.is_full_out = '0'; + wait until falling_edge(clk); int_socbridge_in.write_enable_out <= '1'; int_socbridge_in.payload <= std_logic_vector(to_unsigned(input, int_socbridge_in.payload'length)); input := input + 1 mod 256; diff --git a/src/socbridge/socbridge_driver.vhd b/src/socbridge/socbridge_driver.vhd index 7b51634..3177494 100644 --- a/src/socbridge/socbridge_driver.vhd +++ b/src/socbridge/socbridge_driver.vhd @@ -166,7 +166,7 @@ begin when RX_RESPONSE => -- Wait for read response. if curr_response = READ_RESPONSE then - next_state <= RX_BODY_NO_OUT; + next_state <= RX_BODY; else next_state <= RX_RESPONSE; end if; @@ -241,6 +241,7 @@ begin if st.curr_cmd = WRITE_ADD then int_out.is_full_out <= '0'; ext_out_data_cmd := int_in.payload; + report integer'image(to_integer(signed(ext_out_data_cmd))) & " "& integer'image(to_integer(signed(int_in.payload))); end if; end case; next_parity_out <= calc_parity(ext_out_data_cmd);