F-Tile Architecture and PMA and FEC Direct PHY IP User Guide
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: woy1678139842865
Ixiasoft
Visible to Intel only — GUID: woy1678139842865
Ixiasoft
7.6.2. Modifying the Scripts
There are several variables inside the script, such as setting up the channel links, PRBS pattern, loopback mode, BER test duration, and the TX equalizer settings that you must modify based on your design configuration. You must set the values of these variables in the script before running the test. The following procedures describes the steps to modify the script for each test:
A. Modify the Script for Device Initialization and Toolkit Bring-Up
- Open device_initialization.tcl script in any text editor.
- Make the following modifications to the device_initialization.tcl script:
set path <sof-file-path> set result_dir <my_directory> set device_die_name <device-name>
B. Modifying the Script to Run BER and Eye Measurement Tests
- Choose the script based on your design mode and open it in any text editor.
- Make the following modifications to the script:
- Set 1 to enable the test you want to run as shown below:
############### Tests to run: 0 = bypass, 1 = run ############### set run_ber_test 1 set run_eye_test 0
- Set up the test variables. There are six main variables that you need to modify in the link_test_parameters list in the script:
- TX logical channel (index 0)
- RX logical channel (index 1)
- PRBS pattern (index 2 and 3)
- Loopback mode (index 4)
- TX and RX PMA settings (index 5 to 11)
- Eye measurement settings (index 12 to 15)
Note: Currently the Transceiver Toolkit only supports RX PMA auto-adaptation mode. You can leave the RX PMA settings to the default values.For example, if you want to run the BER test between TX channel 0 and RX channel 0, set both index 0 and index 1 to value 0. You can also link TX and RX channels in different physical channel locations. For example, to link TX channel 0 to RX channel 1, set index 0 to value 0 and index 1 to value 1. In order to link TX and RX channels with different physical locations, make sure you have an external loopback, either through a loopback cable or card on the board. An example of the link_test_parameters settings is shown below:#################################################### ### Customize the test variable ### #################################################### # The list_test_parameters' indexing : # index 0 - TX Logical Channel # index 1 - RX Logical Channel # index 2 - TX PRBS Generator Pattern : # PRBS7,PRBS9,PRBS10,PRBS13,PRBS15,PRBS23,PRBS28, # PRBS31,QPRBS13,PRBS13Q,PRBS31Q,SSPR,SSPR1,SSPRQ # index 3 - RX PRBS Checker Pattern : PRBS7,PRBS9,PRBS10,PRBS13, # PRBS15,PRBS23,PRBS28,PRBS31,QPRBS13,PRBS13Q,PRBS31Q, # SSPR,SSPR1,SSPRQ # index 4 - Loopback Mode : PMA TX to RX Buffer lbpk - "TX2RXBUF" # ; PMA TX to RX parallel lpbk - "TX2RXPAR" # ; PMA RX to TX parallel lpbk - "RX2TXPAR" # index 5 - TX Pre-Tap 2 : {0 to 7} # index 6 - TX Pre-Tap 1 : {0 to 15} # index 7 - TX Main Tap : {0 to 46} # index 8 - TX Post-Tap 1 : {0 to 19} # index 9 - RX High Freq VGA Gain : {0 to 127} # index 10 - RX High Freq Boost : {0 to 63} # index 11 - RX DFE Data Tap 1 : {0 to 63} # index 12 - Enabling the eye height test : Enable - "true" ; # Disable - "false" # index 13 - Set the Bit Error Rate to measure Eye Height : # Min - 1.0E-1 Maximum - 1.0E-12 # index 14 - Enabling the eye width test : # Enable - "true" ; Disable - "false" # index 15 - Set the Bit Error Rate to measure Eye Width : # Min - 1.0E-1 Maximum - 1.0E-12 set link_test_parameters {{0 0 "PRBS23" "PRBS23" "TX2RXBUF" "0" "0" "0" "0" "0" "0" "0" "true" "1.0E-4" "true" "1.0E-4"} {1 1 "PRBS9" "PRBS9" "TX2RXBUF" "0" "0" "0" "0" "0" "0" "0" "true" "1.0E-4" "true" "1.0E-4"}}
Note: The example above depicts the settings for two links only. If you want to run the test for four links, you have to add two more rows in the link_test_parameters list accordingly. - You must set the criteria to stop the BER test for a channel, either based on maximum error bits or the BER test duration. The following code shows an example on how to have the BER test stop after 6 seconds and displays the status of the link every 2 seconds. The max_error_bits indicates the maximum number of error bits encountered by the link. The test stops after reaching the maximum number of error bits even if the maximum run time of 6 seconds has not elapsed.
############### Setup link run length ########################### set max_error_bits 10 set max_run_time_in_seconds 6 set checker_status_polling_interval_in_seconds 2
- Set 1 to enable the test you want to run as shown below:
C. Modifying the Script to Run Autosweep Test
- Choose the script based on your design mode and open it in any text editor.
- Make the following modifications to the script:
- Set up the test variables for TX and RX PMA sweep range. There are seven main variables you need to modify in the link_test_parameters list in this script:
- TX logical channel (index 0)
- RX logical channel (index 1)
- PRBS pattern (index 2 and 3)
- Loopback mode (index 4)
- Input parameters (index 5 to 11)
- Output metric (index 12 to 17)
- BER test duration (index 18)
#################################################### ### Customize the test variable ### #################################################### # The list_test_parameters' indexing : # index 0 - TX Logical Channel # index 1 - RX Logical Channel # index 2 - TX PRBS Generator Pattern : PRBS7,PRBS9,PRBS10,PRBS13, # PRBS15,PRBS23,PRBS28,PRBS31,QPRBS13,PRBS13Q,PRBS31Q, # SSPR,SSPR1,SSPRQ # index 3 - RX PRBS Checker Pattern : PRBS7,PRBS9,PRBS10,PRBS13, # PRBS15,PRBS23,PRBS28,PRBS31,QPRBS13,PRBS13Q,PRBS31Q, # SSPR,SSPR1,SSPRQ # index 4 - Loopback Mode : PMA TX to RX Buffer lbpk - "TX2RXBUF" # ; PMA TX to RX parallel lpbk - "TX2RXPAR" # ; PMA RX to TX parallel lpbk - "RX2TXPAR" # index 5 - TX Pre-Tap 2 : {0 to 7} if you put like 0:5 it # autosweeps the channel for each number start from 0 to 5 # index 6 - TX Pre-Tap 1 : {0 to 15} # index 7 - TX Main Tap : {0 to 46} 0,1.5 0,5,6 # index 8 - TX Post-Tap 1 : {0 to 19} # index 9 - RX High Freq VGA Gain : {0 to 127} # index 10 - RX High Freq Boost : {0 to 63} # index 11 - RX DFE Data Tap 1 : {0 to 63} # index 12 - Adding BER matric : "1" ; Disable - "0" # index 13 - Adding total height measurement matric : # Enable - "1" ; Disable - "0" # index 14 - Adding eye width time matric : # Enable - "1" ; Disable - "0" # index 15 - Adding eye width UI matric : # Enable - "1" ; Disable - "0" # index 16 - Extrapolarate Rate: # Min - 1E-1 ; Max - 1E-12 # index 17 - Extrapolarate Width Rate: # Min - 1E-1 ; Max - 1E-12 # index 18 - BER test duration per case (seconds): Max 1E3 set link_test_parameters {{0 0 "PRBS23" "PRBS23" "TX2RXBUF" "0:0" "0:1" "0:1" "0:0" "0:0" "0:0" "0:0" "1" "0" "0" "0" "1e-4" "1e-4" "2" } {1 1 "PRBS10" "PRBS10" "TX2RXBUF" "0:0" "0:1" "0:0" "0:0" "0:0" "0:0" "0:0" "1" "0" "0" "0" "1e-4" "1e-4" "2" }}
- You can get the Autosweep test data in xml format. The command shown below is in the Autosweep script and you can change the file name and result directory to your own file name and directory.
autosweep_get_data -outputfile <result-directory>/<file-name>.xml $autosweep_inst_id
- Set up the test variables for TX and RX PMA sweep range. There are seven main variables you need to modify in the link_test_parameters list in this script: