$past 带有输入信号
$past with an input signal
我想验证如果一个事件发生,那么在过去的“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
您可以为此目的使用多个断言。
假设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
我想验证如果一个事件发生,那么在过去的“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
您可以为此目的使用多个断言。
假设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