From 078cb80dce99913ba3c3f10628d040187c1a963a Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Tue, 3 Sep 2024 11:32:19 +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 57a8170b69..b4fc196a96 100644 --- a/core/acc_dispatcher.sv +++ b/core/acc_dispatcher.sv @@ -285,7 +285,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