Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

12.2.3.5. Two 16-bit or two 32-bit SDRAM channels utilizing two IOBank

In this use case, the two IOBank are configured to support either a 16-bit or 32-bit wide SDRAM channel using both IOBank0 and IOBank1.

In the two 16-bit SDRAM channel configuration, IOBank0 is configured to support a single 16-bit wide SDRAM channel and IOBank1 is configured to support the other single 16-bit wide SDRAM channel. The spare IOBank0 IO12 channels and the spare IOBank1 IO12 channels can be utilized for direct fabric access. When the spare IOBank0 IO12 channels are configured for direct fabric usage, then the F2SDRAM port is not available. If the F2SDRAM channel is required by an application, then the spare IOBank0 IO12 channels are not available for fabric usage. The spare IOBank1 IO12 channels are always available for direct fabric connection.

In the two 32-bit channel configuration, there is no support for direct fabric usage since all IO12 channels of IOBank0 and IOBank1 are required. Choosing not to use the F2SDRAM port does not make them available. The application may optionally use the F2H channel, but choosing not to use F2H does not make any unused IO12 channels available to the fabric.

All read/write traffic between the CCU/NCORE and MPFE is interleaved between the DMI0 and DMI1 ports. The CCU/NCORE must be configured to route any address where A[12] = 0 to the DMI0 port, and any traffic where A[12] = 1 to the DMI1 port. No other CCU/NCORE configurations are supported and can lead to unpredictable results.

This use case is only supported by members of the Agilex™ 5 family that have implemented two IOBank.

In this topology, the following data flows occur:
  • Traffic from F2H is interleaved by the CCU to the wide controllers of both IOBank on a 4Kbyte basis:
    • F2H -> CCU_DMI0 -> IOBank0_P0 (32-bit HMC) -> A[12] = 0
    • F2H -> CCU_DMI1 -> IOBank1_P0 (32-bit HMC) -> A[12] = 1
  • Traffic from F2SDRAM is interleaved by the MPFE to the wide controllers of both IOBank on a 4Kbyte basis:
    • F2SDRAM -> IOBank0_P0 (32-bit HMC) -> A[12] = 0
    • F2SDRAM -> IOBank1_P0 (32-bit HMC) -> A[12] = 1