diff --git a/hdl/core.v b/hdl/core.v
index b7b2e7d..e68e18c 100644
--- a/hdl/core.v
+++ b/hdl/core.v
@@ -256,9 +256,12 @@ always @(*) begin
default: s_id_invalid = 1;
endcase
end
- // OP_LOAD: begin
-
- // end
+ OP_LOAD: begin
+ s_id_load = 1;
+ s_id_s1 = regfile[s_id_rs1];
+ s_id_s2 = s_id_immed_itype;
+ // TODO: finish parsing (byte vs word. For now always assume word)
+ end
OP_STORE: begin
s_id_store = 1;
s_id_s1 = regfile[s_id_rs1];
diff --git a/sim/core_tb.wcfg b/sim/core_tb.wcfg
index 2cd9504..eff36d7 100644
--- a/sim/core_tb.wcfg
+++ b/sim/core_tb.wcfg
@@ -468,9 +468,9 @@
r_wb_rd[4:0]
UNSIGNEDDECRADIX
-
- r_wb_ra
- r_wb_ra
+
+ r_wb_ra[31:0]
+ r_wb_ra[31:0]
r_wb_load_data[31:0]
@@ -482,6 +482,14 @@
r_wb_alu_out[31:0]
HEXRADIX
+
+ r_wb_jump
+ r_wb_jump
+
+
+ r_wb_load
+ r_wb_load
+
s_wb_data[31:0]
s_wb_data[31:0]
diff --git a/test/test.S b/test/test.S
index a17eec7..d815074 100644
--- a/test/test.S
+++ b/test/test.S
@@ -210,28 +210,34 @@ test9:
test10:
addi x30, x0, 10 # x30 = 10
- # # now for some memory stuff
- # # sw
- # la x9, someint # x9 = start of .bss
- # lui x10, 0x12345 # x10 = 0x12345000
- # addi x10, x10, 0x678 # x10 = 0x12345678
- # nop
- # nop
- # nop
- # nop
- # nop
- # sw x10, 0(x9) # someint = 0x12345678
- # nop
- # nop
- # nop
- # nop
- # nop
- # # lw x11, 0(x9) # x11 = 0x12345678
- # nop
- # nop
- # nop
- # nop
- # nop
+ # now for some memory stuff
+ # sw
+ la x9, someint # x9 = start of .bss
+ lui x10, 0x12345 # x10 = 0x12345000
+ addi x10, x10, 0x678 # x10 = 0x12345678
+ nop
+ nop
+ nop
+ nop
+ nop
+ lw x11, 0(x9) # x11 = 0xfedcba98
+ nop
+ nop
+ nop
+ nop
+ nop
+ sw x10, 0(x9) # someint = 0x12345678
+ nop
+ nop
+ nop
+ nop
+ nop
+ lw x12, 0(x9) # x12 = 0x12345678
+ nop
+ nop
+ nop
+ nop
+ nop
done: