Status and Statistics Ports - 1.1 English

Versal ACAP Integrated 600G Interlaken with FEC Subsystem Product Guide (PG371)

Document ID
PG371
Release Date
2022-07-21
Version
1.1 English

The ILKNF IP provides status flag ports to enable ease of integration into user monitoring and interrupt logic. The following table has a list of the status flags. All status ports are outputs.

Furthermore, many of the status signals can be connected to the increment input of counters in the user logic. This allows you to track statistics for those events.

Table 1. TX Status and Statistics Signal Descriptions
Port Name Clock Domain I/O Description
c0_stat_tx_underflow_err c0_axi_clk O TX underflow. This signal indicates whether the core clock for the ILKNF subsystem is too slow to properly fill the link with data. In normal operation, this signal is always sampled as 0. If this signal is sampled as 1, the clocks are not set to proper frequencies and must be fixed. When c0_stat_tx_underflow_err has been asserted, the ILKNF subsystem TX core must be reset.
c0_stat_tx_burst_err c0_axi_clk O TX burst error. This signal indicates that the TX AXI-S rules have been violated. Consequently, a burst (that is, a sequence of data words between two control words) that violates BurstShort rules can be sent to the TX Interlaken. When c0_stat_tx_burst_err has been asserted, the ILKNF subsystem TX core must be reset.
c0_stat_tx_enain_err c0_axi_clk O Reserved
c0_stat_tx_fifo1_oflow_err c0_axi_clk O TX FIFO1 overflow error. When asserted, the TX path of the ILKNF subsystem must be reset.
c0_stat_tx_fifo1_uflow_err c0_axi_clk O TX FIFO1 underflow error. When asserted, the TX path of the ILKNF subsystem must be reset.
c0_stat_tx_fifo2_oflow_err c0_axi_clk O TX FIFO2 overflow error. When asserted, the TX path of the ILKNF subsystem must be reset.
c0_stat_tx_fifo2_uflow_err c0_axi_clk O TX FIFO2 underflow error. When asserted, the TX path of the ILKNF subsystem must be reset.
c0_stat_tx_overflow_err c0_axi_clk O TX overflow. This output should never be asserted and indicates a critical failure. In this case, the TX path of the ILKNF subsystem must be reset.
Table 2. RX Status and Statistics Signal Descriptions
Port Name Clock Domain I/O Description
stat_rx_word_sync[23:0] c0_axi_clk O 64B/67B word boundary locked. These signals indicate whether a lane is 64B/67B word boundary locked. A 64B/67B word boundary lock occurs if a lane detects 64 consecutive valid framing patterns on bits[65:64] as per the Interlaken Protocol Definition, Revision 1.2, section 5.4.2. These signals are independent of both the meta frame synchronization word and scrambler state control word. A value of 1 indicates the corresponding lane has achieved 64B/67B word boundary lock. All bits are synced with c0_axi_clk.
stat_rx_synced[23:0] c0_axi_clk O Word boundary synchronized. These signals indicate whether a lane is word boundary synchronized. A value of 1 indicates the corresponding lane has achieved word boundary synchronization as follows: a) 64B/67B word boundary locked, b) Correctly receiving the meta frame synchronization word, and c) Correctly receiving the scrambler state control word as described in sections 5.4.2, 5.4.3, and 5.4.4 of the Interlaken Protocol Definition, Revision 1.2. All bits are synced with c0_axi_clk.
stat_rx_synced_err[23:0] c0_axi_clk O Word boundary synchronization error. These signals indicate whether an error occurred during word boundary synchronization in the respective lane. A value of 1 indicates the corresponding lane had a word boundary synchronization error. These signals also indicate a mismatch in the descrambler word. All bits are synced with c0_axi_clk.
c0_stat_rx_aligned c0_axi_clk O All lanes aligned/de-skewed. A value of 1 indicates all lanes are aligned and de-skewed. When this signal is a 1, the RX path is aligned and can receive packet data.
c0_stat_rx_misaligned c0_axi_clk O Alignment error. This signal indicates that the lane aligner in the ILKNF subsystem did not receive the expected meta frame synchronization word across all (active) lanes. This signal can be used to collect the statistic RX_Alignment_Error as described in Table 5-9 of the Interlaken Protocol Definition, Revision 1.2. This signal is not asserted until the meta frame synchronization word has been received at least once across all lanes. A value of 1 indicates the error occurred.
c0_stat_rx_aligned_err c0_axi_clk O Loss of lane alignment/de-skew. This signal indicates an error occurred during lane alignment or lane alignment was lost. A value of 1 indicates an error occurred.
stat_rx_framing_err[23:0] c0_axi_clk O Framing error. These signals indicate that an illegal framing pattern was detected in the respective lane. A value of 1 indicates an error occurred. All bits are synced with c0_axi_clk.
stat_rx_bad_type_err[23:0] c0_axi_clk O Unexpected or illegal meta frame control word block type. These signals indicate that an unexpected or illegal meta frame control word block type was detected. These signals can be used to collect the statistic RX_Bad_Control_Error as described in Table 5-9 of the Interlaken Protocol Definition, Revision 1.2. A value of 1 indicates an error in the corresponding lane. All bits are synced with c0_axi_clk.
stat_rx_descram_err[23:0] c0_axi_clk O Scrambler state control word error. These signals indicate a mismatch between the received scrambler state word and the expected value. A value of 1 indicates an error in the corresponding lane. All bits are synced with c0_axi_clk.
stat_rx_mf_err[23:0] c0_axi_clk O Meta frame synchronization word error. These signals indicate that an incorrectly formed meta frame synchronization word was detected in the respective lane. A value of 1 indicates an error occurred. All bits are synced with c0_axi_clk.
stat_rx_mf_len_err[23:0] c0_axi_clk O Meta frame length error. These signals indicate whether a meta frame length mismatch occurred in the respective lane. A value of 1 indicates the corresponding lane is receiving meta frame of wrong length. All bits are synced with c0_axi_clk.
stat_rx_mf_repeat_err[23:0] c0_axi_clk O Meta frame consecutive error. These signals indicate whether consecutive meta frame errors occurred in the respective lane. A value of 1 indicates an error in the corresponding lane. All bits are synced with c0_axi_clk.
stat_rx_crc32_valid[23:0] c0_axi_clk O Diagnostic word CRC32 valid. This bus reflects the validity of the CRC32 in the most recently received diagnostic word for the respective lane. A value of 1 indicated the CRC32 was valid and a value of 0 indicated the CRC32 was invalid. All bits are synced with c0_axi_clk.
Note: In Interlaken and FEC mode (where CRC32 is not employed), these bits are not applicable and should be ignored.
stat_rx_crc32_err[23:0] c0_axi_clk O Diagnostic word CRC32 error/invalid. This bus provides indication of an invalid CRC32 in the diagnostic word for the respective lane. These signals are asserted with a value of 1 for one AXI-S clock cycle each time an error is detected. All bits are synced with c0_axi_clk.
c0_stat_rx_err c0_axi_clk O Control word error. This signal indicates whether a formatting error or a CRC24 error occurred in a control word. When operating in packet mode, this signal also indicates missing SOP or missing EOP errors. A value of 1 indicates an error occurred. Whenever this signal is asserted, all open packets are marked as containing errors as specified by the Interlaken Protocol Definition, Revision 1.2. By definition, there is no mechanism provided by Interlaken to associate a CRC24 or similar error with individual packets. This signal is asserted for one clock period each time an error is detected.
c0_stat_rx_msop_err c0_axi_clk O Missing SOP error. This signal indicates that a missing SOP was detected (and corrected).
c0_stat_rx_meop_err c0_axi_clk O Missing EOP error. This signal indicates that a missing EOP was detected (and corrected).
c0_stat_rx_burstmax_err c0_axi_clk O RX BurstMax error. When this signal is a value of 1, a burst (that is, a sequence of data words between two control words) was detected that was longer than the value of BurstMax specified by c0_ctl_rx_burstmax. This signal is informational only and can be optionally ignored.
c0_stat_rx_burst_err c0_axi_clk O RX burst error. This signal indicates that a BurstShort or a burst length error was detected.
c0_stat_rx_overflow_err c0_axi_clk O RX FIFO overflow error. This signal indicates if the core clock for the ILKNF subsystem is too slow to properly receive the data being transmitted across the link. A value of 1 indicates an error occurred. In normal operation, this signal is always sampled as 0. If this signal is sampled as 1, the clocks are not set to proper frequencies and must be fixed.
stat_rx_diagword_lanestat[23:0] c0_axi_clk O Lane status messaging outputs. This bus reflects the most recent value in bit 33 of the diagnostic word received on the respective lane. These bits should only be considered valid if the respective bit in stat_rx_crc32_valid is a value of 1. All bits are synced with c0_axi_clk.
Note: In Interlaken and FEC mode (where CRC32 is not employed), these bits are not 100% reliable as they are susceptible to the post-FEC bit error rate (BER).
stat_rx_diagword_intfstat[23:0] c0_axi_clk O Lane status messaging outputs. This bus reflects the most recent value in bit 32 of the diagnostic word received on the respective lane. These bits should only be considered valid if the respective bit in stat_rx_crc32_valid is a value of 1. All bits are synced with c0_axi_clk.
Note: In Interlaken and FEC mode (where CRC32 is not employed), these bits are not fully reliable because they are susceptible to the post-FEC BER.
c0_stat_rx_fc_stat[255:0] c0_axi_clk O RX Flow control outputs. These signals indicate the flow control status for all of the calendar positions of the received data. A value of 1 means XON, a value of 0 means XOFF. These outputs reflect the information contained in bits 55-40 of the control words received by the RX. Only 256 in-band flow control bits are supported. If a longer calendar is received, latter bits are ignored and are never output. If a shorter calendar is received, the bits of c0_stat_rx_fc_stat that were not updated maintain their previous state. Each bit of c0_stat_rx_fc_stat represents a received flow control calendar entry. c0_stat_rx_fc_stat[0] is the first received calendar entry, c0_stat_rx_fc_stat[1] is the second received calendar entry, c0_stat_rx_fc_stat[2] is the third received calendar entry, etc. as explained in the example in section 5.3.4.1 of the Interlaken Protocol Definition, Revision 1.2. Whenever a CRC24 or a loss of lane alignment occurs, all bits of c0_stat_rx_fc_stat are set to a value of 0.
c0_stat_rx_mubits[7:0] c0_axi_clk O RX multiple-use/general purpose control bits outputs. This bus contains the multi-use field of the Interlaken control (see the Interlaken Protocol Definition, Revision 1.2). The value of the bus represents bits[31:24] of the most recently received Interlaken control word.
c0_stat_rx_mubits_updated c0_axi_clk O RX multiple-use/general purpose control bits updated outputs. This output indicates that c0_stat_rx_mubits has been updated and is asserted for one clock cycle.
Table 3. RX RSFEC Status and Statistics Signal Descriptions
Port Clock Domain I/O Description
stat_rx_fec<N>_am_lock[3:0] rx_alt_serdes_clk[0] O AM lock indicators for logical lanes of 100G RX FEC<N> when configured for Interlaken mode. Clocked by rx_alt_serdes_clk[0] regardless of the FEC instance. This signal is not valid in FEC-only mode.
stat_rx_fec<N>_aligned rx_alt_serdes_clk[0]/rx_alt_serdes_clk[N] O 100G RX FEC<N> alignment status when configured for Interlaken mode. In FEC-only mode, this signal indicates that the FEC is ready to encode/decode codewords.
stat_rx_fec_lane_mapping_value[7:0] apb3_clk O 100G RX FEC lane mapping of PMA lanes when configured for Interlaken mode. When stat_rx_lane_mapping_sync=1, the value on this bus indicates the mappings for FEC0 instance. The subsequent cycle shows the mappings for FEC1, and so on until FEC5 is reached. During each cycle, bits[7:6] hold the lane 3 mapping value, bits[5:4] hold the lane 2 mapping value, bits [3:2] hold the lane 1 mapping value, and bits[1:0] hold the lane 0 mapping value. This signal is not valid in FEC-only mode.
stat_rx_fec_lane_mapping_sync apb3_clk O 100G RX FEC lane mapping sync signal. This signal is asserted every six clock cycles.
stat_rx_fec_lane_delay_value[14:0] apb3_clk O 100G RX FEC alignment delay for PMA lane (in UIs). When stat_rx_lane_delay_sync=1, the value on this bus indicates the alignment delay for PMA lane 0 of FEC0 instance. The subsequent cycles show the alignment delay values for PMA lane 1, 2 and 3 of FEC0 instance. The next four cycles show the alignment delay for PMA lane 0, 1, 2, and 3 of FEC1, and so on. This signal is not valid in FEC-only mode.
stat_rx_fec_lane_delay_sync apb3_clk O 100G RX FEC alignment delay sync signal. This signal is asserted every 24 clock cycles.
stat_rx_fec<N>_slice0_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Processed codeword count increment for FEC<N> 100G decoder when the corresponding RS-FEC instance is configured for Interlaken mode or 100G FEC-only mode. Processed codeword count increment for FEC<N> slice0 50G decoder when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_slice0_corrected_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Corrected codeword count increment for FEC<N> 100G decoder when the corresponding RS-FEC instance is configured for Interlaken mode or 100G FEC-only mode. Corrected codeword count increment for FEC<N> slice0 50G decoder when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_slice0_uncorrected_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Uncorrected codeword count increment for FEC<N> 100G decoder when the corresponding RS-FEC instance is configured for Interlaken mode or 100G FEC-only mode. Uncorrected codeword count increment for FEC<N> slice0 50G decoder when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_slice1_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Processed codeword count increment for FEC<N> 50G slice1 decoder. This signal is valid in FEC-only mode. It is not valid in Interlaken mode. In FEC-only mode, this signal is only valid when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_slice1_corrected_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Corrected codeword count increment for FEC<N> 50G slice1 decoder. This signal is valid in FEC-only mode. It is not valid in Interlaken mode. In FEC-only mode, this signal is only valid when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_slice1_uncorrected_cw_inc rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Uncorrected codeword count increment for FEC<N> 50G slice1 decoder. This signal is valid in FEC-only mode. It is not valid in Interlaken mode. In FEC-only mode, this signal is only valid when the corresponding RS-FEC instance is configured as two 50 Gb/s RS-FEC decoder/encoder pairs.
stat_rx_fec<N>_lane0_err_count_inc[3:0] rx_alt_serdes_clk[0] /rx_alt_serdes_clk[N] O Symbol error count increment for lane0 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros. In FEC-only mode, the total symbol error count for a codeword in 100G mode is the sum of error count on lane 0, lane 1, lane 2 and lane 3. Similarly, the total symbol error count of a codeword for 50G slice 0 is the sum of error count on lane 0 and lane 1. For slice 1, the total error count of a codeword in the sum of error count for lane 2 and lane 3.
stat_rx_fec<N>_lane1_err_count_inc[3:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Symbol error count increment for lane1 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane2_err_count_inc[3:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Symbol error count increment for lane 2 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane3_err_count_inc[3:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O Symbol error count increment for lane3 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane0_err_0to1_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 0-to-1 error count increment for lane0 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all 0’s. In FEC-only mode, the total bit error (0 to 1) count for a codeword in 100G mode is the sum of bit error count on lane 0, lane 1, lane 2 and lane 3. Similarly, the total bit error count of a codeword for 50G slice 0 is the sum of error count on lane 0 and lane 1. For slice 1, the total bit error count of a codeword in the sum of bit error count for lane 2 and lane 3.
stat_rx_fec<N>_lane1_err_0to1_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 0-to-1 error count increment for lane1 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane2_err_0to1_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 0-to-1 error count increment for lane 2 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane3_err_0to1_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 0-to-1 error count increment for lane 3 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all 0’s.
stat_rx_fec<N>_lane0_err_1to0_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 1-to-0 error count increment for lane 0 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros. In FEC-only mode, the total bit error (1 to 0) count for a codeword in 100G mode is the sum of bit error count on lane 0, lane 1, lane 2 and lane 3. Similarly, the total bit error count of a codeword for 50G slice 0 is the sum of bit error count on lane 0 and lane 1. For slice 1, the total bit error count of a codeword in the sum of bit error count for lane 2 and lane 3.
stat_rx_fec<N>_lane1_err_1to0_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 1-to-0 error count increment for lane1 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane2_err_1to0_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 1-to-0 error count increment for lane2 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
stat_rx_fec<N>_lane3_err_1to0_inc[7:0] rx_alt_serdes_clk[0]/ rx_alt_serdes_clk[N] O 1-to-0 error count increment for lane3 of FEC<N> decoder. This signal is valid in both Interlaken and FEC-only mode. This bus is valid once per codeword. The value of the bus before and after the valid cycle is all zeros.
  1. In this table, <N> is the FEC instance number 0 to 5.