alu bugfix
This commit is contained in:
+1
-1
@@ -9,7 +9,7 @@ package adder16 (
|
||||
wire [15:0]c
|
||||
);
|
||||
|
||||
lookahead(c, a, b);
|
||||
c = lookahead(c, a, b);
|
||||
|
||||
adder(sum16[0], carry16[0] = c[0], a16[0], b16[0],);
|
||||
adder(sum16[1], carry16[1] = c[1], a16[1], b16[1]);
|
||||
|
||||
+12
-12
@@ -12,14 +12,14 @@ package alu (
|
||||
output [2:0] flag
|
||||
);
|
||||
|
||||
assign za = sel[0]; // if zx=1, a=0
|
||||
assign na = sel[1]; // if nx=1, a=!a
|
||||
assign zb = sel[2]; // if zy=1, b=0
|
||||
assign nb = sel[3]; // if nx=1, b=!b
|
||||
assign f = sel[4]; // if f=0 -> a&b; else -> a+b
|
||||
assign no = sel[5]; // if no=1, out=!out
|
||||
assign za = sel[0]; // if zx=1, a=0
|
||||
assign na = sel[1]; // if nx=1, a=!a
|
||||
assign zb = sel[2]; // if zy=1, b=0
|
||||
assign nb = sel[3]; // if nx=1, b=!b
|
||||
assign f = sel[4]; // if f=0 -> a&b; else -> a+b
|
||||
assign no = sel[5]; // if no=1, out=!out
|
||||
|
||||
wire [15:0]zero16 = 0;
|
||||
wire [15:0] zero16 = 15'b0000000000000000;
|
||||
|
||||
always @(*) begin
|
||||
|
||||
@@ -47,12 +47,12 @@ always @(*) begin
|
||||
alu_out = tmpOut;
|
||||
end
|
||||
|
||||
if (alu_out == 0)
|
||||
flag = 0; // zero flag
|
||||
else if (alu_out < 0)
|
||||
flag = 1; // negative flag
|
||||
if (alu_out < 0)
|
||||
flag = 0; // negative flag
|
||||
else if (alu_out = 0)
|
||||
flag = 1; // zero flag
|
||||
else if
|
||||
flag = 2 // positive flag
|
||||
flag = 2 // positive flag
|
||||
end
|
||||
|
||||
endpackage
|
||||
Reference in New Issue
Block a user