fixes for full-bandwidth testing in dlsim
This commit is contained in:
@@ -2652,6 +2652,7 @@ target_link_libraries(nr_ulschsim
|
|||||||
add_executable(nr_ulsim
|
add_executable(nr_ulsim
|
||||||
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c
|
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c
|
||||||
${OPENAIR_DIR}/common/utils/system.c
|
${OPENAIR_DIR}/common/utils/system.c
|
||||||
|
${OPENAIR_DIR}/common/utils/nr/nr_common.c
|
||||||
${UTIL_SRC}
|
${UTIL_SRC}
|
||||||
${T_SOURCE}
|
${T_SOURCE}
|
||||||
${SHLIB_LOADER_SOURCES}
|
${SHLIB_LOADER_SOURCES}
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ check_supported_distribution() {
|
|||||||
"fedora24") return 0 ;;
|
"fedora24") return 0 ;;
|
||||||
"rhel7") return 0 ;;
|
"rhel7") return 0 ;;
|
||||||
"rhel7.6") return 0 ;;
|
"rhel7.6") return 0 ;;
|
||||||
|
"rhel7.7") return 0 ;;
|
||||||
"centos7") return 0 ;;
|
"centos7") return 0 ;;
|
||||||
esac
|
esac
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ if (logFlag){
|
|||||||
double channelOutput[coderLength]; //add noise
|
double channelOutput[coderLength]; //add noise
|
||||||
int16_t channelOutput_int16[coderLength];
|
int16_t channelOutput_int16[coderLength];
|
||||||
|
|
||||||
t_nrPolar_params *currentPtr = nr_polar_params(polarMessageType, testLength, aggregation_level);
|
t_nrPolar_params *currentPtr = nr_polar_params(polarMessageType, testLength, 1, aggregation_level,NULL);
|
||||||
|
|
||||||
#ifdef DEBUG_DCI_POLAR_PARAMS
|
#ifdef DEBUG_DCI_POLAR_PARAMS
|
||||||
uint32_t dci_pdu[4];
|
uint32_t dci_pdu[4];
|
||||||
|
|||||||
@@ -282,7 +282,6 @@ int nr_dlsch_encoding(unsigned char *a,
|
|||||||
uint8_t mod_order = rel15->qamModOrder[0];
|
uint8_t mod_order = rel15->qamModOrder[0];
|
||||||
uint16_t Kr=0,r;
|
uint16_t Kr=0,r;
|
||||||
uint32_t r_offset=0;
|
uint32_t r_offset=0;
|
||||||
//uint8_t *d_tmp[MAX_NUM_DLSCH_SEGMENTS];
|
|
||||||
uint8_t BG=1;
|
uint8_t BG=1;
|
||||||
uint32_t E;
|
uint32_t E;
|
||||||
uint8_t Ilbrm = 1;
|
uint8_t Ilbrm = 1;
|
||||||
@@ -293,13 +292,6 @@ int nr_dlsch_encoding(unsigned char *a,
|
|||||||
float Coderate = 0.0;
|
float Coderate = 0.0;
|
||||||
uint8_t Nl = 4;
|
uint8_t Nl = 4;
|
||||||
|
|
||||||
/*
|
|
||||||
uint8_t *channel_input[MAX_NUM_DLSCH_SEGMENTS]; //unsigned char
|
|
||||||
for(j=0;j<MAX_NUM_DLSCH_SEGMENTS;j++) {
|
|
||||||
channel_input[j] = (unsigned char *)malloc16(sizeof(unsigned char) * 68*384);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
||||||
|
|
||||||
A = rel15->TBSize[0]<<3;
|
A = rel15->TBSize[0]<<3;
|
||||||
|
|||||||
@@ -773,7 +773,6 @@ uint32_t nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue,
|
|||||||
uint32_t A,E;
|
uint32_t A,E;
|
||||||
uint32_t G;
|
uint32_t G;
|
||||||
uint32_t ret,offset;
|
uint32_t ret,offset;
|
||||||
//short dummy_w[MAX_NUM_DLSCH_SEGMENTS][3*(8448+64)];
|
|
||||||
uint32_t r,r_offset=0,Kr=8424,Kr_bytes,err_flag=0,K_bytes_F;
|
uint32_t r,r_offset=0,Kr=8424,Kr_bytes,err_flag=0,K_bytes_F;
|
||||||
uint8_t crc_type;
|
uint8_t crc_type;
|
||||||
//UE_rxtx_proc_t *proc = &phy_vars_ue->proc;
|
//UE_rxtx_proc_t *proc = &phy_vars_ue->proc;
|
||||||
@@ -952,8 +951,8 @@ uint32_t nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (harq_process->C > MAX_NUM_DLSCH_SEGMENTS/bw_scaling) {
|
if (harq_process->C > MAX_NUM_NR_DLSCH_SEGMENTS/bw_scaling) {
|
||||||
LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_DLSCH_SEGMENTS/bw_scaling);
|
LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_NR_DLSCH_SEGMENTS/bw_scaling);
|
||||||
return((1+dlsch->max_ldpc_iterations));
|
return((1+dlsch->max_ldpc_iterations));
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_DLSCH_DECODING
|
#ifdef DEBUG_DLSCH_DECODING
|
||||||
@@ -1392,7 +1391,6 @@ void *nr_dlsch_decoding_process(void *arg)
|
|||||||
uint32_t A,E;
|
uint32_t A,E;
|
||||||
uint32_t G;
|
uint32_t G;
|
||||||
uint32_t ret,offset;
|
uint32_t ret,offset;
|
||||||
// short dummy_w[MAX_NUM_DLSCH_SEGMENTS][3*(8448+64)];
|
|
||||||
uint32_t r,r_offset=0,Kr,Kr_bytes,err_flag=0,K_bytes_F;
|
uint32_t r,r_offset=0,Kr,Kr_bytes,err_flag=0,K_bytes_F;
|
||||||
uint8_t crc_type;
|
uint8_t crc_type;
|
||||||
uint8_t C,Cprime;
|
uint8_t C,Cprime;
|
||||||
@@ -1531,8 +1529,8 @@ void *nr_dlsch_decoding_process(void *arg)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (harq_process->C > MAX_NUM_DLSCH_SEGMENTS/bw_scaling) {
|
if (harq_process->C > MAX_NUM_NR_DLSCH_SEGMENTS/bw_scaling) {
|
||||||
LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_DLSCH_SEGMENTS/bw_scaling);
|
LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_NR_DLSCH_SEGMENTS/bw_scaling);
|
||||||
return((1+dlsch->max_ldpc_iterations));
|
return((1+dlsch->max_ldpc_iterations));
|
||||||
}*/
|
}*/
|
||||||
#ifdef DEBUG_DLSCH_DECODING
|
#ifdef DEBUG_DLSCH_DECODING
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ typedef struct {
|
|||||||
/// soft bits for each received segment ("d"-sequence)(for definition see 36-212 V8.6 2009-03, p.15)
|
/// soft bits for each received segment ("d"-sequence)(for definition see 36-212 V8.6 2009-03, p.15)
|
||||||
int16_t *d[MAX_NUM_NR_DLSCH_SEGMENTS];
|
int16_t *d[MAX_NUM_NR_DLSCH_SEGMENTS];
|
||||||
/// LDPC processing buffers
|
/// LDPC processing buffers
|
||||||
t_nrLDPC_procBuf* p_nrLDPC_procBuf[MAX_NUM_DLSCH_SEGMENTS];
|
t_nrLDPC_procBuf* p_nrLDPC_procBuf[MAX_NUM_NR_DLSCH_SEGMENTS];
|
||||||
/// Number of code segments
|
/// Number of code segments
|
||||||
uint32_t C;
|
uint32_t C;
|
||||||
/// Number of bits in code segments
|
/// Number of bits in code segments
|
||||||
|
|||||||
@@ -238,13 +238,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
|
|||||||
///////////
|
///////////
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
|
||||||
uint8_t *channel_input[MAX_NUM_DLSCH_SEGMENTS]; //unsigned char
|
|
||||||
for(j=0;j<MAX_NUM_DLSCH_SEGMENTS;j++) {
|
|
||||||
channel_input[j] = (unsigned char *)malloc16(sizeof(unsigned char) * 68*384);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
||||||
|
|
||||||
LOG_D(PHY,"ulsch coding nb_rb %d nb_symb_sch %d nb_re_dmrs %d, length_dmrs %d\n", nb_rb,nb_symb_sch, nb_re_dmrs,length_dmrs);
|
LOG_D(PHY,"ulsch coding nb_rb %d nb_symb_sch %d nb_re_dmrs %d, length_dmrs %d\n", nb_rb,nb_symb_sch, nb_re_dmrs,length_dmrs);
|
||||||
|
|||||||
@@ -491,7 +491,7 @@ int main(int argc, char **argv)
|
|||||||
//printf("crc32: [0]->0x%08x\n",crc24c(test_input, 32));
|
//printf("crc32: [0]->0x%08x\n",crc24c(test_input, 32));
|
||||||
// generate signal
|
// generate signal
|
||||||
if (input_fd == NULL) {
|
if (input_fd == NULL) {
|
||||||
nr_dlsch_encoding(test_input, frame, slot, dlsch, frame_parms);
|
nr_dlsch_encoding(test_input, frame, slot, dlsch, frame_parms,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (SNR = snr0; SNR < snr1; SNR += snr_step) {
|
for (SNR = snr0; SNR < snr1; SNR += snr_step) {
|
||||||
|
|||||||
Reference in New Issue
Block a user