Low Latency 100G Ethernet Design Example User Guide

ID 683371
Date 11/08/2017
Public

1.5. Compiling and Testing the Design Example in Hardware

To compile and run a demonstration test on the hardware design example, follow these steps:

  1. Ensure hardware design example generation is complete.
  2. In the Quartus® Prime software, open the Quartus® Prime project <design_example_dir>/hardware_test_design/eth_ex_ 100g_a10.qpf.
  3. Before compiling, ensure you have implemented the workaround from the KDB Answer How do I compensate for the jitter of PLL cascading or non-dedicated clock path for Arria 10 PLL reference clock? if relevant for your software release.
  4. On the Processing menu, click Start Compilation.
  5. After successful compilation, a .sof file is available in your specified directory. Follow these steps to program the hardware design example on the Arria 10 device:
    1. On the Tools menu, click Programmer.
    2. In the Programmer, click Hardware Setup.
    3. Select a programming device.
    4. Select and add the Arria 10 GX Transceiver Signal Integrity Development Kit to which your Quartus® Prime session can connect.
    5. Ensure that Mode is set to JTAG.
    6. Select the Arria 10 device and click Add Device. The Programmer displays a block diagram of the connections between the devices on your board.
    7. In the row with your .sof, check the box for the .sof.
    8. Check the box in the Program/Configure column.
    9. Click Start.
    10. After the hardware design example is configured on the Arria 10 device, in the Quartus® Prime software, on the Tools menu, click System Debugging Tools > System Console.
  6. In the Tcl Console pane, type cd hwtest to change directory to <design_example_dir>/hardware_test_design/hwtest.
  7. Type source main.tcl.
  8. Type run_test.

The successful test run displays output confirming the following behavior:

  1. Turning off packet generation
  2. Enabling loopback
  3. Waiting for RX clock to settle
  4. Printing PHY status
  5. Clearing MAC statistics counters
  6. Sending packets
  7. Reading MAC statistics counters
  8. Printing MAC statistics counters, which show 0 in all error counters

The following sample output illustrates a successful test run:


--- Turning off packet generation ---- 
--------------------------------------

--------- Enabling loopback ----------
--------------------------------------

--- Wait for RX clock to settle... ---
--------------------------------------

-------- Printing PHY status ---------
--------------------------------------

 RX PHY Register Access: Checking Clock Frequencies (KHz)

          REFCLK                :644530 (KHZ)
          TXCLK                 :390624   (KHZ)
          RXCLK                 :390625   (KHZ)
          RX RECOV CLK          :322265   (KHZ)
          TX-IO CLOCK           :322265   (KHZ)
 RX PHY Status Polling

 Tx PLL Lock Status             0x000003ff

 Rx Frequency Lock Status       0x000003ff

 Mac Clock in OK Condition?     0x00000007

 Rx Frame Error                 0x00000000

 Rx PHY Fullly Aligned?         0x00000001

---- Clearing MAC stats counters -----
--------------------------------------

--------- Sending packets... ---------
--------------------------------------

----- Reading MAC stats counters -----
--------------------------------------


 ======================================================================
                        STATISTICS FOR BASE 0x0900 (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             : 6894742
128 - 255 Byte Frames            : 9147409
256 - 511 Byte Frames            : 8089346
512 - 1023 Byte Frames           : 3411180
1024 - 1518 Byte Frames          : 347630
1519 - MAX Byte Frames           : 40042
> MAX Byte Frames                : 0
Rx Frame Starts                  : 27930349
Multicast data OK  Frame         : 0
Broadcast data OK  Frame         : 0
Unicast data OK  Frames          : 27929934
Multicast Control Frames         : 0
Broadcast Control Frames         : 0
Unicast Control Frames           : 415
Pause Control Frames             : 0
 ======================================================================
                        STATISTICS FOR BASE 0x0800 (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             : 6894742
128 - 255 Byte Frames            : 9147409
256 - 511 Byte Frames            : 8089346
512 - 1023 Byte Frames           : 3411180
1024 - 1518 Byte Frames          : 347630
1519 - MAX Byte Frames           : 40042
> MAX Byte Frames                : 0
Tx Frame Starts                  : 27930349
Multicast data OK  Frame         : 0
Broadcast data OK  Frame         : 0
Unicast data OK  Frames          : 27929934
Multicast Control Frames         : 0
Broadcast Control Frames         : 0
Unicast Control Frames           : 415
Pause Control Frames             : 0
---------------- Done ----------------