LOG_UI(PHY,"[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
LOG_I(PHY,"[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
}
}
/**** End Subframe FE Processing ****/
/**** End Subframe FE Processing ****/
...
@@ -4439,7 +4439,7 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
...
@@ -4439,7 +4439,7 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
{"mcs1","The MCS for TB 1",0,iptr:&mcs1,defintval:0,TYPE_INT,0},
{"Mcs2","The MCS for TB 2",0,iptr:&mcs2,defintval:0,TYPE_INT,0},
{"Operf","Set the percenatge of effective rate to testbench the modem performance (typically 30 and 70, range 1-100)",0,iptr:&test_perf,defintval:0,TYPE_INT,0},
{"tmcs_i","MCS of interfering UE",0,iptr:NULL,defintval:0,TYPE_INT,0},
{"nb_frame","number of frame in a test",0,iptr:&n_frames,defintval:1,TYPE_INT,0},
{"offsetRxSample","Sample offset for receiver",0,iptr:&rx_sample_offset,defintval:0,TYPE_INT,0},
{"rballocset","ressource block allocation (see section 7.1.6.3 in 36.213)",0,iptr:NULL,defintval:0,TYPE_INT,0},
{"snr","Starting SNR, runs from SNR to SNR+%.1fdB in steps of %.1fdB. If n_frames is 1 then just SNR is simulated and MATLAB/OCTAVE output is generated",dblptr:&snr0,defdblval:-2.0,TYPE_DOUBLE,0},
{"wsnrInterrupt","snr int ?",0,dblptr:&snr_int,defdblval:30,TYPE_DOUBLE,0},
{"N_ch_rlzN0","Determines the number of Channel Realizations in Abstraction mode. Default value is 1",0,iptr:&n_ch_rlz,defintval:1,TYPE_INT,0},
printf("-a Use AWGN channel and not multipath\n");
printf("-c Number of PDCCH symbols\n");
printf("-m MCS1 for TB 1\n");
printf("-M MCS2 for TB 2\n");
printf("-d Transmit the DCI and compute its error statistics\n");
printf("-p Use extended prefix mode\n");
printf("-n Number of frames to simulate\n");
printf("-o Sample offset for receiver\n");
printf("-s Starting SNR, runs from SNR to SNR+%.1fdB in steps of %.1fdB. If n_frames is 1 then just SNR is simulated and MATLAB/OCTAVE output is generated\n",snr_int,snr_step);
printf("-f step size of SNR, default value is 1.\n");
printf("-C cell id\n");
printf("-S subframe\n");
printf("-D use TDD mode\n");
printf("-b TDD config\n");
printf("-B bandwidth configuration (in number of ressource blocks): 6, 25, 50, 100\n");
printf("-r ressource block allocation (see section 7.1.6.3 in 36.213\n");
printf("-g [A:M] Use 3GPP 25.814 SCM-A/B/C/D('A','B','C','D') or 36-101 EPA('E'), EVA ('F'),ETU('G') models (ignores delay spread and Ricean factor), Rayghleigh8 ('H'), Rayleigh1('I'), Rayleigh1_corr('J'), Rayleigh1_anticorr ('K'), Rice8('L'), Rice1('M')\n");
printf("-F forgetting factor (0 new channel every trial, 1 channel constant\n");
printf("-x Transmission mode (1,2,6,7 for the moment)\n");
printf("-q Number of TX antennas ports used in eNB\n");
printf("-y Number of TX antennas used in eNB\n");
printf("-z Number of RX antennas used in UE\n");
printf("-t MCS of interfering UE\n");
printf("-R Number of HARQ rounds (fixed)\n");
printf("-A Turns on calibration mode for abstraction.\n");
printf("-N Determines the number of Channel Realizations in Abstraction mode. Default value is 1. \n");
printf("-O Set the percenatge of effective rate to testbench the modem performance (typically 30 and 70, range 1-100) \n");
printf("-I Input filename for TrCH data (binary)\n");
printf("-u Enables the Interference Aware Receiver for TM5 (default is normal receiver)\n");
exit(1);
exit(1);
break;
break;
}
}
}
}
if(res!=-1){
printf("A wrong option has been found\n");
exit(1);
}
if(help||verbose)
display_options_values(options,true);
if(help)
exit(0);
set_parallel_conf("PARALLEL_RU_L1_TRX_SPLIT");
set_parallel_conf("PARALLEL_RU_L1_TRX_SPLIT");
set_worker_conf("WORKER_ENABLE");
set_worker_conf("WORKER_ENABLE");
...
@@ -1073,8 +991,10 @@ int main(int argc, char **argv)
...
@@ -1073,8 +991,10 @@ int main(int argc, char **argv)
AssertFatal(load_configmodule(argc,argv)!=NULL,
AssertFatal(load_configmodule(argc,argv)!=NULL,
"cannot load configuration module, exiting\n");
"cannot load configuration module, exiting\n");
logInit();
logInit();
set_glog_onlinelog(true);
// enable these lines if you need debug info
// enable these lines if you need debug info
set_glog(loglvl);
set_glog(loglvl);
SET_LOG_DEBUG(UE_TIMING);
// moreover you need to init itti with the following line
// moreover you need to init itti with the following line
// however itti will catch all signals, so ctrl-c won't work anymore
// however itti will catch all signals, so ctrl-c won't work anymore
// alternatively you can disable ITTI completely in CMakeLists.txt
// alternatively you can disable ITTI completely in CMakeLists.txt
...
@@ -1522,9 +1442,17 @@ int main(int argc, char **argv)
...
@@ -1522,9 +1442,17 @@ int main(int argc, char **argv)
reset_meas(&eNB->dlsch_interleaving_stats);
reset_meas(&eNB->dlsch_interleaving_stats);
reset_meas(&eNB->dlsch_rate_matching_stats);
reset_meas(&eNB->dlsch_rate_matching_stats);
reset_meas(&eNB->dlsch_turbo_encoding_stats);
reset_meas(&eNB->dlsch_turbo_encoding_stats);
for(inti=0;i<RX_NB_TH;i++){
reset_meas(&UE->phy_proc_rx[UE->current_thread_id[subframe]]);// total UE rx
printf("OFDM_mod time :%f us (%d trials)\n",(double)eNB->ofdm_mod_stats.diff/eNB->ofdm_mod_stats.trials/cpu_freq_GHz/1000.0,eNB->ofdm_mod_stats.trials);
printf("DLSCH OFDM demodulation and channel_estimation time :%f us (%d trials)\n",(nsymb)*(double)UE->ofdm_demod_stats.diff/UE->ofdm_demod_stats.trials/cpu_freq_GHz/1000.0,
printf("DLSCH Channel Compensation and LLR generation time :%f us (%d trials)\n",(14-num_pdcch_symbols)*(double)UE->dlsch_llr_stats.diff/UE->dlsch_llr_stats.trials/cpu_freq_GHz/1000.0,
printf("DLSCH unscrambling time :%f us (%d trials)\n",(double)UE->dlsch_unscrambling_stats.diff/UE->dlsch_unscrambling_stats.trials/cpu_freq_GHz/1000.0,
{"Operf","Set the percentage of effective rate to testbench the modem performance (typically 30 and 70, range 1-100)",0,iptr:&test_perf,defintval:0,TYPE_INT,0},