GTS Transceiver PHY User Guide: Agilex™ 3 FPGAs and SoCs
ID
848344
Date
8/04/2025
Public
1. GTS Transceiver Overview
2. GTS Transceiver Architecture
3. Implementing the GTS PMA/FEC Direct PHY IP
4. Implementing the GTS System PLL Clocks IP
5. Implementing the GTS Reset Sequencer IP
6. GTS PMA/FEC Direct PHY IP Example Design
7. Design Assistance Tools
8. Debugging GTS Transceiver Links with Transceiver Toolkit
9. Document Revision History for the GTS Transceiver PHY User Guide: Agilex™ 3 FPGAs and SoCs
3.1. IP Overview
3.2. Designing with the GTS PMA/FEC Direct PHY IP
3.3. Configuring the GTS PMA/FEC Direct PHY IP
3.4. Dynamically Reconfigurable PHY
3.5. Signal and Port Reference
3.6. Bit Mapping for PMA, FEC, and PCS Mode PHY TX and RX Datapath
3.7. Clocking
3.8. Custom Cadence Generation Ports and Logic
3.9. Asserting Reset
3.10. Bonding Implementation
3.11. Configuration Register
3.12. Configuring the GTS PMA/FEC Direct PHY IP for Hardware Testing
3.13. Configurable Quartus® Prime Software Settings
3.14. Hardware Configuration Using the Avalon® Memory-Mapped Interface
3.3.1. Preset IP Parameter Settings
3.3.2. Mode and Common Datapath Options
3.3.3. TX Datapath Options
3.3.4. RX Datapath Options
3.3.5. PMA Configuration Rules for Specific Protocol Mode Implementations
3.3.6. FEC Options
3.3.7. PCS Options
3.3.8. Avalon® Memory-Mapped Interface Options
3.3.9. Register Map IP-XACT Support
3.3.10. Analog Parameter Options
3.5.1. TX and RX Parallel and Serial Interface Signals
3.5.2. TX and RX Reference Clock and Clock Output Interface Signals
3.5.3. Reset Signals
3.5.4. FEC Signals
3.5.5. Custom Cadence Control and Status Signals
3.5.6. RX PMA Status Signals
3.5.7. TX and RX PMA and Core Interface FIFO Signals
3.5.8. Avalon Memory-Mapped Interface Signals
3.7.1. Clock Ports
3.7.2. Recommended tx/rx_coreclkin Connection and tx/rx_clkout2 Source
3.7.3. Port Widths and Recommended Connections for tx/rx_coreclkin, tx/rx_clkout, and tx/rx_clkout2
3.7.4. PMA Fractional Mode
3.7.5. Input Reference Clock Buffer Protection
3.7.6. Guidelines for Obtaining the Real-Time GTS TX PLL Lock Status
3.14.2.1. GTS Attribute Access Method Example 1: Enable or Disable Internal Serial Loopback Mode (RX Auto Adaptation Mode)
3.14.2.2. GTS Attribute Access Method Example 2: Enable or Disable Internal Serial Loopback Mode (RX Manual Adaptation Mode)
3.14.2.3. GTS Attribute Access Method Example 3: Enable or Disable Polarity Inversion of the PMA
3.14.2.4. GTS Attribute Access Method Example 4: Enable PRBS Generator and Checker to Run BER Test
6.1. Instantiating the GTS PMA/FEC Direct PHY IP
6.2. Generating the GTS PMA/FEC Direct PHY IP Example Design
6.3. GTS PMA/FEC Direct PHY IP Example Design Functional Description
6.4. Simulating the GTS PMA/FEC Direct PHY IP Example Design Testbench
6.5. Compiling the GTS PMA/FEC Direct PHY IP Example Design
6.6. GTS PMA/FEC Direct PHY IP Dynamically Reconfigurable PHY Example Design
6.7. Generating the GTS PMA/FEC Direct PHY IP Dynamically Reconfigurable Example Design
6.8. GTS PMA/FEC Direct PHY IP Dynamically Reconfigurable PHY Example Design Functional Description
6.9. Simulating the GTS PMA/FEC Direct PHY IP Dynamically Reconfigurable PHY Example Design Testbench
6.10. Compiling the GTS PMA/FEC Direct PHY IP Dynamically Reconfigurable PHY Example Design
8.3.1. Modifying the Design to Enable GTS Transceiver Debug Toolkit
8.3.2. Programming the Design into an Altera FPGA
8.3.3. Loading the Design to the Transceiver Toolkit
8.3.4. Creating Transceiver Links
8.3.5. Running BER Tests
8.3.6. Running Eye Viewer Tests
8.3.7. Running Link Optimization Tests
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.
- Assert RX reset.
- Wait for RX reset ACK.
- Enable serial loopback:
- Write 0x6A040 to address 0xA403C.
- Poll address 0XA4040 until bit 14 = 0 and bit 15 = 1.
- Write 0x62040 to address 0xA403C.
- Poll address 0XA4040 until bit 14 = 0 and bit 15 = 0.
- Deassert RX reset.
- Wait for RX reset ACK deassert.
- Confirm the channel is in serial loopback:
- Poll register 0x9781C; bit 1 should be high if serial loopback is enabled.
- Check the GTS PMA’s status:
- Write 0x800D to address 0XA403C.
- 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
- Write 0x000D to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Set the PRBS31 pattern for both the TX and RX PMAs:
- Write 0x30CA041 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x30C2041 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Set up the PMA to count the number of bit errors:
- Write 0x14A045 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x142045 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Start the test:
- Write 0x20A00F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x20200F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Check that the test is running:
- Write 0x8049 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1; bits 25:24 should be 0x1 to indicate the test is running. 29
- Write 0x0049 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Set up the PRBS generator to inject errors:
- Write 0x123A042 to address 0XA403C to inject 0x123 errors.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x1232042 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Tell the PRBS generator to inject errors:
- Write 0x23A00F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x23200F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Stop the BER test:
- Write 0x21A00F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x21200F to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Check the test completed successfully:
- Write 0x8049 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1; bits 25:24 should be 0x3.29
- Write 0x0049 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Read out the 12 LSB of the error count:
- Write 0x804A to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1; bits 27:16 represent the 12 LSBs of the error count.
- Write 0x004A to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Read out bits 27:12 of the error count:
- Write 0x804B to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1; bits 31:16 represent bits 27:12 of the error count.
- Write 0x004B to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Read out bits 31:28 of the error count:
- Write 0x804C to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1; bits 19:16 represent bits 31:28 of the error count.
- Write 0x004C to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 0.
- Finish checking the PRBS and BER test:
- Write 0xA041 to address 0XA403C.
- Poll address 0xA4040 until bit 15 = 1.
- Write 0x2041 to address 0XA403C.
- 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