E-Tile Transceiver PHY User Guide

ID 683723
Date 7/08/2024
Public
Document Table of Contents

9.2.24.6. Enabling and Disabling Electrical Idle Detector Filtering and Reading Electrical Idle Detector Status

Electrical Idle Detector Filtering Controls

The signal_ok_config 16-bit register controls electrical idle detector filtering.

To read:

  1. Use attribute code 0x002C and {0x85[7:0],0x84[7:0]}: 0x11C. The value is returned on registers {0x89[7:0],0x88[7:0]}.

To write:

  1. Use attribute code 0x0020 and {0x85[7:0],0x84[7:0]}: 0x20.
  2. Use attribute code 0x002C and {0x85[7:0],0x84[7:0]}: 0x11C.
  3. Use attribute code 0x006C and {0x85[7:0],0x84[7:0]}:
    • 0x84[0] to enable 0x4027[4] to track electrical idle instead of its normal use.
    • 0x84[1] to cause 0x4027[4] to oscillate when a signal is detected.
    • 0x84[2] to enable DFE tuning based electrical idle detector detection
    • 0x84[3] is reserved
    • 0x84[7:4], 0x85[7:0], if 0x84[2] is 0, to set the number of consecutive polling loops of electrical idle that it must be high before 0x4027[4] goes high. If 0x84[0] is 0, there is no effect.
    • 0x84[7:4], 0x85[7:0], if 0x84[2] is 1, to set the eye height threshold for DFE based on the electrical idle detector. If 0x84[0] is 0, there is no effect.

Enabling and Disabling Electrical Idle Detector Filtering

Note: Do not issue a PMA Analog Reset before enabling electrical idle detector filtering.
Note: The RX does not function fully when electrical idle detector filtering is enabled (rx_paralleldata, rx_ready, rx_islockedtodata, and rx_data_valid are not valid).

To enable electrical idle detector filtering:

  1. Use attribute code 0x0020 and {0x85[7:0],0x84[7:0]}: 0x20.
  2. Use attribute code 0x002C and {0x85[7:0],0x84[7:0]}: 0x11C.
  3. Use attribute code 0x006C and {0x85[7:0],0x84[7:0]}: 0xFFF1.

To enable electrical idle detector filtering based on DFE tuning:

  1. Use attribute code 0x0020 and {0x85[7:0],0x84[7:0]}: 0x20.
  2. Use attribute code 0x002C and {0x85[7:0],0x84[7:0]}: 0x11C.
  3. Use attribute code 0x006C and {0x85[7:0],0x84[7:0]}: 0x0155.

To disable any mode of electrical idle detector filtering:

  1. Use attribute code 0x0020 and {0x85[7:0],0x84[7:0]}: 0x0.
  2. Use attribute code 0x002C and {0x85[7:0],0x84[7:0]}: 0x11C.
  3. Use attribute code 0x006C and {0x85[7:0],0x84[7:0]}: 0x0.

Reading Electrical Idle Detector Status

After electrical idle detector filtering is enabled, to read the electrical idle detector status:

  1. Use attribute code 0x4027 and {0x85[7:0],0x84[7:0]}: 0x0. The value is returned on registers {0x89[7:0],0x88[7:0]}: 0x30 for no signal and 0x20 for signal present.
  2. If the rx_pma_elecidle port is enabled, use that port to monitor the electrical idle detector filtering.
  3. When electrical idle detector filtering is enabled, rx_is_lockedtodata is no longer readable through its register and port.