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. Memory Subsystem BCAM

The binary content addressable memory (BCAM) provides a fabric-based exact-match search function based on a cuckoo filter algorithm and implements a low-latency associative array in hardware with a guaranteed throughput. It accepts a stream of search keys and outputs a corresponding stream of responses, each response indicating whether the key matches an entry in the database with the same key, plus the associated result field.

An AXI-Lite CSR interface allows database entries to be inserted, modified, deleted or flushed (all entries deleted) by a management entity; the management entity may also perform a search for a specific key. The BCAM can achieve 1-search-per-cycle by pipelined execution.

Figure 6. Binary Content Addressable Memory (BCAM)

Bucket Memory

There are two bucket memory tables which consist of blocks of memory that are subdivided into a predetermined number of smaller blocks of uniform size called bucket slots. Bucket slots are configurable using the Number of Entries parameter in the parameter editor. Each bucket contains four bucket slots. Each bucket can hold four entries: key, fingerprint, result, valid. When a key is inserted, it is hashed to generate a bucket index i1 for table 1, and bucket index i2 for table 2; however, only one table is chosen to store the new entry. For example, if bucket i1 of table 1 is already full (that is, if all four bucket slots are occupied), then the new entry is stored at an available slot of bucket i2 at table 2. If both table 1 and table 2 buckets are full (that is, if all 8 bucket slots are occupied), the cuckoo swapping algorithm is triggered.

Figure 7. Bucket Memory