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

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

3.14.2.4. GTS Attribute Access Method Example 4: Enable PRBS Generator and Checker to Run BER Test

The following example demonstrates the steps to enable the GTS PMA PRBS checker and generator for logical lane 0 and to run the BER test.
The test is done when you configure the GTS PMA in internal serial loopback mode for the physical lane 0 of a quad, using the GTS attribute access method.
  1. Assert RX reset.
  2. Wait for RX reset ACK.
  3. Enable serial loopback:
    1. Write 0x6A040 to address 0xA403C.
    2. Poll address 0XA4040 until bit 14 = 0 and bit 15 = 1.
    3. Write 0x62040 to address 0xA403C.
    4. Poll address 0XA4040 until bit 14 = 0 and bit 15 = 0.
  4. Deassert RX reset.
  5. Wait for RX reset ACK deassert.
  6. Confirm the channel is in serial loopback:
    1. Poll register 0x9781C; bit 1 should be high if serial loopback is enabled.
  7. Check the GTS PMA’s status:
    1. Write 0x800D to address 0XA403C.
    2. Poll address 0XA4040 until bit 15 = 1; bit 16 should also be high if the channel is located in physical local 0.
      Note:

      bit 16, rx_ready is for physical local lane 0

      bit 17, rx_ready is for physical local lane 1

      bit 18, rx_ready is for physical local lane 2

      bit 19, rx_ready is for physical local lane 3

    3. Write 0x000D to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  8. Set the PRBS31 pattern for both the TX and RX PMAs:
    1. Write 0x30CA041 to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x30C2041 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  9. Set up the PMA to count the number of bit errors:
    1. Write 0x14A045 to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x142045 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  10. Start the test:
    1. Write 0x20A00F to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x20200F to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  11. Check that the test is running:
    1. Write 0x8049 to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1; bits 25:24 should be 0x1 to indicate the test is running. 29
    3. Write 0x0049 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  12. Set up the PRBS generator to inject errors:
    1. Write 0x123A042 to address 0XA403C to inject 0x123 errors.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x1232042 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  13. Tell the PRBS generator to inject errors:
    1. Write 0x23A00F to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x23200F to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  14. Stop the BER test:
    1. Write 0x21A00F to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x21200F to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  15. Check the test completed successfully:
    1. Write 0x8049 to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1; bits 25:24 should be 0x3.29
    3. Write 0x0049 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  16. Read out the 12 LSB of the error count:
    1. Write 0x804A to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1; bits 27:16 represent the 12 LSBs of the error count.
    3. Write 0x004A to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  17. Read out bits 27:12 of the error count:
    1. Write 0x804B to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1; bits 31:16 represent bits 27:12 of the error count.
    3. Write 0x004B to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  18. Read out bits 31:28 of the error count:
    1. Write 0x804C to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1; bits 19:16 represent bits 31:28 of the error count.
    3. Write 0x004C to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
  19. Finish checking the PRBS and BER test:
    1. Write 0xA041 to address 0XA403C.
    2. Poll address 0xA4040 until bit 15 = 1.
    3. Write 0x2041 to address 0XA403C.
    4. Poll address 0xA4040 until bit 15 = 0.
29
Note: 0xA4040 [25:24] status values:
  • 0x0: Idle
  • 0x1: Test running
  • 0x2: Test stopped-execution failure
  • 0x3: Test stopped-execution completed successfully