diff options
Diffstat (limited to 'techlibs/anlogic')
| -rw-r--r-- | techlibs/anlogic/arith_map.v | 9 | ||||
| -rw-r--r-- | techlibs/anlogic/cells_map.v | 1 | 
2 files changed, 10 insertions, 0 deletions
| diff --git a/techlibs/anlogic/arith_map.v b/techlibs/anlogic/arith_map.v index 1186543da..23e190bcb 100644 --- a/techlibs/anlogic/arith_map.v +++ b/techlibs/anlogic/arith_map.v @@ -26,24 +26,33 @@ module _80_anlogic_alu (A, B, CI, BI, X, Y, CO);  	parameter B_WIDTH  = 1;  	parameter Y_WIDTH  = 1; +	(* force_downto *)  	input [A_WIDTH-1:0] A; +	(* force_downto *)  	input [B_WIDTH-1:0] B; +	(* force_downto *)  	output [Y_WIDTH-1:0] X, Y;  	input CI, BI; +	(* force_downto *)  	output [Y_WIDTH-1:0] CO;  	wire CIx; +	(* force_downto *)  	wire [Y_WIDTH-1:0] COx;  	wire _TECHMAP_FAIL_ = Y_WIDTH <= 2; +	(* force_downto *)  	wire [Y_WIDTH-1:0] A_buf, B_buf;  	\$pos #(.A_SIGNED(A_SIGNED), .A_WIDTH(A_WIDTH), .Y_WIDTH(Y_WIDTH)) A_conv (.A(A), .Y(A_buf));  	\$pos #(.A_SIGNED(B_SIGNED), .A_WIDTH(B_WIDTH), .Y_WIDTH(Y_WIDTH)) B_conv (.A(B), .Y(B_buf)); +	(* force_downto *)  	wire [Y_WIDTH-1:0] AA = A_buf; +	(* force_downto *)  	wire [Y_WIDTH-1:0] BB = BI ? ~B_buf : B_buf; +	(* force_downto *)  	wire [Y_WIDTH-1:0] C = { COx, CIx };      wire dummy; diff --git a/techlibs/anlogic/cells_map.v b/techlibs/anlogic/cells_map.v index 8ac087d9d..0bcea9856 100644 --- a/techlibs/anlogic/cells_map.v +++ b/techlibs/anlogic/cells_map.v @@ -32,6 +32,7 @@ module \$lut (A, Y);    parameter WIDTH = 0;    parameter LUT = 0; +  (* force_downto *)    input [WIDTH-1:0] A;    output Y; | 
