diff options
| -rw-r--r-- | conspiracion.qsf | 1 | ||||
| -rw-r--r-- | rtl/core/cp15/map.sv | 17 | ||||
| -rw-r--r-- | rtl/core/uarch.sv | 7 |
3 files changed, 22 insertions, 3 deletions
diff --git a/conspiracion.qsf b/conspiracion.qsf index 33bcca9..ae0bfd9 100644 --- a/conspiracion.qsf +++ b/conspiracion.qsf @@ -142,6 +142,7 @@ set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/control/mux.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/control/ldst/pop.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/control/stall.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/cp15/cp15.sv +set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/cp15/map.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/decode/branch.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/decode/conds.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/core/decode/coproc.sv diff --git a/rtl/core/cp15/map.sv b/rtl/core/cp15/map.sv new file mode 100644 index 0000000..0c0add5 --- /dev/null +++ b/rtl/core/cp15/map.sv @@ -0,0 +1,17 @@ +`ifndef CORE_CP15_MAP_SV +`define CORE_CP15_MAP_SV + +`define CP15_CRN_CPUID 4'd0 +`define CP15_CRN_SYSCFG 4'd1 +`define CP15_CRN_TTBR 4'd2 +`define CP15_CRN_DOMAIN 4'd3 +`define CP15_CRN_FSR 4'd5 +`define CP15_CRN_FAR 4'd6 +`define CP15_CRN_CACHE 4'd7 +`define CP15_CRN_TLB 4'd8 +`define CP15_CRN_CACHE_LCK 4'd9 +`define CP15_CRN_TLB_LCK 4'd10 +`define CP15_CRN_DMA 4'd11 +`define CP15_CRN_PID 4'd13 + +`endif diff --git a/rtl/core/uarch.sv b/rtl/core/uarch.sv index 69c5edb..b6dfc76 100644 --- a/rtl/core/uarch.sv +++ b/rtl/core/uarch.sv @@ -5,6 +5,7 @@ `define NOP 32'd0 typedef logic[3:0] reg_num; +typedef logic[2:0] cp_opcode; typedef logic[15:0] reg_list; typedef logic[31:0] word; typedef logic[29:0] ptr; @@ -137,9 +138,9 @@ typedef struct packed typedef struct packed { - logic load; - logic[2:0] op1, op2; - reg_num crn, crm; + logic load; + cp_opcode op1, op2; + reg_num crn, crm; } coproc_decode; typedef enum |
