F-Tile Dynamic Reconfiguration Design Example User Guide

ID 710582
Date 4/03/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

2.1.2. CPRI Multirate Hardware Design Example

Figure 8. CPRI Multirate Hardware Design Example Block Diagram

In the hardware design example, the reset, status, and control signals from packet clients, F-Tile CPRI PHY Multirate Intel® FPGA IP, and F-Tile Dynamic Reconfiguration Suite Intel® FPGA IP in the example design are connected to In-System Sources and Probes IPs (ISSP). The hardware test scripts open service to the ISSP to read and drive the values. A JTAG host is instantiated to access the Avalon® memory-mapped interfaces.

Hardware Flow for Design Example:
  1. Enable the packet round-trip measurement.
    • Perform the deterministic latency test flow.
    • Print the deterministic latency data to det_latency.log file.
  2. Power up the CPRI PHY Multirate IP DUT based on profile 0 (24G RSFEC).
  3. Initialize the testbench variables based on power-up profile. The variables are:
    • cpri_speed: To indicate the speed of the current profile.
    • enable_rsfec: To indicate whether RS-FEC is enabled or disabled for the current profile.
    • current_dr_profile: To indicate the ID of the current profile.
  4. Perform dynamic reconfiguration.
  5. Check the testbench error flag and determine whether testbench passed or failed. This error flag is set to 1 if there is any error after dynamic reconfiguration traffic tests.
For customization, you can modify the DR_TRANSITION array variable in src or parameter file to configure test flow. Profile ID is passed into Dynamic Reconfiguration IP to configure the intended dynamic reconfiguration task.
  • DR_TRANSITION: Intended dynamic reconfiguration sequence array. The size of this array variable determines the number of dynamic reconfiguration to be performed.
For example, you want to achieve this Dynamic Reconfiguration sequence: 24G RS-FEC > 10G > 4.9G. The variables changes are:
set DR_TRANSITION(0)   "10G"
set DR_TRANSITION(1)   " 4P9G"

The sample output for the CPRI Multirate hardware design example is shown below.

Sample output for CPRI Multirate hardware design example:

Info: Number of Channels = 1
Info: JTAG Port ID       = 1
Info: Power Up Variant   = 24G_RSFEC
Info: Start of ftile_dr_cpri_test

Info: Basic CPRI DR test

	INFO: Checking PLL lock status...
	iopll_sclk_locked 1
	INFO: IOPLL sclk is locked
	INFO: Set Reconfig Reset
	INFO: Release Reconfig Reset
Loop 0
	INFO: Set RT Counter
	INFO: Channel 0: Set TX Reset
	INFO: Channel 0 : Checking tx reset ack n status...
	INFO: TX fully in reset state 
	INFO: Channel 0: Set RX Reset
	INFO: Channel 0 : Checking rx reset ack n status...
	INFO: RX fully in reset state 
	Info: Channel: 0 Configuring ED to CPRI 10G ....
	Info: Wait for DR Ready....
	Info: Trigger DR interrupt
	Info: Wait for DR interrupt Ack....
		Info: DR Request acknowledged
	Info: Wait for DR Config to be done....
		Info: DONE Reconfigure to 10G.
	INFO: Channel 0: Configuring cpri_speed
	Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 10G ....
	INFO: Channel 0: Release TX Reset
	Info: Check TX Ready Attempt: 1
	INFO: Channel 0 : Checking TX ready status...
		Info: tx_ready = 1
	INFO: Channel 0: Release RX Reset
	Info: Check RX Ready Attempt: 1
	INFO: Channel 0 : Checking RX ready status...
		Info: rx_ready = 1
	INFO: Channel 0 : Checking RX PCS ready status...
		Info: rx_pcs_ready  = 1
	Info:Info: Channel: 0 Configuring DL ....
	Info Channel: 0 sending packets in progress, waiting for checker pass ***
	Info Channel: 0 waiting for measure_valid to assert...
	INFO: Channel 0 : Checking hyperframe sync status...
	INFO: hyperframe sync asserted
	INFO: Channel 0 : Checking RT count done status...
	INFO: RT count done asserted
	Channel 0 : Read Determenistic latency counts
	Channel 0 : Get checker_pass status:
	Checker value = 1
	Checker status = Passed!

**
*****************************************

	INFO: Channel 0: Set TX Reset
	INFO: Channel 0 : Checking tx reset ack n status...
	INFO: TX fully in reset state 
	INFO: Channel 0: Set RX Reset
	INFO: Channel 0 : Checking rx reset ack n status...
	INFO: RX fully in reset state 
	Info: Channel: 0 Configuring ED to CPRI 9P8G ....
	Info: Wait for DR Ready....
	Info: Trigger DR interrupt
	Info: Wait for DR interrupt Ack....
		Info: DR Request acknowledged
	Info: Wait for DR Config to be done....
		Info: DONE Reconfigure to 9P8G.
	INFO: Channel 0: Configuring cpri_speed
	Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 9P8G ....
	INFO: Channel 0: Release TX Reset
	Info: Check TX Ready Attempt: 1
	INFO: Channel 0 : Checking TX ready status...
		Info: tx_ready = 1
	INFO: Channel 0: Release RX Reset
	Info: Check RX Ready Attempt: 1
	INFO: Channel 0 : Checking RX ready status...
		Info: rx_ready = 1
	Info:Info: Channel: 0 Configuring DL ....
	Info Channel: 0 sending packets in progress, waiting for checker pass ***
	Info Channel: 0 waiting for measure_valid to assert...
	INFO: Channel 0 : Checking hyperframe sync status...
	INFO: hyperframe sync asserted
	INFO: Channel 0 : Checking RT count done status...
	INFO: RT count done asserted
	Channel 0 : Read Determenistic latency counts
	Channel 0 : Get checker_pass status:
	Checker value = 1
	Checker status = Passed!

