宽度可配置时如何写入脉冲宽度systemverilog断言

时间:2015-06-03 21:08:52

标签: system-verilog assertions system-verilog-assertions

情景是:   信号active可以是1个周期,2个周期,3个周期或4个周期,具体取决于模块的config[1:0]输入

为此编写属性的最简单方法是:

property p_PropA;
    @(posedge clk) $rose active ##config ~active;
endproperty

但它在语法上是错误的。 写这个断言的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

您需要使用局部变量,请参阅IEEE Std 1800-2012§16.10局部变量

这是一个简单的例子:

property p_PropA;
  int count;
  @(posedge clk)
  ($rose(active),count=config) |->
    (active,count--)[*] ##1 (~active && count==0);
endproperty