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.2.1. Memory Subsystem TCAM Core Table

The key is divided into a number of chunks, referred to as slices. Each slice serves as an address to one or more memory blocks called key RAM.

The data width of the key slice RAM corresponds to the total number of entries that can be stored in the TCAM, and each data bit corresponds to a single entry in the TCAM (that is, bit 0 corresponds to entry 0, bit 1 corresponds to entry 1).

To achieve the desired trade-off between lookup rate and on-chip memory usage, you must configure the Number of core tables parameter. When configuring a core table the required key RAM data width must be the same as the number of entries supported in the system. This configuration is required if the lookup must be performed every clock cycle.

In systems where the lookup can be performed every n-th clock cycle (where n is an integer value), it is possible to optimize the architecture and achieve better memory utilization. A control logic outside the core block sends the same request to all core tables and then combines the results from all core tables.

Example

Table 5.   1 Lookup per Cycle Implementation 40 Entries
Parameter  
Key width 72 bits
Maximum number of entries 40
Core tables 1

With the above configuration, each key is sliced into 9-bit chunks and serves as address to 8 key RAM blocks. These 8 key RAM blocks form a 40 bit TCAM to support up to 40 entries

Table 6.   1 Lookup per Cycle Implementation 80 Entries
Parameter  
Key width 72 bits
Maximum number of entries 80
Core tables 1

If the same search rate must be maintained, the number of key RAM blocks doubles to 16; if a lower search rate can be afforded, then fewer key RAM blocks are possible.

Table 7.   2 Lookups per Cycle Implementation 80 Entries
Parameter  
Key width 72 bits
Maximum number of entries 80
Core tables 2

With the above configuration, each key is sliced into 8-bit chunks and is used as address[7:0] key RAM blocks. Each search requires two phases, as follows:

  • In phase 0, the address[8] is set to 0, in phase 1 the address[8]= 1. Therefore, in each phase half of the key RAM is addressed.
  • Over two clock cycles the TCAM reads 2 x 40-bit. Thus, 80 bits in total.