From 605de84e6a92b7a1b757e72e60199a16a4b7c900 Mon Sep 17 00:00:00 2001 From: dylanbenzi Date: Sun, 20 Sep 2026 18:02:55 -0400 Subject: [PATCH] fix alu result output --- src/verilog/cpu/execute.sv | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/verilog/cpu/execute.sv b/src/verilog/cpu/execute.sv index 5d68dd6..c043d64 100644 --- a/src/verilog/cpu/execute.sv +++ b/src/verilog/cpu/execute.sv @@ -6,24 +6,21 @@ module alu ( output logic alu_zero_o, output logic [31:0] alu_result_o ); - - logic [31:0] result; - always_comb begin unique case (alu_control_i) // add - 2'b00: result = a_i + b_i; + 2'b00: alu_result_o = a_i + b_i; // sub - 2'b01: result = a_i - b_i; + 2'b01: alu_result_o = a_i - b_i; // sll // can only shift by 32 pos - 2'b10: result = a_i << b_i[4:0]; + 2'b10: alu_result_o = a_i << b_i[4:0]; // srl // can only shift by 32 pos - 2'b11: result = a_i >> b_i[4:0]; + 2'b11: alu_result_o = a_i >> b_i[4:0]; endcase - alu_zero_o = (result == 1'b0); + alu_zero_o = (alu_result_o == 1'b0); end endmodule