2015-07-10 58 views
0
always @ (posedge clock or negedge reset_l) //Active low asyn reset 
begin 
    if(!reset_l) 
    begin 
     if(enable) 
     begin 
      status <= 1'b0; 
     end 
    end 
    else 
    begin 
     if(enable) 
     begin 
      status <= 1'b1; 
     end 
    end 
end 

我使用Synopsis Design Compiler運行綜合。我在第5行得到警告,說明啓用是讀取,但在敏感列表中沒有提及。Verilog HDL:如果在復位條件內可以嵌套嵌套嗎?

我的疑問是可以重置如果循環可以嵌套if?

+2

在異步復位期間,您應該無條件地設置status = 0。你不應該在那裏使用啓用。 – toolic

回答

1

不要這樣做 - 如果reset_l處於活動狀態,並且enable未處於活動狀態,則即使設備未被重置,時鐘也會被忽略。這不應該合成,並且如果它的話,你的門級和RTL模擬將不匹配。如何重新編碼:

assign rst2 = !reset_l & enable; 
    always @(posedge clock or posedge rst2) 
    if(rst2) 
     status <= 0; 
    else if(enable) 
     status <= 1;