SystemVerilog案例语句不起作用

时间:2012-06-18 21:33:00

标签: system-verilog

任何人都知道为什么这个案例陈述不起作用:

int width;
width = 8;
case (width === 16)
  1'b0: begin
    // correct code
  end
  1'b1: begin
    // we end up here
  end
endcase

我正在使用VCS。我尝试使用DVE调试器运行它,并且在使用调试器运行时代码正常工作。此外,此代码嵌套在另一个case语句中,此处未显示。

1 个答案:

答案 0 :(得分:4)

我无法直接回答你的问题,但我认为synopsys不会犯这个愚蠢的错误。如果有,请告诉我。

在某些语言中,返回值'0'表示正确,我不确定它在这里是否相同。

但为了避免这个问题,我认为代码可以改为其他方式:

一种方式:

case (width)
  16 : begin
  // correct code
  end
  default : begin
  // Other code
  end
endcase

或者:

if (width === 16) begin
    // correct code
end