Verilog HDL:嵌入内部复位条件是否可以合成?

时间:2015-07-10 12:04:04

标签: verilog synthesis

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行收到警告,表示已启用,但未在敏感列表中提及。

我怀疑是否可以重置if-loop是否可以嵌套if?

1 个答案:

答案 0 :(得分:1)

不要这样做 - 如果reset_l处于活动状态且enable未激活,则即使设备未被重置,也会忽略时钟。这不应该合成,如果确实如此,你的门级和RTL sims将不匹配。这个重新编码怎么样:

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