External Memory Interfaces Agilex™ 7 F-Series and I-Series FPGA IP User Guide

ID 683216
Date 9/19/2024
Public
Document Table of Contents

3.4.1.2. Hard Memory Controller Main Control Path

The main control path performs the following functions:
  • Contains the command processing pipeline.
  • Monitors all the timing parameters.
  • Keeps track of dependencies between memory access commands.
  • Guards against memory access hazards.
Table 10.  Main Control Path Components
Component Description
Input interface
  • Accepts memory access commands from the core logic at half or quarter rate.
  • Uses the Avalon® memory-mapped interface protocol.
  • You can connect the Avalon® memory-mapped interface to an AXI bus master in Platform Designer. To connect the Avalon® memory-mapped interface, implement the AXI bus master as a Platform Designer component and connect the AXI bus master to the Avalon® memory-mapped slave. The Platform Designer interconnect performs the bus translation between the AXI and Avalon® memory-mapped interface.
Command generator and burst adapter
  • Drains your commands from the input interface and feeds them to the timing bank pool.
  • If read-modify-write is required, inserts the necessary read-modify-write read and write commands into the stream.
  • The burst adapter chops your arbitrary burst length to the number specified by the memory types.
Timing Bank Pool
  • Key component in the memory controller.
  • Sets parallel queues to track command dependencies.
  • Signals the ready status of each command being tracked to the arbiter for the final dispatch.
  • Big scoreboard structure. The number of entries is currently sized to 16 where it monitors up to 16 commands at the same time.
  • Handles the memory access hazards such as Read After Write (RAW), Write After Read (WAR), and Write After Write (WAW), while part of the timing constraints are being tracked.
  • Assist the arbiter in reordering row commands and column commands.
  • When the pool is full, a flow control signal is sent back upstream to stall the traffic.
Arbiter
  • Enforces the arbitration rules.
  • Performs the final arbitration to select a command from all ready commands, and issues the selected command to the memory.
  • Supports Quasi-1T mode for half rate mode.
  • For the quasi modes, a row command must be paired with a column command.
Note: For quasi modes, a row command must be paired with a column command. Quasi-1T mode indicates that only one command is executed within one cycle; the command can be a row command or a column command. Quasi-2T allows two commands to be executed within one cycle and the two commands must be a row command paired with a column command.
Global Timer

Tracks the global timing constraints including:

  • tFAW—the Four Activates Window parameter that specifies the time period in which only four activate commands are allowed.
  • tRRD—the delay between back-to-back activate commands to different banks.
  • Some of the bus turnaround time parameters.
MMR/IOCSR
  • The host of all the configuration registers.
  • Uses Avalon® memory-mapped interface bus to talk to the core.
  • Core logic can read and write all the configuration bits.
Sideband

Executes the refresh and power down features.

ECC controller

Although ECC encoding and decoding is performed in soft logic1, the ECC controller maintains the read-modify-write state machine in the hard solution. Because ECC is implemented in soft logic, it uses additional resources.

AFI interface

The memory controller communicates with the PHY using this interface.

1 ECC encoding and decoding is performed in soft logic to exempt the hard connection from routing data bits to a central ECC calculation location. Routing data to a central location removes the modular design benefits and reduces flexibility.