Question

I have started developing a testbench for my RTL DUT. With all the components of the testbench, I want to implement self-checking mechanism for the verification of the functionality of the DUT.

Hence, i need to develop scoreboard component. But here, i get even the checker component concept.

What is the difference between Scoreboard and Checker components?

And also its application?

When is it needed to use either scoreboard or checker or both ?

Thanks.

Was it helpful?

Solution

In general terminology, checkers and scoreboards are used interchangeably and both compare actual results from the DUT to expected results. However a checker usually is specific to an independent piece of functionality that you want to verify, whereas a scoreboard may be a collection of one or more checkers for an interface or the entire DUT. A scoreboard may also have responsibility for determining when "The Test" is done.

I think the origination of the term scoreboard used in verification came from the database used to store expected results and the test was considered done when all entries in the the database where checked off as completed, or the database was empty because you had removed each entry as the actual results came in from the DUT. The UVM uses uvm_scoreboard to represent the component in the testbench that contains this database.

SystemVerilog 1800-2009 reserved the keyword checker as an encapsulation block for building verification libraries of assertions along with modeling code for formal verification. But I still think of a checker as any encapsulation of re-usable code for checking expected against actual results.

OTHER TIPS

I would typically put a checker in a monitor to check that a transaction has been created correctly and that it contains a legal combination of data. This could check that the protocol was correctly followed.

The scoreboard checks that the transaction contains the right data. In a simple data flow example you could have an input agent and an output agent. They would both pass their transactions up to the scoreboard and it would decide if the DUT provided the correct output transaction for the given input transaction.

So you could have one or the other or both depending on what kind of transactions you are dealing with.

Generally, checker is a verification component that monitors transactions or checks for assertions/functional coverage or compares output. Scoreboard is a specific instance of a checker.

In UVM, the function of checker is done by either a monitor or an agent/scoreboard subscriber.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top