E-Tile Transceiver PHY User Guide

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

C. Signal Detect Algorithm

The signal detect algorithm detailed in this section is an example of how to determine if a valid signal is present at the receiver and then use adaptation to tune the link for acceptable performance. This is only an example and the implementation specifics may need to be modified for your system.

The physical channels to be supported are CEI-28 VSR, a CAUI-4 chip-to-module connection and CEI-56 VSR (PAM4). Other physical channels can be used depending on the application.

The receiver channel must autonomously adapt and lock to the incoming signal when a valid signal becomes present. “Autonomously” means without assistance or information from downstream processing or upper protocol layers, in other words, based exclusively on information available to and via the transceiver itself.

An invalid signal is any situation where the incoming signal is not valid, typically:

  • Module unplugged
  • Fiber unplugged on module
  • No signal received on fiber
  • Bad signal received on fiber

The receiver adaptation completes without disrupting the transmitter path, and a PMA analog reset is not used because PMA analog resets disrupt the transmitter.

The adaptation results in an acceptable BER, for example:

  • CEI-28 VSR: BER 1x10-15
  • CEI-56 VSR: BER 1x10-6

The adaptation completes in:

  • Approximately 100 ms for NRZ
  • Approximately 4 s for PAM4

The entire adaptation process must be able to operate in low power mode. The signal quality is maintained provided that the die temperature variation does not exceed 3 °C per minute and continuous adaptation is enabled.

This process does not deadlock to an unrecoverable state.

Figure 153. Signal Detect Algorithm Flowchart

Valid Signal

For a signal to be valid, both of these conditions must be met:

  • rx_freqlocked_1ms: A filtered version of rx_is_lockedtodata. "Filtered" means that it deasserts instantly on loss of lock and rx_is_lockedtodata needs to be asserted continuously without any deassertions for at least 1 ms before rx_freqlocked_1ms asserts.
  • Eye OK: Requires a read from the transceiver via Avalon® memory-mapped interface and compares a value with an acceptable threshold value of 150 (NRZ) or 25 (PAM4). These units are expressed in steps. The eye threshold values are application-dependent and should be determined by your system validation. See Reading NRZ/PAM4 Eye Height.

If at any point in the algorithm the above valid condition is not met, the adaptation complete status becomes false, and the flow returns to the initial adaptation stage by issuing a one-shot continuous adaptation to stop the continuous adaptation.

Initial Adaptation Stage

The assumption at the start of the test flow is that there may be no signal or an invalid signal may be present. Until an initial adaptation has been run, there is no way to reliably achieve lock, so the initial adaptation process is repeatedly triggered while waiting for a valid signal as per the above definition.

It is possible that the first time a valid signal is detected, the adaptation may not be optimal, for example, because the signal appeared during the initial adaptation process. Therefore, an additional initial adaptation is run following this first detection.

If the signal is still valid after the second initial adaptation, that part of the test flow is complete. When completed, a notification (signal or interrupt) is provided at the system level and to the downstream datapath.

There are two main operations at this stage:

  • Reading the eye height for an eye OK check (this takes <50 µs)
  • Initiating initial adaptation (this typically takes 680 µs from initiating initial adaption to when initial adaptation starts, but it sometimes takes 3 ms)

As the completion time for the initial adaptation varies, the algorithm runs the loop on a fixed timing, triggering a new initial adaptation every 40 ms (chosen to provide some margin) if the loop exit conditions have not been met.

Rarely, if many transceiver channels are in the initial adaptation loop and many of these take a long time to respond on the bus, there may not be enough time to service all channels within this time. In this case, the loop takes longer to complete then continues as usual.

This gives an average completion time of 100 ms, typically, varying between 80 and 120 ms.

For PAM4, the observed completion time is approximately 1.5 seconds using an effort of 0.5.

Note: Average completion times assume that a signal is present. Without a signal, these average completion times are not applicable, and completion may take much longer.

Ongoing Adaptation Stage

In order to maintain good receiver equalization through temperature variations (within specification), an ongoing, non-traffic affecting adaptation process (continuous adaptation) is run while the signal is valid.

Each continuous adaptation takes approximately one second to complete and is repeated automatically while in a continuous mode.

If the signal is removed while in this mode and multiple continuous adaptation operations are performed in this state, the receiver equalization may gradually enter a bad state which cannot be recovered from by re-running an initial adaptation and reaches a deadlock from which this algorithm cannot recover.

To prevent this, the algorithm monitors the rx_freqlocked_1ms signal and immediately reverts to the initial adaptation stage, which issues an initial adaptation which effectively stops the continuous adaptation. Additionally, the eye OK status is polled every second, and, if no longer meeting the criterion, reverts to the initial adaptation stage.

Therefore, at most, one or two continuous adaptation operations execute on an invalid signal which is not enough to bring the transceiver into a bad state.

Internal Serial Loopback

Internal serial loopback cannot be used in LPM. However, there needs to be the ability to switch between internal serial loopback and non-internal serial loopback and perform appropriate adaptation each time.

Internal serial loopback requires Resetting the RX Equalization after setting the internal serial loopback. This RX equalization reset does not impact the transmitter.

The adaptation algorithm must be exited before configuring internal serial loopback and restarted after disabling internal serial loopback and enabling LPM.