Commit 0cd21ecd authored by Raymond Knopp's avatar Raymond Knopp

integration step

parent ab3ff7df
...@@ -7223,6 +7223,30 @@ uint32_t pmi_extend(LTE_DL_FRAME_PARMS *frame_parms,uint8_t wideband_pmi, uint8_ ...@@ -7223,6 +7223,30 @@ uint32_t pmi_extend(LTE_DL_FRAME_PARMS *frame_parms,uint8_t wideband_pmi, uint8_
return(pmi_ex); return(pmi_ex);
} }
void conv_RIV(int N_RB_UL, int RIV, int *L_CRBs, int *RB_start) {
switch (N_RB_UL) {
case 6:
*L_CRBs = RIV2nb_rb_LUT6[RIV];
*RB_start = RIV2first_rb_LUT6[RIV];
break;
case 25:
*L_CRBs = RIV2nb_rb_LUT25[RIV];
*RB_start = RIV2first_rb_LUT25[RIV];
break;
case 50:
*L_CRBs = RIV2nb_rb_LUT50[RIV];
*RB_start = RIV2first_rb_LUT50[RIV];
break;
case 100:
*L_CRBs = RIV2nb_rb_LUT100[RIV];
*RB_start = RIV2first_rb_LUT100[RIV];
break;
default:
AssertFatal(1==0,"unsupported N_RB_UL %d\n",N_RB_UL);
break;
}
}
int generate_ue_ulsch_params_from_dci(void *dci_pdu, int generate_ue_ulsch_params_from_dci(void *dci_pdu,
uint16_t rnti, uint16_t rnti,
......
...@@ -1605,6 +1605,8 @@ uint8_t get_transmission_mode(module_id_t Mod_id, uint8_t CC_id, rnti_t rnti); ...@@ -1605,6 +1605,8 @@ uint8_t get_transmission_mode(module_id_t Mod_id, uint8_t CC_id, rnti_t rnti);
*/ */
uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL); uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL);
void conv_RIV(int N_RB_UL, int RIV, int *L_CRBs, int *RB_start);
int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint8_t mod_order,uint8_t Nl,uint8_t num_pdcch_symbols,int frame,uint8_t subframe, uint8_t beamforming_mode); int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint8_t mod_order,uint8_t Nl,uint8_t num_pdcch_symbols,int frame,uint8_t subframe, uint8_t beamforming_mode);
int adjust_G(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *rb_alloc,uint8_t mod_order,uint8_t subframe); int adjust_G(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *rb_alloc,uint8_t mod_order,uint8_t subframe);
......
...@@ -1026,6 +1026,9 @@ void pscch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra ...@@ -1026,6 +1026,9 @@ void pscch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
if (res==0) { if (res==0) {
ue->slsch_rx.freq_hopping_flag = (sci_rx_flip>>63)&1; ue->slsch_rx.freq_hopping_flag = (sci_rx_flip>>63)&1;
ue->slsch_rx.resource_block_coding = (sci_rx_flip>>(63-1-RAbits+1))&((1<<RAbits)-1); ue->slsch_rx.resource_block_coding = (sci_rx_flip>>(63-1-RAbits+1))&((1<<RAbits)-1);
conv_RIV(ue->frame_parms.N_RB_DL,
ue->slsch_rx.resource_block_coding,
&ue->slsch_rx.L_CRBs,&ue->slsch_rx.RB_start);
ue->slsch_rx.time_resource_pattern = (sci_rx_flip>>(63-1-7-RAbits+1))&127; ue->slsch_rx.time_resource_pattern = (sci_rx_flip>>(63-1-7-RAbits+1))&127;
ue->slsch_rx.mcs = (sci_rx_flip>>(63-1-7-5-RAbits+1))&31; ue->slsch_rx.mcs = (sci_rx_flip>>(63-1-7-5-RAbits+1))&31;
ue->slsch_rx.timing_advance_indication = (sci_rx_flip>>(63-1-7-5-11-RAbits+1))&2047; ue->slsch_rx.timing_advance_indication = (sci_rx_flip>>(63-1-7-5-11-RAbits+1))&2047;
...@@ -1220,11 +1223,11 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra ...@@ -1220,11 +1223,11 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
write_output("slsch_rxF_ext.m","slschrxF_ext",rxdataF_ext[0],14*12*ue->frame_parms.N_RB_DL,1,1); write_output("slsch_rxF_ext.m","slschrxF_ext",rxdataF_ext[0],14*12*ue->frame_parms.N_RB_DL,1,1);
#endif #endif
AssertFatal(ue->slsch->group_destination_id < 256,"Illegal group_destination_id %d\n",ue>slsch->group_destination_id); AssertFatal(slsch->group_destination_id < 256,"Illegal group_destination_id %d\n",ue>slsch->group_destination_id);
uint32_t u = ue->gh[1+ue->slsch->group_destination_id][ljmod10<<1]; uint32_t u = ue->gh[1+slsch->group_destination_id][ljmod10<<1];
uint32_t v = 0; uint32_t v = 0;
uint32_t cyclic_shift=(ue->slsch->group_destination_id>>1)&7; uint32_t cyclic_shift=(slsch->group_destination_id>>1)&7;
lte_ul_channel_estimation(&ue->frame_parms, lte_ul_channel_estimation(&ue->frame_parms,
(int32_t**)drs_ch_estimates, (int32_t**)drs_ch_estimates,
...@@ -1239,7 +1242,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra ...@@ -1239,7 +1242,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
3, 3,
1, // interpolation 1, // interpolation
0); 0);
u = ue->gh[1+ue->slsch->group_destination_id][1+(ljmod10<<1)]; u = ue->gh[1+slsch->group_destination_id][1+(ljmod10<<1)];
lte_ul_channel_estimation(&ue->frame_parms, lte_ul_channel_estimation(&ue->frame_parms,
(int32_t**)drs_ch_estimates, (int32_t**)drs_ch_estimates,
(int32_t**)NULL, (int32_t**)NULL,
......
...@@ -3420,6 +3420,15 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_ ...@@ -3420,6 +3420,15 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
} }
*/ */
const int prblist[6]={6,15,25,50,75,100};
int to_prb(long sl_Bandwidth_r12) {
AssertFatal(sl_Bandwidth<6, "illegal bandwidth index %d\n",sl_Bandwdith_r12);
return(prblist[sl_Bandwdith_r12]);
}
extern const int trp8[TRP8_MAX+1][8]; extern const int trp8[TRP8_MAX+1][8];
SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframeP,int slsch_test) { SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframeP,int slsch_test) {
...@@ -3503,7 +3512,7 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_ ...@@ -3503,7 +3512,7 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
slsch->n_pscch = ue->sourceL2Id; slsch->n_pscch = ue->sourceL2Id;
slsch->format = 0; slsch->format = 0;
slsch->freq_hopping_flag = 0; slsch->freq_hopping_flag = 0;
slsch->resource_block_coding = computeRIV(slsch->N_SL_RB_data,RB_start,L_CRBs); slsch->resource_block_coding = computeRIV(to_prb(ue->sl_Bandwidth_r12),RB_start,L_CRBs);
slsch->time_resource_pattern = 106; // all subframes for Nrp=8 slsch->time_resource_pattern = 106; // all subframes for Nrp=8
slsch->mcs = mcs; slsch->mcs = mcs;
slsch->timing_advance_indication = 0; slsch->timing_advance_indication = 0;
......
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