System verilog 基于事件触发器的SV断言
假设SV接口包含一个并发断言属性。 是否可以仅在触发事件时启用此断言?我尝试在接口文件中的任务中写入属性,但最终出现错误:接近“属性”:语法错误,意外属性System verilog 基于事件触发器的SV断言,system-verilog,system-verilog-assertions,System Verilog,System Verilog Assertions,假设SV接口包含一个并发断言属性。 是否可以仅在触发事件时启用此断言?我尝试在接口文件中的任务中写入属性,但最终出现错误:接近“属性”:语法错误,意外属性 谢谢。 < P>我认为你需要考虑属性最好同步写入并在每个时钟周期进行评估。您的属性表示发生a的每个时钟周期后的一个周期b发生。我猜你想要的是: 如果出现e1,则a应为真(在 clk?),然后在clk的上升沿上b应为真 那 因此,一种方法是创建一个始终块,在出现e1时生成一个一个时钟宽的脉冲,例如: always begin @(e1);
谢谢。
< P>我认为你需要考虑属性最好同步写入并在每个时钟周期进行评估。您的属性表示发生a
的每个时钟周期后的一个周期b
发生。我猜你想要的是:
如果出现e1
,则a应为真(在
clk
?),然后在clk
的上升沿上b应为真
那
因此,一种方法是创建一个始终块,在出现e1
时生成一个一个时钟宽的脉冲,例如:
always begin
@(e1);
@(posedge clk) e = 1'b1;
@(posedge clk) e = 1'b0;
end
property prop1;
@(posedge clk) e |-> a ##1 b;
endproperty
或者是它的一些变体。然而,我觉得我应该担心比赛
always begin
@(e1);
@(posedge clk) e = 1'b1;
@(posedge clk) e = 1'b0;
end
property prop1;
@(posedge clk) e |-> a ##1 b;
endproperty