根据项目需要做一个乘法器,这是整个项目中的一小部分,端口输入输出包括如下
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]
显示寄存器被剪切,并且被移除。这种警告不能忽略的吧?
我已经尝试了改变寄存器长度,还是给出警告,寄存器未被使用,并且被移除。这是怎么回事?怎么解决?
请有经验的大佬指教
貌似作为乘法器接收结果的寄存器不能超过20位,超过20位就报错,是这样吗?麻烦有经验的大佬表个态,多谢啊
这个其实不需要解决。原因也很简单,这句话
讲得很清楚了你有一些寄存器没有连。
谢谢,好的,我再仔细检查检查。多谢多谢
两端都查查吧,有时候你开了这头没改那头也一样会报错.
谢谢啊,可是你说的这个我早就看到了,也进行了一些尝试,可这个寄存器我设置的是21位,被乘数和乘数也都是21位,为什么会存在从48位被剪切成4位这种情况呢。而且仿真的结果是对的啊,为什么存在寄存器没有连的问题? 我已经尝试着改变了位宽,想着是不是有多余的位宽,所以没有连上,但即使不报 “ it is trimmed from ‘48’ to ‘4’ bits”这个错,也还是始终说寄存器未被使用而被移除。