场景是:信号active
可以是 1 个周期、2 个周期、3 个周期或 4 个周期宽,具体取决于config[1:0]
模块的输入
为此编写属性的最简单方法是:
property p_PropA;
@(posedge clk) $rose active ##config ~active;
endproperty
但它在语法上是错误的。写这个断言的正确方法是什么?
场景是:信号active
可以是 1 个周期、2 个周期、3 个周期或 4 个周期宽,具体取决于config[1:0]
模块的输入
为此编写属性的最简单方法是:
property p_PropA;
@(posedge clk) $rose active ##config ~active;
endproperty
但它在语法上是错误的。写这个断言的正确方法是什么?
您需要使用局部变量,请参阅IEEE Std 1800-2012 § 16.10局部变量
这是一个简单的例子:
property p_PropA;
int count;
@(posedge clk)
($rose(active),count=config) |->
(active,count--)[*] ##1 (~active && count==0);
endproperty