Files
rvx0/src/rvx0_defs.svh

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