0

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

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 语句中,此处未显示。

4

1 回答 1

4

我不能直接回答你的问题,但我认为 synopsys 不会犯那个愚蠢的错误。如果他们这样做了,请告诉我。

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

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

单程:

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

或者:

if (width === 16) begin
    // correct code
end
于 2012-06-19T04:23:45.357 回答