Xilinx:常见综合警告
Xilinx: Common synthesis Warnings
module InstructionRegister(ir_in,ir_out,ir_r_enable,ir_w_enable,clock);
input clock;
input [7:0] ir_in;
output reg [7:0] ir_out;
input ir_w_enable;
input ir_r_enable;
reg [7:0] insreg;
initial
begin
ir_out=8'b0;
end
always @(posedge clock)
begin
if(ir_w_enable)
insreg <= ir_in;
else if(ir_r_enable)
ir_out <= insreg;
end
endmodule
警告:由于不断推送,FF/Latch 在块中未连接(对于所有 8 位)
现在,我搜索了警告,最常见的解释是寄存器的值没有改变,但这里的值取决于输入,可能会有所不同...所以为什么会出现这个警告?
您的模块绝对不是此警告的原因。它是从实例化它的模块进入该模块的一个(或多个)信号。
"Constant pushing"表示ir_in
总线连接的是一个常数值,所以寄存器总是存储相同的值,因此合成器优化模块丢弃寄存器。
这通常发生在测试模块时,出于商品原因,您将输入连接到一个常数值。
module InstructionRegister(ir_in,ir_out,ir_r_enable,ir_w_enable,clock);
input clock;
input [7:0] ir_in;
output reg [7:0] ir_out;
input ir_w_enable;
input ir_r_enable;
reg [7:0] insreg;
initial
begin
ir_out=8'b0;
end
always @(posedge clock)
begin
if(ir_w_enable)
insreg <= ir_in;
else if(ir_r_enable)
ir_out <= insreg;
end
endmodule
警告:由于不断推送,FF/Latch 在块中未连接(对于所有 8 位)
现在,我搜索了警告,最常见的解释是寄存器的值没有改变,但这里的值取决于输入,可能会有所不同...所以为什么会出现这个警告?
您的模块绝对不是此警告的原因。它是从实例化它的模块进入该模块的一个(或多个)信号。
"Constant pushing"表示ir_in
总线连接的是一个常数值,所以寄存器总是存储相同的值,因此合成器优化模块丢弃寄存器。
这通常发生在测试模块时,出于商品原因,您将输入连接到一个常数值。