项目

一般

简介

错误 #422

FR_CPRI调试,X86打印显示FFT DMA收到三次FPGA通知描述符完成,但译码未启动

杨 晋超过 4 年 之前添加. 更新于 大约 4 年 之前.

状态:
已解决
优先级:
普通
指派给:
类别:
FPGA
开始日期:
2021-01-30
计划完成日期:
% 完成:

0%

预期时间:
问题归属:

历史记录

#1

由 guo hanlin 更新于 超过 4 年 之前

  • 状态新建 变更为 进行中

上行数据到的太晚,之前的上行任务由于没有数据到达无法触发,nListRunning无法置0导致触发phy_stop

    if (psPHYStateRx->nListRunning)
    {
        extern uint32_t gPhyState;
        gPhyState = PHY_STATE_FORCE_STOP;

        if(g_zlogMask & ZLOG_UL_PUSCH)
        {
            zLog(PHY_LOG_ERROR, "Previous UL list is not completed CellId[%d] Slot[%d] SlotAdvIdx[%d] Ctx[%d]\n", 
                  pCookies->nCellIdx, pCookies->nSlotIdx, nSlotAdvIdx, nCtxNum);
        }
        nr5g_gnb_mac2phy_api_proc_clear_rx(nCtxNum, nCellIdx);
    }

