moving initialization of gold for pdsch to nr_init_ue
This commit is contained in:
@@ -616,6 +616,12 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// initializing the scrambling IDs for PDSCH DMRS
|
||||||
|
for (int i=0; i<2; i++)
|
||||||
|
ue->scramblingID[i]=fp->Nid_cell;
|
||||||
|
|
||||||
|
nr_gold_pdsch(ue,ue->scramblingID);
|
||||||
|
|
||||||
// DLSCH
|
// DLSCH
|
||||||
for (eNB_id=0; eNB_id<ue->n_connected_eNB; eNB_id++) {
|
for (eNB_id=0; eNB_id<ue->n_connected_eNB; eNB_id++) {
|
||||||
for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) {
|
for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) {
|
||||||
|
|||||||
@@ -95,13 +95,8 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,
|
|||||||
//unsigned short lbar = 0;
|
//unsigned short lbar = 0;
|
||||||
|
|
||||||
for (nscid=0; nscid<2; nscid++) {
|
for (nscid=0; nscid<2; nscid++) {
|
||||||
if (n_idDMRS)
|
|
||||||
nid = n_idDMRS[nscid];
|
|
||||||
else
|
|
||||||
nid = ue->frame_parms.Nid_cell;
|
|
||||||
|
|
||||||
//printf("gold pdsch nid %d lbar %d\n",nid,lbar);
|
|
||||||
|
|
||||||
|
nid = n_idDMRS[nscid];
|
||||||
for (ns=0; ns<ue->frame_parms.slots_per_frame; ns++) {
|
for (ns=0; ns<ue->frame_parms.slots_per_frame; ns++) {
|
||||||
|
|
||||||
for (l=0; l<ue->frame_parms.symbols_per_slot; l++) {
|
for (l=0; l<ue->frame_parms.symbols_per_slot; l++) {
|
||||||
@@ -112,9 +107,9 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,
|
|||||||
LOG_D(PHY,"UE DMRS slot %d, symb %d, x2 %x, nscid %d\n",ns,l,x2,nscid);
|
LOG_D(PHY,"UE DMRS slot %d, symb %d, x2 %x, nscid %d\n",ns,l,x2,nscid);
|
||||||
|
|
||||||
for (n=0; n<NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD; n++) {
|
for (n=0; n<NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD; n++) {
|
||||||
ue->nr_gold_pdsch[0][ns][l][nscid][n] = lte_gold_generic(&x1, &x2, reset);
|
ue->nr_gold_pdsch[0][ns][l][nscid][n] = lte_gold_generic(&x1, &x2, reset);
|
||||||
reset = 0;
|
reset = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -689,6 +689,14 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
|
|||||||
uint16_t rb_offset = (bwp_start_subcarrier - ue->frame_parms.first_carrier_offset) / 12;
|
uint16_t rb_offset = (bwp_start_subcarrier - ue->frame_parms.first_carrier_offset) / 12;
|
||||||
uint8_t config_type = ue->dmrs_DownlinkConfig.pdsch_dmrs_type;
|
uint8_t config_type = ue->dmrs_DownlinkConfig.pdsch_dmrs_type;
|
||||||
int8_t delta = get_delta(p, config_type);
|
int8_t delta = get_delta(p, config_type);
|
||||||
|
|
||||||
|
// checking if re-initialization of scrambling IDs is needed
|
||||||
|
if ((ue->dmrs_DownlinkConfig.scramblingID0 != ue->scramblingID[0]) || (ue->dmrs_DownlinkConfig.scramblingID1 != ue->scramblingID[1])){
|
||||||
|
ue->scramblingID[0]=ue->dmrs_DownlinkConfig.scramblingID0;
|
||||||
|
ue->scramblingID[1]=ue->dmrs_DownlinkConfig.scramblingID1;
|
||||||
|
nr_gold_pdsch(ue,ue->scramblingID);
|
||||||
|
}
|
||||||
|
|
||||||
nr_pdsch_dmrs_rx(ue,Ns,ue->nr_gold_pdsch[eNB_offset][Ns][symbol][0], &pilot[0],1000,0,nb_rb_pdsch+rb_offset);
|
nr_pdsch_dmrs_rx(ue,Ns,ue->nr_gold_pdsch[eNB_offset][Ns][symbol][0], &pilot[0],1000,0,nb_rb_pdsch+rb_offset);
|
||||||
|
|
||||||
if (config_type == pdsch_dmrs_type1){
|
if (config_type == pdsch_dmrs_type1){
|
||||||
|
|||||||
@@ -907,6 +907,9 @@ typedef struct {
|
|||||||
/// PDSCH DMRS
|
/// PDSCH DMRS
|
||||||
uint32_t ****nr_gold_pdsch[NUMBER_OF_CONNECTED_eNB_MAX];
|
uint32_t ****nr_gold_pdsch[NUMBER_OF_CONNECTED_eNB_MAX];
|
||||||
|
|
||||||
|
// Scrambling IDs used
|
||||||
|
uint16_t scramblingID[2];
|
||||||
|
|
||||||
/// PDCCH DMRS
|
/// PDCCH DMRS
|
||||||
uint32_t ***nr_gold_pdcch[NUMBER_OF_CONNECTED_eNB_MAX];
|
uint32_t ***nr_gold_pdcch[NUMBER_OF_CONNECTED_eNB_MAX];
|
||||||
|
|
||||||
|
|||||||
@@ -1843,15 +1843,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
NR_DL_UE_HARQ_t *dlsch0_harq = dlsch->harq_processes[harq_pid];
|
NR_DL_UE_HARQ_t *dlsch0_harq = dlsch->harq_processes[harq_pid];
|
||||||
uint16_t nb_symb_sch = dlsch0_harq->nb_symbols;
|
uint16_t nb_symb_sch = dlsch0_harq->nb_symbols;
|
||||||
uint16_t start_symb_sch = dlsch0_harq->start_symbol;
|
uint16_t start_symb_sch = dlsch0_harq->start_symbol;
|
||||||
int symb_dmrs = -1;
|
|
||||||
|
|
||||||
LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR Frame.slot %d.%d ------ \n", frame_rx%1024, nr_slot_rx);
|
LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR Frame.slot %d.%d ------ \n", frame_rx%1024, nr_slot_rx);
|
||||||
//to update from pdsch config
|
//to update from pdsch config
|
||||||
|
|
||||||
for (int i=0;i<4;i++) if (((1<<i)&dlsch0_harq->dlDmrsSymbPos) > 0) {symb_dmrs=i;break;}
|
|
||||||
AssertFatal(symb_dmrs>=0,"no dmrs in 0..3\n");
|
|
||||||
LOG_D(PHY,"Initializing dmrs for symb %d DMRS mask %x\n",symb_dmrs,dlsch0_harq->dlDmrsSymbPos);
|
|
||||||
nr_gold_pdsch(ue,0);
|
|
||||||
|
|
||||||
for (uint16_t m=start_symb_sch;m<(nb_symb_sch+start_symb_sch) ; m++){
|
for (uint16_t m=start_symb_sch;m<(nb_symb_sch+start_symb_sch) ; m++){
|
||||||
nr_slot_fep(ue,
|
nr_slot_fep(ue,
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ gNBs =
|
|||||||
# ssb_PositionsInBurs_BitmapPR
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
# 1=short, 2=medium, 3=long
|
# 1=short, 2=medium, 3=long
|
||||||
ssb_PositionsInBurst_PR = 2;
|
ssb_PositionsInBurst_PR = 2;
|
||||||
ssb_PositionsInBurst_Bitmap = 0x51;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
|||||||
Reference in New Issue
Block a user