From 011008efd1607335e78f04d935d60f84b7efae86 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Thu, 15 Jul 2021 19:41:35 +0100 Subject: [PATCH] Fix detection of exception-like vs IRQ-like halt/trap entries --- hdl/hazard3_csr.v | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hdl/hazard3_csr.v b/hdl/hazard3_csr.v index 0788cbb..31c12e5 100644 --- a/hdl/hazard3_csr.v +++ b/hdl/hazard3_csr.v @@ -1003,7 +1003,11 @@ assign trap_addr = except == EXCEPT_MRET ? mepc : pending_dbg_resume ? dpc : mtvec | {24'h0, vector_sel, 2'h0}; -assign trap_is_irq = !exception_req_any || (DEBUG_SUPPORT && want_halt_irq); +// Check for exception-like or IRQ-like trap entry; any debug mode entry takes +// priority over any regular trap. +assign trap_is_irq = DEBUG_SUPPORT && (want_halt_except || want_halt_irq) ? + !want_halt_except : !exception_req_any; + assign trap_enter_vld = CSR_M_TRAP && (exception_req_any || !delay_irq_entry && (standard_irq_active || external_irq_active)) ||