如果级别敏感块中缺少 "else" 子句
If an "else" clause is missing in a level sensitive block
如果一个块是级别敏感的并且缺少一个 else 子句,那么它将推断出什么。
在级别敏感的块中,如果对任何变量进行赋值,则必须在通过该块的所有可能分支中对该变量进行赋值。否则,您可能会推断出该变量的锁存器。因此,您确实需要分析该块以查看缺少的 else 子句是否会导致缺少赋值。例如
always_comb
begin
A = 0;
if(B)
A = C;
end
在这个例子中,总是有对 A 的赋值,所以没有推断出锁存器。请注意,如果您使用 always_comb
,如果未能在所有可能的分支中进行分配,您应该会收到错误消息。 (这条规则有一些例外情况,我们可以改天再说)
如果一个块是级别敏感的并且缺少一个 else 子句,那么它将推断出什么。
在级别敏感的块中,如果对任何变量进行赋值,则必须在通过该块的所有可能分支中对该变量进行赋值。否则,您可能会推断出该变量的锁存器。因此,您确实需要分析该块以查看缺少的 else 子句是否会导致缺少赋值。例如
always_comb
begin
A = 0;
if(B)
A = C;
end
在这个例子中,总是有对 A 的赋值,所以没有推断出锁存器。请注意,如果您使用 always_comb
,如果未能在所有可能的分支中进行分配,您应该会收到错误消息。 (这条规则有一些例外情况,我们可以改天再说)