71 lines
2.4 KiB
Systemverilog
71 lines
2.4 KiB
Systemverilog
`ifndef __RVX0_DEFS_SVH
|
|
`define __RVX0_DEFS_SVH
|
|
|
|
// `define RVX0_DEBUGGING 1
|
|
// `define RVX0_CRASH_ON_EXCEPTION 1
|
|
`define RVX0_ZICSR 1
|
|
|
|
const logic [2:0] RDSRC_NONE = 0;
|
|
const logic [2:0] RDSRC_ALU = 1;
|
|
const logic [2:0] RDSRC_MEM = 2;
|
|
const logic [2:0] RDSRC_PC = 3;
|
|
const logic [2:0] RDSRC_CSR = 4;
|
|
const logic [2:0] RDSRC_MALU = 5; // TODO will be used for M extension
|
|
const logic [2:0] RDSRC_RES2 = 6;
|
|
const logic [2:0] RDSRC_RES3 = 7;
|
|
|
|
const logic V1SRC_ZERO = 0;
|
|
const logic V1SRC_RS1 = 1;
|
|
|
|
const logic [1:0] V2SRC_ZERO = 0;
|
|
const logic [1:0] V2SRC_RS2 = 1;
|
|
const logic [1:0] V2SRC_PC = 2;
|
|
|
|
const logic [3:0] ALUOP_ADD = 4'b0000;
|
|
const logic [3:0] ALUOP_SLL = 4'b0001;
|
|
const logic [3:0] ALUOP_SLT = 4'b0010;
|
|
const logic [3:0] ALUOP_SLTU = 4'b0011;
|
|
const logic [3:0] ALUOP_XOR = 4'b0100;
|
|
const logic [3:0] ALUOP_SRL = 4'b0101;
|
|
const logic [3:0] ALUOP_OR = 4'b0110;
|
|
const logic [3:0] ALUOP_AND = 4'b0111;
|
|
const logic [3:0] ALUOP_SUB = 4'b1000;
|
|
const logic [3:0] ALUOP_SRA = 4'b1101;
|
|
|
|
const logic [2:0] COND_EQ = 3'b000;
|
|
const logic [2:0] COND_NE = 3'b001;
|
|
const logic [2:0] COND_LT = 3'b100;
|
|
const logic [2:0] COND_GE = 3'b101;
|
|
const logic [2:0] COND_LTU = 3'b110;
|
|
const logic [2:0] COND_GEU = 3'b111;
|
|
|
|
const logic [1:0] CSTATE_FETCH = 0;
|
|
const logic [1:0] CSTATE_READ = 1;
|
|
const logic [1:0] CSTATE_EXEC = 2;
|
|
const logic [1:0] CSTATE_WRITE = 3;
|
|
|
|
const logic [31:0] MISA_MXLEN_32 = 1 << 30;
|
|
|
|
const logic [31:0] MCAUSE_INSTRUCTION_ADDRESS_MISALIGN = 0;
|
|
const logic [31:0] MCAUSE_INSTRUCTION_ACCESS_FAULT = 1;
|
|
const logic [31:0] MCAUSE_ILLEGAL_INSTRUCTION = 2;
|
|
const logic [31:0] MCAUSE_BREAKPOINT = 3;
|
|
const logic [31:0] MCAUSE_LOAD_ADDRESS_MISALIGNED = 4;
|
|
const logic [31:0] MCAUSE_LOAD_ACCESS_FAULT = 5;
|
|
const logic [31:0] MCAUSE_STORE_ADDRESS_MISALIGNED = 6;
|
|
const logic [31:0] MCAUSE_STORE_ACCESS_FAULT = 7;
|
|
const logic [31:0] MCAUSE_ECALL_UMODE = 8;
|
|
const logic [31:0] MCAUSE_ECALL_SMODE = 9;
|
|
const logic [31:0] MCAUSE_ECALL_MMODE = 11;
|
|
const logic [31:0] MCAUSE_INSTRUCTION_PAGE_FAULT = 12;
|
|
const logic [31:0] MCAUSE_LOAD_PAGE_FAULT = 13;
|
|
const logic [31:0] MCAUSE_STORE_PAGE_FAULT = 15;
|
|
|
|
const logic [31:0] MCAUSE_INTR_EXT_MMODE = 11;
|
|
const logic [31:0] MCAUSE_INTERRUPT = 1 << 31;
|
|
|
|
const logic IGROUP_RV32I = 0;
|
|
const logic IGROUP_SYSTEM = 1;
|
|
|
|
`endif // __RVX0_DEFS_SVH
|