Fix for A_WIDTH == 2 but B_WIDTH==3
authorEddie Hung <eddie@fpgeh.com>
Tue, 23 Apr 2019 00:58:28 +0000 (17:58 -0700)
committerEddie Hung <eddie@fpgeh.com>
Tue, 23 Apr 2019 00:58:28 +0000 (17:58 -0700)
techlibs/xilinx/cells_map.v

index 60bc08b4889cc2d6ff1a52d7afe5772a563ced2c..10dbb8b9a077a13f0b91e2d8e5efe3d5b84dd4e4 100644 (file)
@@ -179,7 +179,7 @@ module \$shiftx (A, B, Y);
         assign A_i[i] = A[i*2];
       \$shiftx  #(.A_SIGNED(A_SIGNED), .B_SIGNED(B_SIGNED), .A_WIDTH((A_WIDTH+1'd1)/2'd2), .B_WIDTH(B_WIDTH-1'd1), .Y_WIDTH(Y_WIDTH)) _TECHMAP_REPLACE_ (.A(A_i), .B(B[B_WIDTH-1:1]), .Y(Y));
     end
-    else if (B_WIDTH < 3) begin
+    else if (B_WIDTH < 3 || A_WIDTH == 2**2) begin
       wire _TECHMAP_FAIL_ = 1;
     end
     else if (B_WIDTH == 3) begin