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

ID 789389
Date 12/04/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.3.2. BCAM Insert Operations

You can use an insert operation to insert a new (key, result) into the BCAM database.

To perform an insert operation, follow these steps in the AXI-Lite interface:

  1. Write the key to the key_n registers.
  2. Write the result to the result_n registers.
  3. Write to the mgmt_ctrl register, specifying op_type = 0x1.
  4. Poll the mgmt_ctrl register until the busy bit = 0x0.
A successful insertion sets the mgmt_ctrl register success bit to 0x1; if the operation fails, mgmt_ctrl is set to 0x0.

If you attempt to insert an entry that already exists, or to fill the table beyond the nominal MAX_ENTRIES capacity, the operation will fail. Insert operations are otherwise expected to succeed for all realistic data sets, though it is technically possible for an operation to fail because the management logic times out while waiting for the cuckoo swapping key to become unoccupied (the timeout in cycles is accessed by the Gen_Ctrl register insert_timeout field or specified by the MAX_INSERT_ITERATIONS parameter).

  • The address of mgmt_ctrl register is 0x50.
  • The address of key_n register is 0x1000.
  • The address of result_n register is 0x2000.