Arria® V Device Handbook: Volume 2: Transceivers

ID 683573
Date 5/29/2020
Public
Document Table of Contents

1.2.2.1.1. Word Aligner in Manual Alignment Mode

In manual alignment mode, the word alignment operation is manually controlled with the rx_std_wa_patternalign input signal or the rx_enapatternalign register.

Depending on the configuration, controlling the rx_std_wa_patternalign signal enables the word aligner to look for the predefined word alignment pattern in the received data stream. A value 1 at the rx_patterndetect register indicates that the word alignment pattern is detected . A value 1 at the rx_syncstatus register indicates that the word aligner has successfully synchronized to the new word boundary.

Manual word alignment can be also triggered by writing a value 1 to rx_enapatternalign register. The word alignment is triggered in the next parallel clock cycle when a 0 to 1 transition occurs on the rx_enapatternalign register.

After rx_syncstatus is asserted and if the incoming data is corrupted causing an invalid code group, rx_syncstatus remains asserted. The rx_errdetect register will be set to 1 (indicating RX 8B/10B error detected). When this happens, the manual alignment mode is not be able to de-assert the rx_syncstatus signal. You must manually assert rx_digitalreset or manually control rx_std_wa_patternalign to resynchronize a new word boundary search whenever rx_errdetect shows an error.

Table 24.  Word Aligner Operations in Manual Alignment Mode
PCS Mode PMA–PCS Interface Width Word Alignment Operation
Single Width 8 bits or 10 bits
  1. After the rx_digitalreset signal deasserts, assert rx_std_wa_patternalign signal for one parallel clock cycle for the word aligner to look for the predefined word alignment pattern in the received data stream and synchronize to the new word boundary.
  2. Any alignment pattern found thereafter in a different word boundary does not cause the word aligner to resynchronize to this new word boundary if the rx_std_wa_patternalign signal is deasserted.
  3. To resynchronize to a new word boundary, assert the rx_std_wa_patternalign signal for another parallel clock cycle.
  4. If you keep the rx_std_wa_patternalign signal asserted continuously, before the signal rx_digitalreset is deasserted, the word aligner updates the word boundary when the first alignment pattern is found, even though rx_std_wa_patternalign signal was not asserted for one parallel clock cycle to trigger the word alignment operation.
  5. If you keep the rx_std_wa_patternalign signal deasserted, the word aligner maintains the current word boundary even when it finds the alignment pattern in a new word boundary.
  6. When the word aligner synchronizes to the new word boundary, the rx_syncstatus register will have a value 1 for one parallel clock cycle. The rx_patterndetect register will have a value 1 whenever a word alignment pattern is found for one parallel clock cycle regardless of whether the word aligner is triggered to align to the new word boundary or not.
Double Width 16 bits or 20 bits
  1. After the rx_digitalreset signal deasserts, regardless of whether rx_std_wa_patternalign status signal is asserted or deasserted, the word aligner synchronizes to the first predefined alignment pattern found.
  2. Any alignment pattern found thereafter in a different word boundary does not cause the word aligner to resynchronize to this new word boundary.
  3. To resynchronize to the new word boundary, assert the rx_std_wa_patternalign signal for one parallel clock cycle.
  4. When the word aligner synchronizes to the new word boundary, the rx_syncstatus register will have a value 1 till the rx_digitalreset signal is deasserted or rx_std_wa_patternalign signal is asserted again. The rx_patterndetect register will have a value 1 whenever a word alignment pattern is found for one parallel clock cycle regardless of whether the word aligner is triggered to align to the new word boundary or not.

The configuration selected for this example is word aligner operation in single width with 10-bit PMA-PCS interface mode. In this example, a /K28.5/ (10'b0101111100) is specified as the word alignment pattern. The word aligner aligns to the /K28.5/ alignment pattern in the nth cycle because the rx_std_wa_patternalign signal is asserted during the nth cycle. The rx_syncstatus register has a value 1 in the next parallel clock cycle, indicating alignment to a new word boundary. The rx_patterndetect signal also goes high for one clock cycle indicating word alignment pattern detection. At time n + 1, the rx_std_wa_patternalign signal is deasserted to instruct the word aligner to lock the current word boundary. The alignment pattern is detected again in a new word boundary across cycles n + 2 and n + 3. The word aligner does not align to this new word boundary because the rx_std_wa_patternalign signal is set to 0. The /K28.5/ word alignment pattern is detected again in the current word boundary during cycle n + 5, causing the rx_patterndetect to have a value 1 in the next parallel clock cycle.

Figure 28. Word Aligner in Manual Alignment Mode


Note: If the word alignment pattern is known to be unique and does not appear between word boundaries, you can continuously assert rx_std_wa_patternalign signal or set the rx_enapatternalign register to 1 at all times because there is no possibility of false word alignment. If there is a possibility of the word alignment pattern occurring across word boundaries, you must control the number of clock cycles that the rx_std_wa_patternalign is asserted or the number of clock cycles the rx_enapatternalign register is set to 1 to avoid re-alignment to an incorrect word boundary.