2.5 DDR Subsystem Ports

The Fabric DDR subsystem ports are categorized into the following groups:

  • AXI3/4 slave interface signals—required when the DDR subsystem is configured in AXI3/4 mode. An AXI master is implemented in the FPGA fabric to perform DDR memory transactions by interfacing with the DDR subsystem.
  • Native interface signals—required when the DDR subsystem is configured in native interface mode. To perform DDR memory transactions, custom logic must be implemented in the FPGA fabric to interface with the DDR subsystem. Logic connected to the native interface must operate synchronously with the SYS_CLK.
  • Refresh controls—required for user-initiated refresh control.
  • ZQ controls—required for user-initiated ZQ calibration control.
  • RE-INIT controls—required for re-initializing DDR memories.
  • SDRAM interface signals—required for connecting to the DDR SDRAM.

The following figure shows the DDR subsystem ports.

Figure 2-13. Fabric DDR Subsystem Ports

In addition to ports shown in the preceding figure, the Fabric DDR subsystem also has some generic ports, see the following table.

Table 2-8. Generic Signals
Signal NameDirectionDescription
SYS_CLKOutputClock for user logic generated by the embedded PLL. All native interface signals are synchronous to this clock. Always on the global clock network.
SYS_RESET_NInputActive-low asynchronous system reset.

SYS_RESET_N must be generated by ANDing the DEVICE_INIT_DONE and BANK_X_CALIB_STATUS signals of the PF_INIT_MONITOR IP1.

BANK_X refers to the BANK where Fabric DDR subsystem is placed.

PLL_REF_CLKInputReference clock to the PLL.
PLL_LOCKOutputLock signal generated by the PLL to indicate that the PLL is locked on to the PLL_REF_CLK signal.
CTRLR_READYOutputSignal that is deasserted when in reset or after CTRLR_INIT is asserted, then asserted after initialization and training sequences (if applicable) are completed.
ALERT_N (ERR_OUT_N)InputThis signal is asserted by the DDR memory when it detects a CA parity error or a CRC error. It is an input from DDR3 RDIMM or LRDIMM, and DDR4 components or DIMMs.
stat_ca_parity_errorOutputThis signal is asserted when an assertion is detected on the ALERT_N pin.

Each occurrence of a write CRC error or CA parity error causes the assertion of the ALERT_N pin.

The value is cleared on read.

Note:
  1. For more information about the PF_INIT_MONITOR IP, see PolarFire Family Power-Up and Resets User Guide .

The DDR Controller complies with the AXI3/4 protocol. The AXI3/4 slave interface provides the following features:

  • Supports all AXI allowed burst sizes, types, and lengths.
  • Handles all AXI wrapping conditions.
  • Supports 64-bit, 128-bit, 256-bit, and 512-bit AXI interfaces. 512-bit AXI interface is supported only for DDR3, DDR3L, DDR4, and LPDDR3 memory devices.

For more information about the AXI3/4 protocol, see the AMBA AXI and ACE Protocol Specification.

The following table lists the AXI3/4 slave interface signals. All AXI interface signals are active-high and are synchronous to SYS_CLK.

Table 2-9. AXI3/4 Slave Interface Signals
Signal NameDirectionDescription
Write Address Channel
AXI0_AWID[X-1:0]2InputWrite address ID
AXI0_AWADDR[31:0]InputWrite address
AXI0_AWLEN[M:0]InputBurst length. M = 7 for AXI4 IF and 
M = 3 for AXI3 IF.
AXI0_AWSIZE[2:0]InputBurst size.
AXI0_AWBURST[1:0]InputBurst type.
AXI0_AWLOCK[1:0]InputLock type.Not supported.
AXI0_AWCACHE[3:0]InputMemory type. Not supported.
AXI0_AWPROT[2:0]InputProtection type. Not supported.
AXI0_AWVALIDInputWrite address valid.
AXI0_AWREADYOutputWrite address ready.
Write Data Channel
AXI0_WID[X-1:0]InputWrite ID tag. Supported only in AXI3.
AXI0_WDATA[N-1:0]1InputWrite data.
AXI0_WSTRB[N/8 - 1:0]1InputWrite strobes.
AXI0_WLASTInputWrite last.
AXI0_WVALIDInputWrite valid.
AXI0_WREADYOutputWrite ready.
Write Response Channel
AXI0_BID[X-1:0]OutputResponse ID tag.
AXI0_BRESP[1:0]OutputWrite response.
AXI0_BVALIDOutputWrite response valid.
AXI0_BREADYInputResponse ready.
Read Address Channel
AXI0_ARID[X-1:0]2InputRead address ID.
AXI0_ARADDR[31:0]InputRead address.
AXI0_ARLEN[M:0]InputBurst length. M = 7 for AXI4 IF and 
M = 3 for AXI3 IF.
AXI0_ARSIZE[2:0]InputBurst size.
AXI0_ARBURST[1:0]InputBurst type.
AXI0_ARLOCK[1:0]InputLock type. Not supported.
AXI0_ARCACHE[3:0]InputMemory type. Not supported.
AXI0_ARPROT[2:0]InputProtection type. Not supported.
AXI0_ARVALIDInputRead address valid.
AXI0_ARREADYOutputRead address ready.
Read Data Channel
AXI0_RID[X-1:0]2OutputRead ID tag.
AXI0_RDATA[N-1:0]OutputRead data.
AXI0_RRESP[1:0]OutputRead response.
AXI0_RLASTOutputRead last.
AXI0_RVALIDOutputRead valid.
AXI0_RREADYInputRead ready.
Note:
  1. N can be configured as 64,128, 256, or 512 using the Fabric DDR subsystem configurator.
  2. ‘X’ can be configured between 1 to 8 using the Fabric DDR Configurator.
