External Memory Interfaces Agilex™ 7 M-Series FPGA IP User Guide

ID 772538
Date 3/31/2025
Public
Document Table of Contents

10.1. mrh_Optimizing Efficiency for Secondary Controller

You can encounter lower than expected efficiency for sequential access patterns on the secondary memory controller in the following EMIF configurations:
  • 2ch x16 LPDDR5 / DDR5
  • 4ch x16 LPDDR5
  • 1ch x16 of LPDDR5 / DDR5 on the top sub-bank

Asychronous Clocking Mode (Fabric Direct - User Clock Asychronous to PHY)

You can improve the efficiency for sequential access pattern on the secondary controller by increasing the AXI clock frequency. Recommendation is to set the AXI clock frequency to a higher frequency. You can further improve the efficiency of sequential write access pattern on the secondary controller by increasing the burst length as shown in the Table 1. The data shown in the table is obtained by using a 2ch x16 LPDDR5 design, running at 1066.667MHz.

Table 226.  Controller Efficiency with Different AXI Clock Frequency and Burst Length
AXI Clock Frequency (MHz) Pattern Burst Length Controller Efficiency (%)
Primary Secondary

133.333

(Equivalent to Sync Mode)
Sequential write 2 ~90 ~40
Sequential read ~90 ~50

266.667

Sequential write 2 ~90 ~75
Sequential read ~90 ~90
Sequential write 4 ~90 ~80
Sequential read ~90 ~90
Sequential write 8 ~90 ~90
Sequential read ~90 ~90
Sequential write 16 ~90 ~90
Sequential read ~90 ~90

Random access patterns or mixed traffic patterns can mitigate the differences in the efficiency for the primary controller and secondary controller.

Table 227.  Controller Efficiency with Different AXI Clock Frequency for Random Traffic Pattern
AXI Clock Frequency (MHz Pattern Burst Length Controller Efficiency (%)
Primary Secondary
133.333 Random write 2 ~40 ~39
Random read ~38 ~38
266.667 Random write 2 ~41 ~41
Random read ~38 ~38

With increased AXI clock frequency, the efficiency number reported by the PMON IP represents the utilization of the AXI bus instead of controller efficiency. The following equation represents the efficiency of the memory controller:

Controller efficiency = AXI transactions accepted by AXI bus / Memory Controller Bandwidth * 100 %

= ( PMON efficiency * AXI Clock Freq * 256-bit ) / (16-bit * Mem Clock Freq ) * 100%

Synchronous Clocking Mode (Fabric Direct – User Clock Synchronous to PHY)

In LPDDR5 and DDR5 memory interface, when using x16 2-channel configuration for long burst sequential access during write or read operation, performance is limited to 50% per read/write sub-channel for the secondary controller.

If your application requires high controller efficiency for sequential access pattern, it is recommended to use asynchronous clocking mode. Random access patterns or mixed traffic patterns can mitigate the differences in the efficiency for the primary controller and secondary controller.

Note that in synchronous clocking mode, the efficiency for the primary controller used for implementing a x32 DDR5/LPDDR5 memory interface has reduced performance. This is because the bandwidth for AXI bus is only half of the bandwidth for the memory controller.

AXI Bus Bandwidth = AXI Clock Freq x 256-bit = ( Memory Clock Freq / 8 ) * 256 = 32 * Memory Clock Frequency

Memory Controller Bandwidth = Memory Clock Freq * 2 * 32-bit = 64 * Memory Clock Frequency = 2 * AXI Bus Bandwidth