hdl_nvme_action: Fixing DMA write request handling
@@ -868,7 +868,9 @@ BEGIN
dma_wr_count <= req_buffer.size(slot_id) - '1';
host_mem_awvalid <= '1';
card_mem_arvalid <= '1';
+ dma_wr_cpl_fifo.slot(dma_cpl_head) <= dma_wr_req_fifo.slot(dma_wr_tail);
fsm_dma_wr <= DMA_WR_REQ;
+ INCR(dma_cpl_head);
END IF;
WHEN DMA_WR_REQ =>
@@ -882,10 +884,8 @@ BEGIN
card_mem_arvalid <= '1';
fsm_dma_wr <= DMA_WR_REQ;
ELSE
- dma_wr_cpl_fifo.slot(dma_cpl_head) <= dma_wr_req_fifo.slot(dma_wr_tail);
fsm_dma_wr <= IDLE;
INCR(dma_wr_tail);
- INCR(dma_cpl_head);
END IF;
END IF;
@@ -908,7 +908,7 @@ BEGIN
-- READ requests:
- -- Wait for DMA write request completion
+ -- Process DMA write request completion
dma_wr_cpl:
PROCESS(action_clk) is
ALIAS dma_cpl_tail : REQ_BUFFER_RANGE_t IS dma_wr_cpl_fifo.tail;
