W
Wei Luo
Guest
Dear all,
I have a question about Verilog synthesis. A warning message "signed to unsigned conversion occurs..." always appears when I used Design Compiler to synthesize my Verilog module. The code and warning messages are shown below:
--------------------------------------------------
module PartialProdGen(out, A, B);
parameter BITWIDTH = 16;
input [BITWIDTH - 1 : 0] A, B;
output [BITWIDTH * BITWIDTH - 1 : 0] out;
wire [BITWIDTH * BITWIDTH - 1 : 0] out;
generate
genvar i, j;
for(i = 0; i < BITWIDTH; i = i + 1)
begin: gen_1
for(j = 0; j < BITWIDTH; j = j + 1)
begin: gen_2
assign out[BITWIDTH * i + j] = A[j] & B;
end
end
endgenerate
endmodule
-------------------------------------------------
Warning: Starting with the 2000.11-1 release, the Presto Verilog reader treats Verilog 'integer' types as signed; synthesized result may not match earlier versions of HDL Compiler. (VER-314)
Warning: /homes/mccc/DV_WORK4/source_code/PartialProdGen.v:17: signed to unsigned conversion occurs. (VER-318)
Warning: /homes/mccc/DV_WORK4/source_code/PartialProdGen.v:16: signed to unsigned conversion occurs. (VER-318)
-------------------------------------------------
The first warning also looks weird. The constant BITWIDTH declared by parameter and genvar variable could be the integer mentioned in the warning? Can someone help me explain this? Thanks in advance!
I have a question about Verilog synthesis. A warning message "signed to unsigned conversion occurs..." always appears when I used Design Compiler to synthesize my Verilog module. The code and warning messages are shown below:
--------------------------------------------------
module PartialProdGen(out, A, B);
parameter BITWIDTH = 16;
input [BITWIDTH - 1 : 0] A, B;
output [BITWIDTH * BITWIDTH - 1 : 0] out;
wire [BITWIDTH * BITWIDTH - 1 : 0] out;
generate
genvar i, j;
for(i = 0; i < BITWIDTH; i = i + 1)
begin: gen_1
for(j = 0; j < BITWIDTH; j = j + 1)
begin: gen_2
assign out[BITWIDTH * i + j] = A[j] & B;
end
end
endgenerate
endmodule
-------------------------------------------------
Warning: Starting with the 2000.11-1 release, the Presto Verilog reader treats Verilog 'integer' types as signed; synthesized result may not match earlier versions of HDL Compiler. (VER-314)
Warning: /homes/mccc/DV_WORK4/source_code/PartialProdGen.v:17: signed to unsigned conversion occurs. (VER-318)
Warning: /homes/mccc/DV_WORK4/source_code/PartialProdGen.v:16: signed to unsigned conversion occurs. (VER-318)
-------------------------------------------------
The first warning also looks weird. The constant BITWIDTH declared by parameter and genvar variable could be the integer mentioned in the warning? Can someone help me explain this? Thanks in advance!