Clarification of ctrl_fsm_o.halt_id code
Created by: Silabs-ArjanB
The following code needs explanation (and/or RTL changes) about:
-
Why !interrupt_allowed and !nmi_allowed are needed
-
Why !debug_allowed is needed
ctrl_fsm_o.halt_id = ctrl_byp_i.jalr_stall || ctrl_byp_i.load_stall || ctrl_byp_i.csr_stall || ctrl_byp_i.wfi_stall || ctrl_byp_i.mnxti_id_stall || (((pending_interrupt && !interrupt_allowed) || (pending_nmi && !nmi_allowed) || (pending_nmi_early)) && debug_interruptible && id_stage_haltable) || (pending_debug && !debug_allowed && id_stage_haltable);