这是一个规范:如果信号a
被断言,那么它必须被断言直到信号b
被断言,然后它应该在下一个时钟沿取消断言。我正在阅读 LRM 的 16.9.9 (以及http://www.testbench.in/AS_06_SEQUENCES.html)以及我理解它的方式,上面提到的规范可以写成
property a2b_notA;
@(posedge clk) ($rose (a) ##0 (a throughout b)) |=> (~a);
endproperty
a_a2b_notA: assert property (a2b_notA);
然而,这在启动后的第二个时钟边沿立即失败,我不知道为什么。