VIP Central

 

AMBA System Monitor, Scoreboarding and Beyond

In my previous blog post, How do you Verify the AMBA System Level Environment? we discussed how to enable SOC verification engineers to create highly configurable AMBA fabric.

AMBA-System-Env

The system environment should provide place-holders for hooking the DUT with any of the quintessential AMBA VIP components such as AXI3/4/ACE, AHB or APB. With the use of the AMBA System environment, we can configure it to instantiate as many number of AXI/AHB/APB VIP as needed with minimal additional code.

To verify the interconnect fabrics that connect IP blocks and subsystems within an SoC, it is necessary to check the correctness and completeness of data as it passes through the interconnect.  This is what the AMBA System monitor does for us. It also ensures that a transaction is routed correctly to its appropriate slave.

Since interconnect behavior is always design-specific, the AMBA System monitor can be extended and customized to enable design-specific checking. User-created rules can be added to the System monitor checks.

The AMBA system monitor resides within the AMBA System environment. It has full visibility across all the port monitors of all the masters and slaves in the system. With such visibility, the system monitor is capable of performing all system-level checks across all the AHB, APB & AXI ports within the system. The system monitor has a built-in coverage model which covers the transaction flow across protocols. The coverage model is made aware of the system configuration. This ensures we get good functional coverage.

The AMBA system monitor observes transactions across all the port monitors of all the masters and slaves in the system and performs checks between the transactions of these ports. It does not perform port-level checks: these are accomplished by the checkers of each master/slave agent connected to a port. The system monitor requires transaction-level inputs from the master and slave ports of the system. Transaction-level inputs are transactions which are created by port-level monitors as a result of signal-level activity. The system monitor does not require signal-level inputs. Transaction-level inputs are provided by port monitors. To provide transaction-level inputs, the system monitor could, in turn, instantiate port-level monitors. UVM provides the capabilities to easily connect various components. All transactions from the port-level monitors of each of the agents can easily be provided to the system monitor via transaction-level modeling (TLM) connections, thereby eliminating the need for instantiating these port level monitors in the system monitor.

Authored by Satyapriya Acharya 

Here’s where you can find more information on Verification IP for AMBA 4 AXI.