CertusPro-NX SerDes/PCS Usage Guide
Preliminary
Technical Note
58
© 2020-2021 Lattice Semiconductor
FPGA-TN-02245-0.81
All rights reserved. CONFIDENTIAL
NO_SYNC
NO_SYNC_1
SYNC
SYNC_1
!rst_n
syn_code detected
sync_counter == S
good_code received
bad_counter == B
bad code recieved
bad_counter == 0
bad_code recieved
good_code received
any code received
Figure 6.12. Link Synchronization FSM
After reset, Link Synchronization FSM enters the default state: NO_SYNC. In NO_SYNC state, the FSM tries to find the
synchronization code in the input data stream. The FSM assigns 1 to sync_counter, then moves from NO_SYNC state to
NO_SYNC_1 state whenever valid synchronization code is found. Otherwise, the sync_counter, good_counter and
bad_counter are assigned to the default values 0.
In NO_SYNC_1 state, the FSM continue to detect the synchronization code. The sync_counter is added 1 after new
synchronization is detected. The FSM moves from NO_SYNC_1 state to SYNC state when sync_counter equals S (one
configurable parameter). However, the FSM moves back to NO_SYNC state whenever any bad code (invalid code in
8B/10B coding) is detected.
Data stream is aligned successfully in SYNC state. The Auto Aligner module locks the current boundary and avoids
re-alignment. In SYNC state, the FSM monitors continuously if there is any bad code appearing. The bad_counter is
added 1 when bad code is detected, meanwhile the FSM moves from SYNC state to SYNC_1 state.
In SYNC_1 state, the bad_counter is added 1 and the good_counter is cleared whenever any bad code is detected.
Otherwise, the good_counter is added 1 when valid code is received. The bad_counter is minus 1 whenever the
good_counter equals G (one configurable parameter), and meanwhile the good_counter is cleared. The FSM moves
back to SYNC state when bad_counter equals 0, or moves to NO_SYNC state to make a re-alignment request when the
bad_counter equals B (another configurable parameter).
Following parameters are configurable:
Number of valid synchronization code groups or ordered sets received to achieve synchronization (S).
The range of this parameter is 3 to 255.
Number of bad code groups received to lose synchronization (B).
The range of this parameter is 3 to 63.
Number of continuous good code groups received to reduce the error count by one (G).
The range of this parameter is 3 to 255.
is the example settings about parameter S, B and G for XAUI and GigE protocols.
Table 6.6. Example Settings for XAUI and GigE
GigE
XAUI
S
3
4
B
4
4
G
4
4