Visible to Intel only — GUID: dba1692741266090
Ixiasoft
Visible to Intel only — GUID: dba1692741266090
Ixiasoft
4.1.2. Ethernet Multirate Design Example with AN/LT Enabled: Simulation Testbench
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.
- 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
// 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}