GT LPBK test case description

The goal of this test case is to allow verification of GT transceivers on Alveo™ cards at 25GbE lane rates. The 4 lanes are tested.

This CU requires a 25GbE traffic source. From the incoming traffic, the 64/66b Sync Header are acquired and if needed the GT gearbox get slip until Sync Header lock. Any Idle word (Block Type Field = 0x1E) are ignored, any other words are stored in the FIFO (after being descrambled).

Based on the filling level of the FIFO, Data are read out or Idle word are used. These words are scrambled and then sent to the GT.

By removing and inserting Idle, the GT LPBK is doing a rate adaptation of the incoming traffic.

../../_images/gt_lpbk-block_diagram.svg

GT LPBK CU block diagram

GT test set up

GT testing can be achieved by using one of the following methods:

  • The use of a QSFP passive electrical loopback module. The module must be compliant to 100GbE (25GbE per lane) and have 0 dB insertion loss. This is the preferred method, the GTs having been validated using a QSFP28 module provided by MultiLane (ML4002-28-C5).

    Note

    This module also has the capability of providing a QSFP temperature reading and a programmable power dissipation up to 5W. However, these are not required to pass the GT tests.

  • The use of a QSFP optical module with suitably connected fiber loopback. The module must be compatible with the traffic rate being tested.

    Note

    This is an active component the electrical interface between the GTs and the module will need to be validated to ensure optimum performance.

GT settings

As there are multiple ways to connect to the GTs, two default configurations have been defined:

  • module: For loopback module and active optical cable. Loopback module is an electrical track from TX to RX. It’s the shortest path you can get between Tx and Rx (and still going out of the FPGA). An active optical cable terminates the electrical TX track at the optic module input. It also has the electric RX track from the optic module output. Resulting in electrical track length twice the size compared to the loopback module. From experience, it has no major impact and GT settings can be common for these 2 types (loopback module or active optical cable).

  • cable: For copper cable.

The selection is made using the gt_settings member, by default module settings are selected.

Each mode defines values for the following GT transceiver settings (see UltraScale Architecture GTY Transceivers User Guide (UG578)):

  • tx_differential_swing_control

  • tx_pre_emphasis

  • tx_post_emphasis

  • gt_tx_polarity

  • gt_loopback

  • rx_equaliser

The actual values are defined in the platform definition JSON file and are also displayed in the xbtest.log file with message ID CMN_021. It’s possible to overwrite these settings for all lanes (included into global_config) or selectively for some lanes (part of lane_config).

Warning

When connected to switch, using a wrong setting for one single lane might result in traffic interruption on all lanes. The switch might try to reset its whole module because it sees that a link is down.

Main test steps

A test is only composed of 1 step which defines of the hardware environment (see GT LPBK test JSON members).

  1. Configuration.

Test parameters

The mandatory test configuration parameters are listed below. For more information, see GT LPBK test JSON members.

  • duration: The duration of the test, measured in seconds.

  • mode : Mode of the compute unit.

Status

GT LPBK CU doesn’t provide any status and always passes.

GT LPBK test JSON members

Here is an example of GT LPBK test cases. Some test JSON members can be overwritten for each lane using the test JSON member lane_config which child members are lane indexes.

Note

Only the configuration step is required for GT as the rate adaption logic is always running. There is no real need to include a run step.


Example

"gt_lpbk": {
  "0": {
    "global_config": {
      "test_sequence": [
        { "duration":  1, "mode": "conf_25gbe_no_fec" }
      ]
    }
  }
}

Definition

The following table shows all members available for this test case. More details are provided for each member in the subsequent sections.

GT LPBK test JSON members

Member

Lane override

Mandatory / optional

Description

test_sequence

no

Mandatory

Describes the sequence of tests to perform.

gt_settings

no

Optional

Selects the GT default configuration. See GT JSON Member.

gt_tx_diffctrl

yes

Optional

Select the Driver Swing Control. See GT JSON Member.

