remove "pdsch_vars_flp", "pdsch_vars_SI", "pdsch_vars_ra", "pdsch_vars_p" and "pdsch_vars_MCH", use per thread "pdsch_vars" instead
This commit is contained in:
@@ -642,10 +642,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
||||
// create shortcuts
|
||||
NR_DL_FRAME_PARMS *const fp = &ue->frame_parms;
|
||||
NR_UE_COMMON *const common_vars = &ue->common_vars;
|
||||
NR_UE_PDSCH **const pdsch_vars_SI = ue->pdsch_vars_SI;
|
||||
NR_UE_PDSCH **const pdsch_vars_ra = ue->pdsch_vars_ra;
|
||||
NR_UE_PDSCH **const pdsch_vars_p = ue->pdsch_vars_p;
|
||||
NR_UE_PDSCH **const pdsch_vars_mch = ue->pdsch_vars_MCH;
|
||||
NR_UE_PBCH **const pbch_vars = ue->pbch_vars;
|
||||
NR_UE_PRACH **const prach_vars = ue->prach_vars;
|
||||
int i,j,k,l,slot,symb,q;
|
||||
@@ -796,10 +792,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
||||
ue->pdcch_vars[th_id][eNB_id] = (NR_UE_PDCCH *)malloc16_clear(sizeof(NR_UE_PDCCH));
|
||||
}
|
||||
|
||||
pdsch_vars_SI[eNB_id] = (NR_UE_PDSCH *)malloc16_clear(sizeof(NR_UE_PDSCH));
|
||||
pdsch_vars_ra[eNB_id] = (NR_UE_PDSCH *)malloc16_clear(sizeof(NR_UE_PDSCH));
|
||||
pdsch_vars_p[eNB_id] = (NR_UE_PDSCH *)malloc16_clear(sizeof(NR_UE_PDSCH));
|
||||
pdsch_vars_mch[eNB_id] = (NR_UE_PDSCH *)malloc16_clear(sizeof(NR_UE_PDSCH));
|
||||
prach_vars[eNB_id] = (NR_UE_PRACH *)malloc16_clear(sizeof(NR_UE_PRACH));
|
||||
pbch_vars[eNB_id] = (NR_UE_PBCH *)malloc16_clear(sizeof(NR_UE_PBCH));
|
||||
|
||||
@@ -861,11 +853,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
}
|
||||
|
||||
phy_init_nr_ue__PDSCH( pdsch_vars_SI[eNB_id], fp );
|
||||
phy_init_nr_ue__PDSCH( pdsch_vars_ra[eNB_id], fp );
|
||||
phy_init_nr_ue__PDSCH( pdsch_vars_p[eNB_id], fp );
|
||||
phy_init_nr_ue__PDSCH( pdsch_vars_mch[eNB_id], fp );
|
||||
|
||||
// 100 PRBs * 12 REs/PRB * 4 PDCCH SYMBOLS * 2 LLRs/RE
|
||||
for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) {
|
||||
ue->pdcch_vars[th_id][eNB_id]->llr = (int16_t *)malloc16_clear( 2*4*100*12*sizeof(uint16_t) );
|
||||
@@ -929,10 +916,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
||||
ue->pdsch_vars[th_id][eNB_id] = (NR_UE_PDSCH *)malloc16_clear( sizeof(NR_UE_PDSCH) );
|
||||
}
|
||||
|
||||
pdsch_vars_SI[eNB_id] = (NR_UE_PDSCH *)malloc16_clear( sizeof(NR_UE_PDSCH) );
|
||||
pdsch_vars_ra[eNB_id] = (NR_UE_PDSCH *)malloc16_clear( sizeof(NR_UE_PDSCH) );
|
||||
pdsch_vars_p[eNB_id] = (NR_UE_PDSCH *)malloc16_clear( sizeof(NR_UE_PDSCH) );
|
||||
|
||||
if (abstraction_flag == 0) {
|
||||
for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) {
|
||||
//phy_init_lte_ue__PDSCH( ue->pdsch_vars[th_id][eNB_id], fp );
|
||||
|
||||
@@ -159,20 +159,17 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
|
||||
switch (type) {
|
||||
case SI_PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars_SI;
|
||||
pdsch_vars = ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]];
|
||||
dlsch = &ue->dlsch_SI[eNB_id];
|
||||
dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
|
||||
|
||||
break;
|
||||
|
||||
case RA_PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars_ra;
|
||||
pdsch_vars = ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]];
|
||||
dlsch = &ue->dlsch_ra[eNB_id];
|
||||
dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
|
||||
|
||||
// WIP TBR Hotfix
|
||||
memcpy((void*)&pdsch_vars[eNB_id]->dl_ch_estimates[0][ue->frame_parms.ofdm_symbol_size*2], (void*)&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_estimates[0][ue->frame_parms.ofdm_symbol_size*2], ue->frame_parms.ofdm_symbol_size*sizeof(int32_t));
|
||||
|
||||
break;
|
||||
|
||||
case PDSCH:
|
||||
|
||||
@@ -416,55 +416,6 @@ typedef struct {
|
||||
uint32_t llr_length[14];
|
||||
} NR_UE_PDSCH;
|
||||
|
||||
typedef struct {
|
||||
/// \brief Received frequency-domain signal after extraction.
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
int32_t **rxdataF_ext;
|
||||
/// \brief Received frequency-domain signal after extraction and channel compensation.
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
double **rxdataF_comp;
|
||||
/// \brief Downlink channel estimates extracted in PRBS.
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
int32_t **dl_ch_estimates_ext;
|
||||
/// \brief Downlink cross-correlation of MIMO channel estimates (unquantized PMI) extracted in PRBS.
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
double **dl_ch_rho_ext;
|
||||
/// \brief Downlink PMIs extracted in PRBS and grouped in subbands.
|
||||
/// - first index: ressource block [0..N_RB_DL[
|
||||
uint8_t *pmi_ext;
|
||||
/// \brief Magnitude of Downlink Channel (16QAM level/First 64QAM level).
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
double **dl_ch_mag;
|
||||
/// \brief Magnitude of Downlink Channel (2nd 64QAM level).
|
||||
/// - first index: ? [0..7] (hard coded) FIXME! accessed via \c nb_antennas_rx
|
||||
/// - second index: ? [0..]
|
||||
double **dl_ch_magb;
|
||||
/// \brief Cross-correlation of two eNB signals.
|
||||
/// - first index: rx antenna [0..nb_antennas_rx[
|
||||
/// - second index: ? [0..]
|
||||
double **rho;
|
||||
/// never used... always send dl_ch_rho_ext instead...
|
||||
double **rho_i;
|
||||
/// \brief Pointers to llr vectors (2 TBs).
|
||||
/// - first index: ? [0..1] (hard coded)
|
||||
/// - second index: ? [0..1179743] (hard coded)
|
||||
int16_t *llr[2];
|
||||
/// \f$\log_2(\max|H_i|^2)\f$
|
||||
uint8_t log2_maxh;
|
||||
/// \brief Pointers to llr vectors (128-bit alignment).
|
||||
/// - first index: ? [0..0] (hard coded)
|
||||
/// - second index: ? [0..]
|
||||
int16_t **llr128;
|
||||
//uint32_t *rb_alloc;
|
||||
//uint8_t Qm[2];
|
||||
//MIMO_mode_t mimo_mode;
|
||||
} NR_UE_PDSCH_FLP;
|
||||
|
||||
#define NR_PDCCH_DEFS_NR_UE
|
||||
#define NR_NBR_CORESET_ACT_BWP 3 // The number of CoreSets per BWP is limited to 3 (including initial CORESET: ControlResourceId 0)
|
||||
#define NR_NBR_SEARCHSPACE_ACT_BWP 10 // The number of SearchSpaces per BWP is limited to 10 (including initial SEARCHSPACE: SearchSpaceId 0)
|
||||
@@ -902,11 +853,6 @@ typedef struct {
|
||||
|
||||
t_nrPolar_params *polarList;
|
||||
NR_UE_PDSCH *pdsch_vars[RX_NB_TH_MAX][NUMBER_OF_CONNECTED_eNB_MAX+1]; // two RxTx Threads
|
||||
NR_UE_PDSCH_FLP *pdsch_vars_flp[NUMBER_OF_CONNECTED_eNB_MAX+1];
|
||||
NR_UE_PDSCH *pdsch_vars_SI[NUMBER_OF_CONNECTED_eNB_MAX+1];
|
||||
NR_UE_PDSCH *pdsch_vars_ra[NUMBER_OF_CONNECTED_eNB_MAX+1];
|
||||
NR_UE_PDSCH *pdsch_vars_p[NUMBER_OF_CONNECTED_eNB_MAX+1];
|
||||
NR_UE_PDSCH *pdsch_vars_MCH[NUMBER_OF_CONNECTED_eNB_MAX];
|
||||
NR_UE_PBCH *pbch_vars[NUMBER_OF_CONNECTED_eNB_MAX];
|
||||
NR_UE_PDCCH *pdcch_vars[RX_NB_TH_MAX][NUMBER_OF_CONNECTED_eNB_MAX];
|
||||
NR_UE_PRACH *prach_vars[NUMBER_OF_CONNECTED_eNB_MAX];
|
||||
|
||||
@@ -2931,7 +2931,7 @@ void nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int eNB
|
||||
i_mod,
|
||||
dlsch0->current_harq_pid);
|
||||
else { // This is to adjust the llr offset in the case of skipping over a dmrs symbol (i.e. in case of no PDSCH REs in DMRS)
|
||||
if (pdsch == RA_PDSCH) ue->pdsch_vars_ra[eNB_id]->llr_offset[m]=ue->pdsch_vars_ra[eNB_id]->llr_offset[m-1];
|
||||
if (pdsch == RA_PDSCH) ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->llr_offset[m]=ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->llr_offset[m-1];
|
||||
else if (pdsch == PDSCH) nr_rx_pdsch(ue,
|
||||
pdsch,
|
||||
eNB_id,
|
||||
@@ -3178,14 +3178,8 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
|
||||
if (1) {
|
||||
switch (pdsch) {
|
||||
case SI_PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars_SI[eNB_id];
|
||||
break;
|
||||
case RA_PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars_ra[eNB_id];
|
||||
break;
|
||||
case P_PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars_p[eNB_id];
|
||||
break;
|
||||
case PDSCH:
|
||||
pdsch_vars = ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id];
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user