SystemVerilog断言有效(请求) - 确认?

时间:2016-09-07 08:51:53

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

我正在研究SystemVerilog Assertion。我申请SVA来检查valid-ack规范。规格如下:

  

当有效驱动(0到1)时,有效值应等于1   直到ack被驱赶(1)。当ack被置低(1到0)时,   valid也被置为无效(1到0)。

为了检查这个规范,我写了两个属性(pr1和pr2)。您可以从以下链接中查看SVA代码。 https://www.edaplayground.com/x/5gHd

我预计两个属性完全相同。但是,pr2不能像我预期的那样工作(我预计断言可能会在50ns失败,因为有效值等于1但acns在50ns时等于0)。

波形: https://www.edaplayground.com/w/x/u5

pr2(50ns)有什么问题?

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

根据SystemVerilog LRM:

  

具有最小最小和最大最大迭代次数范围的重复可用表达式表示   连续重复运算符[* min:max]。

在pr2中,你使用了重复运算符,其最大值等于$,它代表有限但无限的迭代次数,因此只要valid[*1:$]被置位,序列valid就会持续ack只有在valid出现故障后才会检查{1}}。