Add page fault exception codes

This commit is contained in:
Florian Zaruba 2017-06-16 15:43:03 +02:00
parent cdc43c8308
commit 4a0b7d6b3e

View file

@ -217,24 +217,27 @@ package ariane_pkg;
// ----------------------
// Exception Cause Codes
// ----------------------
localparam logic[63:0] INSTR_ADDR_MISALIGNED = 64'h0;
localparam logic[63:0] INSTR_ACCESS_FAULT = 64'h1;
localparam logic[63:0] ILLEGAL_INSTR = 64'h2;
localparam logic[63:0] BREAKPOINT = 64'h3;
localparam logic[63:0] LD_ADDR_MISALIGNED = 64'h4;
localparam logic[63:0] LD_ACCESS_FAULT = 64'h5;
localparam logic[63:0] ST_ADDR_MISALIGNED = 64'h6;
localparam logic[63:0] ST_ACCESS_FAULT = 64'h7;
localparam logic[63:0] ENV_CALL_UMODE = 64'h8; // environment call from user mode
localparam logic[63:0] ENV_CALL_SMODE = 64'h9; // environment call from supervisor mode
localparam logic[63:0] ENV_CALL_MMODE = 64'hB; // environment call from machine mode
localparam logic [63:0] INSTR_ADDR_MISALIGNED = 64'd0;
localparam logic [63:0] INSTR_ACCESS_FAULT = 64'd1;
localparam logic [63:0] ILLEGAL_INSTR = 64'd2;
localparam logic [63:0] BREAKPOINT = 64'd3;
localparam logic [63:0] LD_ADDR_MISALIGNED = 64'd4;
localparam logic [63:0] LD_ACCESS_FAULT = 64'd5;
localparam logic [63:0] ST_ADDR_MISALIGNED = 64'd6;
localparam logic [63:0] ST_ACCESS_FAULT = 64'd7;
localparam logic [63:0] ENV_CALL_UMODE = 64'd8; // environment call from user mode
localparam logic [63:0] ENV_CALL_SMODE = 64'd9; // environment call from supervisor mode
localparam logic [63:0] ENV_CALL_MMODE = 64'd11; // environment call from machine mode
localparam logic [63:0] INSTR_PAGE_FAULT = 64'd12; // Instruction page fault
localparam logic [63:0] LOAD_PAGE_FAULT = 64'd13; // Load page fault
localparam logic [63:0] STORE_PAGE_FAULT = 64'd15; // Store page fault
localparam logic[63:0] S_SW_INTERRUPT = (1 << 63) | 64'h1;
localparam logic[63:0] M_SW_INTERRUPT = (1 << 63) | 64'h3;
localparam logic[63:0] S_TIMER_INTERRUPT = (1 << 63) | 64'h5;
localparam logic[63:0] M_TIMER_INTERRUPT = (1 << 63) | 64'h7;
localparam logic[63:0] S_EXT_INTERRUPT = (1 << 63) | 64'h9;
localparam logic[63:0] M_EXT_INTERRUPT = (1 << 63) | 64'hB;
localparam logic [63:0] S_SW_INTERRUPT = (1 << 63) | 64'd1;
localparam logic [63:0] M_SW_INTERRUPT = (1 << 63) | 64'd3;
localparam logic [63:0] S_TIMER_INTERRUPT = (1 << 63) | 64'd5;
localparam logic [63:0] M_TIMER_INTERRUPT = (1 << 63) | 64'd7;
localparam logic [63:0] S_EXT_INTERRUPT = (1 << 63) | 64'd9;
localparam logic [63:0] M_EXT_INTERRUPT = (1 << 63) | 64'd11;
// -----
// CSRs
// -----