[smc/hw] Allow async exceptions mid-SC.W - Allow graceful interrupting while waiting for data_rvalid from the bus Change-Id: If1412b7b7fa8f878647f3a55f64e620e51c9cc6a
diff --git a/hw/top_matcha/ip/smc/rtl/smc_id_stage.sv b/hw/top_matcha/ip/smc/rtl/smc_id_stage.sv index a1257bc..b0666c7 100644 --- a/hw/top_matcha/ip/smc/rtl/smc_id_stage.sv +++ b/hw/top_matcha/ip/smc/rtl/smc_id_stage.sv
@@ -772,7 +772,7 @@ always_comb begin amo_outstanding_res_d = amo_outstanding_res_q; amo_sc_success_d = id_ptw_active_i ? amo_sc_success_q : 1'b0; - amo_rf_success_d = data_rvalid_i ? 1'b0 : amo_rf_success_q; + amo_rf_success_d = data_rvalid_i ? 1'b0 : (amo_rf_success_q & instr_valid_i); if (lsu_req) begin if (amo_lr) begin