From 5086bff7a039f02a2d9604bca7b1b3e9d961713e Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Thu, 22 Aug 2024 19:20:22 +0200 Subject: [PATCH] acc_dispatcher: don't issue instruction from buffer if flushing Instructions with side effects flush the unissued instructions from the controller. The accelerator dispatcher buffer is flushed when this happens and avoids accepting a new instruction, but was not preventing the actual issue during a flush cycle. --- core/acc_dispatcher.sv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/acc_dispatcher.sv b/core/acc_dispatcher.sv index f56779a251..69f2fca683 100644 --- a/core/acc_dispatcher.sv +++ b/core/acc_dispatcher.sv @@ -257,7 +257,7 @@ module acc_dispatcher }; // Wait until the instruction is no longer speculative. acc_req_valid = insn_ready_q[acc_insn_queue_o.trans_id] || - (acc_commit && insn_pending_q[acc_commit_trans_id]); + (acc_commit && insn_pending_q[acc_commit_trans_id] && !flush_unissued_instr_i); acc_insn_queue_pop = acc_req_valid && acc_req_ready; end end