[02-02 11:59:14.316][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[4] SlotAdvIdx[6] Ctx[2]
[02-02 11:59:14.316][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[4], SlotAdvIdx[4], Ctx[0], RXSfn (0,0), nListRunning[0]
[02-02 11:59:14.316][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[5] SlotAdvIdx[7] Ctx[3]
[02-02 11:59:14.316][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[5], SlotAdvIdx[5], Ctx[1], RXSfn (0,0), nListRunning[0]
[02-02 11:59:14.317][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[6] SlotAdvIdx[8] Ctx[0]
[02-02 11:59:14.317][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[6], SlotAdvIdx[6], Ctx[2], RXSfn (0,0), nListRunning[0]
[02-02 11:59:14.317][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[7] SlotAdvIdx[9] Ctx[1]
[02-02 11:59:14.317][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[7], SlotAdvIdx[7], Ctx[3], RXSfn (0,0), nListRunning[0]
[02-02 11:59:14.317][DEBUG]Count=73485801 D-count=00001460 Time=00866799 D-time=00000310 FhTx[0:free,1:busy]=1 FhtxStatus[13]=0 FhRx[0:free,1:busy]=1 FhrxStatus[13]=6717441
[02-02 11:59:14.317][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[8] SlotAdvIdx[10] Ctx[2]
[02-02 11:59:14.318][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[8], SlotAdvIdx[8], Ctx[0], RXSfn (0,0), nListRunning[1]
[02-02 11:59:14.318][ERROR]Previous UL list is not completed CellId[0] Slot[8] SlotAdvIdx[8] Ctx[0]
[02-02 11:59:14.318][DEBUG]Count=73487959 D-count=00001447 Time=00867279 D-time=00000310 FhTx[0:free,1:busy]=1 FhtxStatus[13]=0 FhRx[0:free,1:busy]=1 FhrxStatus[13]=6717441
[02-02 11:59:14.318][DEBUG]Func:phy_gnb_bbupool_post_task_ul_reset_buf, CellId[0] nSlotIdx[4] SlotAdvIdx[4] Ctx[0]
[02-02 11:59:14.318][DEBUG]---- 7_UL_L1_PUSCH_DMRS_DECOMP CellId[0] nSlotIdx[6]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_dmrs_decomp_func, nSlotAdvIdx[6],oneSymDataSize[13104],nDMRSSymbol[2] nBufferLen[52416], bufIdx[6]
[02-02 11:59:14.318][DEBUG]---- 8_UL_L1_PUSCH_SYM0_DECOMP CellId[0] Slot[6]
[02-02 11:59:14.318][DEBUG]---- 8_UL_L1_PUSCH_SYM0_DECOMP CellId[0] Slot[7]
[02-02 11:59:14.318][DEBUG]---- 9_UL_L1_PUSCH_SYM7_DECOMP CellId[0] SlotIdx[6]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_data_decomp_task_func[0], nSlotAdvIdx[6], oneSymDataSize[13104], nDataSymb[12] nBufferLen[183456], bufIdx[6]
[02-02 11:59:14.318][DEBUG]---- 7_UL_L1_PUSCH_DMRS_DECOMP CellId[0] nSlotIdx[7]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_data_decomp_task_func[0], nSlotAdvIdx[7], oneSymDataSize[13104], nDataSymb[12] nBufferLen[183456], bufIdx[7]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_dmrs_decomp_func, nSlotAdvIdx[7],oneSymDataSize[13104],nDMRSSymbol[2] nBufferLen[52416], bufIdx[7]
[02-02 11:59:14.318][DEBUG]---- 9_UL_L1_PUSCH_SYM7_DECOMP CellId[0] SlotIdx[7]
[02-02 11:59:14.318][DEBUG]---- 0_DL_L1_CONFIG [phy_gnb_bbupool_task_dl_config] CellId[0] Slot[9] SlotAdvIdx[11] Ctx[3]
[02-02 11:59:14.318][DEBUG]Count=73490175 D-count=00001464 Time=00867759 D-time=00000310 FhTx[0:free,1:busy]=1 FhtxStatus[13]=0 FhRx[0:free,1:busy]=1 FhrxStatus[13]=6717441
[02-02 11:59:14.318][DEBUG]---- 7_UL_L1_PUSCH_DMRS_DECOMP CellId[0] nSlotIdx[8]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_dmrs_decomp_func, nSlotAdvIdx[8],oneSymDataSize[13104],nDMRSSymbol[2] nBufferLen[52416], bufIdx[0]
[02-02 11:59:14.318][DEBUG]---- 9_UL_L1_PUSCH_SYM7_DECOMP CellId[0] SlotIdx[8]
[02-02 11:59:14.318][DEBUG]---- 8_UL_L1_PUSCH_SYM0_DECOMP CellId[0] Slot[8]
[02-02 11:59:14.318][DEBUG]Func:phy_fpga_ul_pusch_data_decomp_task_func[0], nSlotAdvIdx[8], oneSymDataSize[13104], nDataSymb[12] nBufferLen[183456], bufIdx[0]
[02-02 11:59:14.318][DEBUG]---- 6_UL_L1_CONFIG, CellId[0], Slot[9], SlotAdvIdx[9], Ctx[1], RXSfn (0,5), nListRunning[1]
[02-02 11:59:14.318][DEBUG]Func:phy_gnb_bbupool_post_task_ul_reset_buf, CellId[0] nSlotIdx[5] SlotAdvIdx[5] Ctx[1]
#2

杨 晋 更新于 大约 4 年 之前

DU自环测试时,上行链路必须在接收到下行时隙时才启动,与当前物理层流程不一致,需要连接RU进行测试。

#3

杨 晋 更新于 大约 4 年 之前

DU-RU外环测试,x86打印发现没有帧号子帧号,FPGA修改DU和RU代码后测试,CRC除前两时隙外都正确,但出现上行挂死问题,需要进一步分析

#4

杨 晋 更新于 大约 4 年 之前

经加调测查看波形,发现du fpga的fft_dma_conv模块内读FFT输出fifo时,没有判断输出fifo几乎满,仅在写输出fifo时判断了几乎满(fifo深度为512),导致fft输出数据丢失,后级dma读取长度错误,导致dma挂掉。

assign user_fifo_ren = !user_fifo_empty;

always @(posedge clk) begin
if(user_fifo_ren && !wr_data_fifo_afull)
wen_flag <= 1'b1;
else
wen_flag <= 1'b0;
end

#5

杨 晋 更新于 大约 4 年 之前

  • 状态进行中 变更为 挂起

修改读fifo判断且加大fifo后,此问题不复现,DU -RU外环跑一会 crc error:0%,后来又出现挂死,但此问题未触发,应该是其他问题。
另外fft_dma_conv模块本来是为保护dma异常后,上行链路不挂死的,这个模块的保护策略还需要后续再分析。

#6

杨 晋 更新于 大约 4 年 之前

  • 状态挂起 变更为 已解决

1、上次在crc正确一段时间后挂掉应该是开的log较多,关闭一些log后,跑1个多小时crc仍然正确。
2、fft_dma_conv丢数问题,应该是因为cpri环回和原来RU相比,fft输出数据的时序有变化,可能更快了,fft_dma_conv模块内原来fifo深度不够,cpri模式下需要加大fifo深度。另外在仅有上行业务(下行还没启动)时,没有出现问题,可能是因为此时dma调度任务轻,能够较快读fft_dma_conv输出fifo,不会出现FIFO几乎满。

导出 Atom PDF