DDR4 Memory

The 2-GiByte DDR4 SDRAM provides a 32-bit wide data interface and is connected to the 1.2-V I/O on HP banks 70 and 71 of the FPGA. The maximum data rate of the SDRAM is 2666 Mb/s, although the speed grade of the Kintex UltraScale+ will limit the maximum supported data rate to what is stated in Table 27 of DS922. The -1 speed grade on the XEM8370 supports a maximum data rate of 2400 Mb/s. This gives a supported peak memory bandwidth of 76.8 Gb/s.

The following resources are available to help provide guidance for designs that involve this memory:

MIG Settings

Kintex UltraScale+ devices support external, high-performance memory through the use of the Memory Interface Generator (MIG) provided by AMD. MIG produces a custom memory interface core that may be included in your design. These parameters have been used successfully within Opal Kelly but your design needs may require deviations.

All settings are based on the DDR4 SDRAM (MIG) v2.2 IP and Vivado 2022.1. This configuration sets up the correct MMCM M/D values to use an exact 100MHz reference input clock to achieve exactly 2400 Mb/s performance. This is a contradiction to the GUI reported 100.04Mhz for the selection of “9996” for “Reference Input Clock Speed (ps).” Please see AMD Article 66554 for more information regarding a similar situation.

Timing will constrain the DDR4 reference clock to 100.04Mhz in this case, which is a more pessimistic constraint versus 100Mhz. This results in the user losing 1.33 ps of usable slack for timing closure on the `c0_ddr4_ui_clk` MIG user interface clock. This is negligible and won’t produce metastable/non-functional designs due to this being a more pessimistic constraint. For this reason, we use the MIG’s propagated constraint of 100.04Mhz on the DDR4 ref clk within all our provided samples.

If an additional 1.33 ps of slack is required to meet timing, you may constrain the DDR4 ref clk to 100 Mhz in a top level constraints file and ignore the critical warnings that come as a result of overwriting this.

PARAMETERXEM8370
Controller TypeDDR4 SDRAM
Controller/PHY ModeController and physical layer
Memory Device Interface Speed (ps)833
PHY to controller clock frequency ratio4:1
Reference Input Clock Speed (ps)9996
ConfigurationComponents
Memory PartMT40A1G16RC-062E
SlotSingle
IO Memory Voltage1.2V
Data Width32
ECCDisabled
Data Mask and DBIDM NO DBI
Memory Address MapROW COLUMN BANK
OrderingNormal
Cas Latency17
Cas Write Latency12
Force Read and Write commands to use AutoPrechargeDisabled
Clamshell TopologyDisabled
Enable AutoPrecharge InputDisabled
Enable User Refresh and ZQCS InputDisabled
Advanced optionsDefault

DDR4 / FPGA Pin Connections

The FPGA to DDR4 pin mappings are shown below. These are also available in the Pins Reference when exporting a constraints file as well as the sample designs that utilize the memory.

DDR4 PINFPGA PIN
RESET_nE25
CK_tF27
CK_cE27
CKEA22
CSC21
DQS0_tC19
DQS0_cB19
DQS1_tD19
DQS1_cD18
DQS2_tG19
DQS2_cF19
DQS3_tJ19
DQS3_cJ18
DM0B14
DM1D14
DM2G17
DM3J15
ACT_nA24
PARD26
ODTB21
ALERT_nD29

Note: the TEN signal is not connected to the FPGA. It is wired to ground on the PCB.

DDR4 PINFPGA PIN
A0C23
A1D23
A2D25
A3B27
A4C22
A5C28
A6C26
A7B29
A8C27
A9A29
A10 / APA25
A11E28
A12 / BCB22
A13D28
A14 / WEA23
A15 / CASA27
A16 / RASB26
BA0B25
BA1A28
BG0B24
DDR4 PINFPGA PINDDR4 PINFPGA PIN
D0C18D16H19
D1A18D17H17
D2A19D18F18
D3A15D19G15
D4B17D20H18
D5B16D21H16
D6C17D22F17
D7B15D23G14
D8E17D24L18
D9D16D25K16
D10E18D26K18
D11E15D27K17
D12E16D28L19
D13D15D29L15
D14F14D30K15
D15F15D31J16