beautypg.com

Functional description, Lane-to-lane deskew modes of operation, The deskew module can work in three modes – Achronix Speedster22i SerDes User Manual

Page 26: Manual mode, Auto mode

background image

Functional Description

The de-skew block uses a deskew FIFO on each lane. The writes to the deskew FIFO are

performed in the recovered clock domain for each lane. The read side of the deskew FIFO is

clocked by the clock from the initiator lane. The lanes are categorized as initiator and

followers. Any lane can be an initiator and skew is always calculated between the initiator

and each of follower lanes.
Once deskew is enabled, the skew between initiator and follower lanes are calculated

continuously by sensing deskew characters in the read side of the FIFO. The read threshold

for the FIFO needs to be programmed appropriately based on skew tolerance to avoid FIFO

under/over run. Once a deskew character is sensed, each lane starts a skew window equal to

the maximum skew allowed in the system. Based on how the lanes are skewed, the follower

lane is either lagging or leading and adjust the read clock cycles accordingly. Once the

initiator gets indication from all lanes of the bonding group that the skew calculation is over,

it declares that all lanes are aligned and asserts data valid for the down-stream logic. The

same data valid is used by the follower lanes to assert respective lane data valid. When the

initiator does not find such overlap of skew windows, it issues a reset to all FIFOs in the

bonding group and restarts the de-skew operation.
To summarize, the initiator lane generates various control signals for the follower lanes and

follower lanes send various status signals back to the initiators. Status signals are AND-ed

(e.g. for checking if the skew calculation completed in all lanes) or OR-ed (e.g. for checking if

any follower lanes window has not started), whereas control signals are used directly. These

signals go from one lane to another. The status and control signals are registered at time

intervals determined based on the number of lanes bonded

Lane-to-Lane Deskew Modes of Operation

The deskew module can work in three modes:

Manual Mode:

The rising edge of i_dskew_start will start one round of deskew operation. Lanes are

declared aligned either just after the deskew operation is completed or after an additional

check of a programmed number of aligned deskew characters in all bonded lanes at the same

time. The fabric needs to monitor received data for identifying any misalignment, and thus to

restart deskew operation. Infiniband uses manual mode of deskew operation.

Auto Mode:

The deskew module is always active. Once lanes are deskewed, all lanes will continuously

look for deskew characters in data read from the FIFO. The initiator should see deskew

characters on all lanes of the bonding group at the same time. The initiator looks for aligned

deskew characters on all lanes for a certain number of times based on the value programmed

in the register, and once detected the initiator declares bonded lanes aligned. Any time the

initiator finds deskew characters not aligned on all lanes, it starts an unlock count. If the

unlock count hits the value programmed in the register, the initiator declares that the lanes

are out of lock and re-starts the de-skew operation. While unlock count is incrementing, if the

initiator finds de-skew characters are aligned on all lanes again it starts decrementing the

unlock counter. This decrement can happen once in every ‘n’ (programmed in the register)

times when lanes have de-skew characters aligned to make sure the link has overcome error

conditions. If the unlock counter reaches zero, the link remains aligned.

26

UG028, July 1, 2014