如果级别敏感块中缺少“else”子句

时间:2016-01-13 03:34:40

标签: verilog system-verilog digital-logic

如果一个块是级别敏感的并且有一个缺少的else子句,那么它将推断它。

1 个答案:

答案 0 :(得分:2)

在级别敏感的块中,如果对任何变量进行赋值,则必须通过该块在所有可能的分支中对该变量进行赋值。否则,您可以推断出该变量的锁存器。因此,您确实需要分析该块以查看缺少的else子句是否会导致缺少赋值。例如

always_comb
   begin
   A = 0;
   if(B)
      A = C;
   end

在这个例子中,总会有一个赋值给A,因此不会推断出锁存。请注意,如果使用always_comb,如果无法在所有可能的分支中进行分配,则会出现错误。 (这个规则有一些例外,我们可以保存一天)