6.5. Hardware Design Example
   Follow these steps to test Ethernet-based design examples with enabled auto-negotiation and link training in hardware: 
   
  - Generate design example as described in Generating the Design.
- Modify the .qsf settings: 
     - Set device to match the appropriate ordering part number (OPN) for your design.
- Update the pinout to match the board and the design function.
- Assign the appropriate VID settings in your .qsf file to match your board.
 
- Generate the .sof file.
- Update board clock settings. The default value for the PHY reference clock is 156.25 MHz. The default value for the reconfiguration clock is 100 MHz.
- Insert appropriate electrical loopback plug into the Ethernet port.
- Program the design.
- Open .
- Navigate to the hardware directory <design_example>/hardware_test_design/hwtest directory.
- Run the following command in the Tcl shell:source main_<Ethernet_rate>.tcl set_jtag<number_of appropriate_JTAG_master> 
- Perform these steps if DAC connection is available for UX or patch cable/board to board for BK variants. 
     - Type command to read the seq cfg register:reg_read 0x101002C0 [Instance 0] reg_read 0x102002C0 [Instance 1] 
- Type command to set the ignore nonce value to 1 
       Note:- For Ethernet modes (50GE-1, 100GE-2, and 200GE-4) with FEC mode (Ethernet Technology Consortium RS(272, 258)), write to reg_write 0x10100300 0x737d0381 [Instance 0] reg_write 0x10200300 0x737d0381 [Instance 1] 
- For Ethernet modes (25GE-1, 50GE-2, and 400GE-8) with any FEC mode, write to reg_write 0x10100300 0x737d0381 [Instance 0] reg_write 0x10200300 0x737d0381 [Instance 1] 
- For other Ethernet modes: reg_write 0x10100300 0x737d0281 [Instance 0] reg_write 0x10200300 0x737d0281 [Instance 1] 
 
- For Ethernet modes (50GE-1, 100GE-2, and 200GE-4) with FEC mode (Ethernet Technology Consortium RS(272, 258)), write to 
- Type command to restart the AN sequencer:reg_write 0x101002c0 0x00002003 [Instance 0] reg_write 0x102002c0 0x00002003 [Instance 1] 
- Type command to read the debug status:reg_read 0x101003c0 [Instance 0] reg_read 0x102003c0 [Instance 1] The link is up if the command returns value 1f0.
 
- Type command to read the seq cfg register:
- Sending Frames between two ETH instances[Instance zero has base address 0x0 and instance 1 has base address 0x01000000].stop_pkt_gen 0x0 stop_pkt_gen 0x01000000 sleep 2 chkphy_status 0x0 chkphy_status 0x01000000 clear_all_stats 0x0 clear_all_stats 0x01000000 init_packet_rom "<variant_type>" 0x0 [e.g. init_packet_rom "50G" 0x0] init_packet_rom "<variant_type>" 0x01000000 
- Type these commands to show TX and RX packets on both instances, and they should match.chkmac_stats 0x0 chkmac_stats 0x01000000 
   The following sample output illustrates a successful hardware test:
   
 % set_jtag 10
Currently selected master is 10:
/devices/AGIB027R29AR(0|1|2|3)@1#USB-1#AGI FPGA Development kit#sj-
appslaba-400.altera.priv.altra.com/(link)/JTAG/(110:132 V1 #0)
/phy_0/master/ channels/local/mylib/master_1
% reg_read 0x101002c0 0xdeadc0de
% reg_read 0x101002c0 0x00002002
% reg_read 0x10100300 0x737d0201
% reg_write 0x10100300 0x737d0281 0
% reg_read 0x10100300 0x737d0281
% reg_write 0x101002c0 0x2003 0
% reg_read 0x101002c0 0x00002002
% reg_read 0x101003c0 0x000001f0
% chkphy_status
RX PHY Register Access: Checking Clock Frequencies (KHZ)
        TXCLK : 40283 (KHZ)
        RXCLK : 40285 (KHZ)
TX PLL Lock Status	   :0x0000000f
Rx Frequency Lock Status :0x0000000f
RX PCS Ready             :0x1
TX lanes Stable          :0x1
Deskewed Status          :0x1
Link Fault Status
Rx Frame Error           :0x00000000
Rx Am LOCK Condition     :0x1
% start_pkt_gen 
0
% stop_pkt_gen 
0
% Chkmac_stats
===================================================
            STATISTICS FOR BASE 12288 (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 Frames :0
Broadcast Control Err Frames :0
Unicast Control Err Frames   :0
pause Control Err Frames	 :0
64 Byte Frames	           :0
65 - 127 Byte Frames	     :32
128 - 255 Byte Frames	    :1
256 - 511 Byte Frames        :0
       
512 - 1023 Byte Frames       :1
1024 - 1518 Byte Frames      :0
1519 - MAX Byte Frames       :0
  
> MAX Byte Frames            :0
Rx Frame Startes             :34
Multicast data OK Frame      :33
Broadcast data OK Frame      :0
Unicast Data OK Frame        :0
Multicast Control Frames     :0
Broadcast Control Frames     :0
Unicast Control Frames       :0
Pause Control Frames         :0
Data and Padding Octets      :2671
Frame Octets                 :3283
============================================================
            STATISTICS FOR BASE 12288 (Tx)
============================================================
  
Fragmented Frames	         :0
Jabbered Frames	           :0
Any Size with FCS Err Frame   :0
Right Size with FCS Err Frame :0
Multicast data Err Frames	 :0
Broadcast data Err Frames	 :0
Unicast data Err Frames	   :0
Multicast Control Err Frames  :0
Broadcast Control Err Frames  :0
Unicast Control Err Frames	:0
pause Control Err Frames	  :0
64 Byte Frames	            :0
65 - 127 Byte Frames	      :32
128 - 255 Byte Frames	     :1
256 - 511 Byte Frames	     :0
512 - 1023 Byte Frames	    :1
1024 - 1518 Byte Frames	   :0
1519 - MAX Byte Frames	    :0
> MAX Byte Frames	         :0
Tx Frame Startes	          :34
Multicast data OK Frame	   :33
Broadcast data OK Frame	   :0
Unicast Data OK Frame	     :0
Multicast Control Frames	  :0
Broadcast Control Frames	  :0
Unicast Control Frames	    :0
Pause Control Frames	      :0
Data and Padding Octets	   :2671
Frame Octets	              :3283
0
%
------------------------------------------------------