From e71a62e6a1eb79b28d6601b7a476062d63575936 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Thu, 7 Mar 2019 17:45:25 -0800 Subject: [PATCH] Fix backpressure issue --- rtl/axi_dma_wr.v | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/rtl/axi_dma_wr.v b/rtl/axi_dma_wr.v index c32cbd800..9f7a3ff79 100644 --- a/rtl/axi_dma_wr.v +++ b/rtl/axi_dma_wr.v @@ -440,16 +440,20 @@ always @* begin end end - m_axi_awaddr_next = addr_reg; - m_axi_awlen_next = output_cycle_count_next; - m_axi_awvalid_next = s_axis_write_data_tvalid || !first_cycle_reg; + if (!m_axi_awvalid_reg) begin + m_axi_awaddr_next = addr_reg; + m_axi_awlen_next = output_cycle_count_next; + m_axi_awvalid_next = s_axis_write_data_tvalid || !first_cycle_reg; - if (m_axi_awvalid_next) begin - addr_next = addr_reg + tr_word_count_next; - op_word_count_next = op_word_count_reg - tr_word_count_next; + if (m_axi_awvalid_next) begin + addr_next = addr_reg + tr_word_count_next; + op_word_count_next = op_word_count_reg - tr_word_count_next; - s_axis_write_data_tready_next = m_axi_wready_int_early && input_active_next; - state_next = STATE_WRITE; + s_axis_write_data_tready_next = m_axi_wready_int_early && input_active_next; + state_next = STATE_WRITE; + end else begin + state_next = STATE_START; + end end else begin state_next = STATE_START; end