F-Tile Architecture and PMA and FEC Direct PHY IP User Guide

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

3.14.2.1.1. Direct Register Method Examples

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

TX Equalizer Co-efficients

To set the TX equalizer co-efficients:
  • Write the TX equalizer pre_tap_2 register (0x47830[18:16]) with valid value.
  • Write the TX equalizer pre_tap_1 register (0x47830[9:5]) with valid value.
  • Write the TX equalizer main_tap register (0x47830[15:10]) with valid value.
  • Write the TX equalizer post_tap_1 register (0x47830[4:0]) with valid value.

Mute TX Output

To mute TX output (make TX output 0v):
  • Write 2’b11 to 0x41750[25:24]
To unmute TX output:
  • Write 2’b00 to 0x41750[25:24]

Internal Serial Loopback

The detailed sequence is described in Appendix A.3. for Quartus® Prime Pro Edition software versions before 25.1.1 and in Appendix A.4. for Quartus® Prime Pro Edition software versions from 25.1.1 onwards.

Reverse Parallel Loopback

To enable the Reverse Parallel Loopback:
  • Wait for rx_ready assert
  • Assert TX reset
  • Wait for TX reset Ack
  • Write 0x0 to 0x41830[31:0]
  • Write 0x0 to 0x41768[24]
  • Write 0x1 to 0x41414[29]
  • Write 0x1 to 0x4141C[30]
  • Write 0x1 to 0x41418[31]
  • Deassert TX reset
  • Wait for TX reset ACK deassert
  • If FEC is enabled, you must respond to the tx_am_gen_start signal and generate the tx_am_gen_2x_ack pulse to get tx_ready to assert. This step is also needed when you use the F-Tile Transceiver Toolkit to enable the RX to TX reverse parallel loopback.
To disable the Reverse Parallel Loopback:
  • Assert TX reset
  • Write 0x3 to 0x41830[31:0]
  • Write 0x1 to 0x41768[24]
  • Write 0x0 to 0x41414[29]
  • Write 0x0 to 0x4141C[30]
  • Write 0x0 to 0x41418[31]
  • Deassert TX reset
  • Wait for TX reset ACK deassert
  • If FEC is enabled, you must respond to the tx_am_gen_start signal and generate the tx_am_gen_2x_ack pulse to get tx_ready to assert. This step is also needed when you use the F-Tile Transceiver Toolkit to disable the RX to TX reverse parallel loopback.

TX to RX Parallel Loopback

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

Polarity Inversion

TX polarity inversion:
  • Write 0x1 to 0x41428[7]
TX polarity inversion revert back:
  • Write 0x0 to 0x41428[7]
RX polarity inversion:
  • Write 0x1 to 0x41428[6]
RX polarity inversion revert back:
  • Write 0x0 to 0x41428[6]

Measuring the Bit Error Rate (BER) with FGT PMAs

  1. Assign the PRBS pattern value:
    1. For TX:
      1. Set valid values to 0x416AC[31:28]
    2. For RX:
      1. Set valid values to 0x41428[3:0]
    3. Valid values for PRBS pattern:
      • UDP : 0x0
      • PRBS7 : 0x1
      • PRBS9 : 0x2
      • PRBS11 : 0x3
      • PRBS13 : 0x4
      • PRBS15 : 0x5
      • PRBS23 : 0x6
      • PRBS28 : 0x7
      • PRBS31 : 0x8
      • QPRBS13 : 0x9
      • PRBS13Q : 0xa
      • PRBS31Q : 0xb
      • SSPR : 0xc
      • SSPR1 : 0xd
      • SSPRQ : 0xe
  2. BER Start:
    1. Write 0x1 to 0x416AC[23]
    2. Write 0x1 to 0x41424[26]
    3. Write 0x3 to 0x4176C[28:27]
    4. Write 0x3 to 0x415B4[19:18]
  3. Inject one bit of error (repeat the following two steps multiple times to inject multiple bits of error):
    1. Write 0x1 to 0x416AC[22]
    2. Write 0x0 to 0x416AC[22]
  4. Error Count:
    1. Read from 0x41444[31:0]
  5. To check overflow, read 0x4143C[21], 1 = overflow, 0 = no overflow
  6. To clear the counter, toggle 0x415B4[19:18]:
    1. Write 0x0 to 0x415B4[19:18]
    2. Write 0x3 to 0x415B4[19:18]
  7. BER Stop:
    1. Write 0x0 to 0x416AC[23]
    2. Write 0x0 to 0x41424[26]
    3. Write 0x0 to 0x4176C[28:27]
    4. Write 0x0 to 0x415B4[19:18]
The sequence is valid only when RX manual tuning is used (RX auto adaptation is bypassed). If RX auto adaptation is used, use the FGT attribute access method.