Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
327
UG586 November 30, 2016
Chapter 2:
QDR II+ Memory Interface Solution
Write Path
The write path to the QDR II+ SRAM includes the address, data, and control signals
necessary to execute a write operation. The address signals in four-word burst length mode
and control signals to the memory use SDR formatting. The write data values
qdr_d
and
qdr_bw_n
also use DDR formatting to achieve the required four-word burst within the
given clock periods.
shows a high-level block diagram of the write path and its
submodules.
Output Architecture
The output path of the QDR II+ interface solution uses OUT_FIFOs, PHASER_OUT_PHY, and
OSERDES primitives available in the 7 series FPGAs. These blocks are used for clocking all
outputs of the PHY to the memory device.
The PHASER_OUT provides the clocks required to clock out the outputs to the memory. It
provides synchronized clocks for each byte group, to the OUT_FIFOs and to the
OSERDES/ODDR. The PHASER_OUT generates the byte clock (OCLK), the divided byte clock
(OCLKDIV), and a delayed byte clock (OCLK_DELAYED) for its associated byte group. The
byte clock (OCLK) is the same frequency as the memory interface clock and the divided byte
clock (OCLKDIV) is half the frequency of the memory interface clock. The byte clock (OCLK)
is used to clock the Write data (D) and Byte write (BW) signals to the memory from the
OSERDES. OCLK_DELAYED tap position is calibrated using a PHASER_OUT stage 2 and stage
3 delay to determine the center position of a bit window. The detail of the K clock
calibration flow is described in the
section.
PO stage 2 fine delay elements are used for either decrement or increment. The direction of
PO stage 2 taps adjustment is determined during the K clock left edge detection as
described above. A positive skew has the PO taps decreased until the correct calibration
pattern is obtained. A negative skew has the PO taps increased until the correct calibration
pattern is lost. After all of the other bytes have been deskewed, the OCLK_DELAY tap is
moved to the calibrated position that has been obtained during the first part of write
calibration.
The OUT_FIFOs serve as a temporary buffer to convert the write data from the FPGA logic
domain to the PHASER clock domain, which clocks out the output data from the I/O logic.
The FPGA logic writes into the OUT_FIFOs in the FPGA logic half-frequency clock based on
the FULL flag output from the OUT_FIFO. The clocks required for operating the OUT_FIFOs
and OSERDES are provided by the PHASER_OUT.
The clocking details of the write paths using PHASER_OUT are shown in