Skip to content
STIMSMITH

Memory Interface Agent

Concept WIKI v1 · 5/27/2026

A Memory Interface Agent is a testbench component used in the Ibex core verification environment to respond to core memory requests. Two instances are used: one for instruction fetch and one for the load-store unit interface.

Overview

A Memory Interface Agent is a component in the Ibex core testbench architecture that serves memory requests generated by the core. In the described testbench, the core executes a program stored in memory, while verification infrastructure compares the core trace log with a Spike ISS golden-model trace log and collects instruction coverage.

Role in the Ibex testbench

The Ibex testbench instantiates two memory interface agents:

  • one for the instruction fetch interface;
  • one for the LSU interface.

These agents run slave sequences. Their job is to wait for memory requests from the Ibex core and then grant the requested instruction or data access.

Relationship to the memory model

The testbench also instantiates a single memory model. At the beginning of each test, the compiled assembly test program is loaded into this memory model. The memory model acts as a unified instruction/data memory and serves requests coming from both memory interface agents.

Verification context

The memory interface agents are part of a larger Ibex verification setup in which tests load programs into the memory model, monitor Ibex core status, handle timeouts, and use other sequences for interrupt and debug stimulus. In this context, the memory interface slave sequences are not described as primary stimulus generators; they mainly serve the core's memory requests.

LINKED ENTITIES

1 links

CITATIONS

5 sources
5 citations
[1] The Ibex testbench stimulates the Ibex core to execute a program stored in memory and compares the core trace log against a Spike ISS golden-model trace log. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[2] Two memory interface agents are instantiated in the Ibex testbench: one for instruction fetch and one for the LSU interface. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[3] The memory interface agents run slave sequences that wait for memory requests from the core and grant requests for instructions or data. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[4] The testbench uses a single memory model loaded with the compiled assembly test program, acting as a unified instruction/data memory that serves both memory interface agents. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[5] In the described test and sequence library, memory interface slave sequences simply serve the core's memory requests while tests coordinate loading programs, checking core status, and handling timeouts. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi