mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Revert B_SIGNED optimisation, since only works for Y_WIDTH==1
This commit is contained in:
		
							parent
							
								
									4d6fac019a
								
							
						
					
					
						commit
						44fc616fc7
					
				
					 1 changed files with 3 additions and 4 deletions
				
			
		|  | @ -55,14 +55,13 @@ module \$shiftx (A, B, Y); | ||||||
|       if (B_SIGNED) begin |       if (B_SIGNED) begin | ||||||
|         if (B_WIDTH < 4 || A_WIDTH <= 4) |         if (B_WIDTH < 4 || A_WIDTH <= 4) | ||||||
|           wire _TECHMAP_FAIL_ = 1; |           wire _TECHMAP_FAIL_ = 1; | ||||||
|         else |         else if (_TECHMAP_CONSTMSK_B_[B_WIDTH-1] && _TECHMAP_CONSTVAL_B_[B_WIDTH-1] == 1'b0) | ||||||
|           // Since negative indices are out of the range of A |           // Optimisation to remove B_SIGNED if sign bit of B is constant-0 | ||||||
|           // and hence return 'bx, drop the sign bit |  | ||||||
|           \$__XILINX_SHIFTX #( |           \$__XILINX_SHIFTX #( | ||||||
|             .A_SIGNED(A_SIGNED), |             .A_SIGNED(A_SIGNED), | ||||||
|             .B_SIGNED(0), |             .B_SIGNED(0), | ||||||
|             .A_WIDTH(A_WIDTH), |             .A_WIDTH(A_WIDTH), | ||||||
|             .B_WIDTH($clog2(A_WIDTH*B_WIDTH)), |             .B_WIDTH(B_WIDTH-1'd1), | ||||||
|             .Y_WIDTH(Y_WIDTH) |             .Y_WIDTH(Y_WIDTH) | ||||||
|           ) _TECHMAP_REPLACE_ ( |           ) _TECHMAP_REPLACE_ ( | ||||||
|             .A(A_without_x), .B(B[B_WIDTH-2:0]), .Y(Y) |             .A(A_without_x), .B(B[B_WIDTH-2:0]), .Y(Y) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue