External Memory Interfaces Arria® 10 FPGA IP User Guide

ID 683106
Date 4/01/2024
Public
Document Table of Contents

10.3.1.7. Resource Sharing Guidelines (Multiple Interfaces)

In the external memory interface IP, different external memory interfaces can share PLL reference clock pins, core clock networks, I/O banks, and hard Nios® processors. Each I/O bank has DLL and PLL resources, therefore these do not need to be shared. The Quartus® Prime Fitter automatically merges DLL and PLL resources when a bank is shared by different external memory interfaces, and duplicates them for a multi-I/O-bank external memory interface.

Multiple Interfaces in the Same I/O Column

To place multiple interfaces in the same I/O column, you must ensure that the global reset signals (global_reset_n, which is an asynchronous reset input to the memory controller and is synchronized internally) for each individual interface all come from the same input pin or signal.

PLL Reference Clock Pin

To conserve pin usage and enable core clock network and I/O bank sharing, you can share a PLL reference clock pin between multiple external memory interfaces; the interfaces must be of the same protocol, rate, and frequency. Sharing of a PLL reference clock pin also implies sharing of the reference clock network.

Observe the following guidelines for sharing the PLL reference clock pin:

  1. To share a PLL reference clock pin, connect the same signal to the pll_ref_clk port of multiple external memory interfaces in the RTL code.
  2. Place related external memory interfaces in the same I/O column.
  3. Place related external memory interfaces in adjacent I/O banks. If you leave an unused I/O bank between the I/O banks used by the external memory interfaces, that I/O bank cannot be used by any other external memory interface with a different PLL reference clock signal.
Note: You can place the pll_ref_clk pin in the address and command I/O bank or in a data I/O bank, there is no impact on timing. However, for greatest flexibility during debug (such as when creating designs with narrower interfaces), the recommended placement is in the address and command I/O bank.

Core Clock Network

To access all external memory interfaces synchronously and to reduce global clock network usage, you may share the same core clock network with other external memory interfaces.

Observe the following guidelines for sharing the core clock network:

  1. To share a core clock network, connect the clks_sharing_master_out of the master to the clks_sharing_slave_in of all slaves in the RTL code.
  2. Place related external memory interfaces in the same I/O column.
  3. Related external memory interface must have the same rate, memory clock frequency, and PLL reference clock.
  4. If you are sharing core clocks between a Ping Pong PHY and a hard controller that have the same protocol, rate, and frequency, the Ping Pong PHY must be the core clock master.

I/O Bank

To reduce I/O bank utilization, you may share an I/O Bank with other external memory interfaces.

Observe the following guidelines for sharing an I/O Bank:

  1. Related external memory interfaces must have the same protocol, rate, memory clock frequency, and PLL reference clock.
  2. You cannot use a given I/O bank as the address and command bank for more than one external memory interface.
  3. You cannot share an I/O lane between external memory interfaces, but an unused pin can serve as a general purpose I/O pin, of compatible voltage and termination standards.

Hard Nios® Processor

All external memory interfaces residing in the same I/O column share the same hard Nios® processor. The shared hard Nios® processor calibrates the external memory interfaces serially.