Skip to content

Commit 264e924

Browse files
committed
nexus: More efficient CO mapping
Signed-off-by: David Shah <[email protected]>
1 parent ef5b277 commit 264e924

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

techlibs/nexus/arith_map.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ module _80_nexus_alu (A, B, CI, BI, X, Y, CO);
8888
.COUT(FCO[i+2])
8989
);
9090

91-
assign CO[i] = (AA[i] && BB[i]) || (((i == 0) ? CI : CO[i-1]) && (AA[i] || BB[i]));
91+
assign CO[i] = (AA[i] && BB[i]) || ((Y[i] ^ AA[i] ^ BB[i]) && (AA[i] || BB[i]));
9292
if (i+1 < Y_WIDTH) begin
93-
assign CO[i+1] = (AA[i+1] && BB[i+1]) || (CO[i] && (AA[i+1] || BB[i+1]));
93+
assign CO[i + 1] = (AA[i] && BB[i]) || ((Y[i] ^ AA[i] ^ BB[i]) && (AA[i] || BB[i]));
9494
assign Y[i+1] = Y1[i];
9595
end
9696
end endgenerate

0 commit comments

Comments
 (0)