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