rebase from 2017.w25 part2
This commit is contained in:
@@ -5150,7 +5150,7 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
|
|
||||||
pdsch_vars->llr_offset[pdcch_vars->num_pdcch_symbols] = 0;
|
pdsch_vars->llr_offset[pdcch_vars->num_pdcch_symbols] = 0;
|
||||||
|
|
||||||
LOG_I(PHY,"compute_llr_offset: nb RB %d - Qm %d \n", nb_rb_alloc, dlsch0_harq->Qm);
|
//LOG_I(PHY,"compute_llr_offset: nb RB %d - Qm %d \n", nb_rb_alloc, dlsch0_harq->Qm);
|
||||||
|
|
||||||
//dlsch0_harq->rb_alloc_even;
|
//dlsch0_harq->rb_alloc_even;
|
||||||
//dlsch0_harq->rb_alloc_odd;
|
//dlsch0_harq->rb_alloc_odd;
|
||||||
@@ -5180,15 +5180,15 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
if(symbol < (frame_parms->symbols_per_tti-1))
|
if(symbol < (frame_parms->symbols_per_tti-1))
|
||||||
pdsch_vars->llr_offset[symbol+1] = pdsch_vars->llr_offset[symbol] + llr_offset;
|
pdsch_vars->llr_offset[symbol+1] = pdsch_vars->llr_offset[symbol] + llr_offset;
|
||||||
|
|
||||||
LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb);
|
//LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb);
|
||||||
LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re);
|
//LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re);
|
||||||
LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re);
|
//LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re);
|
||||||
LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re);
|
//LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol,
|
//LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol,
|
||||||
pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]);
|
// pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void prepare_dl_decoding_format1_1A(DCI_format_t dci_format,
|
void prepare_dl_decoding_format1_1A(DCI_format_t dci_format,
|
||||||
@@ -6114,12 +6114,15 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
|||||||
&dci_info_extarcted,
|
&dci_info_extarcted,
|
||||||
dlsch0_harq);
|
dlsch0_harq);
|
||||||
if(status == 0)
|
if(status == 0)
|
||||||
|
{
|
||||||
|
printf("bad DCI 1A !!! \n");
|
||||||
return(-1);
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
// dci is correct ==> update internal structure and prepare dl decoding
|
// dci is correct ==> update internal structure and prepare dl decoding
|
||||||
#ifdef DEBUG_DCI
|
//#ifdef DEBUG_DCI
|
||||||
LOG_I(PHY,"[DCI-FORMAT-1A] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe);
|
LOG_I(PHY,"[DCI-FORMAT-1A] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe);
|
||||||
#endif
|
//#endif
|
||||||
prepare_dl_decoding_format1_1A(format1A,
|
prepare_dl_decoding_format1_1A(format1A,
|
||||||
frame_parms->N_RB_DL,
|
frame_parms->N_RB_DL,
|
||||||
&dci_info_extarcted,
|
&dci_info_extarcted,
|
||||||
@@ -6219,12 +6222,16 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
|||||||
&dci_info_extarcted,
|
&dci_info_extarcted,
|
||||||
dlsch0_harq);
|
dlsch0_harq);
|
||||||
if(status == 0)
|
if(status == 0)
|
||||||
return(-1);
|
{
|
||||||
|
printf("bad DCI 1 !!! \n");
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// dci is correct ==> update internal structure and prepare dl decoding
|
// dci is correct ==> update internal structure and prepare dl decoding
|
||||||
#ifdef DEBUG_DCI
|
//#ifdef DEBUG_DCI
|
||||||
LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe);
|
LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe);
|
||||||
#endif
|
//#endif
|
||||||
prepare_dl_decoding_format1_1A(format1,
|
prepare_dl_decoding_format1_1A(format1,
|
||||||
frame_parms->N_RB_DL,
|
frame_parms->N_RB_DL,
|
||||||
&dci_info_extarcted,
|
&dci_info_extarcted,
|
||||||
|
|||||||
@@ -3174,7 +3174,7 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
|
|||||||
(dci_alloc_rx[i].rnti == ue->pdcch_vars[subframe_rx%RX_NB_TH][eNB_id]->crnti) &&
|
(dci_alloc_rx[i].rnti == ue->pdcch_vars[subframe_rx%RX_NB_TH][eNB_id]->crnti) &&
|
||||||
(dci_alloc_rx[i].format != format0)) {
|
(dci_alloc_rx[i].format != format0)) {
|
||||||
|
|
||||||
LOG_D(PHY,"[UE %d][DCI][PDSCH %x] AbsSubframe %d.%d: format %d, num_pdcch_symbols %d, nCCE %d, total CCEs %d\n",
|
LOG_I(PHY,"[UE %d][DCI][PDSCH %x] AbsSubframe %d.%d: format %d, num_pdcch_symbols %d, nCCE %d, total CCEs %d\n",
|
||||||
ue->Mod_id,dci_alloc_rx[i].rnti,
|
ue->Mod_id,dci_alloc_rx[i].rnti,
|
||||||
frame_rx%1024,subframe_rx,
|
frame_rx%1024,subframe_rx,
|
||||||
dci_alloc_rx[i].format,
|
dci_alloc_rx[i].format,
|
||||||
@@ -3249,9 +3249,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
|
|||||||
else if ((dci_alloc_rx[i].rnti == SI_RNTI) &&
|
else if ((dci_alloc_rx[i].rnti == SI_RNTI) &&
|
||||||
((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
|
((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
|
||||||
|
|
||||||
#ifdef DEBUG_PHY_PROC
|
//#ifdef DEBUG_PHY_PROC
|
||||||
LOG_D(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
|
LOG_I(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
||||||
@@ -3273,7 +3273,7 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
|
|||||||
ue->dlsch_SI_received[eNB_id]++;
|
ue->dlsch_SI_received[eNB_id]++;
|
||||||
|
|
||||||
|
|
||||||
LOG_D(PHY,"[UE %d] Frame %d, subframe %d : Generate UE DLSCH SI_RNTI format 1%s\n",ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].format==format1A?"A":"C");
|
LOG_I(PHY,"[UE %d] Frame %d, subframe %d : Generate UE DLSCH SI_RNTI format 1%s\n",ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].format==format1A?"A":"C");
|
||||||
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
|
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3282,9 +3282,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
|
|||||||
else if ((dci_alloc_rx[i].rnti == P_RNTI) &&
|
else if ((dci_alloc_rx[i].rnti == P_RNTI) &&
|
||||||
((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
|
((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
|
||||||
|
|
||||||
#ifdef DEBUG_PHY_PROC
|
//#ifdef DEBUG_PHY_PROC
|
||||||
LOG_D(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
|
LOG_I(PHY,"[UE %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
||||||
@@ -3314,13 +3314,13 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
|
|||||||
(dci_alloc_rx[i].rnti == ue->prach_resources[eNB_id]->ra_RNTI) &&
|
(dci_alloc_rx[i].rnti == ue->prach_resources[eNB_id]->ra_RNTI) &&
|
||||||
(dci_alloc_rx[i].format == format1A)) {
|
(dci_alloc_rx[i].format == format1A)) {
|
||||||
|
|
||||||
#ifdef DEBUG_PHY_PROC
|
//#ifdef DEBUG_PHY_PROC
|
||||||
LOG_D(PHY,"[UE %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
|
LOG_I(PHY,"[UE %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
|
||||||
|
|
||||||
//if (((frame_rx%100) == 0) || (frame_rx < 20))
|
//if (((frame_rx%100) == 0) || (frame_rx < 20))
|
||||||
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
|
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
|
||||||
//mac_xface->macphy_exit("so far so good...\n");
|
//mac_xface->macphy_exit("so far so good...\n");
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
if (generate_ue_dlsch_params_from_dci(frame_rx,
|
||||||
@@ -4030,9 +4030,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
|||||||
if (ret == (1+dlsch0->max_turbo_iterations)) {
|
if (ret == (1+dlsch0->max_turbo_iterations)) {
|
||||||
*dlsch_errors=*dlsch_errors+1;
|
*dlsch_errors=*dlsch_errors+1;
|
||||||
|
|
||||||
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,round %d, mcs %d,TBS %d)\n",
|
LOG_I(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,
|
||||||
@@ -4043,9 +4043,9 @@ 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,round %d, mcs %d,TBS %d)\n",
|
LOG_I(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,
|
||||||
@@ -4317,20 +4317,24 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
start_meas(&ue->generic_stat);
|
start_meas(&ue->generic_stat);
|
||||||
#endif
|
#endif
|
||||||
// 1- perform FFT for pilot ofdm symbols first (ofdmSym7 ofdmSym4 or (ofdmSym6 ofdmSym3))
|
// 1- perform FFT for pilot ofdm symbols first (ofdmSym7 ofdmSym4 or (ofdmSym6 ofdmSym3))
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot1 symbol %d\n", frame_rx%1024, subframe_rx,pilot0);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
pilot0,
|
pilot0,
|
||||||
slot1,
|
slot1,
|
||||||
0,
|
0,
|
||||||
0);
|
0);
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot0 symbol %d\n", frame_rx%1024, subframe_rx,pilot1);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
pilot1,
|
pilot1,
|
||||||
slot0,
|
slot0,
|
||||||
0,
|
0,
|
||||||
0);
|
0);
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d ChanEst slot0 symbol %d\n", frame_rx%1024, subframe_rx,pilot1);
|
||||||
front_end_chanEst(ue,
|
front_end_chanEst(ue,
|
||||||
pilot1,
|
pilot1,
|
||||||
slot0,
|
slot0,
|
||||||
0);
|
0);
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d ChanEst slot1 symbol %d\n", frame_rx%1024, subframe_rx,pilot0);
|
||||||
front_end_chanEst(ue,
|
front_end_chanEst(ue,
|
||||||
pilot0,
|
pilot0,
|
||||||
slot1,
|
slot1,
|
||||||
@@ -4346,6 +4350,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
#if UE_TIMING_TRACE
|
#if UE_TIMING_TRACE
|
||||||
start_meas(&ue->ofdm_demod_stats);
|
start_meas(&ue->ofdm_demod_stats);
|
||||||
#endif
|
#endif
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot0 symbol %d\n", frame_rx%1024, subframe_rx,l);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
l,
|
l,
|
||||||
@@ -4364,6 +4369,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
{
|
{
|
||||||
if( (l != pilot0) && (l != pilot1))
|
if( (l != pilot0) && (l != pilot1))
|
||||||
{
|
{
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d ChanEst slot0 symbol %d\n", frame_rx%1024, subframe_rx,l);
|
||||||
front_end_chanEst(ue,
|
front_end_chanEst(ue,
|
||||||
l,
|
l,
|
||||||
slot0,
|
slot0,
|
||||||
@@ -4373,7 +4379,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (do_pdcch_flag) {
|
if (do_pdcch_flag) {
|
||||||
LOG_D(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
|
LOG_I(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
|
||||||
|
|
||||||
if (ue_pdcch_procedures(eNB_id,ue,proc,abstraction_flag) == -1) {
|
if (ue_pdcch_procedures(eNB_id,ue,proc,abstraction_flag) == -1) {
|
||||||
LOG_E(PHY,"[UE %d] Frame %d, subframe %d: Error in pdcch procedures\n",ue->Mod_id,frame_rx,subframe_rx);
|
LOG_E(PHY,"[UE %d] Frame %d, subframe %d: Error in pdcch procedures\n",ue->Mod_id,frame_rx,subframe_rx);
|
||||||
@@ -4381,8 +4387,8 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//LOG_I(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[subframe_rx%RX_NB_TH][eNB_id]->num_pdcch_symbols);
|
LOG_I(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[subframe_rx%RX_NB_TH][eNB_id]->num_pdcch_symbols);
|
||||||
//LOG_I(PHY,"Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
|
LOG_I(PHY,"Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
|
||||||
proc->dci_slot0_available=1;
|
proc->dci_slot0_available=1;
|
||||||
|
|
||||||
// first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
|
// first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
|
||||||
@@ -4413,6 +4419,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
// 1- perform FFT for pilot ofdm symbols first (ofdmSym0 next subframe ofdmSym11)
|
// 1- perform FFT for pilot ofdm symbols first (ofdmSym0 next subframe ofdmSym11)
|
||||||
if (subframe_select(&ue->frame_parms,next_subframe_rx) != SF_UL)
|
if (subframe_select(&ue->frame_parms,next_subframe_rx) != SF_UL)
|
||||||
{
|
{
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot0 symbol %d\n", frame_rx%1024, subframe_rx,pilot0);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
pilot0,
|
pilot0,
|
||||||
next_subframe_slot0,
|
next_subframe_slot0,
|
||||||
@@ -4420,6 +4427,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot1 symbol %d\n", frame_rx%1024, subframe_rx,pilot1);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
pilot1,
|
pilot1,
|
||||||
slot1,
|
slot1,
|
||||||
@@ -4434,6 +4442,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
#if UE_TIMING_TRACE
|
#if UE_TIMING_TRACE
|
||||||
start_meas(&ue->ofdm_demod_stats);
|
start_meas(&ue->ofdm_demod_stats);
|
||||||
#endif
|
#endif
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d FFT slot1 symbol %d\n", frame_rx%1024, subframe_rx,l);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
|
||||||
front_end_fft(ue,
|
front_end_fft(ue,
|
||||||
l,
|
l,
|
||||||
@@ -4450,6 +4459,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
// 3- perform Channel Estimation for slot1
|
// 3- perform Channel Estimation for slot1
|
||||||
for (l=1; l<ue->frame_parms.symbols_per_tti>>1; l++)
|
for (l=1; l<ue->frame_parms.symbols_per_tti>>1; l++)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
if(l == pilot0)
|
if(l == pilot0)
|
||||||
{
|
{
|
||||||
//wait until channel estimation for pilot0/slot1 is available
|
//wait until channel estimation for pilot0/slot1 is available
|
||||||
@@ -4459,12 +4469,15 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
wait++;
|
wait++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d ChanEst slot1 symbol %d\n", frame_rx%1024, subframe_rx,l);
|
||||||
front_end_chanEst(ue,
|
front_end_chanEst(ue,
|
||||||
l,
|
l,
|
||||||
slot1,
|
slot1,
|
||||||
0);
|
0);
|
||||||
ue_measurement_procedures(l-1,ue,proc,eNB_id,1+(subframe_rx<<1),abstraction_flag,mode);
|
ue_measurement_procedures(l-1,ue,proc,eNB_id,1+(subframe_rx<<1),abstraction_flag,mode);
|
||||||
}
|
}
|
||||||
|
LOG_I(PHY,"AbsSubframe %d.%d ChanEst slot0 symbol %d\n", frame_rx%1024, subframe_rx,pilot0);
|
||||||
front_end_chanEst(ue,
|
front_end_chanEst(ue,
|
||||||
pilot0,
|
pilot0,
|
||||||
next_subframe_slot0,
|
next_subframe_slot0,
|
||||||
@@ -4498,6 +4511,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
start_meas(&ue->generic_stat);
|
start_meas(&ue->generic_stat);
|
||||||
#endif
|
#endif
|
||||||
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
||||||
|
LOG_I(PHY,"LLR Computation PDSCH slot0 \n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
@@ -4513,7 +4527,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// do procedures for SI-RNTI
|
// do procedures for SI-RNTI
|
||||||
|
LOG_I(PHY,"LLR Computation SI_PDSCH slot0 active %d \n", ue->dlsch_SI[eNB_id]->active);
|
||||||
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation SI_PDSCH slot0 \n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN);
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
@@ -4529,6 +4545,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
|
|
||||||
// do procedures for SI-RNTI
|
// do procedures for SI-RNTI
|
||||||
if ((ue->dlsch_p[eNB_id]) && (ue->dlsch_p[eNB_id]->active == 1)) {
|
if ((ue->dlsch_p[eNB_id]) && (ue->dlsch_p[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation P_PDSCH slot0 \n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_IN);
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
@@ -4544,6 +4561,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
|
|
||||||
// do procedures for RA-RNTI
|
// do procedures for RA-RNTI
|
||||||
if ((ue->dlsch_ra[eNB_id]) && (ue->dlsch_ra[eNB_id]->active == 1)) {
|
if ((ue->dlsch_ra[eNB_id]) && (ue->dlsch_ra[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation RA_PDSCH slot0 \n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_IN);
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
@@ -4573,6 +4591,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
// start slave thread for Pdsch Procedure (slot1)
|
// start slave thread for Pdsch Procedure (slot1)
|
||||||
// do procedures for C-RNTI
|
// do procedures for C-RNTI
|
||||||
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
||||||
|
LOG_I(PHY,"LLR Computation PDSCH slot1 \n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
||||||
#if UE_TIMING_TRACE
|
#if UE_TIMING_TRACE
|
||||||
start_meas(&ue->pdsch_procedures_stat);
|
start_meas(&ue->pdsch_procedures_stat);
|
||||||
@@ -4594,7 +4613,9 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// do procedures for SI-RNTI
|
// do procedures for SI-RNTI
|
||||||
|
LOG_I(PHY,"LLR Computation SI_PDSCH slot1 active %d \n",ue->dlsch_SI[eNB_id]->active);
|
||||||
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation SI_PDSCH slot1 \n");
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
eNB_id,
|
eNB_id,
|
||||||
@@ -4608,6 +4629,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
|
|
||||||
// do procedures for P-RNTI
|
// do procedures for P-RNTI
|
||||||
if ((ue->dlsch_p[eNB_id]) && (ue->dlsch_p[eNB_id]->active == 1)) {
|
if ((ue->dlsch_p[eNB_id]) && (ue->dlsch_p[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation P_PDSCH slot1 \n");
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
eNB_id,
|
eNB_id,
|
||||||
@@ -4620,6 +4642,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
// do procedures for RA-RNTI
|
// do procedures for RA-RNTI
|
||||||
if ((ue->dlsch_ra[eNB_id]) && (ue->dlsch_ra[eNB_id]->active == 1)) {
|
if ((ue->dlsch_ra[eNB_id]) && (ue->dlsch_ra[eNB_id]->active == 1)) {
|
||||||
|
LOG_I(PHY,"LLR Computation RA_PDSCH slot1 \n");
|
||||||
ue_pdsch_procedures(ue,
|
ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
eNB_id,
|
eNB_id,
|
||||||
@@ -4667,6 +4690,8 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
#if UE_TIMING_TRACE
|
#if UE_TIMING_TRACE
|
||||||
start_meas(&ue->generic_stat);
|
start_meas(&ue->generic_stat);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
// wait until llr on slot1 are available
|
// wait until llr on slot1 are available
|
||||||
uint32_t wait=0;
|
uint32_t wait=0;
|
||||||
while(proc->llr_slot1_available==0)
|
while(proc->llr_slot1_available==0)
|
||||||
@@ -4675,10 +4700,16 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
usleep(1);
|
usleep(1);
|
||||||
wait++;
|
wait++;
|
||||||
}
|
}
|
||||||
|
#if UE_TIMING_TRACE
|
||||||
stop_meas(&ue->generic_stat);
|
stop_meas(&ue->generic_stat);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
//printf("------ Waiting for LLR-Slot1 [SFN %d]: %5.2f ------\n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
|
//printf("------ Waiting for LLR-Slot1 [SFN %d]: %5.2f ------\n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
|
||||||
|
|
||||||
LOG_I(PHY,"==> Start Turbo Decoder wait %d\n", wait);
|
LOG_I(PHY,"==> Start Turbo Decoder active dlsch %d SI %d RA %d \n",ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active,
|
||||||
|
ue->dlsch_SI[eNB_id]->active,
|
||||||
|
//ue->dlsch_p[eNB_id]->active,
|
||||||
|
ue->dlsch_ra[eNB_id]->active);
|
||||||
// Start Turbo decoder
|
// Start Turbo decoder
|
||||||
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
if (ue->dlsch[subframe_rx%RX_NB_TH][eNB_id][0]->active == 1) {
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
|
||||||
@@ -4710,6 +4741,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// do procedures for SI-RNTI
|
// do procedures for SI-RNTI
|
||||||
|
printf("dlsch procedures SI %d \n", ue->dlsch_SI[eNB_id]->active);
|
||||||
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
|
||||||
ue_dlsch_procedures(ue,
|
ue_dlsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
|
|||||||
Reference in New Issue
Block a user