**
*****************************************

	INFO: Channel 0: Set TX Reset
	INFO: Channel 0 : Checking tx reset ack n status...
	INFO: TX fully in reset state 
	INFO: Channel 0: Set RX Reset
	INFO: Channel 0 : Checking rx reset ack n status...
	INFO: RX fully in reset state 
	Info: Channel: 0 Configuring ED to CPRI 4P9G ....
	Info: Wait for DR Ready....
	Info: Trigger DR interrupt
	Info: Wait for DR interrupt Ack....
		Info: DR Request acknowledged
	Info: Wait for DR Config to be done....
		Info: DONE Reconfigure to 4P9G.
	INFO: Channel 0: Configuring cpri_speed
	Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 4P9G ....
	INFO: Channel 0: Release TX Reset
	Info: Check TX Ready Attempt: 1
	INFO: Channel 0 : Checking TX ready status...
		Info: tx_ready = 1
	INFO: Channel 0: Release RX Reset
	Info: Check RX Ready Attempt: 1
	INFO: Channel 0 : Checking RX ready status...
		Info: rx_ready = 1
	Info:Info: Channel: 0 Configuring DL ....
	Info Channel: 0 sending packets in progress, waiting for checker pass ***
	Info Channel: 0 waiting for measure_valid to assert...
	INFO: Channel 0 : Checking hyperframe sync status...
	INFO: hyperframe sync asserted
	INFO: Channel 0 : Checking RT count done status...
	INFO: RT count done asserted
	Channel 0 : Read Determenistic latency counts
	Channel 0 : Get checker_pass status:
	Checker value = 1
	Checker status = Passed!

**
*****************************************

	INFO: Channel 0: Set TX Reset
	INFO: Channel 0 : Checking tx reset ack n status...
	INFO: TX fully in reset state 
	INFO: Channel 0: Set RX Reset
	INFO: Channel 0 : Checking rx reset ack n status...
	INFO: RX fully in reset state 
	Info: Channel: 0 Configuring ED to CPRI 2P4G ....
	Info: Wait for DR Ready....
	Info: Trigger DR interrupt
	Info: Wait for DR interrupt Ack....
		Info: DR Request acknowledged
	Info: Wait for DR Config to be done....
		Info: DONE Reconfigure to 2P4G.
	INFO: Channel 0: Configuring cpri_speed
	Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 2P4G ....
	INFO: Channel 0: Release TX Reset
	Info: Check TX Ready Attempt: 1
	INFO: Channel 0 : Checking TX ready status...
		Info: tx_ready = 1
	INFO: Channel 0: Release RX Reset
	Info: Check RX Ready Attempt: 1
	INFO: Channel 0 : Checking RX ready status...
		Info: rx_ready = 1
	Info:Info: Channel: 0 Configuring DL ....
	Info Channel: 0 sending packets in progress, waiting for checker pass ***
	Info Channel: 0 waiting for measure_valid to assert...
	INFO: Channel 0 : Checking hyperframe sync status...
	INFO: hyperframe sync asserted
	INFO: Channel 0 : Checking RT count done status...
	INFO: RT count done asserted
	Channel 0 : Read Determenistic latency counts
	Channel 0 : Get checker_pass status:
	Checker value = 1
	Checker status = Passed!

**
*****************************************

	INFO: Channel 0: Set TX Reset
	INFO: Channel 0 : Checking tx reset ack n status...
	INFO: TX fully in reset state 
	INFO: Channel 0: Set RX Reset
	INFO: Channel 0 : Checking rx reset ack n status...
	INFO: RX fully in reset state 
	Info: Channel: 0 Configuring ED to CPRI 24G_RSFEC ....
	Info: Wait for DR Ready....
	Info: Trigger DR interrupt
	Info: Wait for DR interrupt Ack....
		Info: DR Request acknowledged
	Info: Wait for DR Config to be done....
		Info: DONE Reconfigure to 24G_RSFEC.
	INFO: Channel 0: Configuring cpri_speed
	Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 24G_RSFEC ....
	INFO: Channel 0: Release TX Reset
	Info: Check TX Ready Attempt: 1
	INFO: Channel 0 : Checking TX ready status...
		Info: tx_ready = 1
	INFO: Channel 0: Release RX Reset
	Info: Check RX Ready Attempt: 1
	INFO: Channel 0 : Checking RX ready status...
		Info: rx_ready = 1
	INFO: Channel 0 : Checking RX PCS ready status...
		Info: rx_pcs_ready  = 1
	Info:Info: Channel: 0 Configuring DL ....
	Info:Info: Channel: 0 Programing RSFEC WA into DL counter ....
	Info:Info: Channel: 0 Starting DL ....
	Info Channel: 0 sending packets in progress, waiting for checker pass ***
	Info Channel: 0 waiting for measure_valid to assert...
	INFO: Channel 0 : Checking hyperframe sync status...
	INFO: hyperframe sync asserted
	INFO: Channel 0 : Checking RT count done status...
	INFO: RT count done asserted
	Channel 0 : Read Determenistic latency counts
	Channel 0 : Get checker_pass status:
	Checker value = 0
	Checker status = Passed!

**
*****************************************

Info: End of ftile_cpri_dr_test
Info: Test <ftile_cpri_dr_test> Passed