Intel Agilex® 7 F-Series and I-Series FPGA Memory Subsystem IP User Guide

ID 789389
Date 10/02/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

6.4.9. MBL Insert Key if Not Present or Modify Result if Present Operation

If the requested key already exists in the database, then the associated result is modified with the new one. If the key does not exist, it is inserted.

To perform this operation, follow these steps through AXI-Lite interface:

  1. Write the key to the MBL_KEY registers.
  2. Write the key to the MBL_RES registers.
  3. In SEMI_AUTO pointer management mode, write handle to MBL_KEY_HANDLE register.
  4. Poll the MBL_MGMT_CTRL register until the busy bit = 0x0.
  5. Write to the MBL_MGMT_CTRL register:
    • Specifying req_type = 0x8.
    • Specifying tab (logical table).
  6. Check MBL_MGMT_CTRL register success bit, success bit is set to 0x1 to indicate the operation is handled successfully.

In FULL_AUTO pointer management mode, MBL_KEY_HANDLE register is written with the associated handle.

The following diagram shows an insert key if not present modify result if key present operation using a handle on MBL, where:

  • The address of mgmt_ctrl register is 0xb0, due to CSR_BASEADDR + CSR_ADDROFF + offset -> 0 + 0x60 + 0x20 = 0x80.
  • The address of mbl_key_handle register is 0x1060, due to CSR_BASEADDR + CSR_ADDROFF + offset -> 0 + 0x60 + 0x0024= 0x0084.
  • The address of result_n register is 0x2060, due to CSR_BASEADDR + CSR_ADDROFF + offset -> 0 + 0x60 + 0x2000 = 0x2060.
Figure 41. Insert Key if Not Present, or Modify Result if Key Present