From e411fe736803a89c53a68f8c5975a37f29ffce1b Mon Sep 17 00:00:00 2001
From: Georg Rutishauser <georgr@iis.ee.ethz.ch>
Date: Mon, 1 Jul 2024 18:17:07 +0200
Subject: [PATCH] INIT read: only assign `buffer_in_valid_o` if datapath req
 valid

---
 src/backend/idma_init_read.sv | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/backend/idma_init_read.sv b/src/backend/idma_init_read.sv
index 4e959dac..0cc70d2d 100644
--- a/src/backend/idma_init_read.sv
+++ b/src/backend/idma_init_read.sv
@@ -122,7 +122,7 @@ module idma_init_read #(
     // once valid data is applied, it can be pushed in all the selected (mask_in) buffers
     // be sure the response channel is ready
     assign in_valid          = read_rsp_i.rsp_valid & in_ready & r_dp_ready_i;
-    assign buffer_in_valid_o = in_valid ? mask_in : '0;
+    assign buffer_in_valid_o = in_valid ? (r_dp_valid_i ? mask_in : '0 ):'0;
 
     // r_dp_ready_o is triggered by the last element arriving from the read
     assign r_dp_ready_o   = r_dp_valid_i & r_dp_ready_i & read_rsp_i.rsp_valid & in_ready;