使用SystemVerilog斷言檢查異步行為[文章推薦]
掃描二維碼
隨時(shí)隨地手機(jī)看文章
大多數(shù)數(shù)字設(shè)計(jì)都天生具有某種異步行為。雖然 SystemVerilog 斷言(SVA)語言提供了一些異步控制,如 disable iff,但編寫準(zhǔn)確描述異步行為的并發(fā)斷言并不那么直接。
SVA 屬性需要一個時(shí)鐘事件,使它們本質(zhì)上是同步的。當(dāng)描述異步行為時(shí),SystemVerilog 調(diào)度語義使得這一點(diǎn)難以檢查,因?yàn)閿嘌暂斎胫凳窃谟|發(fā)器上升沿之前采樣的。
這常常導(dǎo)致斷言編寫者使用時(shí)鐘進(jìn)行采樣,可能無法在所有情況下保證匹配和最優(yōu)檢查。
這篇文章探討了一些使用 SVA 描述異步行為的簡單方法。描述了 SystemVerilog 調(diào)度語義以及它們對檢查異步行為所造成的困難。
建議了更好的異步替代方案,并提供了實(shí)際示例。此外,本文還提供了其他異步行為的實(shí)際解決方案,如跨時(shí)鐘域的異步通信或跨總線接口。





