From 65e3d1c48b9cb160dd3b1cf9534e4e4880d7a05b Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Mon, 8 Aug 2022 17:38:41 +0100 Subject: [PATCH] Fix bad IRQ_IMPL_MASK indexing in meipra write --- hdl/hazard3_csr.v | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hdl/hazard3_csr.v b/hdl/hazard3_csr.v index a907d81..48cb924 100644 --- a/hdl/hazard3_csr.v +++ b/hdl/hazard3_csr.v @@ -340,11 +340,11 @@ always @ (posedge clk or negedge rst_n) begin meifa[16 * wdata[4:0] +: 16] <= IRQ_IMPL_MASK[16 * wdata[4:0] +: 16] & wdata_update[31:16]; end else if (wen_m_mode && addr == MEIPRA) begin meipra[16 * wdata[6:0] +: 16] <= { - {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 0]}}, - {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 1]}}, + {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 3]}}, {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 2]}}, - {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 3]}} - } & {4{~(4'hf >> IRQ_PRIORITY_BITS)}} & wdata_update[31:16]; + {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 1]}}, + {4{IRQ_IMPL_MASK[4 * wdata[6:0] + 0]}} + } & {4{IRQ_PRIORITY_MASK}} & wdata_update[31:16]; end // Clear IRQ force when the corresponding IRQ is sample from meinext // (so that an IRQ can be posted *once* without modifying the ISR source)