Initialization Module - 1.7 English

UltraScale FPGAs Transceivers Wizard LogiCORE IP Product Guide (PG182)

Document ID
PG182
Release Date
2023-05-17
Version
1.7 English

The wizard example design contains a module that demonstrates how initialization logic can be constructed to interact with and enhance the reset controller helper block to assist with successful system bring-up. The example initialization logic monitors for timely transceiver resource reset completion, retrying appropriate resets as necessary to mitigate problems with system bring-up such as clock or data connection readiness. It also optionally monitors data quality after the system is operational, resetting the receiver if the data is not considered to be “good.” The initialization module is an example and can be modified as necessary to suit your needs.


The example initialization module is implemented as a finite state machine that is activated with the first user-provided “reset all” pulse following device configuration. The module first monitors for timely completion of the transmitter PLL and datapath transceiver resources, pulsing an internal “reset all” signal to the reset controller helper block in the event that the transmitter resets do not complete in a reasonable time. Upon transmitter reset completion, the example initialization module similarly waits for timely completion of receiver PLL and datapath transceiver resources, pulsing an internal receiver PLL and datapath reset (or receiver datapath reset if a single PLL is used for both data directions) to the reset controller helper block in the event that the receiver resets do not complete in a reasonable time. For debug purposes, each reset assertion increments a retry counter up to a specified saturation point, and the retry counter is only cleared upon device configuration. The initialization done and retry counter signals are connected to the VIO core instance by default.


The example initialization module also contains a receive data good input. If an active-High indication of data quality drives this port, the initialization module automatically pulses the appropriate receiver reset to the reset controller helper block if the design has been successfully initialized but the receiver data good input is Low. In this way, the initialization module repeatedly attempts to re-establish good data reception in the event of its loss; for example, due to cable pull effects on the receiver. This Figure illustrates the initialization module state machine.

Figure: Example Initialization Module Finite State Machine

UltraScale FPGAs Transceivers Wizard Sheet.1 Device Configuration or “Reset All” User Input Device Configuration or “Reset All” User Input Sheet.2 ST_START ST_START Standard Arrow.487 Sheet.4 Sheet.5 “Reset All” Not Used Since Configuration “Reset All” Not UsedSince Configuration Sheet.6 ST_TX_WAIT ST_TX_WAIT Standard Arrow.7 Sheet.8 Sheet.9 “Reset All” Has Been Used Since Configuration Timer Reset Res... “Reset All” Has Been Used Since ConfigurationTimer ResetRest all ‘0’Reset RX ‘0’ Sheet.10 ST_RX_WAIT ST_RX_WAIT Standard Arrow.12 Sheet.12 Sheet.13 RX_MONITOR RX_MONITOR Standard Arrow.15 Sheet.15 Sheet.16 Sheet.17 Tx Initialization Not Done and Timer Not Expired Timer Count Tx Initialization Not Done and Timer Not ExpiredTimer Count Sheet.18 Sheet.19 Timer Not Expired Timer Count Timer Not ExpiredTimer Count Sheet.20 Sheet.21 Sheet.22 Tx Initialization Not Done and Timer Expired Timer Reset Rese... Tx Initialization Not Done and Timer ExpiredTimer ResetReset all ‘1’Reset counter Increment Sheet.23 Sheet.24 Timer Expired and (RX Initialization Not Done or RX Data Not ... Timer Expired and (RX Initialization Not Done or RX Data Not “Good”)Timer ResetReset RX ‘1’Reset counter Increment Sheet.25 Sheet.26 TX Initialization Done Timer Reset TX Initialization DoneTimer Reset Sheet.27 Sheet.28 RX Initialization Not Done or RX Data Not “Good” Initializati... RX Initialization Not Done or RX Data Not “Good”Initialization Done ‘0’Timer ResetReset RX ‘1’Retry Counter Increment Sheet.29 Sheet.30 RX Initialization Done and RX Data “Good” RX Initialization Done and RX Data “Good” Sheet.31 TImer Expired and (RX Initialization Done and RX Data “Good”)... TImer Expired and (RX Initialization Done and RX Data “Good”)Initialization Done ‘1’ Sheet.32 Sheet.33 X14552 X14552 Sheet.34 Sheet.35 Sheet.36 Sheet.37 Sheet.38 Sheet.39 Sheet.40 Sheet.41 Sheet.42 Sheet.43 Sheet.44 Sheet.45 Sheet.46 Sheet.47 Sheet.48 Sheet.49 Sheet.50 Sheet.51 Sheet.52

In the example design as delivered, the link status indicator signal directly drives the initialization module’s receive data good input port. Therefore, any loss of link causes repeated receiver reset attempts until the link is again established. This approach is useful for demonstrating link robustness in the face of system disruptions such as cable pull tests. If it is not desired, this optional behavior can be disabled by simply tying the initialization module’s receive data good port High.