Commit dba91174 authored by Florian Kaltenberger's avatar Florian Kaltenberger

disabled effective SINR calculation in ulsch_coding (too slow and not used anyway)

added vcd signals for ue transmitter


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4059 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent e3b548e8
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#include "defs.h" #include "defs.h"
#include "extern.h" #include "extern.h"
#include "SIMULATION/ETH_TRANSPORT/extern.h" #include "SIMULATION/ETH_TRANSPORT/extern.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
//#define DEBUG_ULSCH_CODING //#define DEBUG_ULSCH_CODING
//#define DEBUG_ULSCH_FREE 1 //#define DEBUG_ULSCH_FREE 1
...@@ -209,6 +210,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -209,6 +210,7 @@ u32 ulsch_encoding(u8 *a,
LTE_UE_DLSCH_t **dlsch = phy_vars_ue->dlsch_ue[eNB_id]; LTE_UE_DLSCH_t **dlsch = phy_vars_ue->dlsch_ue[eNB_id];
double sinr_eff; double sinr_eff;
u16 rnti; u16 rnti;
if (!ulsch) { if (!ulsch) {
LOG_E(PHY,"Null ulsch ptr %p\n",ulsch); LOG_E(PHY,"Null ulsch ptr %p\n",ulsch);
return(-1); return(-1);
...@@ -231,9 +233,14 @@ u32 ulsch_encoding(u8 *a, ...@@ -231,9 +233,14 @@ u32 ulsch_encoding(u8 *a,
return(-1); return(-1);
} }
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_IN);
// fill CQI/PMI information // fill CQI/PMI information
if (ulsch->O>0) { if (ulsch->O>0) {
sinr_eff = sinr_eff_cqi_calc(phy_vars_ue, 0); //eNB_id is missing here if (flag_LA==1)
sinr_eff = sinr_eff_cqi_calc(phy_vars_ue, 0); //eNB_id is missing here
else
sinr_eff = 0;
rnti = phy_vars_ue->lte_ue_pdcch_vars[eNB_id]->crnti; rnti = phy_vars_ue->lte_ue_pdcch_vars[eNB_id]->crnti;
fill_CQI(ulsch->o,ulsch->uci_format,meas,0,rnti, tmode,sinr_eff); fill_CQI(ulsch->o,ulsch->uci_format,meas,0,rnti, tmode,sinr_eff);
...@@ -336,6 +343,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -336,6 +343,7 @@ u32 ulsch_encoding(u8 *a,
iind = 123 + ((Kr_bytes-256)>>3); iind = 123 + ((Kr_bytes-256)>>3);
else { else {
LOG_E(PHY,"ulsch_coding: Illegal codeword size %d!!!\n",Kr_bytes); LOG_E(PHY,"ulsch_coding: Illegal codeword size %d!!!\n",Kr_bytes);
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
...@@ -381,6 +389,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -381,6 +389,7 @@ u32 ulsch_encoding(u8 *a,
if (ulsch->harq_processes[harq_pid]->C == 0) { if (ulsch->harq_processes[harq_pid]->C == 0) {
LOG_E(PHY,"null segment\n"); LOG_E(PHY,"null segment\n");
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
...@@ -460,7 +469,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -460,7 +469,7 @@ u32 ulsch_encoding(u8 *a,
if ((int)G < 0) { if ((int)G < 0) {
LOG_E(PHY,"FATAL: ulsch_coding.c G < 0 (%d) : Q_RI %d, Q_CQI %d, O %d, betaCQI_times8 %d)\n",G,Q_RI,Q_CQI,ulsch->O,ulsch->beta_offset_cqi_times8); LOG_E(PHY,"FATAL: ulsch_coding.c G < 0 (%d) : Q_RI %d, Q_CQI %d, O %d, betaCQI_times8 %d)\n",G,Q_RI,Q_CQI,ulsch->O,ulsch->beta_offset_cqi_times8);
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
...@@ -516,6 +525,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -516,6 +525,7 @@ u32 ulsch_encoding(u8 *a,
// Do CQI coding // Do CQI coding
if ((ulsch->O>1) && (ulsch->O < 12)) { if ((ulsch->O>1) && (ulsch->O < 12)) {
LOG_E(PHY,"short CQI sizes not supported yet\n"); LOG_E(PHY,"short CQI sizes not supported yet\n");
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
else { else {
...@@ -574,6 +584,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -574,6 +584,7 @@ u32 ulsch_encoding(u8 *a,
} }
else if (ulsch->O_RI>1){ else if (ulsch->O_RI>1){
LOG_E(PHY,"RI cannot be more than 1 bit yet\n"); LOG_E(PHY,"RI cannot be more than 1 bit yet\n");
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
// Do ACK coding, Section 5.2.2.6 36.213 (p.23-24 in v8.6) // Do ACK coding, Section 5.2.2.6 36.213 (p.23-24 in v8.6)
...@@ -664,6 +675,7 @@ u32 ulsch_encoding(u8 *a, ...@@ -664,6 +675,7 @@ u32 ulsch_encoding(u8 *a,
} }
if (ulsch->harq_processes[harq_pid]->O_ACK > 2) { if (ulsch->harq_processes[harq_pid]->O_ACK > 2) {
LOG_E(PHY,"ACK cannot be more than 2 bits yet\n"); LOG_E(PHY,"ACK cannot be more than 2 bits yet\n");
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
...@@ -837,9 +849,11 @@ u32 ulsch_encoding(u8 *a, ...@@ -837,9 +849,11 @@ u32 ulsch_encoding(u8 *a,
if (j!=(H+Q_RI)) { if (j!=(H+Q_RI)) {
LOG_E(PHY,"Error in output buffer length (j %d, H+Q_RI %d)\n",j,H+Q_RI); LOG_E(PHY,"Error in output buffer length (j %d, H+Q_RI %d)\n",j,H+Q_RI);
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(-1); return(-1);
} }
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
return(0); return(0);
} }
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include "PHY/CODING/extern.h" #include "PHY/CODING/extern.h"
#include "PHY/LTE_TRANSPORT/defs.h" #include "PHY/LTE_TRANSPORT/defs.h"
#include "defs.h" #include "defs.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
//#define OFDMA_ULSCH //#define OFDMA_ULSCH
...@@ -294,6 +295,8 @@ void ulsch_modulation(mod_sym_t **txdataF, ...@@ -294,6 +295,8 @@ void ulsch_modulation(mod_sym_t **txdataF,
return; return;
} }
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION, VCD_FUNCTION_IN);
Q_m = get_Qm_ul(ulsch->harq_processes[harq_pid]->mcs); Q_m = get_Qm_ul(ulsch->harq_processes[harq_pid]->mcs);
G = (int)ulsch->harq_processes[harq_pid]->nb_rb * (12 * Q_m) * (ulsch->Nsymb_pusch); G = (int)ulsch->harq_processes[harq_pid]->nb_rb * (12 * Q_m) * (ulsch->Nsymb_pusch);
...@@ -629,6 +632,7 @@ void ulsch_modulation(mod_sym_t **txdataF, ...@@ -629,6 +632,7 @@ void ulsch_modulation(mod_sym_t **txdataF,
} }
} }
#endif #endif
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION, VCD_FUNCTION_OUT);
} }
...@@ -970,6 +970,7 @@ void ue_get_sdu(u8 Mod_id,u32 frame,u8 subframe, u8 eNB_index,u8 *ulsch_buffer,u ...@@ -970,6 +970,7 @@ void ue_get_sdu(u8 Mod_id,u32 frame,u8 subframe, u8 eNB_index,u8 *ulsch_buffer,u
//if (UE_mac_inst[Mod_id].scheduling_info.LCID_status[DTCH] == LCID_EMPTY) //if (UE_mac_inst[Mod_id].scheduling_info.LCID_status[DTCH] == LCID_EMPTY)
if (use_cba_access(Mod_id,frame,subframe,eNB_index)==0){ if (use_cba_access(Mod_id,frame,subframe,eNB_index)==0){
*access_mode=POSTPONED_ACCESS; *access_mode=POSTPONED_ACCESS;
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GET_SDU, VCD_FUNCTION_OUT);
return; return;
} }
LOG_D(MAC,"[UE %d] frame %d subframe %d CBA transmission oppurtunity, tbs %d\n", Mod_id, frame, subframe,buflen); LOG_D(MAC,"[UE %d] frame %d subframe %d CBA transmission oppurtunity, tbs %d\n", Mod_id, frame, subframe,buflen);
...@@ -1132,6 +1133,7 @@ void ue_get_sdu(u8 Mod_id,u32 frame,u8 subframe, u8 eNB_index,u8 *ulsch_buffer,u ...@@ -1132,6 +1133,7 @@ void ue_get_sdu(u8 Mod_id,u32 frame,u8 subframe, u8 eNB_index,u8 *ulsch_buffer,u
if ((buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total) == buflen) { if ((buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total) == buflen) {
*access_mode=CANCELED_ACCESS; *access_mode=CANCELED_ACCESS;
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GET_SDU, VCD_FUNCTION_OUT);
return; return;
} else if ((buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total) <= 2) { } else if ((buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total) <= 2) {
short_padding = buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total; short_padding = buflen-bsr_len-phr_len-dcch_header_len-dcch1_header_len-dtch_header_len-sdu_length_total;
......
...@@ -146,6 +146,8 @@ const char* eurecomFunctionsNames[] = { ...@@ -146,6 +146,8 @@ const char* eurecomFunctionsNames[] = {
"phy_ue_config_sib2", "phy_ue_config_sib2",
"phy_ue_compute_prach", "phy_ue_compute_prach",
"phy_enb_ulsch_decoding", "phy_enb_ulsch_decoding",
"phy_ue_ulsch_modulation",
"phy_ue_ulsch_encoding",
"test" "test"
}; };
......
...@@ -117,7 +117,9 @@ typedef enum ...@@ -117,7 +117,9 @@ typedef enum
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2, VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_COMPUTE_PRACH, VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_COMPUTE_PRACH,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_ULSCH_DECODING, VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_ULSCH_DECODING,
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION,
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING,
VCD_SIGNAL_DUMPER_FUNCTIONS_TEST, VCD_SIGNAL_DUMPER_FUNCTIONS_TEST,
VCD_SIGNAL_DUMPER_FUNCTIONS_LAST, VCD_SIGNAL_DUMPER_FUNCTIONS_LAST,
VCD_SIGNAL_DUMPER_FUNCTIONS_END = VCD_SIGNAL_DUMPER_FUNCTIONS_LAST, VCD_SIGNAL_DUMPER_FUNCTIONS_END = VCD_SIGNAL_DUMPER_FUNCTIONS_LAST,
......
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