我想验证一个事件是否发生,然后在过去的“num_ticks”,应该声明一些信号。
举个例子,我写的属性是:
property test_past;
@(posedge clk)
$rose(gnt) |-> $past(req, num_ticks);
endproperty
这里的问题是num_ticks
。如果num_ticks
是写入属性的模块的输入信号,则断言失败。如果我将num_ticks
声明为int,并将其赋值给常量,则传递。{/ p>
$ past只适用于常量值吗?这在LRM中没有提到。
我正在使用Questasim 10.3
答案 0 :(得分: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