E-Tile Hard IP Intel® Stratix® 10 Design Examples User Guide: Ethernet, CPRI PHY, and Dynamic Reconfiguration
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: uql1551164311059
Ixiasoft
Visible to Intel only — GUID: uql1551164311059
Ixiasoft
2.3.2.2. 100GE MAC+PCS with Optional RS-FEC and PTP Hardware Design Example
- E-Tile Hard IP for Ethernet Intel FPGA IP core.
- Client logic that coordinates the programming of the IP core and packet generation.
- Time-of-day (ToD) module to provide a continuous flow of current time-of-day information to the IP core.
- PIO block to store RX and TX PTP timestamp for accuracy calculation and to send PTP 2-step timestamp request.
- Avalon® memory-mapped interface address decoder to decode reconfiguration address space for MAC, transceiver, and RS-FEC modules during reconfiguration accesses.
- JTAG controller that communicates with the System Console. You communicate with the client logic through the System Console.
The following sample output illustrates a successful hardware test run for a 100GE, MAC+PCS with RS-FEC, non-PTP IP core variation. The test results are located at <design_example_dir>/hardware_test_design/hwtest_ptp/c3_elane_xcvr_loopback_test.log or <design_example_dir>/hardware_test_design/hwtest_ptp/c3_elane_traffic_basic_test.log.
Info: Set JTAG Master Service Path Info: Opened JTAG Master Service Test Start time is: 13:25:08 Test Start date is: 03/04/2019 Info: Cycling reset ... Successfully Write Channel 0 XCVR CSR Register offset = 0x84, data = 0x1 . . . Successfully Read Channel 0 XCVR CSR Register offset = 0x88, data = 0x8 C3 EHIP XCVR Channel 0 Loopback mode is successfully enabled Successfully Write Channel 1 XCVR CSR Register offset = 0x84, data = 0x1 . . . Successfully Read Channel 1 XCVR CSR Register offset = 0x88, data = 0x8 C3 EHIP XCVR Channel 1 Loopback mode is successfully enabled . . . Successfully Read Channel 2 XCVR CSR Register offset = 0x88, data = 0x8 C3 EHIP XCVR Channel 2 Loopback mode is successfully enabled Successfully Write Channel 3 XCVR CSR Register offset = 0x84, data = 0x1 . . . Successfully Write Channel 3 XCVR CSR Register offset = 0x8a, data = 0x80 Successfully Read Channel 3 XCVR CSR Register offset = 0x88, data = 0x8 C3 EHIP XCVR Channel 3 Loopback mode is successfully enabled Successfully Write EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x0 . . . Successfully Read EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x0 C3 EHIP System Reset is successfully Test End time is: 13:25:09 Test End date is: 03/04/2019 Info: Closed JTAG Master Service Info: Test <c3_ehip_xcvr_loopback_test> Passed
Info: Set JTAG Master Service Path Info: Opened JTAG Master Service Test Start time is: 13:25:09 Test Start date is: 03/04/2019 Info: Read all EHIP CSR registers Successfully Read EHIP User Register phy_revid , offset = 0x300, data = 0x11112015 Successfully Read EHIP User Register phy_scratch , offset = 0x301, data = 0x0 . . . Successfully Read EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x0 C3 EHIP System Reset is successfully Info: Stopping the traffic generator Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x87 Info: clearing the statistics Successfully Write EHIP User Register cntr_tx_config , offset = 0x845, data = 0x1 Successfully Write EHIP User Register cntr_rx_config , offset = 0x945, data = 0x1 Info: Enabling the statistics Successfully Write EHIP User Register cntr_tx_config , offset = 0x845, data = 0x0 Successfully Write EHIP User Register cntr_rx_config , offset = 0x945, data = 0x0 Info: Starting the traffic generator Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x85 Successfully Read EHIP User Register cntr_tx_fragments_lo , offset = 0x800, data = 0x0 Info: Stopping the traffic generator Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x87 Successfully Read EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x87 . . . Successfully Read EHIP User Register cntr_rx_badlt_hi , offset = 0x969, data = 0x0 Info: Test iteration 1 is completed Successfully Read RSFEC Register rsfec_top_rx_cfg , offset = 0x14, data = 0x1111 Successfully Read RSFEC Register arbiter_base_cfg , offset = 0x0, data = 0x1 Successfully Read RSFEC Register rsfec_top_clk_cfg , offset = 0x4, data = 0xf00 Successfully Read RSFEC Register rsfec_top_tx_cfg , offset = 0x10, data = 0x0 Successfully Write RSFEC Register rsfec_top_tx_cfg , offset = 0x10, data = 0x10001666 Successfully Read RSFEC Register rsfec_top_tx_cfg , offset = 0x10, data = 0x10001666 Successfully Write RSFEC Register rsfec_top_tx_cfg , offset = 0x10, data = 0x0 Successfully Read RSFEC Register rsfec_top_tx_cfg , offset = 0x10, data = 0x0 Test End time is: 13:25:21 Test End date is: 03/04/2019 Info: Closed JTAG Master Service Info: Test <c3_ehip_traffic_basic_test> Passed
Info: Set JTAG Master Service Path Info: Opened JTAG Master Service Test Start time is: 13:25:21 Test Start date is: 03/04/2019 Successfully Write EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x0 Successfully Write EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x1 . . . Successfully Read EHIP User Register phy_ehip_csr_soft_reset , offset = 0x310, data = 0x0 C3 EHIP System Reset is successfully Successfully Write Channel 0 XCVR CSR Register offset = 0x84, data = 0x0 Successfully Write Channel 0 XCVR CSR Register offset = 0x85, data = 0x0 . . . Successfully Write Channel 3 XCVR CSR Register offset = 0x93, data = 0x0 Internal Loopback iCal Status Successfully Write Channel 0 XCVR CSR Register offset = 0x84, data = 0x0 . . . Successfully Write Channel 0 XCVR CSR Register offset = 0x93, data = 0x0 iCal is done successfully on channel 0 Successfully Write Channel 1 XCVR CSR Register offset = 0x84, data = 0x0 . . . Successfully Write Channel 3 XCVR CSR Register offset = 0x93, data = 0x0 Info: Cycling reset ... Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x8, data = 0x40 Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x9, data = 0x1 Successfully Read EHIP Traffic GEN/CHK Register, offset = 0x9, data = 0x1 Info: clearing the statistics Successfully Write EHIP User Register cntr_tx_config , offset = 0x845, data = 0x1 Successfully Write EHIP User Register cntr_rx_config , offset = 0x945, data = 0x1 Info: Enabling the statistics Successfully Write EHIP User Register cntr_tx_config , offset = 0x845, data = 0x0 Successfully Write EHIP User Register cntr_rx_config , offset = 0x945, data = 0x0 Info: Accuracy measurement settings Info: UI Value = 0x0009EE01 Info: TX Extra Latency = 0xc69814 Info: RX Extra Latency = 0x5467088 Successfully Write EHIP User Register tx_ptp_extra_latency , offset = 0xa0a, data = 0xc698 Successfully Read EHIP User Register tx_ptp_extra_latency , offset = 0xa0a, data = 0xc698 Successfully Write EHIP User Register rx_ptp_extra_latency , offset = 0xb06, data = 0x80054670 Successfully Read EHIP User Register rx_ptp_extra_latency , offset = 0xb06, data = 0x80054670 Info: Waiting for VL offset data ready Successfully Read EHIP Soft PTP Register vl_offset_data0_lo , offset = 0xc10, data = 0xc000008c Info: All VL data reading, calculation of VL offset and reloading new VL offset... Reading FEC lane mapping and deskew ... Lane map 0 = 0 Lane map 1 = 1 Lane map 2 = 2 Lane map 3 = 3 Lane 0 skew = 1 Lane 1 skew = 2 Lane 2 skew = 1 Lane 3 skew = 2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ gen_vl_data_fec: Input Deskew_delay = 0x00000001 gen_vl_data_fec: Input Selected_pl = 0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ============================================================================================ before-rotation: VL[PL] 0[0], deskew_delay = 0x1 UI, vl_offset_bits = 1 After Rotation: calc_vl_offset done - RVL 4, LPL 0, LVL 0 Sign=0, NS=0, FNS=2542 For LOCAL_VL=0 --> CALC_VL_OFFSET=0x000009EE, LOCAL_PL=0, REMOTE_VL=4 Final Calculated value - 325380 ============================================================================================ . . . ============================================================================================ before-rotation: VL[PL] 19[0], deskew_delay = 0x1 UI, vl_offset_bits = 5 before-rotation: VL[PL] 19[0], deskew_delay = 0x1 UI, vl_offset_bits_shifted = -325 After Rotation: calc_vl_offset done - RVL 3, LPL 0, LVL 19 Sign=1, NS=12, FNS=39719 For LOCAL_VL=19 --> CALC_VL_OFFSET=0x800C9B27, LOCAL_PL=0, REMOTE_VL=3 Final Calculated value - 274983654275 ============================================================================================ Writing new VL offsets ... write_vl_offset Loading vls data..... Successfully Write EHIP Soft PTP Register vl_offset0_lo , offset = 0xc40, data = 0x4 . . . Successfully Write EHIP Soft PTP Register vl_offset19_hi , offset = 0xc67, data = 0x800c9b27 Info: Waiting for PTP RX ready... Successfully Read EHIP PIO Register, offset = 0x0, data = 0x7 . . . Successfully Read EHIP PIO Register, offset = 0xc, data = 0x101 Info: Iteration = 1 : TX Timestamp = 0000000000060ca82f0f8fa7, RX Timestamp = 0000000000060ca82f0e78eb, Accuracy Difference = -1.08880615 ns Successfully Write EHIP PIO Register, offset = 0xc, data = 0x0 Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x57 Successfully Write EHIP PIO Register, offset = 0xc, data = 0x102 Successfully Write EHIP Traffic GEN/CHK Register, offset = 0x10, data = 0x55 Successfully Read EHIP User Register cntr_tx_64b_lo , offset = 0x816, data = 0x2 Successfully Read EHIP User Register cntr_rx_64b_lo , offset = 0x916, data = 0x2 Successfully Read EHIP PIO Register, offset = 0x4, data = 0x90e52f43 Successfully Read EHIP PIO Register, offset = 0x5, data = 0x60f25 Successfully Read EHIP PIO Register, offset = 0x6, data = 0x0 Successfully Read EHIP PIO Register, offset = 0x8, data = 0x90e68e57 Successfully Read EHIP PIO Register, offset = 0x9, data = 0x60f25 Successfully Read EHIP PIO Register, offset = 0xa, data = 0x0 Successfully Read EHIP PIO Register, offset = 0x7, data = 0x2 Successfully Read EHIP PIO Register, offset = 0xc, data = 0x102 . . . Info: Iteration = 100 : TX Timestamp = 00000000000a1d8d0ad81ed6, RX Timestamp = 00000000000a1d8d0ad982d9, Accuracy Difference = 1.39067078 ns Info: Stopping the traffic generator Successfully Write EHIP PIO Register, offset = 0xc, data = 0x0 . . . Successfully Read EHIP User Register cntr_rx_badlt_hi , offset = 0x969, data = 0x0 Test End time is: 13:25:39 Test End date is: 03/04/2019 Info: Closed JTAG Master Service Info: Test <c3_ehip_ptp_traffic_basic_test> Passed