ECP5 and ECP5-5G High-Speed I/O Interface
Technical Note
© 2014-2020 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02035-1.3 39
Figure 6.8. DDR2, DDR3/DDR3L, LPDDR2, and LPDDR3 Read Side Implementation
The read side is implemented using the following software elements.
DDRX2DQA element to capture the data
DDRDLLA is used to generate the delay code for DQSBUFM to get the 90° phase shift on the DQS input (DQSR90).
The incoming DQS clock (DQSI) is routed through the DQSBUFM module to the DQS clock tree.
The DQSBUFM receives the delay code from DDRDLLA and generates the delayed DQS signal to IDDRX2DQA.
The DQSBUFM is used to generate the Read and Write pointers that is used to transfer data from the DQS to ECLK
inside the IDDRX2DQA module.
Read 1, 0 and Readclksel_2, 1, 0 signals of DQSBUFM are used by the user logic to obtain the optimal READ pulse
position and driven by the user logic to generate a clean DQS output signal based on the trained READ pulse with
respect to preamble and postamble.
The dynamic delay control ports are available on the DQSBUFM module when you select the enable dynamic
margin control option.
DYNDELAY[7:0] of DQSBUFM is used to perform write leveling. If write leveling is not used, it is connected to 0.
Port QWL of IDDRX2DQA is used for DDR3/DDR3L and LPDDR3 to support write leveling. It is used to deliver the
write leveling monitor signals from the memory device to the FPGA user logic.
MEM_SYNC soft IP must always be included in the interface. It is required to avoid issues on DDR memory bus and
update code in operation without interrupting interface operation. When a DDR memory interface IP is generated
from Clarity Designer, the MEM_SYNC soft IP block is also generated and included.