summaryrefslogtreecommitdiff
path: root/rtl/core/isa.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-10-08 15:34:46 -0600
committerAlejandro Soto <alejandro@34project.org>2022-10-08 15:34:46 -0600
commitdab6e68a8396475af5acbf53397f93c6b52e2e71 (patch)
tree7ec0ee02735a730f633190acadaca23bbd574234 /rtl/core/isa.sv
parenta0a12ef0c1bd6882d902a9d5938e7220e543b378 (diff)
Implement LDR/STR decode
Diffstat (limited to 'rtl/core/isa.sv')
-rw-r--r--rtl/core/isa.sv33
1 files changed, 23 insertions, 10 deletions
diff --git a/rtl/core/isa.sv b/rtl/core/isa.sv
index 7f32914..7298b9a 100644
--- a/rtl/core/isa.sv
+++ b/rtl/core/isa.sv
@@ -25,6 +25,7 @@
`define FIELD_SND_ROR8 [11:8]
`define FIELD_SND_IMM8 [7:0]
+`define FIELD_SND_IMM12 [11:0]
`define FIELD_SND_SHIFTIMM [11:7]
`define FIELD_SND_RS [11:8]
`define FIELD_SND_ZEROIFREG [7]
@@ -117,11 +118,21 @@
`define INSN_STM_CUR 28'b100_?_?_0_?_0_????_????????????????
`define INSN_STM_USR 28'b100_?_?_1_0_0_????_????????????????
-`define GROUP_LDST_MISC 28'b000_?_?_?_?_?_????_????_????_1_?_?_1_????
-`define GROUP_LDST_MULT 28'b100_?_?_?_?_?_????_????????????????
+`define GROUP_LDST_SINGLE_IMM 28'b01_0_?_?_?_?_?_????_????_????????????
+`define GROUP_LDST_SINGLE_REG 28'b01_1_?_?_?_?_?_????_????_?????_??_0_????
+`define GROUP_LDST_MISC_IMM 28'b000_?_?_1_?_?_????_????_????_1_?_?_1_????
+`define GROUP_LDST_MISC_REG 28'b000_?_?_0_?_?_????_????_0000_1_?_?_1_????
+`define GROUP_LDST_MULT 28'b100_?_?_?_?_?_????_????????????????
+
+`define FIELD_LDST_LD [20]
+`define FIELD_LDST_SINGLE_REG [25]
+`define FIELD_LDST_SINGLE_P [24]
+`define FIELD_LDST_SINGLE_U [23]
+`define FIELD_LDST_SINGLE_B [22]
+`define FIELD_LDST_SINGLE_W [21]
+`define FIELD_LDST_SINGLE_RN [19:16]
+`define FIELD_LDST_SINGLE_RD [15:12]
-`define FIELD_LDST_LD [20]
-`define FIELD_LDST_SINGLE_BYTE [22]
`define FIELD_LDST_MISC_P [24]
`define FIELD_LDST_MISC_U [23]
`define FIELD_LDST_MISC_W [21]
@@ -131,12 +142,14 @@
`define FIELD_LDST_MISC_S [6]
`define FIELD_LDST_MISC_H [5]
`define FIELD_LDST_MISC_IMM_LO [3:0]
-`define FIELD_LDST_MULT_P [24]
-`define FIELD_LDST_MULT_U [23]
-`define FIELD_LDST_MULT_S [22]
-`define FIELD_LDST_MULT_W [21]
-`define FIELD_LDST_MULT_RN [19:16]
-`define FIELD_LDST_MULT_LIST [15:0]
+`define FIELD_LDST_MISC_RM [3:0]
+
+`define FIELD_LDST_MULT_P [24]
+`define FIELD_LDST_MULT_U [23]
+`define FIELD_LDST_MULT_S [22]
+`define FIELD_LDST_MULT_W [21]
+`define FIELD_LDST_MULT_RN [19:16]
+`define FIELD_LDST_MULT_LIST [15:0]
// Instrucciones atómicas de intercambio registro-memoria