[tlul] enable checking a_data integrity for read

Address #10499
Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/hw/ip/rv_core_ibex/rtl/rv_core_ibex.sv b/hw/ip/rv_core_ibex/rtl/rv_core_ibex.sv
index b8fed9c..c6dbd66 100644
--- a/hw/ip/rv_core_ibex/rtl/rv_core_ibex.sv
+++ b/hw/ip/rv_core_ibex/rtl/rv_core_ibex.sv
@@ -377,6 +377,10 @@
     .addr_o(instr_addr_trans)
   );
 
+  logic [6:0]  instr_wdata_intg;
+  logic [top_pkg::TL_DW-1:0] unused_data;
+  // tl_adapter_host_i_ibex only reads instruction. a_data is always 0
+  assign {instr_wdata_intg, unused_data} = prim_secded_pkg::prim_secded_inv_39_32_enc('0);
   tlul_adapter_host #(
     .MAX_REQS(NumOutstandingReqs),
     // if secure ibex is not set, data integrity is not generated
@@ -391,7 +395,7 @@
     .addr_i       (instr_addr_trans),
     .we_i         (1'b0),
     .wdata_i      (32'b0),
-    .wdata_intg_i ('0),
+    .wdata_intg_i (instr_wdata_intg),
     .be_i         (4'hF),
     .valid_o      (instr_rvalid),
     .rdata_o      (instr_rdata),
diff --git a/hw/ip/tlul/rtl/tlul_cmd_intg_chk.sv b/hw/ip/tlul/rtl/tlul_cmd_intg_chk.sv
index 16c06a5..1a831db 100644
--- a/hw/ip/tlul/rtl/tlul_cmd_intg_chk.sv
+++ b/hw/ip/tlul/rtl/tlul_cmd_intg_chk.sv
@@ -39,8 +39,7 @@
   assign wr_txn = tl_i.a_valid &
                   (tl_i.a_opcode == PutFullData | tl_i.a_opcode == PutPartialData);
 
-  assign err_o = tl_i.a_valid & |err |
-                 wr_txn & |data_err;
+  assign err_o = tl_i.a_valid & (|err | (|data_err));
 
 
   logic unused_tl;