Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
144
UG586 November 30, 2016
Chapter 1:
DDR3 and DDR2 SDRAM Memory Interface Solution
The OUT_FIFO serializes from eight bits to four bits and outputs the 4-bit data to the
OSERDES in the OCLKDIV domain that is half the frequency of the DDR2 or DDR3 SDRAM
clock. The OSERDES further serializes the 4-bit data to a serial DDR data stream in the OCLK
domain. The PHASER_OUT clock output OCLK is used to clock
DQ
bits whereas the
OCLK_DELAYED output is used to clock
DQS
to achieve the 90° phase offset between
DQS
and its associated
DQ
bits during writes. During write leveling, both OCLK and
OCLK_DELAYED are shifted together to align
DQS
with
CK
at each DDR2 or DDR3
component.
The IN_FIFO shown in
receives 4-bit data from each
DQ
bit ISERDES in a given
byte group and writes them into the storage array. The IN_FIFO is used to further deserialize
the data by writing two of the 4-bit datagrams into each 8-bit memory element. This 8-bit
parallel data is output in the PHY_Clk clock domain which is 1/4 the frequency of the DDR2
or DDR3 SDRAM clock. Each read cycle from the IN_FIFO contains all the byte data read
during a burst length 8 memory read transaction. The data bus width input to the dedicated
PHY is 8x that of the DDR2 or DDR3 SDRAM when running the FPGA logic at 1/4 the
frequency of the DDR2 or DDR3 SDRAM clock.
Power-Saving Features
Designs generated by the MIG tool use the SSTL T_DCI standards, which save power by
turning off the DCI when the FPGA output driver is active. Also, by using the IOBUF_DCIEN
(High Performance banks) and IOBUF_INTERMDISABLE (High Range banks) primitives,
designs automatically disable the IBUF when the output is active. The controller uses these
primitives to disable both DCI/IN_TERM and the IBUF when the controller is idle.
For more information on the IOBUF_DCIEN and IOBUF_INTERMDISABLE primitives, see
7
Series FPGAs SelectIO™ Resources User Guide
(UG471)
Calibration and Initialization Stages
Memory Initialization
The PHY executes a JEDEC
®
-compliant DDR2 or DDR3 initialization sequence for memory
following deassertion of system reset. Each DDR2 or DDR3 SDRAM has a series of mode
registers, accessed through mode register set (MRS) commands. These mode registers
determine various SDRAM behaviors, such as burst length, read and write CAS latency, and
additive latency. The particular bit values programmed into these registers are configurable
in the PHY and determined by the values of top-level HDL parameters like BURST_MODE
(BL), BURST_TYPE, CAS latency (CL), CAS write latency (CWL), write recovery for auto
precharge (tWR), on-die termination resistor values (RTT_NOM and RTT_WR), and output
driver strength (OUTPUT_DRV).