diff --git a/rtl/ibex_cs_registers.sv b/rtl/ibex_cs_registers.sv index 15329807..67e59785 100644 --- a/rtl/ibex_cs_registers.sv +++ b/rtl/ibex_cs_registers.sv @@ -124,14 +124,14 @@ module ibex_cs_registers #( import ibex_pkg::*; - localparam int unsigned RV32BEnabled = (RV32B == RV32BNone) ? 0 : 1; + localparam int unsigned RV32BExtra = (RV32B == RV32BOTEarlGrey) || (RV32B == RV32BFull) ? 1 : 0; localparam int unsigned RV32MEnabled = (RV32M == RV32MNone) ? 0 : 1; localparam int unsigned PMPAddrWidth = (PMPGranularity > 0) ? 33 - PMPGranularity : 32; // misa localparam logic [31:0] MISA_VALUE = (0 << 0) // A - Atomic Instructions extension - | (RV32BEnabled << 1) // B - Bit-Manipulation extension + | (0 << 1) // B - Bit-Manipulation extension | (1 << 2) // C - Compressed extension | (0 << 3) // D - Double precision floating-point extension | (32'(RV32E) << 4) // E - RV32E base ISA @@ -141,7 +141,7 @@ module ibex_cs_registers #( | (0 << 13) // N - User level interrupts supported | (0 << 18) // S - Supervisor mode implemented | (1 << 20) // U - User mode implemented - | (0 << 23) // X - Non-standard extensions present + | (RV32BExtra << 23) // X - Non-standard extensions present | (32'(CSR_MISA_MXL) << 30); // M-XLEN typedef struct packed {