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

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

6.4.1. Modifying the Example Design and Performing Simulation

If you want to modify the example design to change the data rate, system PLL clock frequency, increase the number of PMA lanes and so on, you can reuse the existing example design and perform following changes:
  1. Update and re-configure the GTS PMA/FEC Direct PHY IP, GTS System PLL Clock IP, and GTS Reset Sequencer IP.
    1. Generate and instantiate the GTS Reset Sequencer IP and make sure the connections of the i_src_rs_req and o_src_rs_grant ports are connected correctly to the GTS PMA/FEC Direct PHY IP. If you add more GTS transceiver banks in the design, you must ensure proper connections for the o_pma_cu_clk port. Refer to Implementing the GTS Reset Sequencer IP for more information.
    2. If you want to use the PMA Direct with PMA clocking in Elastic mode, you must assign i_rx_fifo_rd_en to the invert of o_rx_fifo_pempty in your RTL file as follows:

      assign i_rx_fifo_rd_en = ~o_rx_fifo_pempty

    Note: You must ensure that the system PLL frequency in the GTS PMA/FEC Direct PHY IP and GTS System PLL Clocks IP is set to the same value, if you are using the system PLL clocking mode.
  2. Regenerate the IPs by clicking Generate HDL.
  3. Run Analysis and Synthesis.
  4. Initialize and make changes to the testbench variable files in the following example design directory <example_design/rtl>:
    1. testwrap_pma_direct.sv and test_tst.sv
    2. param_defines.iv and param_defines1.iv
  5. After making the necessary changes, refer to Simulating the GTS PMA/FEC Direct PHY IP Example Design Testbench to run the simulation and analyze results.
Note: By default, the simulation model implements a faster clock speed in the soft reset controller to reduce the simulation duration. Due to this, the simulation waveform shown may differ from the actual waveform captured in hardware. If you want to use the same clock speed of the soft reset controller in the simulation model, you can enable it through a macro in the simulation run scripts by using the following syntax:

+define+SIM_125MHz