Remove thread id and make slot processing in series
This commit is contained in:
@@ -421,17 +421,15 @@ int main(int argc, char **argv)
|
||||
//nr_init_frame_parms_ue(&UE->frame_parms);
|
||||
//init_nr_ue_transport(UE, 0);
|
||||
int num_codeword = NR_MAX_NB_LAYERS > 4? 2:1;
|
||||
for (int sf = 0; sf < 2; sf++) {
|
||||
for (i = 0; i < num_codeword; i++) {
|
||||
UE->dlsch[sf][0][i] = new_nr_ue_dlsch(Kmimo, 8, Nsoft, 5, N_RB_DL);
|
||||
if (!UE->dlsch[sf][0][i]) {
|
||||
printf("Can't get ue dlsch structures\n");
|
||||
exit(-1);
|
||||
}
|
||||
for (i = 0; i < num_codeword; i++) {
|
||||
UE->dlsch[0][i] = new_nr_ue_dlsch(Kmimo, 8, Nsoft, 5, N_RB_DL);
|
||||
if (!UE->dlsch[0][i]) {
|
||||
printf("Can't get ue dlsch structures\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
UE->dlsch[sf][0][i]->rnti = n_rnti;
|
||||
}
|
||||
}
|
||||
UE->dlsch[0][i]->rnti = n_rnti;
|
||||
}
|
||||
|
||||
unsigned char harq_pid = 0; //dlsch->harq_ids[subframe];
|
||||
processingData_L1tx_t msgDataTx;
|
||||
@@ -476,7 +474,7 @@ int main(int argc, char **argv)
|
||||
unsigned char test_input_bit[16 * 68 * 384];
|
||||
//estimated_output = (unsigned char *) malloc16(sizeof(unsigned char) * 16 * 68 * 384);
|
||||
unsigned char estimated_output_bit[16 * 68 * 384];
|
||||
NR_UE_DLSCH_t *dlsch0_ue = UE->dlsch[0][0][0];
|
||||
NR_UE_DLSCH_t *dlsch0_ue = UE->dlsch[0][0];
|
||||
NR_DL_UE_HARQ_t *harq_process = dlsch0_ue->harq_processes[harq_pid];
|
||||
harq_process->mcs = Imcs;
|
||||
harq_process->mcs_table = mcs_table;
|
||||
@@ -638,9 +636,8 @@ int main(int argc, char **argv)
|
||||
free(RC.gNB);
|
||||
|
||||
int num_cw = NR_MAX_NB_LAYERS > 4? 2:1;
|
||||
for (int sf = 0; sf < 2; sf++)
|
||||
for (int i = 0; i < num_cw; i++)
|
||||
free_nr_ue_dlsch(&UE->dlsch[sf][0][i], N_RB_DL);
|
||||
for (int i = 0; i < num_cw; i++)
|
||||
free_nr_ue_dlsch(&UE->dlsch[0][i], N_RB_DL);
|
||||
term_nr_ue_signal(UE, 1);
|
||||
free(UE);
|
||||
|
||||
|
||||
@@ -1028,7 +1028,6 @@ int main(int argc, char **argv)
|
||||
scheduled_response.CC_id = 0;
|
||||
scheduled_response.frame = frame;
|
||||
scheduled_response.slot = slot;
|
||||
scheduled_response.thread_id = 0;
|
||||
scheduled_response.phy_data = &phy_pdcch_config;
|
||||
|
||||
nr_ue_phy_config_request(&UE_mac->phy_config);
|
||||
@@ -1077,14 +1076,13 @@ int main(int argc, char **argv)
|
||||
//multipath_channel(gNB2UE,s_re,s_im,r_re,r_im,frame_length_complex_samples,0);
|
||||
|
||||
UE->rx_offset=0;
|
||||
UE_proc.thread_id = 0;
|
||||
UE_proc.frame_rx = frame;
|
||||
UE_proc.nr_slot_rx = slot;
|
||||
|
||||
dcireq.frame = frame;
|
||||
dcireq.slot = slot;
|
||||
|
||||
NR_UE_DLSCH_t *dlsch0 = UE->dlsch[UE_proc.thread_id][0][0];
|
||||
NR_UE_DLSCH_t *dlsch0 = UE->dlsch[0][0];
|
||||
|
||||
int harq_pid = slot;
|
||||
NR_DL_UE_HARQ_t *UE_harq_process = dlsch0->harq_processes[harq_pid];
|
||||
@@ -1269,11 +1267,11 @@ int main(int argc, char **argv)
|
||||
//---------------------- count errors ----------------------
|
||||
//----------------------------------------------------------
|
||||
|
||||
if (UE->dlsch[UE_proc.thread_id][0][0]->last_iteration_cnt >=
|
||||
UE->dlsch[UE_proc.thread_id][0][0]->max_ldpc_iterations+1)
|
||||
if (UE->dlsch[0][0]->last_iteration_cnt >=
|
||||
UE->dlsch[0][0]->max_ldpc_iterations+1)
|
||||
n_errors[round][snrRun]++;
|
||||
|
||||
NR_UE_PDSCH **pdsch_vars = UE->pdsch_vars[UE_proc.thread_id];
|
||||
NR_UE_PDSCH **pdsch_vars = UE->pdsch_vars;
|
||||
int16_t *UE_llr = pdsch_vars[0]->llr[0];
|
||||
|
||||
TBS = UE_harq_process->TBS;//rel15->TBSize[0];
|
||||
@@ -1407,9 +1405,9 @@ int main(int argc, char **argv)
|
||||
printStatIndent(&UE->dlsch_unscrambling_stats,"DLSCH unscrambling time");
|
||||
printStatIndent(&UE->dlsch_rate_unmatching_stats,"DLSCH Rate Unmatching");
|
||||
printf("|__ DLSCH Turbo Decoding(%d bits), avg iterations: %.1f %.2f us (%d cycles, %d trials)\n",
|
||||
UE->dlsch[UE_proc.thread_id][0][0]->harq_processes[0]->Cminus ?
|
||||
UE->dlsch[UE_proc.thread_id][0][0]->harq_processes[0]->Kminus :
|
||||
UE->dlsch[UE_proc.thread_id][0][0]->harq_processes[0]->Kplus,
|
||||
UE->dlsch[0][0]->harq_processes[0]->Cminus ?
|
||||
UE->dlsch[0][0]->harq_processes[0]->Kminus :
|
||||
UE->dlsch[0][0]->harq_processes[0]->Kplus,
|
||||
UE->dlsch_tc_intl1_stats.trials/(double)UE->dlsch_tc_init_stats.trials,
|
||||
(double)UE->dlsch_turbo_decoding_stats.diff/UE->dlsch_turbo_decoding_stats.trials*timeBase,
|
||||
(int)((double)UE->dlsch_turbo_decoding_stats.diff/UE->dlsch_turbo_decoding_stats.trials),
|
||||
@@ -1429,11 +1427,11 @@ int main(int argc, char **argv)
|
||||
LOG_M("rxsig0.m","rxs0", UE->common_vars.rxdata[0], frame_length_complex_samples, 1, 1);
|
||||
if (UE->frame_parms.nb_antennas_rx>1)
|
||||
LOG_M("rxsig1.m","rxs1", UE->common_vars.rxdata[1], frame_length_complex_samples, 1, 1);
|
||||
LOG_M("rxF0.m","rxF0", UE->common_vars.common_vars_rx_data_per_thread[UE_proc.thread_id].rxdataF[0], frame_parms->samples_per_slot_wCP, 1, 1);
|
||||
LOG_M("rxF_ext.m","rxFe",&UE->pdsch_vars[0][0]->rxdataF_ext[0][0],g_rbSize*12*14,1,1);
|
||||
LOG_M("chestF0.m","chF0",&UE->pdsch_vars[0][0]->dl_ch_estimates_ext[0][0],g_rbSize*12*14,1,1);
|
||||
write_output("rxF_comp.m","rxFc",&UE->pdsch_vars[0][0]->rxdataF_comp0[0][0],N_RB_DL*12*14,1,1);
|
||||
LOG_M("rxF_llr.m","rxFllr",UE->pdsch_vars[UE_proc.thread_id][0]->llr[0],available_bits,1,0);
|
||||
LOG_M("rxF0.m","rxF0", UE->common_vars.rxdataF[0], frame_parms->samples_per_slot_wCP, 1, 1);
|
||||
LOG_M("rxF_ext.m","rxFe",&UE->pdsch_vars[0]->rxdataF_ext[0][0],g_rbSize*12*14,1,1);
|
||||
LOG_M("chestF0.m","chF0",&UE->pdsch_vars[0]->dl_ch_estimates_ext[0][0],g_rbSize*12*14,1,1);
|
||||
write_output("rxF_comp.m","rxFc",&UE->pdsch_vars[0]->rxdataF_comp0[0][0],N_RB_DL*12*14,1,1);
|
||||
LOG_M("rxF_llr.m","rxFllr",UE->pdsch_vars[0]->llr[0],available_bits,1,0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ nrUE_params_t *get_nrUE_params(void) {
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char c;
|
||||
int i,sf;
|
||||
int i;
|
||||
double SNR, snr0 = -2.0, snr1 = 2.0, SNR_lin;
|
||||
double snr_step = 0.1;
|
||||
uint8_t snr1set = 0;
|
||||
@@ -428,12 +428,10 @@ int main(int argc, char **argv)
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
for (sf = 0; sf < 2; sf++) {
|
||||
UE->ulsch[sf][0] = new_nr_ue_ulsch(N_RB_UL, 8, frame_parms);
|
||||
if (!UE->ulsch[sf][0]) {
|
||||
printf("Can't get ue ulsch structures.\n");
|
||||
exit(-1);
|
||||
}
|
||||
UE->ulsch[0] = new_nr_ue_ulsch(N_RB_UL, 8, frame_parms);
|
||||
if (!UE->ulsch[0]) {
|
||||
printf("Can't get ue ulsch structures.\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
unsigned char harq_pid = 0;
|
||||
@@ -451,7 +449,7 @@ int main(int argc, char **argv)
|
||||
NR_UL_gNB_HARQ_t *harq_process_gNB = ulsch_gNB->harq_processes[harq_pid];
|
||||
nfapi_nr_pusch_pdu_t *rel15_ul = &harq_process_gNB->ulsch_pdu;
|
||||
|
||||
NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0][0];
|
||||
NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0];
|
||||
|
||||
if ((Nl==4)||(Nl==3))
|
||||
nb_re_dmrs = nb_re_dmrs*2;
|
||||
@@ -636,8 +634,7 @@ int main(int argc, char **argv)
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
for (sf = 0; sf < 2; sf++)
|
||||
free_nr_ue_ulsch(&UE->ulsch[sf][0], N_RB_UL, frame_parms);
|
||||
free_nr_ue_ulsch(&UE->ulsch[0], N_RB_UL, frame_parms);
|
||||
|
||||
term_nr_ue_signal(UE, 1);
|
||||
free(UE);
|
||||
|
||||
@@ -868,7 +868,7 @@ int main(int argc, char **argv)
|
||||
|
||||
nfapi_nr_pusch_pdu_t *pusch_pdu = &UL_tti_req->pdus_list[0].pusch_pdu;
|
||||
|
||||
NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0][0];
|
||||
NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0];
|
||||
|
||||
unsigned char *estimated_output_bit;
|
||||
unsigned char *test_input_bit;
|
||||
@@ -1105,7 +1105,6 @@ int main(int argc, char **argv)
|
||||
gNB->ulsch[0]->harq_processes[harq_pid]->round = round;
|
||||
rv_index = nr_rv_round_map[round];
|
||||
|
||||
UE_proc.thread_id = 0;
|
||||
UE_proc.nr_slot_tx = slot;
|
||||
UE_proc.frame_tx = frame;
|
||||
|
||||
@@ -1188,7 +1187,6 @@ int main(int argc, char **argv)
|
||||
scheduled_response.CC_id = 0;
|
||||
scheduled_response.frame = frame;
|
||||
scheduled_response.slot = slot;
|
||||
scheduled_response.thread_id = UE_proc.thread_id;
|
||||
scheduled_response.dl_config = NULL;
|
||||
scheduled_response.ul_config = &ul_config;
|
||||
scheduled_response.tx_request = &tx_req;
|
||||
|
||||
Reference in New Issue
Block a user