From 95644e64bfde13b3cc56537740851906f0eba173 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 23 Oct 2022 21:35:08 -0600 Subject: Fix PC writeback hazard --- rtl/core/control/control.sv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'rtl/core/control/control.sv') diff --git a/rtl/core/control/control.sv b/rtl/core/control/control.sv index c2484ef..0f5b067 100644 --- a/rtl/core/control/control.sv +++ b/rtl/core/control/control.sv @@ -83,7 +83,8 @@ module core_control assign next_pc_visible = fetch_insn_pc + 2; assign next_bubble = - ((dec_update_flags || dec_conditional) && (final_update_flags || update_flags)) + (final_writeback && final_rd == `R15) + || ((dec_update_flags || dec_conditional) && (final_update_flags || update_flags)) || (final_writeback && ((dec_uses_rn && (final_rd == dec_data.rn || dec_data.rn == `R15)) || final_rd == dec_snd.r || dec_snd.r == `R15)); -- cgit v1.2.3