【发布时间】:2012-06-23 16:43:50
【问题描述】:
到目前为止,在我读过的所有书籍中都提到的一般经验法则是,您必须在由时钟的上升沿或下降沿驱动的 always 块中使用非阻塞分配。相反,阻塞赋值必须用于组合逻辑描述。这条规则对我来说很有意义,示例的作者完全遵循它。
但是,我在其中一个生产代码中发现了以下 Verilog:
always @* begin
in_ready <= out_ready || ~out_valid;
end
请注意,正在使用非阻塞赋值 <=。我认为在这种情况下没有任何区别,因为没有多重分配。但是,我似乎找不到任何解释。所以问题是 - 无论是在给定的 always 块的范围内还是作为更大设计的一部分,它是否有任何区别?
【问题讨论】:
标签: verilog