前言
断言是一种条件语句,通过标记错误继而捕获错误来指示设计的不正确行为。断言用于验证处于不同生命周期阶段(例如形式验证、动态验证、运行时监控和仿真)的硬件设计。基于断言的验证为设计和验证过程提供了显著的好处。它有助于轻松地检测功能错误,让用户能够查找更接近实际问题根源的错误,以及确保在设计流程的早期找出错误。断言为整个设计和验证周期带来了诸多直接好处;因此,工程师在断言的编码和测试过程中遇到的任何挑战,都值得加以解决。
UVM 中的回调是一种用于改变验证组件(例如驱动器或监视器)的行为而无需实际更改组件代码的机制。Uvm_callback 类提供了用于实现回调的基类。从 uvm_callback扩展类并非推荐的编码实践,因为这可能导致一些潜在的排序问题。在 Siemens Digital Industries Software 下属部门 Siemens EDA 所提供的 Questa® Verification IP(QVIP) 中,回调是通过扩展基类并为其填充必要的方法来实现的,以达成诸如将某个序列项替换为另一个包含一组新属性的序列项之类的回调实现。
断言验证通常构成整个验证 IP 开发周期不可或缺的一部分。第一步是编写断言,第二步是通过所谓的 “错误注入” 来对这些断言场景进行验证。回调对于此激励生成步骤可能非常有益,因为验证工程师不必修改源代码,而只需改变扩展的类便能测试不同的场景。这在 PCIe®之类基于数据包的协议中特别有用,因为这类协议中的字段会被损坏,而通过回调可以提供精细的控制。因此回调可提高整个验证过程的功效,使其更加稳定可靠。
本文介绍如何使用 Questa Verification IP 中实现的回调,在采用 PCIe 协议的设计中进行断言验证。
点击这里下载完整白皮书
来源:Mentor明导