System verilog 基于事件触发器的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);

假设SV接口包含一个并发断言属性。 是否可以仅在触发事件时启用此断言?我尝试在接口文件中的任务中写入属性,但最终出现错误:接近“属性”:语法错误,意外属性


谢谢。

< 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