Skip to content

Commit 7e31697

Browse files
author
Sharukh Hasan
committed
modified alu.v from updated version
1 parent 1c4a3ec commit 7e31697

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

alu.v

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ module alu (clk, rsa, rsb, imm, alu_op, alu_result, stat, stat_en);
6464
reg [31:0] imm_ext;
6565
reg [31:0] alu_result;
6666
wire [3:0] funct;
67-
wire stat_en;
67+
wire stat_en, fsb;
6868
reg t;
6969
integer i;
7070

@@ -99,7 +99,7 @@ module alu (clk, rsa, rsb, imm, alu_op, alu_result, stat, stat_en);
9999
always @ (rsa, rsb, funct)
100100
case (funct[1:0])
101101
2'b00: log_out <= ~rsa;
102-
2'b01: log_out <= rsa | rsb;
102+
2'b01: log_out <= rsa | rsb;
103103
2'b10: log_out <= rsa & rsb;
104104
2'b11: log_out <= rsa ^ rsb;
105105
endcase
@@ -155,10 +155,13 @@ module alu (clk, rsa, rsb, imm, alu_op, alu_result, stat, stat_en);
155155
// status code generation
156156
// 3 = Carry; 2 = oVerflow; 1 = Negative; 0 = Zero
157157
// Assume signed operands
158-
assign stat[3] = (add_out[32] == 1'b1) ? 1'b1 : 1'b0;
159-
assign stat[2] = (!(rsa[31] ^ rsb[31] ^ sub) && (rsb[31] ^ add_out[31]));
160-
assign stat[1] = ((!(rsa[31] ^ rsb[31] ^ sub) && (rsb[31] ^ add_out[31])) ^ (add_out[31] == 1'b1)) ? 1'b1 : 1'b0;
161-
assign stat[0] = (add_out[31:0] == 32'H00000000) ? 1'b1 : 1'b0;
158+
159+
assign fsb = (funct == sub) ? 1'b1 : 1'b0;
160+
161+
assign stat[3] = add_out[32];
162+
assign stat[2] = (~(fsb ^ rsa[31] ^ rsb[31])) & (fsb ^ rsb[31] ^ add_out[31]);
163+
assign stat[1] = alu_out[31];
164+
assign stat[0] = ~|alu_out[31:0];
162165

163166
// status register enable
164167
assign stat_en = ((funct == add) || (funct == sub)) && (alu_op[1] == 1'b0) ? 1'b1 : 1'b0;

0 commit comments

Comments
 (0)