Important: While performing DDR4 memory transfers using AXI interface, user must ensure not to exceed the 4 KB data limit as per the AXI specification. User can modify burst length (AxLEN) or burst size (AxSIZE) without exceeding the 4 KB limit.

The following table lists the native interface signals. All control signals are active-high and are synchronous to SYS_CLK.

Table 2-10. Native Interface Signals
Signal NameDirectionDescription
L_ADDR[38:0]InputNative interface address sizes: DDR4 = 39 bits, DDR3 = 36 bits, and LPDDR3 = 36 bits
L_B_SIZE[10:0]InputNative interface burst length in terms of bytes. It must be in multiples of the native interface bus width.
L_R_REQInputNative interface read request.
L_W_REQInputNative interface write request.
L_AUTO_PCHInputWhen asserted along with L_R_REQ or L_W_REQ, causes the command to be issued as read with auto-precharge and write with auto-precharge, respectively.
L_BUSYOutputSpecifies that the subsystem is busy and is not accepting new requests. A command is accepted on any clock cycle where L_R_REQ or L_W_REQ is set, and L_BUSY is low. If L_BUSY is high when L_R_REQ or L_W_REQ is set, the request may be kept asserted (along with the desired L_ADDR, L_B_SIZE and L_AUTO_PCH values) until L_BUSY goes low.
L_D_REQOutputRequests data on the native interface write data bus (L_DATAIN) during a write transaction. Asserts one clock cycle prior to when data is required.
L_D_REQ_LAST_P0OutputRequests the last data on the native interface write data bus

This signal is used along with L_D_REQ

L_R_VALIDOutputData-valid indication for data on the native interface read data bus (L_DATAOUT).
L_R_VALID_LAST_P0OutputData-valid indication for the last data on the native interface read data bus

This signal is used along with L_R_VALID

L_DATAIN[N:0]InputInput data bus. This data bus is eight times the width of the SDRAM device data bus.

Memory width (bits): 16, 32, 64.

Input data bus (bits): 128, 256, 512.

L_DATAOUT[N:0]OutputOutput data bus. This data bus is twice the width of the SDRAM device data bus.

Memory width (bits): 16, 32, 64.

Output data bus (bits): 128, 256, 512.

L_DM_IN[N:0]InputIndividual byte masks during data write.

Memory width (bits): 16, 32, 64.

Data mask bus (bits): 16, 32, 64.

The following table lists the refresh control signals. To expose these signals, select the Enable User Refresh Controls check box from DDR3/LPDDR3 configurator > Controller tab > Efficiency.

Table 2-11. Refresh Control Signals
Signal NameDirectionDescription
L_REF_REQInputUser-initiated refresh control. Causes a refresh command to be issued at the next opportunity. This signal is only used when manual control of refresh is desired. The DDR Configurator provides an option (Enable User Refresh Controls) to expose the user-initiated refresh control (L_REF_REQ) signal. tREFI parameter in the DDR Configurator specifies the period between refreshes.
L_REF_ACKOutputRefresh acknowledge. Asserted for one clock cycle when a refresh command is being issued. Typically used to determine when a refresh was last issued in user-controlled refresh. Can be ignored when the subsystem is automatically generating refreshes.

The following table lists the ZQ calibration control signals. To expose these signals, enable User ZQ Calibration Controls in the DDR Configurator Memory Timing tab.

