DIMMCTL (DDRC) Register

Zynq UltraScale+ Devices Register Reference (UG1087)

Document ID
UG1087
Release Date
2024-03-13
Revision
1.10

DIMMCTL (DDRC) Register Description

Register NameDIMMCTL
Offset Address0x00000000F0
Absolute Address 0x00FD0700F0 (DDRC)
Width32
TyperwNormal read/write
Reset Value0x00000000
DescriptionDIMM Control Register

This register is static. Static registers can only be written when the controller is in reset.

DIMMCTL (DDRC) Register Bit-Field Summary

Field NameBitsTypeReset ValueDescription
dimm_dis_bg_mirroring 5rwNormal read/write0x0Disabling Address Mirroring for BG bits. When this is set to 1, BG0 and BG1 are NOT swapped even if Address Mirroring is enabled. This will be required for DDR4 DIMMs with x16 devices.
- 1 - BG0 and BG1 are NOT swapped.
- 0 - BG0 and BG1 are swapped if address mirroring is enabled.
mrs_bg1_en 4rwNormal read/write0x0Enable for BG1 bit of MRS command.
BG1 bit of the mode register address is specified as RFU (Reserved for Future Use) and must be programmed to 0 during MRS. In case where DRAMs which do not have BG1 are attached and both the CA parity and the Output Inversion are enabled, this must be set to 0, so that the calculation of CA parity will not include BG1 bit.
Note: This has no effect on the address of any other memory accesses, or of software-driven mode register accesses.
If address mirroring is enabled, this is applied to BG1 of even ranks and BG0 of odd ranks.
- 1 - Enabled
- 0 - Disabled
mrs_a17_en 3rwNormal read/write0x0Enable for A17 bit of MRS command.
A17 bit of the mode register address is specified as RFU (Reserved for Future Use) and must be programmed to 0 during MRS. In case where DRAMs which do not have A17 are attached and the Output Inversion are enabled, this must be set to 0, so that the calculation of CA parity will not include A17 bit.
Note: This has no effect on the address of any other memory accesses, or of software-driven mode register accesses.
- 1 - Enabled
- 0 - Disabled
dimm_output_inv_en 2rwNormal read/write0x0Output Inversion Enable (for DDR4 RDIMM implementations only).
DDR4 RDIMM implements the Output Inversion feature by default, which means that the following address, bank address and bank group bits of B-side DRAMs are inverted: A3-A9, A11, A13, A17, BA0-BA1, BG0-BG1. Setting this bit ensures that, for mode register accesses generated by the DDRC during the automatic initialization routine and enabling of a particular DDR4 feature, separate A-side and B-side mode register accesses are generated. For B-side mode register accesses, these bits are inverted within the DDRC to compensate for this RDIMM inversion.
Note: This has no effect on the address of any other memory accesses, or of software-driven mode register accesses.
- 1 - Implement output inversion for B-side DRAMs.
- 0 - Do not implement output inversion for B-side DRAMs.
dimm_addr_mirr_en 1rwNormal read/write0x0Address Mirroring Enable (for multi-rank UDIMM implementations and multi-rank DDR4 RDIMM implementations).
Some UDIMMs and DDR4 RDIMMs implement address mirroring for odd ranks, which means that the following address, bank address and bank group bits are swapped: (A3, A4), (A5, A6), (A7, A8), (BA0, BA1) and also (A11, A13), (BG0, BG1) for the DDR4. Setting this bit ensures that, for mode register accesses during the automatic initialization routine, these bits are swapped within the DDRC to compensate for this UDIMM/RDIMM swapping. In addition to the automatic initialization routine, in case of DDR4 UDIMM/RDIMM, they are swapped during the automatic MRS access to enable/disable of a particular DDR4 feature.
Note: This has no effect on the address of any other memory accesses, or of software-driven mode register accesses.
This is not supported for LPDDR3 or LPDDR4 SDRAMs.
Note: In case of x16 DDR4 DIMMs, BG1 output of MRS for the odd ranks is same as BG0 because BG1 is invalid, hence dimm_dis_bg_mirroring register must be set to 1.
- 1 - For odd ranks, implement address mirroring for MRS commands to during initialization and for any automatic DDR4 MRS commands (to be used if UDIMM/RDIMM implements address mirroring)
- 0 - Do not implement address mirroring
dimm_stagger_cs_en 0rwNormal read/write0x0Staggering enable for multi-rank accesses (for multi-rank UDIMM and RDIMM implementations only).
This is not supported for LPDDR3 or LPDDR4 SDRAMs.
Note: Even if this bit is set it does not take care of software driven MR commands (via MRCTRL0/MRCTRL1), where software is responsible to send them to separate ranks as appropriate.
- 1 - (DDR4) Send MRS commands to each ranks separately
- 1 - (non-DDR4) Send all commands to even and odd ranks separately
- 0 - Do not stagger accesses