APB Scoreboard

Comparing actual vs expected outputs

We are almost close to get our testbench ready and in this module we would focus on implementing the scoreboard component. The scoreboard is responsible for implementing all the checks for the DUT outputs based on the input transaction.

Testbench_Architecture_Scoreboard

In the last module, we implemented the monitor class which would sample APB transactions on a transfer and would then send the transaction to the scoreboard via the mailbox. The scoreboard would get the transaction from the mailbox every cycle and then perform the checks on it. But what are the various checks needed to be implemented?

The checks are based on the design specifications. Remember our DUT has the following interface specifications:

  • Out of reset, the master must send exactly 16 write transfers before reading from the slave
  • The write transfer must start from address 0 with the address increasing by 1 after every successful transfer
  • The read request can only be sent once the 16 write transfers are successfully completed
  • There are no restrictions on the write data (pwdata) signal and it can take any value
  • The APB master is allowed to do back-to-back transfers as long as those are meet the protocol requirements
  • The APB master can restart the write transfers after the 16 reads are successfully completed

Loading the interactive workspace...