summaryrefslogtreecommitdiff
path: root/rtl/core/arm810.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-09-25 20:05:30 -0600
committerAlejandro Soto <alejandro@34project.org>2022-09-25 20:05:30 -0600
commit146586c0fb52dccb9ab483b8b20369ed19ae5116 (patch)
tree144e3ac13ecb95f164ab47cc4e7f936cf52da087 /rtl/core/arm810.sv
parentfa370016708149976c748c14eadad1f89cf5a8ea (diff)
Implement flag updates
Diffstat (limited to '')
-rw-r--r--rtl/core/arm810.sv10
1 files changed, 6 insertions, 4 deletions
diff --git a/rtl/core/arm810.sv b/rtl/core/arm810.sv
index b37057d..4a970d9 100644
--- a/rtl/core/arm810.sv
+++ b/rtl/core/arm810.sv
@@ -28,7 +28,7 @@ module arm810
.*
);
- logic decode_execute, decode_undefined, decode_writeback, decode_branch;
+ logic decode_execute, decode_undefined, decode_writeback, decode_branch, decode_update_flags;
ptr decode_branch_offset;
reg_num decode_rd;
alu_op decode_data_op;
@@ -39,15 +39,16 @@ module arm810
.execute(decode_execute),
.undefined(decode_undefined),
.writeback(decode_writeback),
- .rd(decode_rd),
.branch(decode_branch),
+ .update_flags(decode_update_flags),
+ .rd(decode_rd),
.branch_offset(decode_branch_offset),
.data_op(decode_data_op),
.*
);
reg_num rd;
- logic explicit_branch, writeback;
+ logic explicit_branch, writeback, update_flags;
ptr branch_target;
psr_mode reg_mode;
alu_op data_op;
@@ -81,6 +82,7 @@ module arm810
);
psr_flags alu_flags;
+ logic alu_v_valid;
core_alu #(.W(32)) alu
(
@@ -90,7 +92,7 @@ module arm810
.c_in(flags.c),
.q(wr_value),
.nzcv(alu_flags),
- .v_valid() //TODO
+ .v_valid(alu_v_valid)
);
endmodule