如何检查是否有信号不使用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可能会失败 - 在anot_a之间存在争用条件。 a2是延迟断言 - 它照顾的比赛,永远不会失败。但这两个断言的问题是,如果a在某个时间更改,a2永远不会失败,并且您可能不会看到失败a1

+0

感谢您的意见。我想我没有正确地说出我的问题,我所需要的是使用即时断言来检查信号是否稳定,因为我没有时钟。 –

+0

没有任何参考,您对_stable_的定义是什么? –

+0

断言运行时信号不会改变。 –