From 68bf1cc22cb6a566702b03953b5d88977845c86a Mon Sep 17 00:00:00 2001 From: Alban Gruin <alban.gruin@irit.fr> Date: Tue, 1 Mar 2022 16:14:04 +0100 Subject: [PATCH] scoreboard: don't commit pending instructions when when flushing Signed-off-by: Alban Gruin <alban.gruin@irit.fr> --- src/scoreboard.sv | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/scoreboard.sv b/src/scoreboard.sv index 0f73faf2..eb546306 100644 --- a/src/scoreboard.sv +++ b/src/scoreboard.sv @@ -150,18 +150,18 @@ module scoreboard #( if (mem_q[i].pending) begin mem_n[i].pending = 1'b0; mem_n[i].issued = 1'b0; + mem_n[i].sbe.valid = 1'b0; flushed[i] = 1'b1; end end - end - - // ------------ - // FU NONE - // ------------ - for (int unsigned i = 0; i < NR_ENTRIES; i++) begin + end else if (mem_q[issue_pointer_q].sbe.fu == ariane_pkg::NONE && + mem_q[issue_pointer_q].issued && + ~mem_q[issue_pointer_q].pending) begin + // ------------ + // FU NONE + // ------------ // The FU is NONE -> this instruction is valid immediately - if (mem_q[i].sbe.fu == ariane_pkg::NONE && mem_q[i].issued && ~mem_q[i].pending) - mem_n[i].sbe.valid = 1'b1; + mem_n[issue_pointer_q].sbe.valid = 1'b1; end // ------------ -- GitLab