|
|
@ -335,20 +335,22 @@ begin
|
|
|
|
end if;
|
|
|
|
end if;
|
|
|
|
|
|
|
|
|
|
|
|
-- Invalid writes are acked and ignored.
|
|
|
|
-- Invalid writes are acked and ignored.
|
|
|
|
|
|
|
|
|
|
|
|
wb_ack <= '1';
|
|
|
|
wb_ack <= '1';
|
|
|
|
wb_state <= WRITE_ACK;
|
|
|
|
wb_state <= WRITE_ACK;
|
|
|
|
else -- Read from register
|
|
|
|
else -- Read from register
|
|
|
|
if wb_adr_in = x"008" then
|
|
|
|
if wb_adr_in = x"008" then
|
|
|
|
recv_buffer_pop <= '1';
|
|
|
|
recv_buffer_pop <= '1';
|
|
|
|
elsif wb_adr_in = x"010" then
|
|
|
|
elsif wb_adr_in = x"010" then
|
|
|
|
wb_dat_out <= x"0" & send_buffer_full & recv_buffer_full & send_buffer_empty & recv_buffer_empty;
|
|
|
|
wb_dat_out <= x"0" & send_buffer_full & recv_buffer_full &
|
|
|
|
|
|
|
|
send_buffer_empty & recv_buffer_empty;
|
|
|
|
wb_ack <= '1';
|
|
|
|
wb_ack <= '1';
|
|
|
|
elsif wb_adr_in = x"018" then
|
|
|
|
elsif wb_adr_in = x"018" then
|
|
|
|
wb_dat_out <= sample_clk_divisor;
|
|
|
|
wb_dat_out <= sample_clk_divisor;
|
|
|
|
wb_ack <= '1';
|
|
|
|
wb_ack <= '1';
|
|
|
|
elsif wb_adr_in = x"020" then
|
|
|
|
elsif wb_adr_in = x"020" then
|
|
|
|
wb_dat_out <= (0 => irq_recv_enable, 1 => irq_tx_ready_enable, others => '0');
|
|
|
|
wb_dat_out <= (0 => irq_recv_enable,
|
|
|
|
|
|
|
|
1 => irq_tx_ready_enable,
|
|
|
|
|
|
|
|
others => '0');
|
|
|
|
wb_ack <= '1';
|
|
|
|
wb_ack <= '1';
|
|
|
|
else
|
|
|
|
else
|
|
|
|
wb_dat_out <= (others => '0');
|
|
|
|
wb_dat_out <= (others => '0');
|
|
|
|