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

ID 789389
Date 7/15/2024
Public
Document Table of Contents

3.2.1.1. Memory Subsystem BCAM Operations

The binary content addressable memory (BCAM) uses an AXI-Lite (CSR) interface and AXI-ST key lookup.

Keys are programmed and managed in BCAM using an AXI-Lite interface to bucket memory (i1, i2). Lookup operations can begin after the successful insertion of keys in the BCAM. The following subsections describe the operations supported by the IP.

Insertion

You can insert a new entry composed of key and result into the BCAM database. The Global Key Mask parameter masks the key to remove bits that are not used. The key is hashed to calculate the index of the bucket memory tables and fingerprint of the key. If the key already exists, the BCAM returns insertion failed; if the key does not exist, the operation proceeds and the result is stored in its respective bucket memory index along with the fingerprint of the key and a valid bit. If all slots are occupied in both bucket memories, cuckoo swapping is triggered.

Delete/Modify

Delete and modify operations are available for already-existing keys. The key is masked with the Global Key Mask parameter to remove bits that are not used. The key is then hashed to calculate the index of the bucket memory tables and fingerprint of the key. If the key already exists, BCAM proceeds with the delete or modify operation and returns an operation status of Success, and the bucket memory is updated; if the key does not exist, the operation returns a status of Fail.

Lookup

Lookup operations are available for already-existing keys. The key is masked with the Global Key Mask parameter to remove the bits that are not used, and then the key is hashed to calculate the index of the bucket memory tables and fingerprint of the key. For a lookup request from AXI ST interface, a found indication on ss_app_st_resp_tuser_found signal , lookup key and associated result are returned through the AXI-ST responder interface. For a lookup request from the AXI-Lite interface, the result is accessible through the Result_N and Mgmt_Ctrl registers.

Flush

During a flush operation, the BCAM resets the memory so that it contains no entry, and sets the global key mask to a default value of high, to indicate that all bits of the key are valid.