summaryrefslogtreecommitdiff
path: root/rtl/core/control/cycles.sv
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/core/control/cycles.sv')
-rw-r--r--rtl/core/control/cycles.sv7
1 files changed, 6 insertions, 1 deletions
diff --git a/rtl/core/control/cycles.sv b/rtl/core/control/cycles.sv
index 88e0235..5779990 100644
--- a/rtl/core/control/cycles.sv
+++ b/rtl/core/control/cycles.sv
@@ -12,6 +12,7 @@ module core_control_cycles
coproc,
exception,
mem_ready,
+ mem_fault,
mul_add,
mul_long,
mul_ready,
@@ -100,12 +101,16 @@ module core_control_cycles
ESCALATE:
next_state = EXCEPTION;
- TRANSFER:
+ TRANSFER: begin
if(!mem_ready || pop_valid)
next_state = TRANSFER;
else if(ldst_writeback)
next_state = BASE_WRITEBACK;
+ if(mem_ready && mem_fault)
+ next_state = ESCALATE;
+ end
+
MUL:
if(!mul_ready)
next_state = MUL;