Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
331
UG586 November 30, 2016
Chapter 2:
QDR II+ Memory Interface Solution
The delay counter is used to delay the PHY Control block from fetching the next command
from the PHY Control Word FIFO, and allows time for it to be filled to capacity. This FIFO
needs to be prevented from going empty, because that stalls the PHY_CONTROL, and in
turn leads to gaps in the read enable assertion for the OUT_FIFOs, which should be avoided.
The OUT_FIFO is used in ASYNC_MODE and in the 4x4 mode.
The PHY control word has these assignments:
• Control word [31:30] is set to 01.
• Control word [29:25] is set to 5'b11111, which is the large delay programmed into the
pc_phy_Counters.
• A non-data command is issued by asserting control word[2].
• Command and data offset are set to 0.
• Phy_ctl_wr is set to 1 as long as the PHY Control Word FIFO (phy_ctl_fifo) is not FULL.
2. Entries are written into the OUT_FIFO (for command/address, and for write data); these
entries are NOPs until the FULL condition is reached.
3. After the FULL flag goes High with the ninth write, all writes to the FIFO are stopped
until the FULL flag is deasserted (see
).
4. Eventually, the PHY_CONTROL asserts RDENABLE for the OUT_FIFO (after the
large
delay
has expired)
5. After reads begin, the FULL flag is deasserted.
6. Two clock cycles after FULL deassertion, begin writing again to the OUT_FIFO. Continue
to provide Data commands to the PHY Control block. Control word[2:0] is set to 001.
7. Now, both WRENABLE and RDENABLE are constantly asserted.
Pre-FIFO
When the OUT_FIFO is close to the ALMOST_FULL condition, with VT variations, it is likely
that the OUT_FIFO(s) could momentarily be FULL, based on the wr/rd clock phase
alignment. A low-latency pre-FIFO is used to store the command requests/write data from
you and to help store the signals when the OUT_FIFO indeed goes FULL.
The OSERDES blocks available in every I/O helps to simplify the task of generating the
proper clock, address, data, and control signaling for communication with the memory
device. The flow through the OSERDES uses two different input clocks to achieve the
required functionality. Data input ports D1/D2 or D3/D4 are clocked in using the clock
provided on the CLKDIV input port (clk in this case), and then passed through a
parallel-to-serial conversion block.