From fac972bfe62f9f365f62082301f8100c4b77ccf2 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Tue, 22 Jan 2019 22:50:15 -0800 Subject: [PATCH] RC channel backpressure fix --- rtl/pcie_us_axi_dma_rd.v | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rtl/pcie_us_axi_dma_rd.v b/rtl/pcie_us_axi_dma_rd.v index c12f261..f79ca25 100644 --- a/rtl/pcie_us_axi_dma_rd.v +++ b/rtl/pcie_us_axi_dma_rd.v @@ -687,10 +687,11 @@ always @* begin tlp_state_next = TLP_STATE_WAIT_END; end end else begin + s_axis_rc_tready_next = 1'b0; tlp_state_next = TLP_STATE_IDLE; end end else begin - s_axis_rc_tready_next = !m_axi_awvalid || m_axi_awready; + s_axis_rc_tready_next = 1'b1; if (s_axis_rc_tready && s_axis_rc_tvalid) begin // header fields @@ -723,13 +724,15 @@ always @* begin final_cpl_next = 1'b1; end - s_axis_rc_tready_next = 1'b0; if (s_axis_rc_tlast) begin + s_axis_rc_tready_next = !m_axi_awvalid || m_axi_awready; tlp_state_next = TLP_STATE_IDLE; end else begin + s_axis_rc_tready_next = 1'b0; tlp_state_next = TLP_STATE_HEADER; end end else begin + s_axis_rc_tready_next = !m_axi_awvalid || m_axi_awready; tlp_state_next = TLP_STATE_IDLE; end end