fix conflict

This commit is contained in:
davide schiavone 2023-10-03 13:14:27 +02:00
commit 1ae4209022
2 changed files with 16 additions and 1 deletions

View file

@ -692,9 +692,14 @@ module cve2_controller #(
// Leave all other signals as is to ensure CSRs and PC get set as if
// core was entering exception handler, entry to debug mode will then
// see the appropriate state and setup dpc correctly.
// If an EBREAK instruction is causing us to enter debug mode on the
// same cycle as a debug_req or single step, honor the EBREAK and
// proceed to DBG_TAKEN_ID.
// proceed to DBG_TAKEN_ID, as it has the highest priority.
// [Debug Spec v1.0.0-STABLE, p.53]
// cause==EBREAK -> prio 3 (highest)
// cause==debug_req -> prio 2
// cause==step -> prio 1 (lowest)
if (enter_debug_mode_prio_q && !(ebrk_insn_prio && ebreak_into_debug)) begin
ctrl_fsm_ns = DBG_TAKEN_IF;
end

View file

@ -468,6 +468,16 @@ module cve2_cs_registers #(
illegal_csr = 1'b1;
end
endcase
if (!PMPEnable) begin
if (csr_addr inside {CSR_PMPCFG0, CSR_PMPCFG1, CSR_PMPCFG2, CSR_PMPCFG3,
CSR_PMPADDR0, CSR_PMPADDR1, CSR_PMPADDR2, CSR_PMPADDR3,
CSR_PMPADDR4, CSR_PMPADDR5, CSR_PMPADDR6, CSR_PMPADDR7,
CSR_PMPADDR8, CSR_PMPADDR9, CSR_PMPADDR10, CSR_PMPADDR11,
CSR_PMPADDR12, CSR_PMPADDR13, CSR_PMPADDR14, CSR_PMPADDR15}) begin
illegal_csr = 1'b1;
end
end
end
// write logic