top of page
Electronic Circuit Board

****

In the previous section, we explored how the AXI UVM agent facilitates communication between our testbench and the DUT (Design Under Test). We detailed its core components—driver, monitor, sequencer, and how they interact seamlessly with the AXI protocol. Now, let’s take the discussion one step further. We’ll summarize the structure of the AXI UVM agent we’ve created earlier and focus on the process of defining `sequence_item` classes and reusable AXI sequences for performing both directed and randomized testing. This step builds the foundation for functional, coverage-driven verification of AXI-based designs.


The AXI UVM agent we developed consists of three main components: the driver (`drv`), which converts sequence items into pin-level transactions; the sequencer (`seqr`), responsible for sending sequence items; and the monitor (`mon`), which passively observes the transactions on the interface. All these components connect to a virtual interface (`axi_if`) that links the UVM environment with the DUT. To test the AXI protocol effectively, we introduce a `sequence_item` to represent individual AXI read/write transactions and develop reusable sequences (`seq`) for generating various combinations of transactions. By leveraging these `sequence_items` and reusable sequences, engineers can perform both directed (predefined, specific) and randomized (coverage-driven) testing efficiently.


To understand this better, let’s imagine a real-world analogy: two friends, Alice (the driver) and Bob (the sequencer), are communicating with a vending machine (the DUT) through an invisible message board (the AXI interface). Bob writes requests on the board, such as “Buy a Coke” or “Buy a Snack,” which Alice reads to interact with the vending machine. Bob may send multiple requests, and Alice ensures each request is processed correctly by interacting with the machine. Meanwhile, Charlie (the monitor) watches the whole process to ensure every request is serviced correctly. In this analogy, Alice uses instruction cards (representing `sequence_items`) handed over by Bob. These cards can describe detailed instructions (directed testing) or randomized choices (randomized testing).

bottom of page