
OpenLDI/FPD-LINK/LVDS Receiver Interface IP
User Guide
© 2017-2019 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at
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.
24
FPGA-IPUG-02021-1.1
2.3.5.
BW ALIGN Module
BW_ALIGN module is used for data training of FPD-Link Rx. Bit and word alignment is done by this module. BW_ALIGN
IP is started when the ready signal of GDDR_SYNC is asserted. Bit alignment places ECLK in the middle of the data
training window, and word alignment gets the correct training sequence after bit alignment. The training pattern is
7’b1100011
,
and alignment is done with respect to LVDS clock. If correct training data is already sampled properly,
ready signal of BW_ALIGN is asserted. Only then valid data can be sampled correctly by LVDS 7:1 Rx. It is expected for
the LVDS clock and LVDS data to be edge-aligned with each other so that when alignment is done with respect to the
LVDS clock, LVDS data lanes are also aligned.
ALIGNWD
SYNC_READY
RX_SCLK
UPDATE
RST
PHASESTEP
PHASEDIR
WINDOW_SIZE
RXCLK_WORD[6:0]
BIT_LOCK
WORD_LOCK
READY
BW_ALIGN
DELAY_LOADN
DELAY_MOVE
DELAY_DIRECTION
Figure 2.19. BW_ALIGN Block Diagram
2.3.6.
CLKDIV
CLKDIV is a Lattice primitive. It is used as a clock divider. In FPD-Link Rx, CLKDIV is always set to either 3.5 (GEAR 7) or
7.0 (GEAR 14) ratio depending on the DDR GEAR selected.
CLKDIV
RST
CLKI
ALIGNWD
CDIVX
Figure 2.20. CLKDIV Block Diagram
2.3.7.
ECLKSYNC
ECLKSYNC
is a Lattice primitive. It is used to sync ECLK
to the fabric clock. DDR only accepts ECLK from ECLKSYNC.
ECLKSYNC
ECLKI
STOP
ECLKO
Figure 2.21. ECLKSYNC Block Diagram