假设SV接口包含并发断言属性。 是否可以仅在触发事件时启用此断言?我尝试在接口文件中的任务中编写属性,但最终出现错误:"属性":语法错误,意外属性。
Interface intf;
task e1();
-> e1;
endtask
wait(e1.triggered); // something like this, where property waits for trigger
property prop1;
@(posedge clk) a ##1 b;
endproperty
endinterface
谢谢。
答案 0 :(得分:1)
我认为您需要考虑最佳同步写入属性并在每个时钟周期进行评估。您的属性表示发生a
b
的每个时钟周期后的一个周期。我猜你所追求的是:
如果
e1
出现,则a应该为真(在下一个上升沿)clk
?)然后b应该在clk
的上升沿之后为真 该
因此,这样做的一种方法是创建一个始终阻塞,在e1
发生时产生一个时钟宽的脉冲,例如:
always begin
@(e1);
@(posedge clk) e = 1'b1;
@(posedge clk) e = 1'b0;
end
property prop1;
@(posedge clk) e |-> a ##1 b;
endproperty
或其中的一些变体。不过,我觉得我应该担心比赛。