External Memory Interfaces (EMIF) IP User Guide: Agilex™ 5 FPGAs and SoCs

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

13.2.1. Example 1: Reading IP_TYPE and IP_INSTANCE_ID of All the Interfaces in the IO96B Through Read-Only Registers

This example provides instructions for reading the IP_TYPE and IP_INSTANCE_ID of all the interfaces in the IO96B using the mailbox.

The values shown below are for illustrative purposes and are obtained from an EMIF example design using DDR4 x32 + ECC implemented on the Agilex™ 5 FPGA E-Series 065B Premium Development Kit. This configuration uses the Primary MC of the Primary IO96B.

Base address=0x500_0000

Address for each read-only register = Base address + offset of each register

Register Name Byte Offset (Hexadecimal) Address (Hexadecimal)
MEM_INTF_INFO_0 0x200 0x5000200
MEM_INTF_INFO_1 0x280 0x5000280
  1. Read from MEM_INTF_INFO_0 (address = 0x5000200)

    The expected read_data=0x2000_0000.

    IP_TYPE for interface 0 = MEM_INTF_INFO_0[31:29] = 0x1, indicating interface 0 is using Primary MC of Primary IO96B.

    INSTANCE_ID for interface 0 = MEM_INTF_INFO_0 [28:24] = 0x0.

  2. Read from MEM_INTF_INFO_1 (address = 0x5000280)

    The expected read_data=0x0000_0000.

    IP_TYPE for interface 1 = MEM_INTF_INFO_1 [31:29] = 0x0, indicating interface 1 does not exist.

    INSTANCE_ID for interface 1 = MEM_INTF_INFO_1 [28:24] = 0x0; not a valid data as interface 1 does not exist.