GTS Transceiver PHY User Guide: Agilex™ 3 FPGAs and SoCs

ID 848344
Date 8/04/2025
Public
Document Table of Contents

3.14.1.1. Direct Register Method Examples

The following examples demonstrate the direct register method to configure the GTS PMA.

TX Equalizer Co-efficients

To set the TX equalizer co-efficients:
  • Write the TX equalizer pre_tap_2 register (0x9174C[29:27]) with valid value.
  • Write the TX equalizer pre_tap_1 register (0x91750[9:5]) with valid value.
  • Write the TX equalizer main_tap register (0x9174C[13:8]) with valid value.
  • Write the TX equalizer post_tap_1 register (0x9174C[23:19]) with valid value.
Note: You can use the TX EQ Equalizer Tool to identify the most optimum value for the equalizer taps for your link.

Mute TX Output

To mute TX output (to configure TX output to 0 V):
  • Set 0x91750[25:24] to 2’b11
To unmute TX output:
  • Set 0x91750[25:24] to 2’b00

TX to RX Parallel Loopback

To enable the TX to RX Parallel Loopback:
  • Write 0x1 to 0x916A4[8]
To disable the TX to RX Parallel Loopback:
  • Write 0x0 to 0x916A4[8]

Reverse Parallel Loopback

To enable the Reverse Parallel Loopback:
  • Wait for o_rx_ready assert
  • Assert TX reset
  • Wait for TX reset Ack
  • Write 0x0 to 0x91830[31:0]
  • Write 0x0 to 0x91768[24]
  • Write 0x1 to 0x91414[29]
  • Write 0x1 to 0x9141C[30]
  • Write 0x1 to 0x91418[31]
  • Deassert TX reset
  • Wait for TX reset ACK deassert
To disable the Reverse Parallel Loopback:
  • Assert TX reset
  • Write 0x3 to 0x91830[31:0]
  • Write 0x1 to 0x91768[24]
  • Write 0x0 to 0x91414[29]
  • Write 0x0 to 0x9141C[30]
  • Write 0x0 to 0x91418[31]
  • Deassert TX reset
  • Wait for TX reset ACK deassert

Polarity Inversion

For TX polarity inversion:
  • Assert TX reset.
  • TX polarity inversion:
    • Write 0x1 to 0x91428[7]
  • TX polarity inversion revert back:
    • Write 0x0 to 0x91428[7]
  • Deassert TX reset.
For RX polarity inversion:
  • Assert RX reset.
  • RX polarity inversion:
    • Write 0x1 to 0x91428[6]
  • RX polarity inversion revert back:
    • Write 0x0 to 0x91428[6]
  • Deassert RX reset.

Measuring the Bit Error Rate (BER)

  1. Check that the RX link is ready for the desired lane:
    1. Read 0x814[31:16]27 to confirm that the corresponding lane's rx_cdr_locked2data = 1
  2. Assign the PRBS pattern value:
    1. For TX: Write valid values to 0x916AC[31:28]
    2. For RX: Write valid values to 0x91428[3:0]
    3. Valid values for PRBS pattern are:
      • PRBS7: 0x1
      • PRBS9: 0x2
      • PRBS10: 0x3
      • PRBS13: 0x4
      • PRBS15: 0x5
      • PRBS23: 0x6
      • PRBS31: 0x8
  3. To start the BER test:
    1. Write 0x1 to 0x916AC[23]
    2. Write 0x1 to 0x91424[26]
    3. Write 0x3 to 0x9176C[28:27]
    4. Write 0x3 to 0x915B4[19:18]
  4. To inject one bit of error (repeat the following two steps multiple times to inject multiple bits of error):
    1. Write 0x1 to 0x916AC[22]
    2. Write 0x0 to 0x916AC[22]
  5. To get the error count, read from 0x91444[31:0]
  6. To check overflow, read 0x9143C[21]: 1 = overflow, 0 = no overflow
  7. To clear the counter, toggle 0x915B4[19:18]:
    1. Write 0x0 to 0x915B4[19:18]
    2. Write 0x3 to 0x915B4[19:18]
  8. To stop the BER test:
    1. Write 0x0 to 0x916AC[23]
    2. Write 0x0 to 0x91424[26]
    3. Write 0x0 to 0x9176C[28:27]
    4. Write 0x0 to 0x915B4[19:18]
The sequence is valid only when you are using RX manual tuning (RX adaptation mode set to manual mode). If you are using RX auto adaptation, use the GTS attribute access method.
27 Address 0x814 is part of the GTS PMA and FEC soft CSR register map.