F-Tile Ethernet Intel® FPGA Hard IP Design Example User Guide

ID 683804
Date 11/22/2024
Public
Document Table of Contents

1.6. Testing the F-Tile Ethernet Intel FPGA Hard IP Hardware Design Example

After you compile the F-Tile Ethernet Intel FPGA Hard IP core design example and configure it on your Agilex™ 7 device, you can use the System Console to program the IP core.

Follow these steps to test the hardware design example on the System Console:
  1. Navigate to the hardware directory: <design_example>/hardware_test_design/hwtest.
  2. Open Tools > System Debugging Tools > System Console or type command:
    system-console &
  3. Run the following commands in the System Console Tcl shell.
    source main_<Ethernet_rate>.tcl
    set_jtag<number_of appropriate_JTAG_master>
    Note:
    • The set_jtag command places the Agilex™ 7 device on the JTAG chain
    • If you do not want to use reset when selecting jtag, use set_jtag_no_reset
    Note: If you enabled auto-negotiation and link training in your design, follow the hardware design example steps described in Hardware Design Example.
  4. Run one of the following commands.
    • If you use the internal serial loopback, enter
      run_test
    • If you inserted an external loopback plug into the desired Ethernet port, enter
      run_test_without_loopback
The hardware design example uses run_test command to initiate packet transmission from packet generator to the IP core. Specifically, the script performs the following steps:
  • chkphy_status: Displays the clock frequencies and PMA PHY lock status.
  • chkmac_stats: Displays the MAC statistics counters.
  • clear_all_stats: Clears the IP core statistics counters.
  • start_pkt_gen: Starts the packet generator.
  • stop_pkt_gen: Stops the packet generator.
  • internal_loop_back_bk Instance_number no_of_lanes: Enables the internal loop back for FHT variant.
  • internal_loop_back_ux Instance_number ip_base_addr no_of_lanes lane_x lane_y: Enables the internal loop back for FGT variant.
Note: Use the following commands to disable the internal loop back:
  • disable_loop_back_ux no_of_lanes 0 2: Disables the internal loop back for FGT variant lane 1
  • disable_loop_back_ux no_of_lanes 3 2: Disables the internal loop back for FGT variant lane 2,4, and 8
  • disable_loop_back_bk no_of_lanes
The following sample output illustrates a successful hardware test run:
% run_test_without_loopback
--- Turning off packet generation ----
--------------------------------------
--- Wait for RX clock to settle... ---
--------------------------------------
-------- Printing PHY status ---------
--------------------------------------
 RX PHY Register Access: Checking Clock Frequencies (KHz) 
	TXCLK 		:41505  (KHZ) 
	RXCLK 		:41503  (KHZ) 

 TX PLL Lock Status           0x000000ff
 RX Frequency Lock Status     0x000000ff
 RX PCS Ready                 0x00000001
 TX Lanes Stable              0x00000001
 Deskew status                0x00000001 
 Link Fault Status            0x00000000
 RX Frame Error               0x00000000
 RX AM LOCK Condition         0x00000001 

---- Clearing MAC stats counters -----
---- Initialize PKT ROM Read address for IP_INST[0] ----
--------------------------------------
--------- Sending packets... ---------
--------------------------------------
----- Reading MAC stats counters -----
--------------------------------------

==========================================================================================
                        STATISTICS FOR BASE 20480 (Rx)                               
 ==========================================================================================
Fragmented Frames                : 0 
Jabbered Frames                  : 0 
Any Size with FCS Err Frame      : 0 
Right Size with FCS Err Fra      : 0 
Multicast data  Err Frames       : 0 
Broadcast data Err  Frames       : 0 
Unicast data Err  Frames         : 0 
Multicast control  Err Frame     : 0 
Broadcast control Err  Frame     : 0 
Unicast control Err  Frames      : 0 
Pause control Err  Frames        : 0 
64 Byte Frames                   : 0 
65 - 127 Byte Frames             : 16 
128 - 255 Byte Frames            : 0 
256 - 511 Byte Frames            : 0 
512 - 1023 Byte Frames           : 0 
1024 - 1518 Byte Frames          : 0 
1519 - MAX Byte Frames           : 0 
> MAX Byte Frames                : 0 
Rx Frame Starts                  : 16
Multicast data  OK  Frame        : 16
Broadcast data OK   Frame        : 0 
Unicast data OK   Frames         : 0
Multicast Control Frames         : 0 
Broadcast Control Frames         : 0 
Unicast Control Frames           : 0 
Pause Control Frames             : 0
Data and padding octets          : 800
Frame octets:                    : 1088
==========================================================================================
                        STATISTICS FOR BASE 20480 (Tx)                               
 ==========================================================================================
Fragmented Frames                : 0 
Jabbered Frames                  : 0 
Any Size with FCS Err Frame      : 0
Right Size with FCS Err Fra      : 0 
Multicast data  Err Frames       : 0 
Broadcast data Err  Frames       : 0 
Unicast data Err  Frames         : 0 
Multicast control  Err Frame     : 0 
Broadcast control Err  Frame     : 0 
Unicast control Err  Frames      : 0 
Pause control Err  Frames        : 0 
64 Byte Frames                   : 0
65 - 127 Byte Frames             : 16
128 - 255 Byte Frames            : 0 
256 - 511 Byte Frames            : 0 
512 - 1023 Byte Frames           : 0 
1024 - 1518 Byte Frames          : 0 
1519 - MAX Byte Frames           : 0 
> MAX Byte Frames                : 0 
Tx Frame Starts                  : 16 
Multicast data  OK  Frame        : 16
Broadcast data OK   Frame        : 0 
Unicast data OK   Frames         : 0 
Multicast Control Frames         : 0 
Broadcast Control Frames         : 0 
Unicast Control Frames           : 0 
Pause Control Frames             : 0
Data and padding octets          : 800
Frame octets:                    : 1088
------------ Done ---------------------
Note: Clock frequency readout must be scaled for display, if i_reconfig _clk is not 100MHz. For example, if i_reconfig _clk is 250MHz, the display should be scaled by x 2.5.