summaryrefslogtreecommitdiff
path: root/rtl/core/psr.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-10-03 12:16:01 -0600
committerAlejandro Soto <alejandro@34project.org>2022-10-03 12:16:01 -0600
commit7e7c205367558b622fa56edaaa9c76491d57a4fa (patch)
tree32a56225a04b94170f214def62e0f9076ed09c89 /rtl/core/psr.sv
parent63ec42cc245b2da9ab97cc4eef6bbd21e08cde07 (diff)
Fix pipeline hazards
Diffstat (limited to 'rtl/core/psr.sv')
-rw-r--r--rtl/core/psr.sv15
1 files changed, 8 insertions, 7 deletions
diff --git a/rtl/core/psr.sv b/rtl/core/psr.sv
index 2c0d48f..30bb320 100644
--- a/rtl/core/psr.sv
+++ b/rtl/core/psr.sv
@@ -7,23 +7,24 @@ module core_psr
alu_v_valid,
input psr_flags alu_flags,
- output psr_flags flags,
- next_flags
+ output psr_flags flags
);
+ psr_flags cpsr_flags;
+
always_comb begin
- next_flags = flags;
+ flags = cpsr_flags;
if(update_flags) begin
- next_flags = alu_flags;
+ flags = alu_flags;
if(~alu_v_valid)
- next_flags.v = flags.v;
+ flags.v = cpsr_flags.v;
end
end
always_ff @(posedge clk)
- flags <= next_flags;
+ cpsr_flags <= flags;
- initial flags = 4'b0000;
+ initial cpsr_flags = 4'b0000;
endmodule