ganimede-rework #20

Closed
kryddan wants to merge 25 commits from ganimede-rework into ganimede-single-issue
Showing only changes of commit 51c35c56c9 - Show all commits

View File

@ -57,12 +57,14 @@ begin
comb_proc: process(ext_to_socbridge_driver, ip_to_socbridge_driver, comb_proc: process(ext_to_socbridge_driver, ip_to_socbridge_driver,
st, controller_to_socbridge_driver, trans_st, st, controller_to_socbridge_driver, trans_st,
tx_sent_response, rx_received_response) tx_sent_response, rx_received_response,
valid_out)
variable curr_response_bits : std_logic_vector(4 downto 0); variable curr_response_bits : std_logic_vector(4 downto 0);
variable local_next_rx_transaction : transaction_t; variable local_next_rx_transaction : transaction_t;
variable local_next_tx_transaction : transaction_t; variable local_next_tx_transaction : transaction_t;
variable local_next_data_out : std_logic_vector(interface_inst.socbridge.payload_width - 1 downto 0); variable local_next_data_out : std_logic_vector(interface_inst.socbridge.payload_width - 1 downto 0);
begin begin
-- DEFAULT VALUES
-- Helpful Bindings -- -- Helpful Bindings --
next_rx_data_size <= 2 ** to_integer(unsigned(ext_to_socbridge_driver.payload(2 downto 0))); next_rx_data_size <= 2 ** to_integer(unsigned(ext_to_socbridge_driver.payload(2 downto 0)));
curr_response_bits := ext_to_socbridge_driver.payload(7 downto 3); curr_response_bits := ext_to_socbridge_driver.payload(7 downto 3);
@ -418,6 +420,7 @@ begin
st.socbridge_driver_to_ext_reg.parity <= next_parity_out; st.socbridge_driver_to_ext_reg.parity <= next_parity_out;
st.curr_tx_state <= next_tx_state; st.curr_tx_state <= next_tx_state;
st.curr_rx_state <= next_rx_state; st.curr_rx_state <= next_rx_state;
valid_out <= '0';
case st.curr_tx_state is case st.curr_tx_state is
when IDLE => when IDLE =>
st.curr_tx_transaction <= next_tx_transaction; st.curr_tx_transaction <= next_tx_transaction;
@ -452,8 +455,8 @@ begin
end if; end if;
when RX_HEADER => when RX_HEADER =>
when RX_R_BODY => when RX_R_BODY =>
socbridge_driver_to_ip.data <= st.ext_to_socbridge_driver_reg.data;
valid_out <= '1'; valid_out <= '1';
socbridge_driver_to_ip.data <= st.ext_to_socbridge_driver_reg.data;
if st.rx_stage > 0 then if st.rx_stage > 0 then
st.rx_stage <= st.rx_stage - 1; st.rx_stage <= st.rx_stage - 1;
end if; end if;