diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.c b/openair1/PHY/NR_TRANSPORT/nr_dci.c
index 36b00c48c69963f656c6d1ee6d4923332389bdda..431ff1a68e0f7e414653123dd9a849b171741c52 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.c
@@ -34,7 +34,7 @@
 
 //#define DEBUG_PDCCH_DMRS
 //#define DEBUG_DCI
-//#define DEBUG_POLAR_PARAMS
+//#define DEBUG_CHANNEL_CODING
 #define PDCCH_TEST_POLAR_TEMP_FIX
 
 extern short nr_mod_table[NR_MOD_TABLE_SIZE_SHORT];
@@ -220,7 +220,7 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
 #endif
   polar_encoder_dci(dci_alloc.dci_pdu, encoder_output, currentPtr, n_RNTI);
 
-#ifdef DEBUG_POLAR_PARAMS
+#ifdef DEBUG_CHANNEL_CODING
   printf("DCI PDU: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%08x\n",
     		  dci_alloc.dci_pdu[0], dci_alloc.dci_pdu[1], dci_alloc.dci_pdu[2], dci_alloc.dci_pdu[3]);
   printf("Encoded Payload: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%08x\n",
@@ -231,7 +231,7 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
     // QPSK modulation
   int16_t mod_dci[NR_MAX_DCI_SIZE>>1];
   for (int i=0; i<encoded_length>>1; i++) {
-    idx = (((scrambled_output[i<<1]>>(i<<1))&1)<<1) ^ ((scrambled_output[(i<<1)+1]>>((i<<1)+1))&1);
+    idx = ((((scrambled_output[(i<<1)>>5])>>((i<<1)&0x1f))&1)<<1) ^ (((scrambled_output[((i<<1)+1)>>5])>>(((i<<1)+1)&0x1f))&1);
     mod_dci[i<<1] = nr_mod_table[(NR_MOD_TABLE_QPSK_OFFSET + idx)<<1];
     mod_dci[(i<<1)+1] = nr_mod_table[((NR_MOD_TABLE_QPSK_OFFSET + idx)<<1) + 1];
 #ifdef DEBUG_DCI
@@ -248,57 +248,70 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
     if (cset_start_sc >= frame_parms.ofdm_symbol_size)
       cset_start_sc -= frame_parms.ofdm_symbol_size;
 
-    if (pdcch_params.precoder_granularity == NFAPI_NR_CSET_SAME_AS_REG_BUNDLE) {
-
-      /*Reorder REG list for a freq first mapping*/
-      uint8_t symb_idx[NR_MAX_CSET_DURATION] = {0,0,0};
-      uint8_t nb_regs = dci_alloc.L*NR_NB_REG_PER_CCE;
-      uint8_t regs_per_symb = nb_regs/cset_nsymb;
-      for (int cce_idx=0; cce_idx<dci_alloc.L; cce_idx++){
-        cce = dci_alloc.cce_list[cce_idx];
-        for (int reg_idx=0; reg_idx<NR_NB_REG_PER_CCE; reg_idx++) {
-          reg = cce.reg_list[reg_idx];
-          reg_mapping_list[reg.symb_idx*regs_per_symb + symb_idx[reg.symb_idx]++] = reg;
-        }
+
+    /*Reorder REG list for a freq first mapping*/
+    uint8_t symb_idx[NR_MAX_CSET_DURATION] = {0,0,0};
+    uint8_t nb_regs = dci_alloc.L*NR_NB_REG_PER_CCE;
+    uint8_t regs_per_symb = nb_regs/cset_nsymb;
+    for (int cce_idx=0; cce_idx<dci_alloc.L; cce_idx++){
+      cce = dci_alloc.cce_list[cce_idx];
+      for (int reg_idx=0; reg_idx<NR_NB_REG_PER_CCE; reg_idx++) {
+        reg = cce.reg_list[reg_idx];
+        reg_mapping_list[reg.symb_idx*regs_per_symb + symb_idx[reg.symb_idx]++] = reg;
       }
+    }
 #ifdef DEBUG_DCI
-  printf("\n Ordered REG list:\n");
-  for (int i=0; i<nb_regs; i++)
-    printf("%d\t",reg_mapping_list[i].reg_idx );
-  printf("\n");
+printf("\n Ordered REG list:\n");
+for (int i=0; i<nb_regs; i++)
+  printf("%d\t",reg_mapping_list[i].reg_idx );
+printf("\n");
 #endif
 
-      /*Now mapping based on newly constructed list*/
-      for (int reg_idx=0; reg_idx<nb_regs; reg_idx++) {
-        reg = reg_mapping_list[reg_idx];
-        k = cset_start_sc + reg.start_sc_idx;
-        if (k >= frame_parms.ofdm_symbol_size)
+    if (pdcch_params.precoder_granularity == NFAPI_NR_CSET_ALL_CONTIGUOUS_RBS) {
+    /*in this case the DMRS are mapped on all the coreset*/
+      for (l=cset_start_symb; l<cset_start_symb+ cset_nsymb; l++) {
+        dmrs_idx = 0;
+        k = cset_start_sc + 1;
+        while (dmrs_idx<3*pdcch_params.n_rb) {
+          ((int16_t*)txdataF[aa])[(l*frame_parms.ofdm_symbol_size + k)<<1] = (a * mod_dmrs[l][dmrs_idx<<1]) >> 15;
+          ((int16_t*)txdataF[aa])[((l*frame_parms.ofdm_symbol_size + k)<<1) + 1] = (a * mod_dmrs[l][(dmrs_idx<<1) + 1]) >> 15;
+          k+=4;
+          if (k >= frame_parms.ofdm_symbol_size)
             k -= frame_parms.ofdm_symbol_size;
-        l = cset_start_symb + reg.symb_idx;
-        dmrs_idx = (reg.reg_idx/cset_nsymb)*3;
-        k_prime = 0;
-        for (int m=0; m<NR_NB_SC_PER_RB; m++) {
-          if ( m == (k_prime<<2)+1) { // DMRS
+          dmrs_idx++;
+        }
+      }    
+    }
+
+    /*Now mapping the encoded DCI based on newly constructed REG list
+     * and the DMRS for the precoder granularity same as REG bundle*/
+    for (int reg_idx=0; reg_idx<nb_regs; reg_idx++) {
+      reg = reg_mapping_list[reg_idx];
+      k = cset_start_sc + reg.start_sc_idx;
+      if (k >= frame_parms.ofdm_symbol_size)
+          k -= frame_parms.ofdm_symbol_size;
+      l = cset_start_symb + reg.symb_idx;
+      dmrs_idx = (reg.reg_idx/cset_nsymb)*3;
+      k_prime = 0;
+      for (int m=0; m<NR_NB_SC_PER_RB; m++) {
+        if ( m == (k_prime<<2)+1) { // DMRS if not already mapped
+          if (pdcch_params.precoder_granularity == NFAPI_NR_CSET_SAME_AS_REG_BUNDLE) {
             ((int16_t*)txdataF[aa])[(l*frame_parms.ofdm_symbol_size + k)<<1] = (a * mod_dmrs[l][dmrs_idx<<1]) >> 15;
             ((int16_t*)txdataF[aa])[((l*frame_parms.ofdm_symbol_size + k)<<1) + 1] = (a * mod_dmrs[l][(dmrs_idx<<1) + 1]) >> 15;
             k_prime++;
             dmrs_idx++;
           }
-          else { // DCI payload
-            ((int16_t*)txdataF[aa])[(l*frame_parms.ofdm_symbol_size + k)<<1] = (a * mod_dci[dci_idx<<1]) >> 15;
-            ((int16_t*)txdataF[aa])[((l*frame_parms.ofdm_symbol_size + k)<<1) + 1] = (a * mod_dci[(dci_idx<<1) + 1]) >> 15;
-            dci_idx++;
-          }
-          k++;
-          if (k >= frame_parms.ofdm_symbol_size)
-            k -= frame_parms.ofdm_symbol_size;
         }
+        else { // DCI payload
+          ((int16_t*)txdataF[aa])[(l*frame_parms.ofdm_symbol_size + k)<<1] = (a * mod_dci[dci_idx<<1]) >> 15;
+          ((int16_t*)txdataF[aa])[((l*frame_parms.ofdm_symbol_size + k)<<1) + 1] = (a * mod_dci[(dci_idx<<1) + 1]) >> 15;
+          dci_idx++;
+        }
+        k++;
+        if (k >= frame_parms.ofdm_symbol_size)
+          k -= frame_parms.ofdm_symbol_size;
       }
     }
-
-    else { //NFAPI_NR_CSET_ALL_CONTIGUOUS_RBS
-    }
-
   }
 
 #ifdef DEBUG_DCI
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
index 39a0370cb170b9a577fd5231290455b4877e940f..aafafb6d7d7e1f7bc0f8edccf7b8beb467288dce 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
@@ -31,7 +31,7 @@
  */
 
 #include "nr_dci.h"
-//#define DEBUG_NFAPI_NR_RNTI_RA
+
 
 void nr_fill_cce_list(NR_gNB_DCI_ALLOC_t* dci_alloc, uint16_t n_shift, uint8_t m) {
 
@@ -131,20 +131,6 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB,
         case NFAPI_NR_RNTI_RA:
         	// Freq domain assignment
         	fsize = (int)ceil( log2( (N_RB*(N_RB+1))>>1 ) );
-        	#ifdef DEBUG_NFAPI_NR_RNTI_RA
-        	printf("frequency_domain_assignment = %05d = %#010x\n"
-        			"     time_domain_assignment = %05d = %#010x\n"
-        			"         vrb_to_prb_mapping = %05d = %#010x\n"
-        			"                        MCS = %05d = %#010x\n"
-        			"                 tb_scaling = %05d = %#010x\n"
-        			"                       N_RB = %05d = %#010x\n"
-        			"                      fsize = %05d = %#010x\n",
-					pdu_rel15->frequency_domain_assignment,pdu_rel15->frequency_domain_assignment,
-					pdu_rel15->time_domain_assignment,pdu_rel15->time_domain_assignment,
-					pdu_rel15->vrb_to_prb_mapping,pdu_rel15->vrb_to_prb_mapping,
-					pdu_rel15->mcs,pdu_rel15->mcs,pdu_rel15->tb_scaling,pdu_rel15->tb_scaling,
-					N_RB,N_RB,fsize,fsize);
-        	#endif
         	for (int i=0; i<fsize; i++)
         		*dci_pdu |= ((pdu_rel15->frequency_domain_assignment>>(fsize-i-1))&1)<<pos++;
         	// Time domain assignment
@@ -180,50 +166,5 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB,
                       cfg->sch_config.physical_cell_id.value : dci_alloc->pdcch_params.shift_index;
   nr_fill_cce_list(dci_alloc, n_shift, cand_idx);
   LOG_I(PHY, "DCI type %d payload (size %d) generated on candidate %d\n", dci_alloc->pdcch_params.dci_format, dci_alloc->size, cand_idx);
-  
-  
-
-/*	if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_1_0) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_1_0;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-		if (rel15->rnti_type == NFAPI_NR_RNTI_C
-		 || rel15->rnti_type == NFAPI_NR_RNTI_CS
-		 || rel15->rnti_type == NFAPI_NR_RNTI_new) {
-
-		} else if (rel15->rnti_type == NFAPI_NR_RNTI_P) {
-
-		} else if (rel15->rnti_type == NFAPI_NR_RNTI_SI) {
-
-		} else if (rel15->rnti_type == NFAPI_NR_RNTI_RA) {
-
-		} else if (rel15->rnti_type == NFAPI_NR_RNTI_TC) {
-
-		} else {
-			AssertFatal(1==0, "[nr_fill_dci_and_dlsch] Incorrect DCI Format(%d) and RNTI Type(%d) combination",rel15->dci_format, rel15->rnti_type);
-		}
-	} else if (rel15->dci_format == NFAPI_NR_UL_DCI_FORMAT_0_0) {
-		dci_alloc->format = NFAPI_NR_UL_DCI_FORMAT_0_0;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_ul ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_1_1) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_1_1;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_UL_DCI_FORMAT_0_1) {
-		dci_alloc->format = NFAPI_NR_UL_DCI_FORMAT_0_1;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_ul ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_2_0) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_2_0;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_2_1) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_2_1;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_2_2) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_2_2;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-	} else if (rel15->dci_format == NFAPI_NR_DL_DCI_FORMAT_2_3) {
-		dci_alloc->format = NFAPI_NR_DL_DCI_FORMAT_2_3;
-		dci_alloc->size = nr_get_dci_size(rel15->dci_format, rel15->rnti_type, &fp->initial_bwp_params_dl ,cfg);
-	} else {
-		AssertFatal(1==0, "[nr_fill_dci_and_dlsch] Incorrect DCI Format(%d)",rel15->dci_format);
-	}*/
 
 }