Verilog是否支持短路评估?

sam*_*moz 3 verilog

如果我有一个if语句,如:

if(risingEdge && cnt == 3'b111)
begin
  ...
end
Run Code Online (Sandbox Code Playgroud)

如果risingEdge不正确,它会检查cnt吗?

这在HDL内部是否重要?

Pau*_*l R 6

对于模拟,未定义是否评估短路表达式.在上面的例子中它没有区别,但是如果你在右侧有一个函数调用,那么你可能会遇到未定义副作用的问题.

请参阅Stuart Sutherland和Don Mills撰写的"Verilog和SystemVerilog陷阱:101常见编码错误以及如何避免它们"中的问题#52.