如何检查是否有信号不使用SystemVerilog声明立即断言
问题描述:
我是新来的SystemVerilog断言改变,我知道我可以检查是否有信号没有时钟之间使用并发断言蜱改变:如何检查是否有信号不使用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
答
您要求的内容没有任何意义。如果它的信号永远不会改变,那么它一定是一个常数。在您展示的示例中,a1
可能会失败 - 在a
和not_a
之间存在争用条件。 a2
是延迟断言 - 它照顾的比赛,永远不会失败。但这两个断言的问题是,如果a
在某个时间更改,a2
永远不会失败,并且您可能不会看到失败a1
感谢您的意见。我想我没有正确地说出我的问题,我所需要的是使用即时断言来检查信号是否稳定,因为我没有时钟。 –
没有任何参考,您对_stable_的定义是什么? –
断言运行时信号不会改变。 –