Table 2-12. ZQ Calibration Control Signals1
Signal NameDirectionDescription
L_ZQ_CAL_REQInputCauses user-initiated ZQCS or ZQCL requests to be issued at the next opportunity. The ZQCS or ZQCL are issued to the ranks corresponding to the asserted bits.

ZQ calibration can be initiated either automatically or manually. The DDR Configurator provides an option to enable automatic ZQ calibration and to set the automatic ZQ calibration period.

L_ZQ_CAL_ACKOutputZQ calibration acknowledge. Asserted for a single clock cycle when a ZQ calibration command is issued to memory devices. Used for ZQ calibrations initiated by asserting the L_ZQ_CAL_REQ signal.
Note:
  1. The user-initiated ZQ calibration request and acknowledge control signals are supported for DDR3, LPDDR3, and DDR4 only.

The following table describes the reinitialization control signal. To expose this signal, enable RE-INIT Controls in the DDR Configurator Controller tab.

Table 2-13. Reinitialization Control Signal1
Signal NameDirectionDescription
CTRLR_INITInputCauses the subsystem to reissue the initialization sequence to the SDRAM. The initialization begins when this signal is asserted high for minimum four clock cycles in fabric clock domain. The controller always issues the initialization sequence (including the start-up delay) after a reset, regardless of this signal’s state. If run-time reinitialization is not required, the signal can be tied low.
Note:
  1. The user-initiated reinitialization control signal is supported for DDR3, LPDDR3, and DDR4 only.

The following table lists the ECC status signals.

Table 2-14. ECC Status Signals1
Signal NameDirectionDescription
ECC_ERROR_1BITOutputActive when a 1-bit error is detected on the data being presented on the AXI RDATA/L_DATAOUT port.
ECC_ERROR_2BITOutputActive when a 2-bit error is detected on the data being presented on the AXI RDATA/L_DATAOUT port.
ECC_ERROR_POS[6:0]OutputIndicates bit position of the error in a 64-bit data output for a 1-bit error.
Note:
  1. The ECC status signals are supported for DDR3, LPDDR3, and DDR4 only.

The following table lists the SDRAM interface signals.

Table 2-15. SDRAM Interface Signals
Signal NameDirectionDescription
CKOutputDifferential clock pair forwarded to SDRAM.
CK_NOutputDifferential clock pair forwarded to SDRAM.
RESET_NOutputSDRAM reset. Supported only for DDR3 and DDR4.
A[15:0]OutputAddress bus. Sampled during the active, precharge, read, and write commands. Also provides the mode register value during MRS commands.

Bus width for LPDDR3 is 10 bits, DDR3 is 16 bits, and DDR4 is 14 bits.

BA[2:0]OutputBank address. Sampled during active, precharge, read, and write commands to determine which bank the command is to be applied to. Supported only for DDR3 and DDR4.

For DDR4, bus width is 2 bits.

For DDR3, bus width is 3 bits.

BG[1:0]OutputDDR bank group address for DDR4 only.
CS_NOutputSDRAM chip select.
CKEOutputSDRAM clock enable. Held low during initialization to ensure SDRAM DQ and DQS outputs are in the hi-Z state.
RAS_NOutputSDRAM row address strobe command. Supported only for DDR3 and DDR4.
CAS_NOutputSDRAM column access strobe command. Supported only for DDR3 and DDR4.
WE_NOutputSDRAM write-enable command. Supported only for DDR3 and DDR4.
ODTOutputOn-die termination control. ODT is asserted during reads and writes according to the ODT activation settings in the DDR Configurator.
PAROutputCommand and address parity output. Supported only for DDR4.
ALERT_N (ERR_OUT_N)InputIt is asserted by the DDR memory when it detects a CA parity error or a CRC error. It is an input from DDR3 RDIMM or LRDIMM, and DDR4 components or DIMMs.
DQBidirectionalSDRAM data bus. Supports 16-bit, 32-bit, 39-bit, 64-bit, and 72-bit DDR SDRAM data buses.
DM/DM_NOutputDM/DM_N is an output mask signal for write data.
  • For DDR3 and LPDDR3, output data is masked when DM is driven HIGH along with the write data during a write access.
  • For DDR4, output data is masked when DM_N is driven LOW along with the write data during a write access.
DQSBidirectionalStrobes data into the SDRAM devices during writes and into the DDR subsystem during reads.
DQS_NBidirectionalComplimentary DQS.
SHIELDOutputPads must be connected to the Ground. They are placed between the data lanes for improving signal integrity.
Note: SHIELD signals are available only in the fabric DDR subsystem because it does not have dedicated I/O Banks to interface with the DDR memory. SHIELD pins are not applicable to all device and package combinations.