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

ID 772538
Date 11/18/2024
Public
Document Table of Contents

3.4. Agilex™ 7 M-Series EMIF IP for Hard Processor Subsystem (HPS)

The Agilex™ 7 M-Series FPGA EMIF IP can access external DRAM memory devices using the External Memory Interfaces for HPS FPGA IP.

To enable connectivity between the HPS and the Agilex™ 7 M-Series EMIF IP, you must create and configure an instance of the EMIF for HPS IP, and connect it to the Agilex™ 7 FPGA hard processor subsystem instance in your system.

Restrictions on I/O Bank Usage for Agilex™ 7 M-Series EMIF IP with HPS

  • Only the two IO96 banks adjacent to the HPS MPFE can be used for HPS-EMIF (bank 3C and bank 3D).
  • If only one IO96 bank is to be used by HPS-EMIF, it must be the one adjacent to the HPS MPFE (bank 3D).
  • No protocol's data width usage may span multiple IO96 banks. For example, a single DDR4 x64, which requires 8 byte lanes for data and 3 byte lanes for address and control, may not span two IO96 banks. However, a single DDR4 x32, which requires 4 byte lanes of data and 3 byte lanes of address and control, may be placed in one IO96 bank, and another single DDR4 x32, may be placed in another IO96 bank.
  • Unused pins in an HPS-EMIF occupied IO96 bank must be left unused; you cannot use them as general-purpose I/O pins.
  • Unused lanes in an HPS-EMIF occupied IO96 bank should be left unconnected; you cannot use them as general-purpose I/O pins.
  • Reference clock sharing is not allowed between HPS-EMIF IP and other IPs.
  • For multi-channel EMIFs or when multiple EMIFs are used inside HPS-EMIF IP, they must have identical IP parameters.
  • Initiators and targets must only be connected according to the following table:
      HPS Initiator Non-HPS Initiator HPS Initiator-lite Non-HPS Initiator-lite
    HPS EMIF Target Yes No
    Non-HPS EMIF Target No Yes
    HPS EMIF Target-lite Yes * No
    Non-HPS EMIF Target-lite No Yes
    Note: * The Quartus® Prime software may make this connection automatically.
Table 18.  IO96 Bank and Lane Usage for HPS EMIF
Data Width Usage BL7 BL6 BL5 BL4 BL3 BL2 BL1 BL0
DDR4
DDR4x16 DQ[1] AC2 AC1 AC0 DQ[0]
DDR4x16+ECC DQ[ECC] DQ[1] AC2 AC1 AC0 DQ[0]
DDR4x32 DQ[3] DQ[2] DQ[1] AC2 AC1 AC0 DQ[0]
DDR4x32+ECC DQ[ECC] DQ[3] DQ[2] DQ[1] AC2 AC1 AC0 DQ[0]
DDR4x64 Not Supported
DDR4x64+ECC Not Supported
DDR5
DDR5x16 AC1 AC0 DQ[0] DQ[1]
DDR5x16 DQ[1] DQ[0] AC1 AC0
DDR5 2chx16 DQ[1] DQ[0] AC1 AC0 AC1 AC0 DQ[0] DQ[1]
DDR5x16+ECC DQ[ECC] AC1 AC0 DQ[0] DQ[1]
DDR5x32 DQ[3] DQ[2] AC1 AC0 DQ[0] DQ[1]
DDR5x32+ECC DQ[ECC] DQ[3] DQ[2] AC1 AC0 DQ[0] DQ[1]
LPDDR5
LPDDR5x16 AC1 AC0 DQ[1] DQ[0]
LPDDR5x16 DQ[1] DQ[0] AC1 AC0
LPDDR5 2chx16 DQ[1] DQ[0] AC1 AC0 AC1 AC0 DQ[1] DQ[0]
LPDDR5x32 DQ[3] DQ[2] AC1 AC0 DQ[1] DQ[0]