From afd348169839af3f35724f5fe64f8a776b38bee3 Mon Sep 17 00:00:00 2001 From: Guy De Souza Date: Mon, 29 Oct 2018 15:58:10 +0100 Subject: [PATCH] Debug info --- openair1/PHY/NR_TRANSPORT/nr_dlsch.c | 30 +++++++++++++++++++----- openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c | 4 ++-- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c index 6087e92b37..91aacad07d 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c +++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c @@ -34,7 +34,7 @@ #include "nr_dci.h" #include "nr_sch_dmrs.h" -//#define DEBUG_DLSCH +#define DEBUG_DLSCH uint8_t mod_order[5] = {1, 2, 4, 6, 8}; uint16_t mod_offset[5] = {1,3,7,23,87}; @@ -197,8 +197,10 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t dlsch, uint32_t scrambled_output[NR_MAX_NB_CODEWORDS][NR_MAX_PDSCH_ENCODED_LENGTH]; int16_t mod_symbs[NR_MAX_NB_CODEWORDS][NR_MAX_PDSCH_ENCODED_LENGTH>>1]; uint16_t tx_layers[NR_MAX_NB_LAYERS][NR_MAX_PDSCH_ENCODED_LENGTH>>1]; - uint16_t n_symbs[NR_MAX_NB_CODEWORDS]; + uint16_t n_symbs; int8_t Wf[2], Wt[2], l0, delta; + uint16_t TBS = rel15->transport_block_size; + uint8_t Qm = rel15->modulation_order; /// CRC, coding, interleaving and rate matching nr_dlsch_encoding(harq->pdu, subframe, &dlsch, &frame_parms); @@ -210,18 +212,34 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t dlsch, pdcch_params.scrambling_id : config.sch_config.physical_cell_id.value; for (int q=0; qnb_codewords; q++) nr_pdsch_codeword_scrambling(harq->f, - rel15->transport_block_size, + TBS, q, Nid, n_RNTI, scrambled_output[q]); +#ifdef DEBUG_DLSCH +printf("PDSCH Scrambling(TBS %d): before \t after \n", TBS); +for (int i=0; if[i], scrambled_output[0][i]); +} +#endif + /// Modulation + n_symbs = TBS/Qm; for (int q=0; qnb_codewords; q++) nr_pdsch_codeword_modulation(scrambled_output[q], - rel15->modulation_order, - rel15->transport_block_size, + Qm, + TBS, mod_symbs[q]); +#ifdef DEBUG_DLSCH +printf("PDSCH Modulation: Qm %d()\n", Qm, n_symbs); +for (int i=0; i>1, 1, 1); + write_output("txdataF_dlsch.m", "txdataF_dlsch", txdataF[0], frame_parms.samples_per_subframe_wCP>>1, 1, 1); #endif return 0; diff --git a/openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c b/openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c index 5e897421ee..0e74b8d5ac 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c +++ b/openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c @@ -121,8 +121,8 @@ void nr_get_tbs(nfapi_nr_dl_config_dlsch_pdu *dlsch_pdu, uint16_t N_RE_prime = NR_NB_SC_PER_RB*N_sh_symb - N_PRB_DMRS - N_PRB_oh; LOG_I(MAC, "N_RE_prime %d for %d symbols %d DMRS per PRB and %d overhead\n", N_RE_prime, N_sh_symb, N_PRB_DMRS, N_PRB_oh); - uint16_t N_RE, Ninfo, Ninfo_prime, C, TBS; - uint8_t table_idx, R, Qm, n, scale; + uint16_t N_RE, Ninfo, Ninfo_prime, C, TBS, R; + uint8_t table_idx, Qm, n, scale; table_idx = get_table_idx(mcs_table, dci_format, rnti_type, ss_type); scale = 10 + (((table_idx==2)&&((Imcs==20)||(Imcs==26)))?1:0);