using switch buffer for txdataF in L1
This commit is contained in:
@@ -425,7 +425,7 @@ int wakeup_txfh(PHY_VARS_gNB *gNB,gNB_L1_rxtx_proc_t *proc,int frame_tx,int slot
|
|||||||
|
|
||||||
// note this should depend on the numerology used by the TX L1 thread, set here for 500us slot time
|
// note this should depend on the numerology used by the TX L1 thread, set here for 500us slot time
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,1);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,1);
|
||||||
waitret=timedwait_on_condition(&proc->mutex_RUs_tx,&proc->cond_RUs,&proc->instance_cnt_RUs,"wakeup_txfh",1000000);
|
waitret=wait_on_condition(&proc->mutex_RUs_tx,&proc->cond_RUs,&proc->instance_cnt_RUs,"wakeup_txfh");
|
||||||
AssertFatal(release_thread(&proc->mutex_RUs_tx,&proc->instance_cnt_RUs,"wakeup_txfh")==0, "error releaseing gNB lock on RUs\n");
|
AssertFatal(release_thread(&proc->mutex_RUs_tx,&proc->instance_cnt_RUs,"wakeup_txfh")==0, "error releaseing gNB lock on RUs\n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,0);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,0);
|
||||||
|
|
||||||
|
|||||||
+12
-3
@@ -1291,8 +1291,17 @@ static void *ru_thread_tx( void *param ) {
|
|||||||
} else {
|
} else {
|
||||||
if(proc->frame_tx == print_frame) {
|
if(proc->frame_tx == print_frame) {
|
||||||
for (i=0; i<ru->nb_tx; i++) {
|
for (i=0; i<ru->nb_tx; i++) {
|
||||||
sprintf(filename,"tx%ddataF_frame%d_sl%d.m", i, print_frame, proc->tti_tx);
|
|
||||||
LOG_M(filename,"txdataF_frame",&ru->common.txdataF_BF[i][0],fp->samples_per_subframe_wCP, 1, 1);
|
if(proc->tti_tx == 0) {
|
||||||
|
sprintf(filename,"gNBdataF_frame%d_sl%d.m", print_frame, proc->tti_tx);
|
||||||
|
LOG_M(filename,"txdataF_frame",&ru->gNB_list[0]->common_vars.txdataF[i][0],fp->samples_per_frame_wCP, 1, 1);
|
||||||
|
|
||||||
|
sprintf(filename,"tx%ddataF_frame%d_sl%d.m", i, print_frame, proc->tti_tx);
|
||||||
|
LOG_M(filename,"txdataF_frame",&ru->common.txdataF[i][0],fp->samples_per_frame_wCP, 1, 1);
|
||||||
|
|
||||||
|
sprintf(filename,"tx%ddataF_BF_frame%d_sl%d.m", i, print_frame, proc->tti_tx);
|
||||||
|
LOG_M(filename,"txdataF_BF_frame",&ru->common.txdataF_BF[i][0],fp->samples_per_subframe_wCP, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
if(proc->tti_tx == 9) {
|
if(proc->tti_tx == 9) {
|
||||||
sprintf(filename,"tx%ddata_frame%d.m", i, print_frame);
|
sprintf(filename,"tx%ddata_frame%d.m", i, print_frame);
|
||||||
@@ -1350,9 +1359,9 @@ static void *ru_thread_tx( void *param ) {
|
|||||||
AssertFatal(pthread_cond_signal(&L1_proc->cond_RUs) == 0,
|
AssertFatal(pthread_cond_signal(&L1_proc->cond_RUs) == 0,
|
||||||
"ERROR pthread_cond_signal for gNB_L1_thread\n");
|
"ERROR pthread_cond_signal for gNB_L1_thread\n");
|
||||||
//} //else AssertFatal(1==0,"gNB TX thread is not ready\n");
|
//} //else AssertFatal(1==0,"gNB TX thread is not ready\n");
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_UE,L1_proc->instance_cnt_RUs);
|
|
||||||
ret = pthread_mutex_unlock(&L1_proc->mutex_RUs_tx);
|
ret = pthread_mutex_unlock(&L1_proc->mutex_RUs_tx);
|
||||||
AssertFatal(ret == 0,"mutex_unlock returns %d\n",ret);
|
AssertFatal(ret == 0,"mutex_unlock returns %d\n",ret);
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_UE,L1_proc->instance_cnt_RUs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(nb_symbols == 0) return;
|
||||||
|
|
||||||
short temp[4096*4] __attribute__((aligned(32)));
|
short temp[4096*4] __attribute__((aligned(32)));
|
||||||
unsigned short i,j;
|
unsigned short i,j;
|
||||||
short k;
|
short k;
|
||||||
|
|||||||
@@ -225,12 +225,12 @@ ap, Wt[0], Wt[1], Wf[0], Wf[1], delta, l_prime[0], l0, dmrs_symbol);
|
|||||||
k = start_sc;
|
k = start_sc;
|
||||||
for (int i=0; i<rel15->n_prb*NR_NB_SC_PER_RB; i++) {
|
for (int i=0; i<rel15->n_prb*NR_NB_SC_PER_RB; i++) {
|
||||||
if ((l == dmrs_symbol) && (k == ((start_sc+get_dmrs_freq_idx(n, k_prime, delta, dmrs_type))%(frame_parms->ofdm_symbol_size)))) {
|
if ((l == dmrs_symbol) && (k == ((start_sc+get_dmrs_freq_idx(n, k_prime, delta, dmrs_type))%(frame_parms->ofdm_symbol_size)))) {
|
||||||
((int16_t*)txdataF[ap])[(l*frame_parms->ofdm_symbol_size + k)<<1] = (Wt[l_prime[0]]*Wf[k_prime]*amp*mod_dmrs[dmrs_idx<<1]) >> 15;
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + ((slot%2)*frame_parms->samples_per_slot_wCP)] = (Wt[l_prime[0]]*Wf[k_prime]*amp*mod_dmrs[dmrs_idx<<1]) >> 15;
|
||||||
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = (Wt[l_prime[0]]*Wf[k_prime]*amp*mod_dmrs[(dmrs_idx<<1) + 1]) >> 15;
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1 + ((slot%2)*frame_parms->samples_per_slot_wCP)] = (Wt[l_prime[0]]*Wf[k_prime]*amp*mod_dmrs[(dmrs_idx<<1) + 1]) >> 15;
|
||||||
#ifdef DEBUG_DLSCH_MAPPING
|
#ifdef DEBUG_DLSCH_MAPPING
|
||||||
printf("dmrs_idx %d\t l %d \t k %d \t k_prime %d \t n %d \t txdataF: %d %d\n",
|
printf("dmrs_idx %d\t l %d \t k %d \t k_prime %d \t n %d \t txdataF: %d %d\n",
|
||||||
dmrs_idx, l, k, k_prime, n, ((int16_t*)txdataF[ap])[(l*frame_parms->ofdm_symbol_size + k)<<1],
|
dmrs_idx, l, k, k_prime, n, ((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + ((slot%2)*frame_parms->samples_per_slot_wCP)],
|
||||||
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1]);
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1 + ((slot%2)*frame_parms->samples_per_slot_wCP)]);
|
||||||
#endif
|
#endif
|
||||||
dmrs_idx++;
|
dmrs_idx++;
|
||||||
k_prime++;
|
k_prime++;
|
||||||
@@ -240,12 +240,12 @@ dmrs_idx, l, k, k_prime, n, ((int16_t*)txdataF[ap])[(l*frame_parms->ofdm_symbol_
|
|||||||
|
|
||||||
else {
|
else {
|
||||||
|
|
||||||
((int16_t*)txdataF[ap])[(l*frame_parms->ofdm_symbol_size + k)<<1] = (amp * tx_layers[ap][m<<1]) >> 15;
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + ((slot%2)*frame_parms->samples_per_slot_wCP)] = (amp * tx_layers[ap][m<<1]) >> 15;
|
||||||
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = (amp * tx_layers[ap][(m<<1) + 1]) >> 15;
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1 + ((slot%2)*frame_parms->samples_per_slot_wCP)] = (amp * tx_layers[ap][(m<<1) + 1]) >> 15;
|
||||||
#ifdef DEBUG_DLSCH_MAPPING
|
#ifdef DEBUG_DLSCH_MAPPING
|
||||||
printf("m %d\t l %d \t k %d \t txdataF: %d %d\n",
|
printf("m %d\t l %d \t k %d \t txdataF: %d %d\n",
|
||||||
m, l, k, ((int16_t*)txdataF[ap])[(l*frame_parms->ofdm_symbol_size + k)<<1],
|
m, l, k, ((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + ((slot%2)*frame_parms->samples_per_slot_wCP)],
|
||||||
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1]);
|
((int16_t*)txdataF[ap])[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1 + ((slot%2)*frame_parms->samples_per_slot_wCP)]);
|
||||||
#endif
|
#endif
|
||||||
m++;
|
m++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,7 +168,6 @@ void nr_get_tbs(nfapi_nr_dl_config_dlsch_pdu *dlsch_pdu,
|
|||||||
dlsch_rel15->nb_re_dmrs = N_PRB_DMRS;
|
dlsch_rel15->nb_re_dmrs = N_PRB_DMRS;
|
||||||
dlsch_rel15->nb_mod_symbols = N_RE_prime*dlsch_rel15->n_prb*dlsch_rel15->nb_codewords;
|
dlsch_rel15->nb_mod_symbols = N_RE_prime*dlsch_rel15->n_prb*dlsch_rel15->nb_codewords;
|
||||||
|
|
||||||
|
|
||||||
LOG_D(MAC, "TBS %d : N_RE %d N_PRB_DMRS %d N_sh_symb %d N_PRB_oh %d Ninfo %d Ninfo_prime %d R %d Qm %d table %d scale %d nb_symbols %d\n",
|
LOG_D(MAC, "TBS %d : N_RE %d N_PRB_DMRS %d N_sh_symb %d N_PRB_oh %d Ninfo %d Ninfo_prime %d R %d Qm %d table %d scale %d nb_symbols %d\n",
|
||||||
TBS, N_RE, N_PRB_DMRS, N_sh_symb, N_PRB_oh, Ninfo, Ninfo_prime, R, Qm, table_idx, scale, dlsch_rel15->nb_mod_symbols);
|
TBS, N_RE, N_PRB_DMRS, N_sh_symb, N_PRB_oh, Ninfo, Ninfo_prime, R, Qm, table_idx, scale, dlsch_rel15->nb_mod_symbols);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
//#define DEBUG_ULSCH_DECODING
|
//#define DEBUG_ULSCH_DECODING
|
||||||
|
|
||||||
#define OAI_UL_LDPC_MAX_NUM_LLR 27000//26112 // NR_LDPC_NCOL_BG1*NR_LDPC_ZMAX = 68*384
|
#define OAI_UL_LDPC_MAX_NUM_LLR 27000//26112 // NR_LDPC_NCOL_BG1*NR_LDPC_ZMAX = 68*384
|
||||||
#define PRINT_CRC_CHECK
|
//#define PRINT_CRC_CHECK
|
||||||
|
|
||||||
static uint64_t nb_total_decod =0;
|
static uint64_t nb_total_decod =0;
|
||||||
static uint64_t nb_error_decod =0;
|
static uint64_t nb_error_decod =0;
|
||||||
|
|||||||
@@ -121,11 +121,15 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
|
|||||||
int slot = tti_tx;
|
int slot = tti_tx;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
int aa = 0;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int nb_antenna_ports = 4;
|
int nb_antenna_ports = fp->N_ssb;
|
||||||
int ofdm_mask_full = (1<<(ru->nb_tx*2))-1;
|
int ofdm_mask_full = (1<<(ru->nb_tx*2))-1;
|
||||||
|
|
||||||
start_meas(&ru->ofdm_total_stats);
|
if (nr_slot_select(cfg,slot) == SF_UL) return;
|
||||||
|
for (aa=0; aa<fp->Lmax; aa++) {
|
||||||
|
memset(ru->common.txdataF[aa],0,fp->samples_per_slot_wCP*sizeof(int32_t));
|
||||||
|
}
|
||||||
|
|
||||||
for(j=0; j<fp->symbols_per_slot; ++j){
|
for(j=0; j<fp->symbols_per_slot; ++j){
|
||||||
|
|
||||||
@@ -134,21 +138,17 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
|
|||||||
if (ru->num_gNB == 1){
|
if (ru->num_gNB == 1){
|
||||||
gNB = ru->gNB_list[0];
|
gNB = ru->gNB_list[0];
|
||||||
cfg = &gNB->gNB_config;
|
cfg = &gNB->gNB_config;
|
||||||
if (nr_slot_select(cfg,tti_tx) == SF_UL) return;
|
|
||||||
|
|
||||||
for(i=0; i<nb_antenna_ports; ++i){
|
for(i=0; i<nb_antenna_ports; ++i){
|
||||||
memcpy((void*)&ru->common.txdataF[i][j],
|
memcpy((void*)&ru->common.txdataF[i][j*fp->ofdm_symbol_size],
|
||||||
(void*)&gNB->common_vars.txdataF[i][j],
|
(void*)&gNB->common_vars.txdataF[i][j*fp->ofdm_symbol_size + ((tti_tx%2)*fp->samples_per_slot_wCP)],
|
||||||
fp->ofdm_symbol_size*sizeof(int32_t));
|
fp->ofdm_symbol_size*sizeof(int32_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
}//num_gNB == 1
|
}//num_gNB == 1
|
||||||
//printf("~~~~~~~~~~~memery copy index: nb_antenna_ports = %d, samples_per_slot_wCP = %d\n", nb_antenna_ports, fp->samples_per_slot_wCP);
|
|
||||||
stop_meas(&ru->txdataF_copy_stats);
|
stop_meas(&ru->txdataF_copy_stats);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC+j , 0);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC+j , 0);
|
||||||
|
|
||||||
|
|
||||||
if (nr_slot_select(cfg,slot) == SF_UL) return;
|
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 );
|
||||||
|
|
||||||
if (nr_slot_select(cfg,slot)==SF_DL) {
|
if (nr_slot_select(cfg,slot)==SF_DL) {
|
||||||
@@ -168,7 +168,6 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
|
|||||||
feptx[i].instance_cnt_feptx = 0;
|
feptx[i].instance_cnt_feptx = 0;
|
||||||
AssertFatal(pthread_cond_signal(&feptx[i].cond_feptx) == 0,"ERROR pthread_cond_signal for feptx_ofdm_thread\n");
|
AssertFatal(pthread_cond_signal(&feptx[i].cond_feptx) == 0,"ERROR pthread_cond_signal for feptx_ofdm_thread\n");
|
||||||
AssertFatal((ret=pthread_mutex_unlock(&feptx[i].mutex_feptx))==0,"mutex_lock returns %d\n",ret);
|
AssertFatal((ret=pthread_mutex_unlock(&feptx[i].mutex_feptx))==0,"mutex_lock returns %d\n",ret);
|
||||||
//printf("~~~~~~~~~~~~waking up thread %d with physical antenna %d, slot %d, symbol %d, total logical antenna port %d \n", feptx[i].index, feptx[i].aa, feptx[i].slot, feptx[i].symbol, feptx[i].nb_antenna_ports);
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
while(feptx[i+ru->nb_tx].instance_cnt_feptx != -1){
|
while(feptx[i+ru->nb_tx].instance_cnt_feptx != -1){
|
||||||
@@ -244,7 +243,7 @@ static void *nr_feptx_thread(void *param) {
|
|||||||
fp,
|
fp,
|
||||||
bw,
|
bw,
|
||||||
slot,
|
slot,
|
||||||
l+start,
|
l,
|
||||||
aa,
|
aa,
|
||||||
nb_antenna_ports);
|
nb_antenna_ports);
|
||||||
stop_meas(&ru->precoding_stats);
|
stop_meas(&ru->precoding_stats);
|
||||||
|
|||||||
@@ -125,18 +125,18 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
|
|||||||
|
|
||||||
// it is supposed that each logical antenna port correspont to a different beam so each SSB is stored into its own index of txdataF
|
// it is supposed that each logical antenna port correspont to a different beam so each SSB is stored into its own index of txdataF
|
||||||
LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol);
|
LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol);
|
||||||
nr_generate_pss(gNB->d_pss, txdataF[ssb_index], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_pss(gNB->d_pss, &txdataF[ssb_index][((slot%2)*fp->samples_per_slot_wCP)], AMP, ssb_start_symbol, cfg, fp);
|
||||||
nr_generate_sss(gNB->d_sss, txdataF[ssb_index], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_sss(gNB->d_sss, &txdataF[ssb_index][((slot%2)*fp->samples_per_slot_wCP)], AMP, ssb_start_symbol, cfg, fp);
|
||||||
|
|
||||||
if (fp->Lmax == 4)
|
if (fp->Lmax == 4)
|
||||||
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index],txdataF[ssb_index], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index],&txdataF[ssb_index][((slot%2)*fp->samples_per_slot_wCP)], AMP, ssb_start_symbol, cfg, fp);
|
||||||
else
|
else
|
||||||
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[0][ssb_index],txdataF[ssb_index], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[0][ssb_index],&txdataF[ssb_index][((slot%2)*fp->samples_per_slot_wCP)], AMP, ssb_start_symbol, cfg, fp);
|
||||||
|
|
||||||
nr_generate_pbch(&gNB->pbch,
|
nr_generate_pbch(&gNB->pbch,
|
||||||
pbch_pdu,
|
pbch_pdu,
|
||||||
gNB->nr_pbch_interleaver,
|
gNB->nr_pbch_interleaver,
|
||||||
txdataF[ssb_index],
|
&txdataF[ssb_index][((slot%2)*fp->samples_per_slot_wCP)],
|
||||||
AMP,
|
AMP,
|
||||||
ssb_start_symbol,
|
ssb_start_symbol,
|
||||||
n_hf,fp->Lmax,ssb_index,
|
n_hf,fp->Lmax,ssb_index,
|
||||||
@@ -169,7 +169,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
|
|||||||
|
|
||||||
// clear the transmit data array for the current subframe
|
// clear the transmit data array for the current subframe
|
||||||
for (aa=0; aa<fp->Lmax; aa++) {
|
for (aa=0; aa<fp->Lmax; aa++) {
|
||||||
memset(gNB->common_vars.txdataF[aa],0,fp->samples_per_slot_wCP*sizeof(int32_t));
|
memset(&gNB->common_vars.txdataF[aa][((slot%2)*fp->samples_per_slot_wCP)],0,fp->samples_per_slot_wCP*sizeof(int32_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,1);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,1);
|
||||||
@@ -190,7 +190,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
|
|||||||
if (nfapi_mode == 0 || nfapi_mode == 1) {
|
if (nfapi_mode == 0 || nfapi_mode == 1) {
|
||||||
nr_generate_dci_top(gNB->pdcch_vars,
|
nr_generate_dci_top(gNB->pdcch_vars,
|
||||||
gNB->nr_gold_pdcch_dmrs[slot],
|
gNB->nr_gold_pdcch_dmrs[slot],
|
||||||
gNB->common_vars.txdataF[0], // hardcoded to beam 0
|
&gNB->common_vars.txdataF[0][((slot%2)*fp->samples_per_slot_wCP)], // hardcoded to beam 0
|
||||||
AMP, *fp, *cfg);
|
AMP, *fp, *cfg);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,0);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,0);
|
||||||
if (num_pdsch_rnti) {
|
if (num_pdsch_rnti) {
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ L1s = (
|
|||||||
RUs = (
|
RUs = (
|
||||||
{
|
{
|
||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 4;
|
nb_tx = 1;
|
||||||
nb_rx = 1;
|
nb_rx = 1;
|
||||||
att_tx = 0;
|
att_tx = 0;
|
||||||
att_rx = 0;
|
att_rx = 0;
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ gNBs =
|
|||||||
UL_BWP_prefix_type = "NORMAL";
|
UL_BWP_prefix_type = "NORMAL";
|
||||||
UL_timeAlignmentTimerCommon = "infinity";
|
UL_timeAlignmentTimerCommon = "infinity";
|
||||||
ServingCellConfigCommon_n_TimingAdvanceOffset = "n0"
|
ServingCellConfigCommon_n_TimingAdvanceOffset = "n0"
|
||||||
ServingCellConfigCommon_ssb_PositionsInBurst_PR = 0x0ff;#####
|
ServingCellConfigCommon_ssb_PositionsInBurst_PR = 0x01;#####
|
||||||
ServingCellConfigCommon_ssb_periodicityServingCell = 10;
|
ServingCellConfigCommon_ssb_periodicityServingCell = 10;
|
||||||
ServingCellConfigCommon_dmrs_TypeA_Position = 2;
|
ServingCellConfigCommon_dmrs_TypeA_Position = 2;
|
||||||
NIA_SubcarrierSpacing = "kHz15";
|
NIA_SubcarrierSpacing = "kHz15";
|
||||||
|
|||||||
Reference in New Issue
Block a user