diff options
author | David Shah <dave@ds0.me> | 2019-06-21 09:44:13 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-06-21 09:45:11 +0100 |
commit | a0d3d2bb41cd11b5b33620e16cb67c6568b16847 (patch) | |
tree | 7cd55382fc5a9b79ccd61ed0d02e78bb76692094 /techlibs/ecp5 | |
parent | c9949dba9994aa8289333657a52ef892c6e769d0 (diff) | |
download | yosys-a0d3d2bb41cd11b5b33620e16cb67c6568b16847.tar.gz yosys-a0d3d2bb41cd11b5b33620e16cb67c6568b16847.tar.bz2 yosys-a0d3d2bb41cd11b5b33620e16cb67c6568b16847.zip |
ecp5: Improve mapping of $alu when BI is used
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'techlibs/ecp5')
-rw-r--r-- | techlibs/ecp5/arith_map.v | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/techlibs/ecp5/arith_map.v b/techlibs/ecp5/arith_map.v index eb7947601..17bde0497 100644 --- a/techlibs/ecp5/arith_map.v +++ b/techlibs/ecp5/arith_map.v @@ -50,20 +50,21 @@ module _80_ecp5_alu (A, B, CI, BI, X, Y, CO); wire [Y_WIDTH2-1:0] AA = A_buf; wire [Y_WIDTH2-1:0] BB = BI ? ~B_buf : B_buf; + wire [Y_WIDTH2-1:0] BX = B_buf; wire [Y_WIDTH2-1:0] C = {CO, CI}; wire [Y_WIDTH2-1:0] FCO, Y1; genvar i; generate for (i = 0; i < Y_WIDTH2; i = i + 2) begin:slice CCU2C #( - .INIT0(16'b0110011010101010), - .INIT1(16'b0110011010101010), + .INIT0(16'b1001011010101010), + .INIT1(16'b1001011010101010), .INJECT1_0("NO"), .INJECT1_1("NO") ) ccu2c_i ( .CIN(C[i]), - .A0(AA[i]), .B0(BB[i]), .C0(1'b0), .D0(1'b1), - .A1(AA[i+1]), .B1(BB[i+1]), .C1(1'b0), .D1(1'b1), + .A0(AA[i]), .B0(BX[i]), .C0(BI), .D0(1'b1), + .A1(AA[i+1]), .B1(BX[i+1]), .C1(BI), .D1(1'b1), .S0(Y[i]), .S1(Y1[i]), .COUT(FCO[i]) ); |