gt_tx_pre_emph

yes

Optional

Select Transmitter pre-cursor TX pre-emphasis control. See GT JSON Member.

gt_tx_post_emph

yes

Optional

Select Transmitter post-cursor TX pre-emphasis control. See GT JSON Member.

gt_tx_polarity

yes

Optional

Select TX Polarity. See GT JSON Member.

gt_rx_use_lpm

yes

Optional

Select RX Equalizer. See GT JSON Member.


test_sequence

Mandatory. Describes the sequence of tests to perform. Tests are performed serially, and a failure in one test does not stop the sequence (the next test will be launched). There is no limitation to the length of the test sequence.

This field contains a list of tests, each test being defined by an object of key–value parameters pairs: [ {}, {}, {} ].

The following table defines the parameters supported in the GT MAC test sequence:

GT MAC test sequence parameters

Member

Mandatory / optional

Description

duration

Mandatory

The duration of the test in seconds; Range [1, 232-1].

mode

Mandatory

Mode of the compute unit. See the following table.

mode possible values

Possible Value

Description

conf_25gbe_no_fec

Apply the settings specified in the configuration parameters to the GT hardware.

run

As the rate adaptation is always running, this configuration is not really needed. It can be used to insert a time gap (pause) in-between tests.

tx_rx_rst

Initiate a reset of the GT wizard TX and RX paths.


GT settings test JSON members

For the 3 types of GT test cases, the GT settings can be defined in a similar manner

  • For the 4 lanes simultaneously: part of the global_config

    • Select one of the pre-defined configurations (gt_settings). The various configurations are stored in the platform definition file (see Platform definition).

    • Overwrite any settings of the selected configuration.

  • For each lane individually: overwrite any settings of the selected configuration. Part of the lane_config

If required, these settings are simply added to your test JSON file within your test case definition. Here is an example with global selection, but it also includes global and per-lane specific overwrites.

"gt_mac / gt_prbs / gt_lpbk": {
  "0": {
    "global_config": {
      "gt_settings": "module",
      "gt_rx_use_lpm": true
    },
    "lane_config": {
      "0": {
        "gt_rx_use_lpm": false,
        "gt_tx_diffctrl": 11
      },
      "1": {
        "gt_tx_main_cursor": 80
      },
      "2": {
        "gt_tx_pre_emph": 2,
      },
      "3": {
        "gt_tx_post_emph": 3,
      }
    }
  }
}

More info can be found here: GT Settings. Further details on each of settings can be found in UltraScale architecture GTY transceivers user guide (UG578).


gt_settings

Optional; Type : string; Possible values: module or cable; Default : module.

It selects the GT configuration from the platform definition file (see Platform definition). This configuration applies to all lanes of the GT.


gt_tx_diffctrl

Optional; Type : integer; Possible values: from 0 to 31; Default : defined in the platform definition JSON file (see Platform definition).

This parameter sets the TXDIFFCTRL input to transmitter.


gt_tx_pre_emph

Optional; Type : integer; Possible values: from 0 to 31; Default : defined in the platform definition JSON file (see Platform definition).

This parameter sets the TXPRECURSOR input to transmitter.


gt_tx_post_emph

Optional; Type : integer; Possible values: from 0 to 31; Default : defined in the platform definition JSON file (see Platform definition).

This parameter sets the TXPOSTCURSOR input to transmitter.


gt_tx_polarity

Optional; Type : string; Possible values: normal or inverted; Default : normal.

When set to normal, TXP is positive, and TXN is negative.

When set to inverted, TXP is negative, and TXN is positive.


gt_rx_use_lpm

Optional; Type : boolean; Possible values: false or true; Default : defined in the platform definition JSON file (see Platform definition).

When set to false, the GTY transceiver to use the DFE receive equalizer.

When set to true, the GTY transceiver to use the LPM receive equalizer.


Output file

No result file is created by the GT LPBK test case. This test case always passes.