Sunday, 17 July 2016

Learn SystemVerilog UVM Environment with AMBA APB Protocol/APB VIP

In a SystemVerilog/UVM testbench environment, many components are included such as,
1) Driver - Sequencer to drive transactions to the DUV.
2) Monitor - To collect interface data and send for Functional Coverage.
3) Agent - UVC to group above two so as to make them easily reusable.
4) Scoreboard/Checker - Checks data integrity.
5) Coverage Monitor - Collects transactions from Monitor component to sample coverage.
5) Environment - Group of above all components.
6) Test - Test created the Environment as per test configurations.
7) Others - These includes Assertion module, Interface, Top module etc.

Here, all the above topics are explained with AMBA APB protocol example. To get detailed information on APB, please refer the ARM APB specification HERE

Also code for APB2 UVM testbench is available on GitHub HERE


  • AMBA APB Protocol
  • UVM testbench overview
  • Top and  Interface module
  • APB Transaction
  • Driver/Sequencer and Sequence
  • Monitor and Agent
  • Env and Test