2015-03-31 47 views
0
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 /鎖存器未連接在塊(對於所有8位)賽靈思:通用合成警告


現在,我關注警告和最常見的解釋是寄存器的值不變,但這裏的值取決於可能會有所不同的輸入......所以爲什麼這個警告呢?

+0

你使用的是哪個版本? ISE或Vivado? – 2015-03-31 19:34:02

+0

正試圖只合成這個模塊?警告可能在父模型中使用的上下文中。 – Greg 2015-03-31 19:40:17

+0

我正在使用ISE。 – 2015-03-31 19:40:27

回答

1

你的模塊defintely不是這個警告的原因。它是從模塊實例化到模塊的一個(或多個)信號。

「恆壓」意味着總線連接的總線是一個常數值,所以寄存器總是保存相同的值,因此合成器優化了模塊拋出寄存器。

這是通常發生在模塊正在測試時的情況,並且出於商品原因,您將輸入連接到常數值。