F-Tile Dynamic Reconfiguration Design Example User Guide

ID 710582
Date 4/11/2024
Public
Document Table of Contents

4.1.1. Ethernet Multirate Design Example with Enabled AN/LT: Simulation Testbench

Figure 23. Simulation Testbench Block Diagram for 25GE-1 Base Variant with Enabled AN/LT
Figure 24. Simulation Testbench Block Diagram for 100GE-4 Base Variant with Enabled AN/LT
Figure 25. Simulation Testbench Block Diagram for 400GE-8 Base Variant with Enabled AN/LT
Figure 26. Simulation Testbench Block Diagram for 400G-4 FHT Base Variant with Enabled AN/LT

The testbench program controls the testbench components via Avalon® memory-mapped interface access, status and control signals. The Avalon® memory-mapped interface arbiter decodes the Avalon® memory-mapped interface access from testbench program into multiple Avalon® memory-mapped interface slaves.

Simulation Flow:
  • Ethernet Multirate IP DUT is power-up based on base profile.
  • Initialize the testbench variables based on power-up profile. The parameter settings, located in the basic_avl_tb_top.sv file, are:
    • DR_NUM: To indicate the number of dynamic reconfiguration transitions.
    • DR_SEQ: To indicate the dynamic reconfiguration sequence.
  • Perform Auto-Negotiation and Link Training.
  • Enable the Auto-Negotiation and Link Training IP. User logic reads AN results and triggers dynamic reconfiguration flow.
  • Once the Dynamic Reconfiguration completes, you can program seq_force_mode AN/LT CSR to notify about the Dynamic Reconfigured profile; otherwise, AN/LT IP is expected to follow the AN result.
  • Disable the AN/LT IP.
  • Move to data or Ethernet mode and start transmitting packets.
  • Check the testbench error flag to determine whether the testbench passed or failed. The error flag is set to 1 when the AN/LT with Dynamic reconfiguration and Ethernet flow is successfully completed.

For customization, you can modify the DR_NUM and DR_SEQ localparam to configure the test flow. The profile ID is passed to the IP to configure the intended dynamic reconfiguration task.

Dynamic Reconfiguration Sequence Example: 100GE-4 > 2x 50GE-1 > 4x 25GE-1

To achieve this dynamic reconfiguration sequence, you must perform two dynamic reconfiguration transitions and specify the reconfiguration sequence. You update the local parameter settings file:
// Available Modes
localparam DR_MODE_1X100GE_4       = 6'b00_00_00;
localparam DR_MODE_1X100GE_4_NOFEC = 6'b00_00_01; 
localparam DR_MODE_1X100GE_2       = 6'b00_00_11;
localparam DR_MODE_2x50GE_1        = 6'b01_01_00;
localparam DR_MODE_4X25GE_1 	   = 6'b10_00_00;
localparam DR_MODE_4X25GE_1_NOFEC  = 6'b10_00_01;

// Dynamic Reconfiguration setting
localparam DR_NUM = 2;
localparam [6:0] DR_SEQ [DR_NUM - 1 : 0] = {DR_MODE_4X25GE_1, DR_MODE_2X50GE_1}