0

我有如下的SV属性:SVA:是否有可能从后面禁用SV属性检查?

propert my_property; 
@(posedge clk) disable iff(reset) (!s_of) throughout ($rose(halt) ##0 ((rx_prio) > (expec_prio)) ##[0:$] $rose(rdy)) |-> ##[1:100] (my_prio[rx_prio]==1'b1); 
endproperty:my_property 

我有断言如下:

MY_PROPERTY_CHECK:assert property (my_property) 
else 
$error; 

在上述属性,我有信号s_of其不应在整个检查被断言。但是这里的情况是,这个信号s_of在隐含运算符的结果期间得到确认。因此,我的要求是禁用检查,即使在后续声明中断言了信号s_of。有没有办法做到这一点?

谢谢。

+0

通过禁用检查来定义您的意思。禁用执行,以便能够启动一个新的或只有一个时钟周期禁用它? –

回答

0

您是否尝试过在disable iff(...)中添加它?像disable iff(reset || s_of)。只要s_of变为高电平,无论先行词或后续词当前是否被“执行”,这都将禁止断言。

+0

是的。我试过'禁用iff(reset_n || s_of)'。由于信号“s_of”在后续部分被断言,检查变为不完整并且保持在未完成状态直到模拟结束。 – Suhas

+0

这不是你想要的吗?我的意思是,如果's_of'变高并且永远不会再次变低,那么您不能重新触发先行词,因此检查保持不完整是有意义的。 –

+0

是的。那是对的。但是,如果支票保持不完整,这意味着一些模糊的事物,因为只有在分析后为什么检查不完整,我们才能知道它的含义。所以想要一种完全从波形中消除的方式,就像方式一样,如果先行者不满意,检查将不会出现。 – Suhas