User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 309
UG585 (v1.11) September 27, 2016
Chapter 10: DDR Memory Controller
Programming the DDR clock involves the DDR_PLL_CTRL and DDR_CLK_CTRL registers in the SLCR.
Please refer to section 25.10.4 PLLs in Chapter 25, for DDR PLL programming.
In addition to the main DDR clock, a 10 MHz clock is used by the digitally controlled impedance (DCI)
function built into the DDR IOB. This clock is configured via the SLCR DCI_CLK_CTRL register.
10.6.2 DDR IOB Impedance Calibration
The DDR IOBs support calibrated drive strength and termination strength using the DCI digitally
controlled impedance mode of the IOB. In DDR2/DDR3/DDR3L modes this is used to calibrate
termination strength. In LPDDR2 mode this is used to calibrate drive strength. The DCI state machine
requires two external pins, VRN and VRP, which are connected to external resistors to V
CCO_DDR
and
ground, respectively. DCI settings are shown in Table 10-6.
When enabled, the DCI state machine will automatically match drive and termination impedance to
the external resistors. This background calibration takes 1-2 ms to lock and then runs continuously.
Calibration
1. Configure the clock module to configure a 10 MHz clock on dci_clk
2. Enable the DDR DCI calibration system using the SLCR registers DDRIOB_DCI_CTRL and
DDRIOB_DCI_STATUS
a. Toggle DDRIOB_DCI_CTRL.RESET_B to 0 and set to 1
b. Set DDRIOB_DCI_CTRL.PREF_OPT, and NREF_OPT fields according to Table 10-7
c. Set DDRIOB_DCI_CTRL. UPDATE_CONTROL to 0
d. Set DDRIOB_DCI_CTRL.ENABLE to 1
e. Poll on the DDRIOB_DCI_STATUS.DONE bit until it is 1
Table 10-6: DCI Settings
DDR standard
Ter minat ion
Impedance
Drive Impedance
VRN resistor
(to V
CCO_DDR
)
VRP resistor
(to ground)
DDR3/DDR3L 40 N/A 80 80
DDR2 50 N/A 100 100
LPDDR2 None 40 40 40
Table 10-7: Calibration
Field Name Reset
Power
Down
DCI Enable
DDR3/DDR3L
DCI Enable
DDR2
DCI Enable
LPDDR2
DCI Disabled
UPDATE_CONTROL 00 0 0 0 1
PREF_OPT2[2:0] 000 000 000 000 000 000
PREF_OPT1[1:0] 00 00 00 00 10 00
NREF_OPT4[2:0] 000 000 001 001 001 000
NREF_OPT2[2:0] 000 000 000 000 000 000
NREF_OPT1[1:0] 00 00 00 00 10 00