CPRI Intel® FPGA IP User Guide

ID 683595
Date 5/17/2024
Public
Document Table of Contents

3.4. Start-Up Sequence Following Reset

After reset, if you turned on Enable start-up sequence state machine in the CPRI IP core, the internal state machine performs link synchronization and other initialization tasks. If you did not turn on Enable start-up sequence state machine, user logic should perform these functions.

Figure 26. Start-up states and transitions Figure From CPRI v7.0 Specification With Intel® FPGA IP Core AdditionsStates and transitions marked in black are from the CPRI v7.0 specification Figure 30: Start-up states and transitions. Additional transitions from State G that the Intel® FPGA IP core implements are marked in blue.

The internal state machine implements the start-up state machine transitions shown in section 4.5.2, Figure 30: Start-up states and transitions, and described in section 4.5.3, in the CPRI specification. In addition, the internal state machine implements the following transitions from State G: Passive Link.

  • If you assert reconfig_reset, the start-up state machine transitions to State A.
  • If the IP core detects any of the following situations, the start-up state machine transitions to State B:
    • Deassertion of reconfig_reset.
    • Loss of signal (LOS). Refer to Direct L1 Control and Status Interface and FLSAR Register.
    • Loss of frame (LOF). Refer to Direct L1 Control and Status Interface and FLSAR Register.
    • Remote alarm indication (RAI). Refer to Direct L1 Control and Status Interface and FLSAR Register.
    • L1 start-up timer expiration. If you turn on Enable start-up sequence state machine option, the IP core responds to both the nego_l1_timer_expired port and startup_timer_expired field of the START_UP_SEQ register at offset 0x24.
  • When HFNSYNC = 1, either read from the L1_STATUS_REGISTER offset 0x04 or from state_l1_sync[2:0], set nego_bitrate_complete_1. Then, the start-up state machine transitions from B to C.
  • If the IP core detects that protocol negotiation is complete, the start-up state machine transitions to State C. The IP core detects that protocol negotiation is not complete if the following conditions hold:
    • You set nego_protocol_complete signal to 0 when you turn off Enable protocol version and C&M channel setting auto-negotiation option, or
    • nego_protocol_complete field of the START_UP_SEQ register at offset 0x24 has the value of 0, or
    • Slave protocol version does not match the protocol version of the CPRI master. Specifically, the rx_prot_ver and tx_prot_ver fields of the PROT_VER register at offset 0x10 have different values. When you turn on Enable protocol version and C&M channel setting auto-negotiation option, the IP core allows deframer to detect the incoming protocol version to the rx_prot_ver, and compare it to the proposed tx_prot_ver. If they are different, IP core detects that protocol negotiation is not complete. With this option ON, you can tie nego_protocol_complete input port to 0. Internally, it is set to 1 once the protocol negotiation is completed.
  • When in State C, either of the following condition moves to State D:
    • When you turn on Enable protocol version and C&M channel setting auto-negotiation (prot_ver_auto sets to 1), the IP core allows deframer to detect the incoming protocol version to the rx_prot_ver, and compare it to the proposed tx_prot_ver. If the value matches, it will set nego_protocol_complete to 1 internally, the nego_protocol_complete can be tie off to 0 externally.
    • If Enable protocol version and C&M channel setting auto-negotiation is disabled. You must manually change the PROT_VER[7:0] register offset 0x10 tx_prot_ver each iteration (you can wait for few milisecond before changing to new value of 2 or 1) until read back for rx_prot_ver_valid is 1, then drive the nego_protocol_complete to 1.
  • If the IP core detects that control and management negotiation is complete, the start-up state machine transitions to State D. The IP core detects that control and management negotiation is not complete if the following conditions hold:
    • You set nego_protocol_complete signal to 0 when you turn off Enable protocol version and C&M channel setting auto-negotiation option, or
    • nego_cm_complete field of the START_UP_SEQ register at offset 0x24 has the value of 0, or
    • rx_slow_cm_rate_valid field of the CM_STATUS register has the value of 0, and
    • rx_fast_cm_ptr_valid field of the CM_STATUS register has the value of 0.
  • When in State D, the following condition moves to State E:
    • When you turn on Enable protocol version and C&M channel setting auto-negotiation (prot_ver_auto sets to 1), the IP core allows deframer to detect the incoming C&M rate rx_slow_cm_rate and rx_fast_cm_ptr, and compare it to the proposed tx_slow_cm_rate and tx_fast_cm_ptr. If the value matches, it will set nego_protocol_complete to 1 internally, the nego_protocol_complete can be tie off to 0 externally.
    • If Enable protocol version and C&M channel setting auto-negotiation is disabled. You must manually change the CM_CONFIG[5:0] (offset x1C) tx_fast_cm_ptr and/or CM_CONFIG[10:8] (offset x1C) tx_slow_cm_rate, and then poll CM_STATUS (offset 20h) rx_slow_cm_rate_valid or rx_fast_cn_ptr_valid (may be for few hyperframe).
      • If valid is not asserted, change to new value.
      • If valid is asserted, drive nego_cm_complete to 1 (you can wait for few milisecond before changing to new value) until read back for rx_prot_ver_valid is 1, then drive nego_protocol_complete to 1.

        Always start from higher value base on the CPRI Spec 4.2.7.6. L1 Inband Protocol, Z.66.0 for slow C&M, Z.194.0 for Fast C&M.

  • When in State E, the following condition moves to State F:
    • During this state, the negotiation are vendor specific and the CPRI MAC IP core do not support any auto-negotiation. Drive the nego_vss_complete to 1 when the negotiation is completed.