我已经开始为我的 RTL DUT 开发一个测试平台。有了测试台的所有组件,我想实现自检机制来验证 DUT 的功能。
因此,我需要开发记分牌组件。但是在这里,我什至得到了检查器组件的概念。
Scoreboard和Checker组件有什么区别?
还有它的应用?
什么时候需要使用记分板或检查器或两者兼而有之?
谢谢。
我已经开始为我的 RTL DUT 开发一个测试平台。有了测试台的所有组件,我想实现自检机制来验证 DUT 的功能。
因此,我需要开发记分牌组件。但是在这里,我什至得到了检查器组件的概念。
Scoreboard和Checker组件有什么区别?
还有它的应用?
什么时候需要使用记分板或检查器或两者兼而有之?
谢谢。
在一般术语中,检查器和记分板可以互换使用,并且都将 DUT 的实际结果与预期结果进行比较。但是,检查器通常特定于您要验证的独立功能,而记分板可能是用于接口或整个 DUT 的一个或多个检查器的集合。记分牌也可能负责确定“测试”何时完成。
我认为验证中使用的术语记分板的起源来自用于存储预期结果的数据库,并且当数据库中的所有条目都被检查为已完成时,或者由于您删除了每个条目而数据库为空时,测试被认为已完成因为实际结果来自 DUT。UVM 用于uvm_scoreboard
表示包含该数据库的测试平台中的组件。
SystemVerilog 1800-2009 保留关键字checker
作为封装块,用于构建断言验证库以及用于形式验证的建模代码。但我仍然认为检查器是可重用代码的任何封装,用于检查预期结果与实际结果。
我通常会在监视器中放置一个检查器,以检查交易是否已正确创建以及它是否包含合法的数据组合。这可以检查是否正确遵循了协议。
记分板检查交易是否包含正确的数据。在一个简单的数据流示例中,您可以有一个输入代理和一个输出代理。他们都会将他们的交易传递给记分板,并决定 DUT 是否为给定的输入交易提供了正确的输出交易。
因此,根据您处理的交易类型,您可以选择其中一种或两种。
通常,检查器是一个验证组件,用于监视事务或检查断言/功能覆盖率或比较输出。记分板是检查器的特定实例。
在 UVM 中,检查器的功能由监视器或代理/记分牌订阅者完成。