Commit 2167d2c0 authored by Florian Kaltenberger's avatar Florian Kaltenberger

some bugfixes to the uespec pilot generation for TM8

parent 6ab9229b
...@@ -45,10 +45,10 @@ unsigned int lte_gold_generic(unsigned int *x1, unsigned int *x2, unsigned char ...@@ -45,10 +45,10 @@ unsigned int lte_gold_generic(unsigned int *x1, unsigned int *x2, unsigned char
void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14],uint16_t Nid_cell); void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14],uint16_t Nid_cell);
/*! \brief This function generates the LTE Gold sequence for DL UE-specific pilots for antenna ports 7,...,14 (transmission modes 8/9) */ /*! \brief This function generates the LTE Gold sequence for DL UE-specific pilots for antenna ports 7,...,14 (transmission modes 8/9) */
void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS); void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][100],uint16_t Nid_cell, uint16_t *n_idDMRS);
/*! \brief This function generates the LTE Gold sequence for DL UE-specific pilots for antenna port 5 (transmission mode 7) */ /*! \brief This function generates the LTE Gold sequence for DL UE-specific pilots for antenna port 5 (transmission mode 7) */
void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_t Nid_cell, uint16_t n_rnti); void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][75],uint16_t Nid_cell, uint16_t n_rnti);
/*!\brief This function generates the LTE Gold sequence (36-211, Sec 7.2), specifically for DL UE-specific reference signals for antenna ports 7..14. /*!\brief This function generates the LTE Gold sequence (36-211, Sec 7.2), specifically for DL UE-specific reference signals for antenna ports 7..14.
@param frame_parms LTE DL Frame parameters @param frame_parms LTE DL Frame parameters
......
...@@ -81,7 +81,7 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14] ...@@ -81,7 +81,7 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14]
} }
} }
void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_cell, uint16_t *n_idDMRS) void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][100],uint16_t Nid_cell, uint16_t *n_idDMRS)
{ {
unsigned char ns,l; unsigned char ns,l;
...@@ -117,7 +117,7 @@ void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_ ...@@ -117,7 +117,7 @@ void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_
// printf("x1 : %x, x2 : %x\n",x1,x2); // printf("x1 : %x, x2 : %x\n",x1,x2);
} }
for (n=0; n<14; n++) { for (n=0; n<100; n++) {
x1 = (x1>>1) ^ (x1>>4); x1 = (x1>>1) ^ (x1>>4);
x1 = x1 ^ (x1<<31) ^ (x1<<28); x1 = x1 ^ (x1<<31) ^ (x1<<28);
x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4); x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4);
...@@ -131,7 +131,7 @@ void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_ ...@@ -131,7 +131,7 @@ void lte_gold_ue_spec(uint32_t lte_gold_uespec_table[2][20][2][21],uint16_t Nid_
} }
} }
void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_t Nid_cell, uint16_t n_rnti) void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][75],uint16_t Nid_cell, uint16_t n_rnti)
{ {
unsigned char ns; unsigned char ns;
...@@ -157,7 +157,7 @@ void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_ ...@@ -157,7 +157,7 @@ void lte_gold_ue_spec_port5(uint32_t lte_gold_uespec_port5_table[20][38],uint16_
//printf("x1 : %x, x2 : %x\n",x1,x2); //printf("x1 : %x, x2 : %x\n",x1,x2);
} }
for (n=0; n<38; n++) { for (n=0; n<75; n++) {
x1 = (x1>>1) ^ (x1>>4); x1 = (x1>>1) ^ (x1>>4);
x1 = x1 ^ (x1<<31) ^ (x1<<28); x1 = x1 ^ (x1<<31) ^ (x1<<28);
x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4); x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4);
......
...@@ -886,6 +886,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -886,6 +886,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
uint8_t TPC=0; uint8_t TPC=0;
uint8_t TB0_active=0,TB1_active=0; uint8_t TB0_active=0,TB1_active=0;
uint8_t ndi1=0,ndi2=0; uint8_t ndi1=0,ndi2=0;
uint8_t nscid;
LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL;
// printf("Generate eNB DCI, format %d, rnti %x (pdu %p)\n",dci_format,rnti,dci_pdu); // printf("Generate eNB DCI, format %d, rnti %x (pdu %p)\n",dci_format,rnti,dci_pdu);
...@@ -2134,9 +2135,10 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2134,9 +2135,10 @@ int generate_eNB_dlsch_params_from_dci(int frame,
rballoc = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rballoc; rballoc = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rballoc;
rv1 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rv1; rv1 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rv1;
rv2 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rv2; rv2 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->rv2;
ndi1 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_1_5MHz_TDD_t *)dci_pdu)->scrambling_id;
} else { } else {
mcs1 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->mcs1; mcs1 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->mcs1;
mcs2 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->mcs2; mcs2 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->mcs2;
...@@ -2146,6 +2148,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2146,6 +2148,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_1_5MHz_FDD_t *)dci_pdu)->scrambling_id;
} }
break; break;
...@@ -2161,6 +2164,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2161,6 +2164,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_5MHz_TDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_5MHz_TDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_5MHz_TDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_5MHz_TDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_5MHz_TDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_5MHz_TDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_5MHz_TDD_t *)dci_pdu)->scrambling_id;
} else { } else {
mcs1 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->mcs1; mcs1 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->mcs1;
mcs2 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->mcs2; mcs2 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->mcs2;
...@@ -2171,6 +2175,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2171,6 +2175,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_5MHz_FDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_5MHz_FDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_5MHz_FDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_5MHz_FDD_t *)dci_pdu)->scrambling_id;
} }
break; break;
...@@ -2186,6 +2191,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2186,6 +2191,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_10MHz_TDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_10MHz_TDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_10MHz_TDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_10MHz_TDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_10MHz_TDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_10MHz_TDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_10MHz_TDD_t *)dci_pdu)->scrambling_id;
} else { } else {
mcs1 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->mcs1; mcs1 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->mcs1;
mcs2 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->mcs2; mcs2 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->mcs2;
...@@ -2196,6 +2202,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2196,6 +2202,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_10MHz_FDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_10MHz_FDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_10MHz_FDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_10MHz_FDD_t *)dci_pdu)->scrambling_id;
} }
break; break;
...@@ -2211,6 +2218,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2211,6 +2218,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_20MHz_TDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_20MHz_TDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_20MHz_TDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_20MHz_TDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_20MHz_TDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_20MHz_TDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_20MHz_TDD_t *)dci_pdu)->scrambling_id;
} else { } else {
mcs1 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->mcs1; mcs1 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->mcs1;
mcs2 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->mcs2; mcs2 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->mcs2;
...@@ -2221,6 +2229,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2221,6 +2229,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
ndi1 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->ndi1; ndi1 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->ndi1;
ndi2 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->ndi2; ndi2 = ((DCI2B_20MHz_FDD_t *)dci_pdu)->ndi2;
harq_pid = ((DCI2B_20MHz_FDD_t *)dci_pdu)->harq_pid; harq_pid = ((DCI2B_20MHz_FDD_t *)dci_pdu)->harq_pid;
nscid = ((DCI2B_20MHz_TDD_t *)dci_pdu)->scrambling_id;
} }
break; break;
...@@ -2327,8 +2336,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2327,8 +2336,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
frame_parms->N_RB_DL); frame_parms->N_RB_DL);
if (dlsch1!=NULL) { if (dlsch1!=NULL) {
// fixme (need to copy more fields of rb_alloc) memcpy(dlsch1_harq->rb_alloc,dlsch0_harq->rb_alloc,4*sizeof(uint32_t));
dlsch1_harq->rb_alloc[0] = dlsch0_harq->rb_alloc[0];
dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; dlsch1_harq->nb_rb = dlsch0_harq->nb_rb;
} }
} else if ((dlsch0 == NULL ) && (dlsch1 != NULL )) { } else if ((dlsch0 == NULL ) && (dlsch1 != NULL )) {
...@@ -2350,6 +2358,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2350,6 +2358,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq->dl_power_off = 1; dlsch0_harq->dl_power_off = 1;
dlsch0_harq->mimo_mode = TM8; //this DCI can only be used in TM8 dlsch0_harq->mimo_mode = TM8; //this DCI can only be used in TM8
dlsch0_harq->Nlayers = 1; dlsch0_harq->Nlayers = 1;
dlsch0_harq->nscid = nscid;
} }
if (dlsch1_harq != NULL) { if (dlsch1_harq != NULL) {
...@@ -2363,6 +2372,7 @@ int generate_eNB_dlsch_params_from_dci(int frame, ...@@ -2363,6 +2372,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch1_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1;
dlsch1_harq->mimo_mode = TM8; //this DCI can only be used in TM8 dlsch1_harq->mimo_mode = TM8; //this DCI can only be used in TM8
dlsch1_harq->Nlayers = 1; dlsch1_harq->Nlayers = 1;
dlsch1_harq->nscid = nscid;
} }
break; break;
......
...@@ -166,6 +166,8 @@ typedef struct { ...@@ -166,6 +166,8 @@ typedef struct {
uint8_t first_layer; uint8_t first_layer;
/// codeword this transport block is mapped to /// codeword this transport block is mapped to
uint8_t codeword; uint8_t codeword;
/// nscid
uint8_t nscid;
} LTE_DL_eNB_HARQ_t; } LTE_DL_eNB_HARQ_t;
typedef struct { typedef struct {
......
...@@ -590,7 +590,8 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB, ...@@ -590,7 +590,8 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB,
uint8_t mprime, uint8_t mprime,
uint8_t Ns, uint8_t Ns,
int *P1_SHIFT, int *P1_SHIFT,
int *P2_SHIFT) int *P2_SHIFT,
uint8_t nscid)
{ {
LTE_DL_FRAME_PARMS *frame_parms = &phy_vars_eNB->frame_parms; LTE_DL_FRAME_PARMS *frame_parms = &phy_vars_eNB->frame_parms;
...@@ -1585,7 +1586,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB, ...@@ -1585,7 +1586,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB,
if (is_not_UEspecRS(lprime,re,frame_parms->nushift,frame_parms->Ncp,8,Ns)) { if (is_not_UEspecRS(lprime,re,frame_parms->nushift,frame_parms->Ncp,8,Ns)) {
//LOG_D(PHY,"TM8 tti_offset %d, jj %d, jj2 %d, x0 %p, x1 %p\n",tti_offset,*jj,*jj2,x0,x1); //LOG_D(PHY,"TM8 tti_offset %d, jj %d, jj2 %d, x0 %p, x1 %p\n",tti_offset,*jj,*jj2,x0,x1);
/*
switch (mod_order0) { switch (mod_order0) {
case 2: //QPSK case 2: //QPSK
...@@ -1726,12 +1727,13 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB, ...@@ -1726,12 +1727,13 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB,
break; break;
} }
*/
} }
else { else {
for (p=7; p<9; p++) { for (p=7; p<9; p++) {
if (p==first_layer0 || p==first_layer1) { if (p==first_layer0 || p==first_layer1) {
if (frame_parms->Ncp==0) { //normal CP if (frame_parms->Ncp==0) { //normal CP
ind = 3*lprime*dlsch0_harq->nb_rb+3*rb+mprime2; ind = 3*lprime*frame_parms->N_RB_DL+3*rb+mprime2;
ind_dword = ind>>4 ; ind_dword = ind>>4 ;
ind_qpsk_symb = ind&0xf ; ind_qpsk_symb = ind&0xf ;
...@@ -1756,7 +1758,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB, ...@@ -1756,7 +1758,7 @@ int allocate_REs_in_RB(PHY_VARS_eNB *phy_vars_eNB,
qpsk_p = (w==1) ? qpsk : nqpsk; qpsk_p = (w==1) ? qpsk : nqpsk;
/* pointer to the frequency domain Tx signal */ /* pointer to the frequency domain Tx signal */
txdataF[p][tti_offset] = qpsk_p[(phy_vars_eNB->lte_gold_uespec_table[0][Ns][lprime][ind_dword]>>(2*ind_qpsk_symb))&3] ; txdataF[p][tti_offset] = qpsk_p[(phy_vars_eNB->lte_gold_uespec_table[nscid][Ns][0][ind_dword]>>(2*ind_qpsk_symb))&3] ;
} }
} }
mprime2++ ; mprime2++ ;
...@@ -2160,7 +2162,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2160,7 +2162,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
uint8_t mprime=0,Ns; uint8_t mprime=0,Ns;
int8_t lprime=-1; int8_t lprime=-1;
int aa=0; int aa=0;
uint8_t nscid=0;
#ifdef DEBUG_DLSCH_MODULATION #ifdef DEBUG_DLSCH_MODULATION
uint8_t Nl0=0; //= dlsch0_harq->Nl; uint8_t Nl0=0; //= dlsch0_harq->Nl;
...@@ -2185,6 +2187,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2185,6 +2187,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
Nl1 = dlsch1_harq->Nl; Nl1 = dlsch1_harq->Nl;
#endif #endif
nscid = dlsch0_harq->nscid;
}else if ((dlsch0 != NULL) && (dlsch1 == NULL)){ }else if ((dlsch0 != NULL) && (dlsch1 == NULL)){
harq_pid = dlsch0->current_harq_pid; harq_pid = dlsch0->current_harq_pid;
...@@ -2202,6 +2206,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2202,6 +2206,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
Nl1 = 0; Nl1 = 0;
#endif #endif
nscid = dlsch0_harq->nscid;
}else if ((dlsch0 == NULL) && (dlsch1 != NULL)){ }else if ((dlsch0 == NULL) && (dlsch1 != NULL)){
harq_pid = dlsch1->current_harq_pid; harq_pid = dlsch1->current_harq_pid;
...@@ -2219,6 +2225,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2219,6 +2225,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
Nl1 = 0; Nl1 = 0;
#endif #endif
nscid = dlsch1_harq->nscid;
} }
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_MODULATION, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_MODULATION, VCD_FUNCTION_IN);
...@@ -2575,7 +2582,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2575,7 +2582,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
mprime, mprime,
Ns, Ns,
P1_SHIFT, P1_SHIFT,
P2_SHIFT); P2_SHIFT,
nscid);
if ((mimo_mode == TM7) && (lprime>=0)) if ((mimo_mode == TM7) && (lprime>=0))
mprime +=3+frame_parms->Ncp; mprime +=3+frame_parms->Ncp;
......
...@@ -269,7 +269,8 @@ int32_t allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB, ...@@ -269,7 +269,8 @@ int32_t allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB,
uint8_t mprime, uint8_t mprime,
uint8_t Ns, uint8_t Ns,
int *P1_SHIFT, int *P1_SHIFT,
int *P2_SHIFT); int *P2_SHIFT,
uint8_t nscid);
/** \fn int32_t dlsch_modulation(int32_t **txdataF, /** \fn int32_t dlsch_modulation(int32_t **txdataF,
......
...@@ -476,10 +476,10 @@ typedef struct PHY_VARS_eNB_s { ...@@ -476,10 +476,10 @@ typedef struct PHY_VARS_eNB_s {
uint32_t lte_gold_table[20][2][14]; uint32_t lte_gold_table[20][2][14];
/// UE-specific reference symbols (p=5), TM 7 /// UE-specific reference symbols (p=5), TM 7
uint32_t lte_gold_uespec_port5_table[NUMBER_OF_UE_MAX][20][38]; uint32_t lte_gold_uespec_port5_table[NUMBER_OF_UE_MAX][20][75];
/// UE-specific reference symbols (p=7...14), TM 8/9/10 /// UE-specific reference symbols (p=7...14), TM 8/9/10
uint32_t lte_gold_uespec_table[2][20][2][21]; uint32_t lte_gold_uespec_table[2][20][2][100];
/// mbsfn reference symbols /// mbsfn reference symbols
uint32_t lte_gold_mbsfn_table[10][3][42]; uint32_t lte_gold_mbsfn_table[10][3][42];
...@@ -739,10 +739,10 @@ typedef struct { ...@@ -739,10 +739,10 @@ typedef struct {
uint32_t lte_gold_table[7][20][2][14]; uint32_t lte_gold_table[7][20][2][14];
/// UE-specific reference symbols (p=5), TM 7 /// UE-specific reference symbols (p=5), TM 7
uint32_t lte_gold_uespec_port5_table[20][38]; uint32_t lte_gold_uespec_port5_table[20][75];
/// ue-specific reference symbols /// ue-specific reference symbols
uint32_t lte_gold_uespec_table[2][20][2][21]; uint32_t lte_gold_uespec_table[2][20][2][100];
/// mbsfn reference symbols /// mbsfn reference symbols
uint32_t lte_gold_mbsfn_table[10][3][42]; uint32_t lte_gold_mbsfn_table[10][3][42];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment