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总线连接的是一个常数值,所以寄存器总是存储相同的值,因此合成器优化模块丢弃寄存器。

这通常发生在测试模块时,出于商品原因,您将输入连接到一个常数值。