我想说:“如果序列A
发生,那么序列就B
出现在该序列中”。我怎样才能做到这一点?
我原以为我可以使用断言:
assert property (@(posedge clk) (A |-> (B within A));
但这似乎不适用于我的示例。
我读过:
如果第一个布尔表达式在第一个时钟节拍处计算为真,第二个布尔表达式在第二个时钟节拍处计算为真,以此类推,直到并包括最后一个布尔表达式在最后一个时钟滴答时计算为真。
但我怀疑|->
当我希望它成为第一个时钟滴答时,时钟滴答传递到了最后一个时钟滴答的另一侧。
我的特定示例是一个累加器,如果我添加足够多的正数,我希望它会溢出,所以我想要A = (input == 1)[*MAX_SIZE]
and B = (output == 0)
,所以这B
是一个长度为 1 的序列,我不知道这是否会导致问题。
我对 system-verilog 很陌生,所以它可能是我的代码的其他部分出错了,但我没有看到这个例子在任何地方完成。