在我们辛苦搭建环境之余,不如先放松下学习一下非常流行并且历史悠久的断言技术(assertion),熟练掌握断言技术通过断言进行行为检查可以及时发现代码中的低级的bug。以下内容大部分参考了《SystemVerilog Assertions应用指南》,还有一些参考了各类帖子,尽量采用简单易懂的形式来说明。
这次我们只关注最常见的并发断言而不对即时断言进行探究了(下文断言皆指并发断言),我个人理解并发断言一般有验证来完成,即时断言一般由设计完成,二者之间具体的区别详见《指南》第9页,不再赘述。
下文中的所有波形均使用timing designer绘制,如需要软件可以发网盘链接,侵删。
断言储备知识
断言用来干嘛
那么我们先来明确一下断言到底是来干嘛的呢?简单而言就是检查某一行为与我们的预期是否相符,如果相符则断言成功否则断言失败。举个栗子,这个行为可以是:1)A信号有效后(由当拍算起)三拍内B信号值跳变为5,2)vld信号有效时