0

我想验证如果事件发生,那么在过去的“num_ticks”处,应该已经断言了一些信号。

例如,我写的属性是:

property test_past;
  @(posedge clk)
    $rose(gnt) |-> $past(req, num_ticks);
endproperty

这里的问题在于num_ticks. 如果num_ticks是写入属性的模块的输入信号,则断言失败。如果我声明num_ticks为 int,并将其分配给常量,则它通过。

$past 仅适用于常量值吗?LRM 中没有提到这一点。

我正在使用 Questasim 10.3

4

1 回答 1

3

为此,您可以使用多个断言。

假设 num_ticks 是 4 位宽,那么你可以这样做。

genvar x;
generate
  for (x=0; x<16; x++)
  begin
    property test_past;
      @(posedge clk)
      (num_ticks == x) && $rose(gnt) |-> $past(req, x);
    endproperty
  end
endgenerate
于 2017-01-12T06:32:52.370 回答