From 741ce35d79edd07b4d2b268a161c364b1e988844 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 95cf93f4bb..ad7834c694 100644 --- a/core/acc_dispatcher.sv +++ b/core/acc_dispatcher.sv @@ -249,7 +249,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