Intel® Cyclone® 10 GX Transceiver PHY User Guide

ID 683054
Date 4/14/2023
Public
Document Table of Contents

7.1. Reconfiguration Interface and Arbitration with PreSICE Calibration Engine

In Cyclone® 10 GX devices, calibration is performed using the Precision Signal Integrity Calibration Engine (PreSICE). The PreSICE includes an Avalon-MM interface to access the transceiver channel and PLL programmable registers. This Avalon-MM interface includes a communication mechanism that enables you to request specific calibration sequences from the calibration controller.

The PreSICE Avalon-MM interface and user Avalon-MM reconfiguration interface both share an internal configuration bus. This bus is arbitrated to gain access to the transceiver channel and PLL programmable registers, and the calibration registers.

There are two ways to check who has the access to the internal configuration bus:

  • Use reconfig_waitrequest
  • Use capability registers

The Native PHY IP core and PLL default setting is to use reconfig_waitrequest. When PreSICE controls the internal configuration bus, the reconfig_waitrequest from the internal configuration bus is high. When user access is granted, the reconfig_waitrequest from the internal configuration bus goes low. At the Avalon-MM reconfiguration interface, the reconfig_waitrequest can come from a few places inside Native PHY IP core. For example, it can come from the internal configuration bus, streamer, and so on. They are bundled together and become single reconfig_waitrequest at the Avalon-MM reconfiguration interface. The reconfig_address determines which reconfig_waitrequest to show at the Avalon-MM reconfiguration interface. After you return the internal configuration bus to PreSICE, the reconfig_waitrequest from the internal configuration bus is high. If you set the reconfig_address to the streamer offset address at the Avalon-MM reconfiguration interface during calibration, the reconfig_waitrequest can be low before calibration is finished. If you keep the reconfig_address the same as the internal configuration bus offset address during calibration, the reconfig_waitrequest at the Avalon-MM reconfiguration interface is high until PreSICE returns the internal configuration bus to you. It is important to keep reconfig_address static during calibration.

To use capability registers to check bus arbitration, you can do the following when generating the IP:

  1. Select Enable dynamic reconfiguration from the Dynamic Reconfiguration tab.
  2. Select both the Separate reconfig_waitrequest from the status of AVMM arbitration with PreSICE and Enable control and status registers options.

You can read the capability register 0x281[2] to check who is controlling the channel access, and read the capability register 0x280[2] to check who is controlling the PLL access. When Separate reconfig_waitrequest from the status of AVMM arbitration with PreSICE and Enable control and status registers are enabled, the reconfig_waitrequest is not asserted high when PreSICE controls the internal configuration bus.

To return the internal configuration bus to PreSICE:

  • Write 0x1 to offset address 0x0[7:0] if any calibration bit is enabled from offset address 0x100.
  • Write 0x3 to offset address 0x0[7:0] if no calibration bit has been enabled from offset address 0x100.

To check if the calibration process is running, do one of the following:

  • Monitor the pll_cal_busy, tx_cal_busy, and rx_cal_busy signals.
  • Read the *_cal_busy signal status from the capability registers.

The *_cal_busy signals remain asserted as long as the calibration process is running. To check whether or not calibration is done, you can read the capability registers or check the *_cal_busy signals. The reconfig_waitrequest from the Avalon-MM reconfiguration interface is not a reliable indicator to check whether or not calibration is done. If you write 0x2 to 0x0 during calibration, PreSICE can stop the calibration process and return the internal configuration bus back to you; therefore, calibration is not done while the reconfig_waitrequest is low. The PMA tx_cal_busy and rx_cal_busy are from the same internal node which cannot be separated from the hardware. Configure the capability register 0x281[5:4] to enable or disable tx_cal_busy or rx_cal_busy individually through the Avalon-MM reconfiguration interface.