fix alu result output
This commit is contained in:
@@ -6,24 +6,21 @@ module alu (
|
|||||||
output logic alu_zero_o,
|
output logic alu_zero_o,
|
||||||
output logic [31:0] alu_result_o
|
output logic [31:0] alu_result_o
|
||||||
);
|
);
|
||||||
|
|
||||||
logic [31:0] result;
|
|
||||||
|
|
||||||
always_comb begin
|
always_comb begin
|
||||||
unique case (alu_control_i)
|
unique case (alu_control_i)
|
||||||
// add
|
// add
|
||||||
2'b00: result = a_i + b_i;
|
2'b00: alu_result_o = a_i + b_i;
|
||||||
// sub
|
// sub
|
||||||
2'b01: result = a_i - b_i;
|
2'b01: alu_result_o = a_i - b_i;
|
||||||
// sll
|
// sll
|
||||||
// can only shift by 32 pos
|
// 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
|
// srl
|
||||||
// can only shift by 32 pos
|
// 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
|
endcase
|
||||||
|
|
||||||
alu_zero_o = (result == 1'b0);
|
alu_zero_o = (alu_result_o == 1'b0);
|
||||||
end
|
end
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user