0

假设 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

谢谢你。

4

1 回答 1

1

我认为您需要考虑最好同步编写属性,并在每个时钟周期进行评估。a您的财产说,发生的每个时钟周期后都有一个周期b。我想你所追求的是这样的:

如果e1发生,那么 a 应该为真(在 ? 的下一个上升沿 ),然后 b 应该在之后clk的上升沿为真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

或一些变化。然而,我觉得我应该担心比赛。

于 2017-06-30T15:46:21.167 回答