CSRs: remove `define for mstatus CSR handling

This commit is contained in:
Pirmin Vogel 2019-07-16 14:43:15 +01:00 committed by Philipp Wagner
parent a7f344b02a
commit 964e62afee
2 changed files with 14 additions and 30 deletions

View file

@ -113,26 +113,9 @@ module ibex_cs_registers #(
| (0 << 23) // X - Non-standard extensions present
| (32'(MXL) << 30); // M-XLEN
`define MSTATUS_UIE_BITS 0
`define MSTATUS_SIE_BITS 1
`define MSTATUS_MIE_BITS 3
`define MSTATUS_UPIE_BITS 4
`define MSTATUS_SPIE_BITS 5
`define MSTATUS_MPIE_BITS 7
`define MSTATUS_SPP_BITS 8
`define MSTATUS_MPP_BITS 12:11
typedef struct packed {
//logic uie; - unimplemented, hardwired to '0
// logic sie; - unimplemented, hardwired to '0
// logic hie; - unimplemented, hardwired to '0
logic mie;
//logic upie; - unimplemented, hardwired to '0
// logic spie; - unimplemented, hardwired to '0
// logic hpie; - unimplemented, hardwired to '0
logic mpie;
// logic spp; - unimplemented, hardwired to '0
// logic[1:0] hpp; - unimplemented, hardwired to '0
logic mie;
logic mpie;
priv_lvl_e mpp;
} Status_t;
@ -238,15 +221,10 @@ module ibex_cs_registers #(
// mstatus: always M-mode, contains IE bit
CSR_MSTATUS: begin
csr_rdata_int = {
19'b0,
mstatus_q.mpp,
3'b0,
mstatus_q.mpie,
3'h0,
mstatus_q.mie,
3'h0
};
csr_rdata_int = '0;
csr_rdata_int[CSR_MSTATUS_MIE_BIT] = mstatus_q.mie;
csr_rdata_int[CSR_MSTATUS_MPIE_BIT] = mstatus_q.mpie;
csr_rdata_int[CSR_MSTATUS_MPP_BIT_HIGH:CSR_MSTATUS_MPP_BIT_LOW] = mstatus_q.mpp;
end
// misa
@ -358,8 +336,8 @@ module ibex_cs_registers #(
CSR_MSTATUS: begin
if (csr_we_int) begin
mstatus_d = '{
mie: csr_wdata_int[`MSTATUS_MIE_BITS],
mpie: csr_wdata_int[`MSTATUS_MPIE_BITS],
mie: csr_wdata_int[CSR_MSTATUS_MIE_BIT],
mpie: csr_wdata_int[CSR_MSTATUS_MPIE_BIT],
mpp: PRIV_LVL_M
};
end

View file

@ -246,6 +246,12 @@ parameter logic [11:0] CSR_OFF_MCOUNTER = 12'hB00; // mcounter @ 12'
parameter logic [11:0] CSR_OFF_MCOUNTERH = 12'hB80; // mcounterh @ 12'hB83 - 12'hB9F
parameter logic [11:0] CSR_MASK_MCOUNTER = 12'hFE0;
// CSR status bits
parameter int unsigned CSR_MSTATUS_MIE_BIT = 3;
parameter int unsigned CSR_MSTATUS_MPIE_BIT = 7;
parameter int unsigned CSR_MSTATUS_MPP_BIT_LOW = 11;
parameter int unsigned CSR_MSTATUS_MPP_BIT_HIGH = 12;
// CSR interrupt pending/enable bits
parameter int unsigned CSR_MSIX_BIT = 3;
parameter int unsigned CSR_MTIX_BIT = 7;