mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-14 18:06:16 +00:00
_ABC macro will map and unmap to this new box
This commit is contained in:
parent
fc3d74616f
commit
c6e16e1334
2 changed files with 34 additions and 0 deletions
|
@ -44,6 +44,15 @@ module _80_ice40_alu (A, B, CI, BI, X, Y, CO);
|
||||||
|
|
||||||
genvar i;
|
genvar i;
|
||||||
generate for (i = 0; i < Y_WIDTH; i = i + 1) begin:slice
|
generate for (i = 0; i < Y_WIDTH; i = i + 1) begin:slice
|
||||||
|
`ifdef _ABC
|
||||||
|
\$__ICE40_CARRY_LUT4 carry (
|
||||||
|
.A(AA[i]),
|
||||||
|
.B(BB[i]),
|
||||||
|
.CI(C[i]),
|
||||||
|
.CO(CO[i]),
|
||||||
|
.O(Y[i])
|
||||||
|
);
|
||||||
|
`else
|
||||||
SB_CARRY carry (
|
SB_CARRY carry (
|
||||||
.I0(AA[i]),
|
.I0(AA[i]),
|
||||||
.I1(BB[i]),
|
.I1(BB[i]),
|
||||||
|
@ -63,6 +72,7 @@ module _80_ice40_alu (A, B, CI, BI, X, Y, CO);
|
||||||
.I3(C[i]),
|
.I3(C[i]),
|
||||||
.O(Y[i])
|
.O(Y[i])
|
||||||
);
|
);
|
||||||
|
`endif
|
||||||
end endgenerate
|
end endgenerate
|
||||||
|
|
||||||
assign X = AA ^ BB;
|
assign X = AA ^ BB;
|
||||||
|
|
|
@ -61,3 +61,27 @@ module \$lut (A, Y);
|
||||||
endgenerate
|
endgenerate
|
||||||
endmodule
|
endmodule
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
|
`ifdef _ABC
|
||||||
|
module \$__ICE40_CARRY_LUT4 (output CO, O, input A, B, CI);
|
||||||
|
SB_CARRY carry (
|
||||||
|
.I0(A),
|
||||||
|
.I1(B),
|
||||||
|
.CI(CI),
|
||||||
|
.CO(CO)
|
||||||
|
);
|
||||||
|
SB_LUT4 #(
|
||||||
|
// I0: 1010 1010 1010 1010
|
||||||
|
// I1: 1100 1100 1100 1100
|
||||||
|
// I2: 1111 0000 1111 0000
|
||||||
|
// I3: 1111 1111 0000 0000
|
||||||
|
.LUT_INIT(16'b 0110_1001_1001_0110)
|
||||||
|
) adder (
|
||||||
|
.I0(1'b0),
|
||||||
|
.I1(A),
|
||||||
|
.I2(B),
|
||||||
|
.I3(CI),
|
||||||
|
.O(O)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
`endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue