1

我是 SystemVerilog 断言的新手,我知道我可以使用并发断言检查信号是否在时钟滴答之间没有变化:

assert property (@(posedge clk) enable == 0 |=> $stable(data));

但是我将如何持续使用立即断言呢?这是我在网上找到的一个例子,但我不确定它是否是我需要的以及它是如何工作的:

assign not_a = !a;
always_comb begin : b1
    a1: assert (not_a != a);
    a2: assert #0 (not_a!= a); // Should pass once values have settled
end
4

1 回答 1

1

你所要求的没有任何意义。如果它是一个永远不会改变的信号,那么它一定是一个常数。对于您展示的示例,可能会失败 -和a1之间存在竞争条件。是延迟断言 - 它负责比赛并且永远不会失败。但是这两个断言的问题是,如果在某个时间发生变化,永远不会失败,你可能看不到失败anot_aa2aa2a1

于 2017-06-16T15:07:08.443 回答