CertusPro-NX SerDes/PCS Usage Guide
Preliminary
Technical Note
FPGA-TN-02245-0.81
© 2020-2021 Lattice Semiconductor
79
All rights reserved. CONFIDENTIAL
Application Case
8B/10B PCS Single Lane Tx Path
Case I-a: Use Tx FIFO
, the Tx Lane-to-lane Deskew module is bypassed, considering this a single lane application. The
tx_out_clk is used to drive FPGA global clock tree, and a leaf node of this clock tree returning to MPCS is used as the
read clock of Tx FIFO. Tx FIFO module works as asynchronous FIFO to eliminate the phase difference between
tx_pcs_clkb and tx_usr_clk.
The clock tx_pcs_clkb and tx_out_clk can be the divide-by-2 version of tx_pcs_clka.
8B/10B
Encoder
TX
PMA
Tx FIFO
tx_pcs_clk
TX Path
Tx Lane-to-lane
Deskew
DFF
Clock Tree
Fabric
DFF
/2,
/1
tx_lalign_clk
tx_pcs_clka
tx_pcs_clkb
tx_out_clk
tx_usr_clk
Figure 7.7. Case I-a Clock Structure
Case I-b: Bypass Tx FIFO
, in this case, the Tx FIFO module is bypassed to achieve low latency or deterministic latency. A
synchronous DFF is used to capture the input data instead of Tx FIFO. The tx_out_clk drives FPGA global clock tree, and
a leaf node of this clock tree is used to drive user logic.
What should be noted is that the critical timing constraint must be applied to Fabric-MPCS interface, considering the
phase difference between tx_out_clk and tx_usr_clk. The Tx FIFO must be enabled, if the timing analysis results show
that the timing constraint cannot be met.
8B/10B
Encoder
Tx
PMA
Tx FIFO
TX Path
Tx lane-to-lane
Deskew
DFF
Clock Tree
Fabric
DFF
DFF
/2,
/1
tx_pcs_clka
tx_pcs_clk
tx_lalign_clk
tx_pcs_clkb
tx_out_clk
tx_usr_clk
Figure 7.8. Case I-b Clock Structure
8B/10B PCS Single Lane Rx Path
Case II-a: Use Rx FIFO
, the source of rx_pcs_clk is the Rx recovered clock from PMA Rx CDR. The Elastic Buffer is
bypassed, because the returned clock rx_usr_clk has exactly the same frequency as the source clock (or half frequency
if the clock divider is enabled). The Lane Aligner module is also bypassed, considering it a single lane application. The Rx
FIFO module is enabled to eliminate clock phase difference between rx_pcs_clkb and rx_usr_clk.