vivado synthesis过程中出现 warning, [Synth 8-3936] Found unconnected internal register 'genblk2.production_dut/product11_reg' and it is trimmed from '48' to '4' bits
根据项目需要做一个乘法器,这是整个项目中的一小部分,端口输入输出包括如下
input [9:0] A10,
input [9:0] A20,
input [20:0] A11,
input [20:0] A21,
output reg [9:0] product00,
output reg [9:0] product01,
output reg [20:0] product10,
output reg [20:0] product11
进行以下操作
always@(posedge clk) begin
product00 <= A10A20;
product01 <= A10A21;
product10 <= A11A20;
product11 <= A11A21;
end
仿真的时候整个项目都没有问题,最终输出结果正确,所以应该不是逻辑上的问题
但vivado synthesis过程中出现以下warning
[Synth 8-3936] Found unconnected internal register ‘genblk2.production_dut/product11_reg’ and it is trimmed from ‘48’ to ‘4’ bits
[Synth 8-6014] Unused sequential element product11_reg was removed. [“D:/Xilinx/Vivado/2018.1/examples/multiplier_ip/source/product.v”:22]
显示寄存器被剪切,并且被移除。这种警告不能忽略的吧?
我已经尝试了改变寄存器长度,还是给出警告,寄存器未被使用,并且被移除。这是怎么回事?怎么解决?
请有经验的大佬指教
我知道乘积结果通常可以用更长的寄存器来存储,但刚刚尝试的实际结果是,用17位寄存器来保存就不报错了,这让我更加不理解Verilog综合器到底怎么回事,有经验的大佬请指点一下,非常感谢