From 99c8dd420af3b37e09ab394b50437408cb610ac6 Mon Sep 17 00:00:00 2001 From: Laurent THOMAS Date: Fri, 26 Jul 2024 13:50:37 +0200 Subject: [PATCH] Use gold cache for PDCCH decoding, scrambling, unscrambling --- openair1/PHY/INIT/nr_init.c | 28 ------------- openair1/PHY/INIT/nr_init_ue.c | 24 ----------- openair1/PHY/NR_REFSIG/nr_gold.c | 22 ---------- openair1/PHY/NR_REFSIG/nr_gold_ue.c | 21 ---------- openair1/PHY/NR_REFSIG/nr_refsig.h | 1 - openair1/PHY/NR_REFSIG/nr_refsig_common.h | 1 + openair1/PHY/NR_REFSIG/refsig.c | 11 +++++ openair1/PHY/NR_REFSIG/refsig_defs_ue.h | 3 -- openair1/PHY/NR_TRANSPORT/nr_dci.c | 42 +++++-------------- openair1/PHY/NR_TRANSPORT/nr_dci.h | 6 --- .../nr_dl_channel_estimation.c | 26 ++++++------ openair1/PHY/NR_UE_TRANSPORT/dci_nr.c | 23 +++------- .../PHY/NR_UE_TRANSPORT/nr_initial_sync.c | 4 -- openair1/PHY/defs_gNB.h | 4 -- openair1/PHY/defs_nr_UE.h | 6 --- openair1/SIMULATION/NR_PHY/dlsim.c | 4 -- 16 files changed, 42 insertions(+), 184 deletions(-) diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c index fe568720ae..1899f28442 100644 --- a/openair1/PHY/INIT/nr_init.c +++ b/openair1/PHY/INIT/nr_init.c @@ -143,31 +143,11 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB) gNB->max_nb_pdsch = MAX_MOBILES_PER_GNB; init_delay_table(fp->ofdm_symbol_size, MAX_DELAY_COMP, NR_MAX_OFDM_SYMBOL_SIZE, fp->delay_table); - //PDCCH DMRS init - gNB->nr_gold_pdcch_dmrs = (uint32_t ***)malloc16(fp->slots_per_frame*sizeof(uint32_t **)); - uint32_t ***pdcch_dmrs = gNB->nr_gold_pdcch_dmrs; - AssertFatal(pdcch_dmrs!=NULL, "NR init: pdcch_dmrs malloc failed\n"); - gNB->bad_pucch = 0; if (gNB->TX_AMP == 0) gNB->TX_AMP = AMP; // ceil(((NB_RB<<1)*3)/32) // 3 RE *2(QPSK) - int pdcch_dmrs_init_length = (((fp->N_RB_DL<<1)*3)>>5)+1; - - for (int slot=0; slotslots_per_frame; slot++) { - pdcch_dmrs[slot] = (uint32_t **)malloc16(fp->symbols_per_slot*sizeof(uint32_t *)); - AssertFatal(pdcch_dmrs[slot]!=NULL, "NR init: pdcch_dmrs for slot %d - malloc failed\n", slot); - - for (int symb=0; symbsymbols_per_slot; symb++) { - pdcch_dmrs[slot][symb] = (uint32_t *)malloc16(pdcch_dmrs_init_length*sizeof(uint32_t)); - LOG_D(PHY,"pdcch_dmrs[%d][%d] %p\n",slot,symb,pdcch_dmrs[slot][symb]); - AssertFatal(pdcch_dmrs[slot][symb]!=NULL, "NR init: pdcch_dmrs for slot %d symbol %d - malloc failed\n", slot, symb); - } - } - nr_generate_modulation_table(); - gNB->pdcch_gold_init = cfg->cell_config.phy_cell_id.value; - nr_init_pdcch_dmrs(gNB, cfg->cell_config.phy_cell_id.value); nr_init_pbch_interleaver(gNB->nr_pbch_interleaver); //PDSCH DMRS init @@ -340,14 +320,6 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB) free_and_zero(meas->n0_subband_power); free_and_zero(meas->n0_subband_power_dB); - uint32_t ***pdcch_dmrs = gNB->nr_gold_pdcch_dmrs; - for (int slot = 0; slot < fp->slots_per_frame; slot++) { - for (int symb = 0; symb < fp->symbols_per_slot; symb++) - free_and_zero(pdcch_dmrs[slot][symb]); - free_and_zero(pdcch_dmrs[slot]); - } - free_and_zero(pdcch_dmrs); - uint32_t ****pdsch_dmrs = gNB->nr_gold_pdsch_dmrs; for (int slot = 0; slot < fp->slots_per_frame; slot++) { for (int symb = 0; symb < fp->symbols_per_slot; symb++) { diff --git a/openair1/PHY/INIT/nr_init_ue.c b/openair1/PHY/INIT/nr_init_ue.c index 3967090aeb..ecc14e71f8 100644 --- a/openair1/PHY/INIT/nr_init_ue.c +++ b/openair1/PHY/INIT/nr_init_ue.c @@ -304,23 +304,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB) common_vars->rxdata[i] = malloc16_clear(num_samples * sizeof(c16_t)); } - // ceil(((NB_RB<<1)*3)/32) // 3 RE *2(QPSK) - int pdcch_dmrs_init_length = (((fp->N_RB_DL<<1)*3)>>5)+1; - //PDCCH DMRS init (gNB offset = 0) - ue->nr_gold_pdcch[0] = malloc16(fp->slots_per_frame * sizeof(uint32_t **)); - uint32_t ***pdcch_dmrs = ue->nr_gold_pdcch[0]; - AssertFatal(pdcch_dmrs!=NULL, "NR init: pdcch_dmrs malloc failed\n"); - - for (int slot=0; slotslots_per_frame; slot++) { - pdcch_dmrs[slot] = malloc16(fp->symbols_per_slot * sizeof(uint32_t *)); - AssertFatal(pdcch_dmrs[slot]!=NULL, "NR init: pdcch_dmrs for slot %d - malloc failed\n", slot); - - for (int symb=0; symbsymbols_per_slot; symb++) { - pdcch_dmrs[slot][symb] = malloc16(pdcch_dmrs_init_length * sizeof(uint32_t)); - AssertFatal(pdcch_dmrs[slot][symb]!=NULL, "NR init: pdcch_dmrs for slot %d symbol %d - malloc failed\n", slot, symb); - } - } - // ceil(((NB_RB*6(k)*2(QPSK)/32) // 3 RE *2(QPSK) int pdsch_dmrs_init_length = ((fp->N_RB_DL*12)>>5)+1; @@ -425,13 +408,6 @@ void term_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB) } free_and_zero(common_vars->rxdata); - for (int slot = 0; slot < fp->slots_per_frame; slot++) { - for (int symb = 0; symb < fp->symbols_per_slot; symb++) - free_and_zero(ue->nr_gold_pdcch[0][slot][symb]); - free_and_zero(ue->nr_gold_pdcch[0][slot]); - } - free_and_zero(ue->nr_gold_pdcch[0]); - for (int slot=0; slotslots_per_frame; slot++) { for (int symb=0; symbsymbols_per_slot; symb++) { for (int q=0; qframe_parms; - uint32_t ***pdcch_dmrs = gNB->nr_gold_pdcch_dmrs; - int pdcch_dmrs_init_length = (((fp->N_RB_DL << 1) * 3) >> 5) + 1; - - for (int slot = 0; slot < fp->slots_per_frame; slot++) { - for (int symb = 0; symb < fp->symbols_per_slot; symb++) { - uint8_t reset = 1; - uint32_t x1 = 0; - uint64_t temp_x2 = ((1UL << 17) * (fp->symbols_per_slot * slot + symb + 1) * ((Nid << 1) + 1) + (Nid << 1)); - uint32_t x2 = temp_x2 % (1U << 31); - LOG_D(PHY,"PDCCH DMRS slot %d, symb %d, Nid %d, x2 %x\n", slot, symb, Nid, x2); - for (uint32_t n = 0; n < pdcch_dmrs_init_length; n++) { - pdcch_dmrs[slot][symb][n] = lte_gold_generic(&x1, &x2, reset); - reset = 0; - } - } - } -} - - void nr_init_pdsch_dmrs(PHY_VARS_gNB* gNB, uint8_t nscid, uint32_t Nid) { NR_DL_FRAME_PARMS *fp = &gNB->frame_parms; diff --git a/openair1/PHY/NR_REFSIG/nr_gold_ue.c b/openair1/PHY/NR_REFSIG/nr_gold_ue.c index cb854162fe..a6beb95ecd 100644 --- a/openair1/PHY/NR_REFSIG/nr_gold_ue.c +++ b/openair1/PHY/NR_REFSIG/nr_gold_ue.c @@ -22,27 +22,6 @@ #include "refsig_defs_ue.h" #include "openair1/PHY/LTE_TRANSPORT/transport_proto.h" // for lte_gold_generic() -void nr_gold_pdcch(PHY_VARS_NR_UE* ue, - unsigned short nid) -{ - int pdcch_dmrs_init_length = (((ue->frame_parms.N_RB_DL << 1) * 3) >> 5) + 1; - for (int ns = 0; ns < ue->frame_parms.slots_per_frame; ns++) { - for (int l = 0; l < ue->frame_parms.symbols_per_slot; l++) { - uint8_t reset = 1; - uint64_t x2tmp0 = ((ue->frame_parms.symbols_per_slot * ns + l + 1) * ((nid << 1) + 1)); - x2tmp0 <<= 17; - x2tmp0 += (nid << 1); - uint32_t x1 = 0; - uint32_t x2 = x2tmp0 % (1U << 31); //cinit - LOG_D(PHY,"PDCCH DMRS slot %d, symb %d, Nid %d, x2 %x\n", ns, l, nid, x2); - for (int n = 0; n < pdcch_dmrs_init_length; n++) { - ue->nr_gold_pdcch[0][ns][l][n] = lte_gold_generic(&x1, &x2, reset); - reset = 0; - } - } - } -} - void nr_gold_pdsch(PHY_VARS_NR_UE* ue, int nscid, uint32_t nid) diff --git a/openair1/PHY/NR_REFSIG/nr_refsig.h b/openair1/PHY/NR_REFSIG/nr_refsig.h index de749728eb..da5f4e062b 100644 --- a/openair1/PHY/NR_REFSIG/nr_refsig.h +++ b/openair1/PHY/NR_REFSIG/nr_refsig.h @@ -39,7 +39,6 @@ void nr_init_prs(PHY_VARS_gNB* gNB); @param PHY_VARS_gNB* gNB structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables @param Nid is used for the initialization of x2, Physical cell Id by default or upper layer configured pdcch_scrambling_ID */ -void nr_init_pdcch_dmrs(PHY_VARS_gNB* gNB, uint32_t Nid); void nr_init_pdsch_dmrs(PHY_VARS_gNB* gNB, uint8_t nscid, uint32_t Nid); void nr_init_csi_rs(const NR_DL_FRAME_PARMS *fp, uint32_t ***csi_rs, uint32_t Nid); diff --git a/openair1/PHY/NR_REFSIG/nr_refsig_common.h b/openair1/PHY/NR_REFSIG/nr_refsig_common.h index 28726665a6..8e05fe3304 100644 --- a/openair1/PHY/NR_REFSIG/nr_refsig_common.h +++ b/openair1/PHY/NR_REFSIG/nr_refsig_common.h @@ -26,5 +26,6 @@ uint32_t *gold_cache(uint32_t key, int length); uint32_t *nr_gold_pbch(int Lmax, int Nid, int n_hf, int ssb); +uint32_t *nr_gold_pdcch(int N_RB_DL, int symbols_per_slot, unsigned short n_idDMRS, int ns, int l); #endif diff --git a/openair1/PHY/NR_REFSIG/refsig.c b/openair1/PHY/NR_REFSIG/refsig.c index 205ef9fa78..5d377f316e 100644 --- a/openair1/PHY/NR_REFSIG/refsig.c +++ b/openair1/PHY/NR_REFSIG/refsig.c @@ -172,3 +172,14 @@ uint32_t *nr_gold_pbch(int Lmax, int Nid, int n_hf, int l) uint32_t x2 = (1 << 11) * (i_ssb2 + 1) * ((Nid >> 2) + 1) + (1 << 6) * (i_ssb2 + 1) + (Nid & 3); return gold_cache(x2, NR_PBCH_DMRS_LENGTH_DWORD); } + +uint32_t *nr_gold_pdcch(int N_RB_DL, int symbols_per_slot, unsigned short nid, int ns, int l) +{ + int pdcch_dmrs_init_length = (((N_RB_DL << 1) * 3) >> 5) + 1; + uint64_t x2tmp0 = (((uint64_t)symbols_per_slot * ns + l + 1) * ((nid << 1) + 1)); + x2tmp0 <<= 17; + x2tmp0 += (nid << 1); + uint32_t x2 = x2tmp0 % (1U << 31); // cinit + LOG_D(PHY, "PDCCH DMRS slot %d, symb %d, Nid %d, x2 %x\n", ns, l, nid, x2); + return gold_cache(x2, pdcch_dmrs_init_length); +} diff --git a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h index b62f8ffdcc..12d043e4fd 100644 --- a/openair1/PHY/NR_REFSIG/refsig_defs_ue.h +++ b/openair1/PHY/NR_REFSIG/refsig_defs_ue.h @@ -51,9 +51,6 @@ int nr_pdsch_dmrs_rx(const PHY_VARS_NR_UE *ue, unsigned short nb_pdsch_rb, uint8_t config_type); -void nr_gold_pdcch(PHY_VARS_NR_UE* ue, - unsigned short n_idDMRS); - void nr_gold_pdsch(PHY_VARS_NR_UE* ue, int nscid, uint32_t nid); diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.c b/openair1/PHY/NR_TRANSPORT/nr_dci.c index 678a407f9b..e3b3f3b42e 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_dci.c +++ b/openair1/PHY/NR_TRANSPORT/nr_dci.c @@ -41,29 +41,13 @@ //#define DEBUG_DCI //#define DEBUG_CHANNEL_CODING -void nr_pdcch_scrambling(uint32_t *in, - uint32_t size, - uint32_t Nid, - uint32_t scrambling_RNTI, - uint32_t *out) { - uint8_t reset; - uint32_t x1 = 0, x2 = 0, s = 0; - reset = 1; - x2 = (scrambling_RNTI<<16) + Nid; - LOG_D(NR_PHY_DCI, "PDCCH Scrambling x2 %x : scrambling_RNTI %x \n", x2, scrambling_RNTI); - for (int i=0; i>(i&0x1f))&1) ^ ((s>>(i&0x1f))&1))<<(i&0x1f); - } +static void nr_pdcch_scrambling(uint32_t *in, uint32_t size, uint32_t Nid, uint32_t scrambling_RNTI, uint32_t *out) +{ + int roundedSz = ((size + 31) / 32); + uint32_t *seq = gold_cache((scrambling_RNTI << 16) + Nid, roundedSz); + LOG_D(NR_PHY_DCI, "PDCCH scrambling_RNTI %x \n", scrambling_RNTI); + for (int i = 0; i < roundedSz; i++) + out[i] = in[i] ^ seq[i]; } void nr_generate_dci(PHY_VARS_gNB *gNB, @@ -95,13 +79,6 @@ void nr_generate_dci(PHY_VARS_gNB *gNB, * in time: by its first slot and its first symbol*/ const nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu_rel15->dci_pdu[d]; - if(dci_pdu->ScramblingId != gNB->pdcch_gold_init) { - gNB->pdcch_gold_init = dci_pdu->ScramblingId; - nr_init_pdcch_dmrs(gNB, dci_pdu->ScramblingId); - } - - uint32_t **gold_pdcch_dmrs = gNB->nr_gold_pdcch_dmrs[slot]; - cset_start_symb = pdcch_pdu_rel15->StartSymbolIndex; cset_nsymb = pdcch_pdu_rel15->DurationSymbols; dci_idx = 0; @@ -131,9 +108,10 @@ void nr_generate_dci(PHY_VARS_gNB *gNB, /// DMRS QPSK modulation for (int symb=cset_start_symb; symbDurationSymbols; symb++) { + const uint32_t *gold = nr_gold_pdcch(frame_parms->N_RB_DL, frame_parms->symbols_per_slot, dci_pdu->ScramblingId, slot, symb); + nr_modulation(gold, dmrs_length, DMRS_MOD_ORDER, + mod_dmrs[symb]); // Qm = 2 as DMRS is QPSK modulated - nr_modulation(gold_pdcch_dmrs[symb], dmrs_length, DMRS_MOD_ORDER, mod_dmrs[symb]); //Qm = 2 as DMRS is QPSK modulated - #ifdef DEBUG_PDCCH_DMRS if(dci_pdu->RNTI!=0xFFFF) { for (int i=0; i>1; i++) diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.h b/openair1/PHY/NR_TRANSPORT/nr_dci.h index 578301a7a2..3a61d0b4a0 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_dci.h +++ b/openair1/PHY/NR_TRANSPORT/nr_dci.h @@ -32,12 +32,6 @@ void nr_generate_dci_top(processingData_L1tx_t *msgTx, int16_t amp, NR_DL_FRAME_PARMS *frame_parms); -void nr_pdcch_scrambling(uint32_t *in, - uint32_t size, - uint32_t Nid, - uint32_t n_RNTI, - uint32_t *out); - int16_t find_nr_pdcch(int frame,int slot, PHY_VARS_gNB *gNB,find_type_t type); void nr_fill_dci(PHY_VARS_gNB *gNB, diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index cdec1be6bf..2709675213 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -842,9 +842,7 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, c16_t pdcch_dl_ch_estimates[][pdcch_est_size], c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { - - int Ns = proc->nr_slot_rx; - int gNB_id = proc->gNB_id; + int slot = proc->nr_slot_rx; unsigned char aarx; unsigned short k; unsigned int pilot_cnt; @@ -868,8 +866,13 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, unsigned short coreset_start_subcarrier = first_carrier_offset+(BWPStart + coreset_start_rb)*12; #ifdef DEBUG_PDCCH - printf("PDCCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, Ns=%d, symbol %d\n", - gNB_id,ch_offset,ue->frame_parms.ofdm_symbol_size,ue->frame_parms.Ncp,Ns,symbol); + printf("PDCCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, slot=%d, symbol %d\n", + gNB_id, + ch_offset, + ue->frame_parms.ofdm_symbol_size, + ue->frame_parms.Ncp, + slot, + symbol); #endif #if CH_INTERP @@ -879,19 +882,18 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, #endif unsigned short scrambling_id = coreset->pdcch_dmrs_scrambling_id; - // checking if re-initialization of scrambling IDs is needed (should be done here but scrambling ID for PDCCH is not taken from RRC) - if (scrambling_id != ue->scramblingID_pdcch){ - ue->scramblingID_pdcch = scrambling_id; - nr_gold_pdcch(ue,ue->scramblingID_pdcch); - } - int dmrs_ref = 0; if (coreset->CoreSetType == NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG) dmrs_ref = BWPStart; // generate pilot int pilot[(nb_rb_coreset + dmrs_ref) * 3] __attribute__((aligned(16))); // Note: pilot returned by the following function is already the complex conjugate of the transmitted DMRS - nr_pdcch_dmrs_rx(ue, Ns, ue->nr_gold_pdcch[gNB_id][Ns][symbol], (c16_t *)pilot, 2000, (nb_rb_coreset + dmrs_ref)); + nr_pdcch_dmrs_rx(ue, + slot, + nr_gold_pdcch(ue->frame_parms.N_RB_DL, ue->frame_parms.symbols_per_slot, scrambling_id, slot, symbol), + (c16_t *)pilot, + 2000, + (nb_rb_coreset + dmrs_ref)); for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) { diff --git a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c index 47be51813f..15e02dcc5a 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c +++ b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c @@ -39,6 +39,7 @@ #include "PHY/sse_intrin.h" #include "common/utils/nr/nr_common.h" #include +#include "openair1/PHY/NR_REFSIG/nr_refsig_common.h" #include "assertions.h" #include "T.h" @@ -655,25 +656,13 @@ static void nr_pdcch_unscrambling(c16_t *e_rx, uint16_t pdcch_DMRS_scrambling_id, int16_t *z2) { - int i; - uint8_t reset; - uint32_t x1 = 0, x2 = 0, s = 0; - uint16_t n_id; //{0,1,...,65535} uint32_t rnti = (uint32_t) scrambling_RNTI; - reset = 1; - // x1 is set in first call to lte_gold_generic - n_id = pdcch_DMRS_scrambling_id; - x2 = ((rnti << 16) + n_id) % (1U << 31); // this is c_init in 38.211 v15.1.0 Section 7.3.2.3 - - LOG_D(NR_PHY_DCI, "PDCCH Unscrambling x2 %x : scrambling_RNTI %x\n", x2, rnti); + uint16_t n_id = pdcch_DMRS_scrambling_id; + uint32_t *seq = gold_cache(((rnti << 16) + n_id) % (1U << 31), length / 32); // this is c_init in 38.211 v15.1.0 Section 7.3.2.3 + LOG_D(NR_PHY_DCI, "PDCCH Unscrambling: scrambling_RNTI %x\n", rnti); int16_t *ptr = &e_rx[0].r; - for (i = 0; i < length; i++) { - if ((i & 0x1f) == 0) { - s = lte_gold_generic(&x1, &x2, reset); - reset = 0; - } - - if (((s >> (i % 32)) & 1) == 1) + for (int i = 0; i < length; i++) { + if (seq[i / 32] & (1UL << (i % 32))) z2[i] = -ptr[i]; else z2[i] = ptr[i]; diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c index 5fa3d8c83b..9b0f226321 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c @@ -407,10 +407,6 @@ nr_initial_sync_t nr_initial_sync(UE_nr_rxtx_proc_t *proc, // the n_frames we got sync ue->init_sync_frame = n_frames - 1 - res.syncRes.frame_id; - // compute the scramblingID_pdcch and the gold pdcch - ue->scramblingID_pdcch = fp->Nid_cell; - nr_gold_pdcch(ue, fp->Nid_cell); - // compute the scrambling IDs for PDSCH DMRS for (int i = 0; i < NR_NB_NSCID; i++) { ue->scramblingID_dlsch[i] = fp->Nid_cell; diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h index 40bfd657a0..9f8eef8fad 100644 --- a/openair1/PHY/defs_gNB.h +++ b/openair1/PHY/defs_gNB.h @@ -609,9 +609,6 @@ typedef struct PHY_VARS_gNB_s { /// PBCH interleaver uint8_t nr_pbch_interleaver[NR_POLAR_PBCH_PAYLOAD_BITS]; - /// PDCCH DMRS sequence - uint32_t ***nr_gold_pdcch_dmrs; - /// PDSCH DMRS sequence uint32_t ****nr_gold_pdsch_dmrs; @@ -638,7 +635,6 @@ typedef struct PHY_VARS_gNB_s { /// counter to average prach energh over first 100 prach opportunities int prach_energy_counter; - int pdcch_gold_init; int pdsch_gold_init[2]; int pusch_gold_init[2]; diff --git a/openair1/PHY/defs_nr_UE.h b/openair1/PHY/defs_nr_UE.h index 3282fbb2d2..22fadfd1e7 100644 --- a/openair1/PHY/defs_nr_UE.h +++ b/openair1/PHY/defs_nr_UE.h @@ -417,12 +417,6 @@ typedef struct PHY_VARS_NR_UE_s { // Scrambling IDs used in PUSCH DMRS uint16_t scramblingID_ulsch[2]; - /// PDCCH DMRS - uint32_t ***nr_gold_pdcch[NUMBER_OF_CONNECTED_eNB_MAX]; - - // Scrambling IDs used in PDCCH DMRS - uint16_t scramblingID_pdcch; - /// PUSCH DMRS sequence uint32_t ****nr_gold_pusch_dmrs; diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c index a20b6cdfaf..b66b8357fa 100644 --- a/openair1/SIMULATION/NR_PHY/dlsim.c +++ b/openair1/SIMULATION/NR_PHY/dlsim.c @@ -840,10 +840,6 @@ int main(int argc, char **argv) init_nr_ue_transport(UE); - // compute the scramblingID_pdcch and the gold pdcch - UE->scramblingID_pdcch = frame_parms->Nid_cell; - nr_gold_pdcch(UE, frame_parms->Nid_cell); - // compute the scrambling IDs for PDSCH DMRS for (int i = 0; i < 2; i++) { UE->scramblingID_dlsch[i] = frame_parms->Nid_cell;