Visible to Intel only — GUID: woy1678139842865
Ixiasoft
1. F-Tile Overview
2. F-Tile Architecture
3. Implementing the F-Tile PMA/FEC Direct PHY Intel® FPGA IP
4. Implementing the F-Tile Reference and System PLL Clocks Intel® FPGA IP
5. F-Tile PMA/FEC Direct PHY Design Implementation
6. Supported Tools
7. Debugging F-Tile Transceiver Links
8. F-Tile Architecture and PMA and FEC Direct PHY IP User Guide Archives
9. Document Revision History for the F-Tile Architecture and PMA and FEC Direct PHY IP User Guide
A. Appendix
2.1.1. FHT and FGT PMAs
2.1.2. 400G Hard IP and 200G Hard IP
2.1.3. PMA Data Rates
2.1.4. FEC Architecture
2.1.5. PCIe* Hard IP
2.1.6. Bonding Architecture
2.1.7. Deskew Logic
2.1.8. Embedded Multi-die Interconnect Bridge (EMIB)
2.1.9. IEEE 1588 Precision Time Protocol for Ethernet
2.1.10. Clock Networks
2.1.11. Reconfiguration Interfaces
2.2.1. PMA-to-Fracture Mapping
2.2.2. Determining Which PMA to Map to Which Fracture
2.2.3. Hard IP Placement Rules
2.2.4. IEEE 1588 Precision Time Protocol Placement Rules
2.2.5. Topologies
2.2.6. FEC Placement Rules
2.2.7. Clock Rules and Restrictions
2.2.8. Bonding Placement Rules
2.2.9. Preserving Unused PMA Lanes
2.2.2.1. Implementing One 200GbE-4 Interface with 400G Hard IP and FHT
2.2.2.2. Implementing One 200GbE-2 Interface with 400G Hard IP and FHT
2.2.2.3. Implementing One 100GbE-1 Interface with 400G Hard IP and FHT
2.2.2.4. Implementing One 100GbE-4 Interface with 400G Hard IP and FGT
2.2.2.5. Implementing One 10GbE-1 Interface with 200G Hard IP and FGT
2.2.2.6. Implementing Three 25GbE-1 Interfaces with 400G Hard IP and FHT
2.2.2.7. Implementing One 50GbE-1 and Two 25GbE-1 Interfaces with 400G Hard IP and FHT
2.2.2.8. Implementing One 100GbE-1 and Two 25GbE-1 Interfaces with 400G Hard IP and FHT
2.2.2.9. Implementing Two 100GbE-1 and One 25GbE-1 Interfaces with 400G Hard IP and FHT
2.2.2.10. Implementing 100GbE-1, 100GbE-2, and 50GbE-1 Interfaces with 400G Hard IP and FHT
3.1. F-Tile PMA/FEC Direct PHY Intel® FPGA IP Overview
3.2. Designing with F-Tile PMA/FEC Direct PHY Intel® FPGA IP
3.3. Configuring the IP
3.4. Signal and Port Reference
3.5. Bit Mapping for PMA and FEC Mode PHY TX and RX Datapath
3.6. Clocking
3.7. Custom Cadence Generation Ports and Logic
3.8. Asserting Reset
3.9. Bonding Implementation
3.10. Independent Port Configurations
3.11. Configuration Registers
3.12. Configurable Quartus® Prime Software Settings
3.13. Configuring the F-Tile PMA/FEC Direct PHY Intel® FPGA IP for Hardware Testing
3.14. Hardware Configuration Using the Avalon® Memory-Mapped Interface
3.3.1. General and Common Datapath Options
3.3.2. TX Datapath Options
3.3.3. RX Datapath Options
3.3.4. RS-FEC (Reed Solomon Forward Error Correction) Options
3.3.5. Avalon® Memory Mapped Interface Options
3.3.6. Register Map IP-XACT Support
3.3.7. Example Design Generation
3.3.8. Analog Parameter Options
3.4.1. TX and RX Parallel and Serial Interface Signals
3.4.2. TX and RX Reference Clock and Clock Output Interface Signals
3.4.3. Reset Signals
3.4.4. RS-FEC Signals
3.4.5. Custom Cadence Control and Status Signals
3.4.6. TX PMA Control Signals
3.4.7. RX PMA Status Signals
3.4.8. TX and RX PMA and Core Interface FIFO Signals
3.4.9. PMA Avalon® Memory Mapped Interface Signals
3.4.10. Datapath Avalon® Memory Mapped Interface Signals
3.5.1. Parallel Data Mapping Information
3.5.2. TX and RX Parallel Data Mapping Information for Different Configurations
3.5.3. Example of TX Parallel Data for PMA Width = 8, 10, 16, 20, 32 (X=1)
3.5.4. Example of TX Parallel Data for PMA width = 64 (X=2)
3.5.5. Example of TX Parallel Data for PMA width = 64 (X=2) for FEC Direct Mode
3.8.1. Reset Signal Requirements
3.8.2. Power On Reset Requirements
3.8.3. Reset Signals—Block Level
3.8.4. Reset Signals—Descriptions
3.8.5. Status Signals—Descriptions
3.8.6. Run-time Reset Sequence—TX
3.8.7. Run-time Reset Sequence—RX
3.8.8. Run-time Reset Sequence—TX + RX
3.8.9. Run-time Reset Sequence—TX with FEC
4.1. IP Parameters
4.2. IP Port List
4.3. Mode of System PLL - System PLL Reference Clock and Output Frequencies
4.4. Guidelines for F-Tile Reference and System PLL Clocks Intel® FPGA IP Usage
4.5. Guidelines for Refclk #i is Active At and After Device Configuration
4.6. Guidelines for Obtaining the Lock Status and Resetting the FGT and FHT TX PLLs
5.1. Implementing the F-Tile PMA/FEC Direct PHY Design
5.2. Instantiating the F-Tile PMA/FEC Direct PHY Intel® FPGA IP
5.3. Implementing a RS-FEC Direct Design in the F-Tile PMA/FEC Direct PHY Intel® FPGA IP
5.4. Instantiating the F-Tile Reference and System PLL Clocks Intel® FPGA IP
5.5. Enabling Custom Cadence Generation Ports and Logic
5.6. Connecting the F-Tile PMA/FEC Direct PHY Design IP
5.7. Simulating the F-Tile PMA/FEC Direct PHY Design
5.8. F-Tile Interface Planning
7.2.1. Modifying the Design to Enable F-Tile Transceiver Debug
7.2.2. Programming the Design into an Intel FPGA
7.2.3. Loading the Design to the Transceiver Toolkit
7.2.4. Creating Transceiver Links
7.2.5. Running BER Tests
7.2.6. Running Eye Viewer Tests
7.2.7. Running Link Optimization Tests
7.2.8. Checking FEC Statistics
7.2.9. Vertical Bathtub Curve Measurements (VBCM) Data
7.6.1. Supported Transceiver Toolkit Scripts
7.6.2. Modifying the Scripts
A. Modify the Script for Device Initialization and Toolkit Bring-Up
B. Modifying the Script to Run BER and Eye Measurement Tests
C. Modifying the Script to Run Autosweep Test
7.6.3. Script Execution
7.6.4. Example of the Results in Tcl Console
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
You must modify the device initialization script and update the device that are on the JTAG chain and point to the .sof that you have programmed.
- 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>
Figure 150. Device Initialization Settings
Note: If you are using the Windows platform, use the .sof file name instead of sof file path in step 2 above.
B. Modifying the Script to Run BER and Eye Measurement Tests
Refer to the Transceiver Toolkit Scripts table to select the Transceiver Toolkit script for your desired mode.
- 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: