Merge branch 'UE_20MHz_and_Log_improvement' into develop_integration_w11
This commit is contained in:
@@ -160,7 +160,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
|||||||
LTE_DL_FRAME_PARMS *frame_parms,
|
LTE_DL_FRAME_PARMS *frame_parms,
|
||||||
LTE_UE_DLSCH_t *dlsch,
|
LTE_UE_DLSCH_t *dlsch,
|
||||||
LTE_DL_UE_HARQ_t *harq_process,
|
LTE_DL_UE_HARQ_t *harq_process,
|
||||||
uint8_t frame,
|
uint32_t frame,
|
||||||
uint8_t subframe,
|
uint8_t subframe,
|
||||||
uint8_t harq_pid,
|
uint8_t harq_pid,
|
||||||
uint8_t is_crnti,
|
uint8_t is_crnti,
|
||||||
@@ -472,6 +472,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
|||||||
}
|
}
|
||||||
|
|
||||||
start_meas(dlsch_turbo_decoding_stats);
|
start_meas(dlsch_turbo_decoding_stats);
|
||||||
|
LOG_D(PHY,"AbsSubframe %d.%d Start turbo segment %d/%d \n",frame%1024,subframe,r,harq_process->C-1);
|
||||||
ret = tc
|
ret = tc
|
||||||
(&harq_process->d[r][96],
|
(&harq_process->d[r][96],
|
||||||
harq_process->c[r],
|
harq_process->c[r],
|
||||||
@@ -626,7 +627,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
|||||||
|
|
||||||
|
|
||||||
if ((err_flag == 0) && (ret>=(1+dlsch->max_turbo_iterations))) {// a Code segment is in error so break;
|
if ((err_flag == 0) && (ret>=(1+dlsch->max_turbo_iterations))) {// a Code segment is in error so break;
|
||||||
//printf("CRC failed, segment %d\n",r);
|
LOG_D(PHY,"AbsSubframe %d.%d CRC failed, segment %d/%d \n",frame%1024,subframe,r,harq_process->C-1);
|
||||||
err_flag = 1;
|
err_flag = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1268,7 +1268,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
|||||||
LTE_DL_FRAME_PARMS *lte_frame_parms,
|
LTE_DL_FRAME_PARMS *lte_frame_parms,
|
||||||
LTE_UE_DLSCH_t *dlsch,
|
LTE_UE_DLSCH_t *dlsch,
|
||||||
LTE_DL_UE_HARQ_t *harq_process,
|
LTE_DL_UE_HARQ_t *harq_process,
|
||||||
uint8_t frame,
|
uint32_t frame,
|
||||||
uint8_t subframe,
|
uint8_t subframe,
|
||||||
uint8_t harq_pid,
|
uint8_t harq_pid,
|
||||||
uint8_t is_crnti,
|
uint8_t is_crnti,
|
||||||
|
|||||||
@@ -699,7 +699,14 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
|
|||||||
}
|
}
|
||||||
|
|
||||||
fl_set_xyplot_xbounds(form->pdcch_llr,0,12*frame_parms->N_RB_DL*2*3);
|
fl_set_xyplot_xbounds(form->pdcch_llr,0,12*frame_parms->N_RB_DL*2*3);
|
||||||
fl_set_xyplot_data(form->pdcch_llr,bit_pdcch,llr_pdcch,12*frame_parms->N_RB_DL*2*num_pdcch_symbols,"","","");
|
if (frame_parms->N_RB_DL != 100)
|
||||||
|
{
|
||||||
|
fl_set_xyplot_data(form->pdcch_llr,bit_pdcch,llr_pdcch,12*frame_parms->N_RB_DL*2*num_pdcch_symbols,"","","");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG_E(PHY,"PDCCH LLR plot is bugged in 20 MHz BW, to be fixed !!!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PDCCH I/Q of MF Output
|
// PDCCH I/Q of MF Output
|
||||||
@@ -708,8 +715,14 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
|
|||||||
I[i] = pdcch_comp[2*i];
|
I[i] = pdcch_comp[2*i];
|
||||||
Q[i] = pdcch_comp[2*i+1];
|
Q[i] = pdcch_comp[2*i+1];
|
||||||
}
|
}
|
||||||
|
if (frame_parms->N_RB_DL != 100)
|
||||||
fl_set_xyplot_data(form->pdcch_comp,I,Q,12*frame_parms->N_RB_DL*num_pdcch_symbols,"","","");
|
{
|
||||||
|
fl_set_xyplot_data(form->pdcch_comp,I,Q,12*frame_parms->N_RB_DL*num_pdcch_symbols,"","","");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG_E(PHY,"PDCCH COMP plot is bugged in 20 MHz BW, to be fixed !!!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PDSCH LLRs
|
// PDSCH LLRs
|
||||||
@@ -720,7 +733,14 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
|
|||||||
}
|
}
|
||||||
|
|
||||||
fl_set_xyplot_xbounds(form->pdsch_llr,0,coded_bits_per_codeword);
|
fl_set_xyplot_xbounds(form->pdsch_llr,0,coded_bits_per_codeword);
|
||||||
fl_set_xyplot_data(form->pdsch_llr,bit,llr,coded_bits_per_codeword,"","","");
|
if (frame_parms->N_RB_DL != 100)
|
||||||
|
{
|
||||||
|
fl_set_xyplot_data(form->pdsch_llr,bit,llr,coded_bits_per_codeword,"","","");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG_E(PHY,"PDSCH LLR plot is bugged in 20 MHz BW, to be fixed !!!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PDSCH I/Q of MF Output
|
// PDSCH I/Q of MF Output
|
||||||
|
|||||||
+1
-1
@@ -896,7 +896,7 @@ typedef struct {
|
|||||||
time_stats_t rx_dft_stats;
|
time_stats_t rx_dft_stats;
|
||||||
time_stats_t dlsch_channel_estimation_stats;
|
time_stats_t dlsch_channel_estimation_stats;
|
||||||
time_stats_t dlsch_freq_offset_estimation_stats;
|
time_stats_t dlsch_freq_offset_estimation_stats;
|
||||||
time_stats_t dlsch_decoding_stats;
|
time_stats_t dlsch_decoding_stats[2];
|
||||||
time_stats_t dlsch_demodulation_stats;
|
time_stats_t dlsch_demodulation_stats;
|
||||||
time_stats_t dlsch_rate_unmatching_stats;
|
time_stats_t dlsch_rate_unmatching_stats;
|
||||||
time_stats_t dlsch_turbo_decoding_stats;
|
time_stats_t dlsch_turbo_decoding_stats;
|
||||||
|
|||||||
@@ -1991,7 +1991,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
|||||||
LOG_D(PHY,"[UE %d][SR %x] AbsSubframe %d.%d Generating PUCCH 1 (SR for PUSCH), an_srs_simultanous %d, shorten_pucch %d, n1_pucch %d, Po_PUCCH %d\n",
|
LOG_D(PHY,"[UE %d][SR %x] AbsSubframe %d.%d Generating PUCCH 1 (SR for PUSCH), an_srs_simultanous %d, shorten_pucch %d, n1_pucch %d, Po_PUCCH %d\n",
|
||||||
Mod_id,
|
Mod_id,
|
||||||
ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->rnti,
|
ue->dlsch[proc->subframe_rx&0x1][eNB_id][0]->rnti,
|
||||||
frame_tx, subframe_tx,
|
frame_tx%1024, subframe_tx,
|
||||||
frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission,
|
frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission,
|
||||||
isShortenPucch,
|
isShortenPucch,
|
||||||
ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex,
|
ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex,
|
||||||
@@ -3532,7 +3532,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[subframe_rx & 0x1][eNB_id]->num_pdcch_symbols);
|
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[subframe_rx & 0x1][eNB_id]->num_pdcch_symbols);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
start_meas(&ue->dlsch_decoding_stats);
|
start_meas(&ue->dlsch_decoding_stats[subframe_rx&0x1]);
|
||||||
ret = dlsch_decoding(ue,
|
ret = dlsch_decoding(ue,
|
||||||
pdsch_vars->llr[0],
|
pdsch_vars->llr[0],
|
||||||
&ue->frame_parms,
|
&ue->frame_parms,
|
||||||
@@ -3543,12 +3543,13 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
harq_pid,
|
harq_pid,
|
||||||
pdsch==PDSCH?1:0,
|
pdsch==PDSCH?1:0,
|
||||||
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
|
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
|
||||||
stop_meas(&ue->dlsch_decoding_stats);
|
stop_meas(&ue->dlsch_decoding_stats[subframe_rx&0x1]);
|
||||||
|
|
||||||
LOG_D(PHY," --> Unscrambling for CW0 %5.3f\n",
|
LOG_D(PHY," --> Unscrambling for CW0 %5.3f\n",
|
||||||
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
|
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
|
||||||
LOG_D(PHY," --> Turbo Decoding for CW0 %5.3f\n",
|
LOG_D(PHY,"AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
|
||||||
(ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0));
|
frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[subframe_rx&0x1].p_time)/(cpuf*1000.0));
|
||||||
|
|
||||||
|
|
||||||
if(is_cw1_active)
|
if(is_cw1_active)
|
||||||
{
|
{
|
||||||
@@ -3582,7 +3583,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
|
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
|
||||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[subframe_rx & 0x1][eNB_id]->num_pdcch_symbols);
|
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[subframe_rx & 0x1][eNB_id]->num_pdcch_symbols);
|
||||||
#endif
|
#endif
|
||||||
start_meas(&ue->dlsch_decoding_stats);
|
|
||||||
|
start_meas(&ue->dlsch_decoding_stats[subframe_rx&0x1]);
|
||||||
|
|
||||||
ret1 = dlsch_decoding(ue,
|
ret1 = dlsch_decoding(ue,
|
||||||
pdsch_vars->llr[1],
|
pdsch_vars->llr[1],
|
||||||
&ue->frame_parms,
|
&ue->frame_parms,
|
||||||
@@ -3593,12 +3596,13 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
harq_pid,
|
harq_pid,
|
||||||
pdsch==PDSCH?1:0,
|
pdsch==PDSCH?1:0,
|
||||||
dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
|
dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
|
||||||
stop_meas(&ue->dlsch_decoding_stats);
|
stop_meas(&ue->dlsch_decoding_stats[subframe_rx&0x1]);
|
||||||
|
|
||||||
|
|
||||||
LOG_D(PHY," --> Unscrambling for CW1 %5.3f\n",
|
LOG_D(PHY," --> Unscrambling for CW1 %5.3f\n",
|
||||||
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
|
(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
|
||||||
LOG_D(PHY," --> Turbo Decoding for CW1 %5.3f\n",
|
LOG_D(PHY,"AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
|
||||||
(ue->dlsch_decoding_stats.p_time)/(cpuf*1000.0));
|
frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[subframe_rx&0x1].p_time)/(cpuf*1000.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_D(PHY," ------ end turbo decoder for AbsSubframe %d.%d ------ \n", frame_rx, subframe_rx);
|
LOG_D(PHY," ------ end turbo decoder for AbsSubframe %d.%d ------ \n", frame_rx, subframe_rx);
|
||||||
@@ -3620,10 +3624,11 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
|
|
||||||
if(dlsch0->rnti != 0xffff)
|
if(dlsch0->rnti != 0xffff)
|
||||||
{
|
{
|
||||||
LOG_D(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : DLSCH CW0 in error (rv %d,mcs %d,TBS %d)\n",
|
LOG_D(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : DLSCH CW0 in error (rv %d,round %d, mcs %d,TBS %d)\n",
|
||||||
ue->Mod_id,dlsch0->rnti,
|
ue->Mod_id,dlsch0->rnti,
|
||||||
harq_pid,frame_rx,subframe_rx,
|
harq_pid,frame_rx,subframe_rx,
|
||||||
dlsch0->harq_processes[harq_pid]->rvidx,
|
dlsch0->harq_processes[harq_pid]->rvidx,
|
||||||
|
dlsch0->harq_processes[harq_pid]->round,
|
||||||
dlsch0->harq_processes[harq_pid]->mcs,
|
dlsch0->harq_processes[harq_pid]->mcs,
|
||||||
dlsch0->harq_processes[harq_pid]->TBS);
|
dlsch0->harq_processes[harq_pid]->TBS);
|
||||||
}
|
}
|
||||||
@@ -3632,10 +3637,11 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
} else {
|
} else {
|
||||||
if(dlsch0->rnti != 0xffff)
|
if(dlsch0->rnti != 0xffff)
|
||||||
{
|
{
|
||||||
LOG_D(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : Received DLSCH CW0 (rv %d,mcs %d,TBS %d)\n",
|
LOG_D(PHY,"[UE %d][PDSCH %x/%d] AbsSubframe %d.%d : Received DLSCH CW0 (rv %d,round %d, mcs %d,TBS %d)\n",
|
||||||
ue->Mod_id,dlsch0->rnti,
|
ue->Mod_id,dlsch0->rnti,
|
||||||
harq_pid,frame_rx,subframe_rx,
|
harq_pid,frame_rx,subframe_rx,
|
||||||
dlsch0->harq_processes[harq_pid]->rvidx,
|
dlsch0->harq_processes[harq_pid]->rvidx,
|
||||||
|
dlsch0->harq_processes[harq_pid]->round,
|
||||||
dlsch0->harq_processes[harq_pid]->mcs,
|
dlsch0->harq_processes[harq_pid]->mcs,
|
||||||
dlsch0->harq_processes[harq_pid]->TBS);
|
dlsch0->harq_processes[harq_pid]->TBS);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user