Revert B_SIGNED optimisation, since only works for Y_WIDTH==1

This commit is contained in:
Eddie Hung 2019-06-21 16:18:14 -07:00
parent 4d6fac019a
commit 44fc616fc7
1 changed files with 3 additions and 4 deletions

View File

@ -55,14 +55,13 @@ module \$shiftx (A, B, Y);
if (B_SIGNED) begin
if (B_WIDTH < 4 || A_WIDTH <= 4)
wire _TECHMAP_FAIL_ = 1;
else
// Since negative indices are out of the range of A
// and hence return 'bx, drop the sign bit
else if (_TECHMAP_CONSTMSK_B_[B_WIDTH-1] && _TECHMAP_CONSTVAL_B_[B_WIDTH-1] == 1'b0)
// Optimisation to remove B_SIGNED if sign bit of B is constant-0
\$__XILINX_SHIFTX #(
.A_SIGNED(A_SIGNED),
.B_SIGNED(0),
.A_WIDTH(A_WIDTH),
.B_WIDTH($clog2(A_WIDTH*B_WIDTH)),
.B_WIDTH(B_WIDTH-1'd1),
.Y_WIDTH(Y_WIDTH)
) _TECHMAP_REPLACE_ (
.A(A_without_x), .B(B[B_WIDTH-2:0]), .Y(Y)