3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-14 04:48:46 +00:00
This commit is contained in:
Miodrag Milanovic 2019-08-09 12:37:10 +02:00
parent 7a860c5623
commit d51b135e33

View file

@ -31,7 +31,7 @@ module _80_efinix_alu (A, B, CI, BI, X, Y, CO);
output [Y_WIDTH-1:0] X, Y; output [Y_WIDTH-1:0] X, Y;
input CI, BI; input CI, BI;
output CO; output [Y_WIDTH-1:0] CO;
wire _TECHMAP_FAIL_ = Y_WIDTH <= 2; wire _TECHMAP_FAIL_ = Y_WIDTH <= 2;
@ -41,15 +41,14 @@ module _80_efinix_alu (A, B, CI, BI, X, Y, CO);
wire [Y_WIDTH-1:0] AA = A_buf; wire [Y_WIDTH-1:0] AA = A_buf;
wire [Y_WIDTH-1:0] BB = BI ? ~B_buf : B_buf; wire [Y_WIDTH-1:0] BB = BI ? ~B_buf : B_buf;
wire [Y_WIDTH+1:0] COx; wire [Y_WIDTH:0] C;
wire [Y_WIDTH+2:0] C = {COx, CI};
EFX_ADD #(.I0_POLARITY(1'b1),.I1_POLARITY(1'b1)) EFX_ADD #(.I0_POLARITY(1'b1),.I1_POLARITY(1'b1))
adder_cin ( adder_cin (
.I0(C[0]), .I0(CI),
.I1(1'b1), .I1(1'b1),
.CI(1'b0), .CI(1'b0),
.CO(COx[0]) .CO(C[0])
); );
genvar i; genvar i;
@ -58,21 +57,20 @@ module _80_efinix_alu (A, B, CI, BI, X, Y, CO);
adder_i ( adder_i (
.I0(AA[i]), .I0(AA[i]),
.I1(BB[i]), .I1(BB[i]),
.CI(C[i+1]), .CI(C[i]),
.O(Y[i]), .O(Y[i]),
.CO(COx[i+1]) .CO(C[i+1])
); );
end: slice
endgenerate
EFX_ADD #(.I0_POLARITY(1'b1),.I1_POLARITY(1'b1)) EFX_ADD #(.I0_POLARITY(1'b1),.I1_POLARITY(1'b1))
adder_cout ( adder_cout (
.I0(1'b0), .I0(1'b0),
.I1(1'b0), .I1(1'b0),
.CI(C[Y_WIDTH+1]), .CI(C[i+1]),
.O(COx[Y_WIDTH+1]) .O(CO[i])
); );
assign CO = COx[Y_WIDTH+1]; end: slice
endgenerate
/* End implementation */ /* End implementation */
assign X = AA ^ BB; assign X = AA ^ BB;
endmodule endmodule