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