在分布式无线接入网(D-RAN)中,CPRI(Common Public Radio Interface) 是REC(Radio Equipment Control,BBU侧)与RE(Radio Equipment,RRU/AAU侧)之间的标准传输协议,承载I/Q采样数据、控制字、Vender Specific信息等。虽然5G推进eCPRI,但现网大量仍用CPRI Option 7/8。本文基于Xilinx GTP/GTH + CPRI IP,解析协议帧结构并给出FPGA侧实现要点。

一、CPRI基本帧与超帧结构

• 线速率:通常 614.4Mbps(Option 1)~ 10.1376Gbps(Option 10),常见 2.4576G/4.9152G/9.8304G

- 基本帧(Basic Frame):T = 1 / (采样率×16) ≈ 66.67μs @ 15.36Msps → 256 Word(16bit/word)

 • Word0 = Control Word(Z.17.1 / K28.5 + Control Info)

 - Word1~Word255 = I/Q数据或Vendor字段

• 超帧(Hyperframe):256个基本帧 = 256 × 256 Word ≈ 16.384ms周期,含帧号(HFN)与同步字(K28.5 + K28.1)

Control Word位域(简化):

Bit[15:14] = 00 (控制字标识)

Bit[13:8]  = HFN (超帧号 0~255)

Bit[7:0]   = 链路状态 / 厂商自定义

二、FPGA侧CPRI IP例化(Xilinx Example)

Vivado中调用 CPRI LogiCORE IP:

# 在IP Catalog搜 CPRI,关键配置:

#   Line Rate = 4915.2 Mbps

#   RefClk = 122.88 MHz(对应线速率)

#   L1/L2 使能(I/Q容器)

#   Include Control Word Insertion

生成后顶层端口含:

• gt*_rx* / gt*_tx* (GTP/GTH 串行差分)

• iq_tx_data[127:0], iq_rx_data[127:0] (AXI-Stream风格I/Q容器)

- ctrl_tx_word, ctrl_rx_word (Control Word 透传)

三、I/Q容器映射(Option 7/8)

CPRI容器承载AxC(Antenna Carrier)的I/Q 15-bit或16-bit样本:

// 假设 2 Antenna x 15-bit I/Q 打包进 128-bit容器

// [127:112]=IQ_A0_Q(15:0), [111:96]=IQ_A0_I(15:0),

// [95:80]=IQ_A1_Q, [79:64]=IQ_A1_I, 其余填充

always @(posedge clk_iq) begin

   if (iq_tvalid) begin

       iq_tx_data <= {

           16'h0000,                     // 保留

           {1'b0, iq_a1_q[14:0]},      // A1 Q

           {1'b0, iq_a1_i[14:0]},      // A1 I

           {1'b0, iq_a0_q[14:0]},      // A0 Q

           {1'b0, iq_a0_i[14:0]}       // A0 I

       };

       iq_tx_valid <= 1'b1;

   end else

       iq_tx_valid <= 1'b0;

end

接收侧对称解包即可送给DUC/DDC或上行解调逻辑。

四、Control Word处理与链路状态机

4.1 同步检测

CPRI IP在 ctrl_rx_word 中自动识别 K28.5/K28.1 同步字,输出 link_up 信号:

wire cpri_link_up;

assign cpri_link_up = u_cpri.inst_cpri_if.link_status; // 来自IP

4.2 自定义控制字插入

// 每超帧首帧(HFN=0)插入设备ID

always @(posedge clk) begin

   if (hf_n == 0)

       ctrl_tx_word <= {2'b00, hf_n[5:0], 8'hA5}; // 示例

   else

       ctrl_tx_word <= {2'b00, hf_n[5:0], 8'h00};

end

五、常见调试与故障排查

现象 原因 对策

GTP无法CDR锁定 RefClk频率偏差 >100ppm 或 SFP未插 检查122.88MHz晶振;确认SFP TX_ENABLE拉高

I/Q数据全0但link_up=1 REC侧未发容器或容器使能关 查CPRI IP "Container Enable";确认iq_tx_valid连

偶尔帧对齐错 光纤色散致眼图闭合(>3km 4.9G) 降线速率或启用Pre-emphasis / DFE

Control Word值不预期 HFN计数逻辑错或未同步超帧边界 用ILA抓 ctrl_rx_word 验证HFN递增

六、结语

CPRI接口的FPGA实现核心在于:正确配置线速率与容器映射(AxC I/Q)→ 利用IP自动处理8b/10b与帧同步 → 在Control Word通道传送链路管理信息。