optimized polar encoder in pbch_nr.c
This commit is contained in:
@@ -1151,7 +1151,7 @@ uint32_t polar_decoder_int16(int16_t *input,
|
|||||||
crc = (uint64_t)(crc24c(A64_flip,len)>>8);
|
crc = (uint64_t)(crc24c(A64_flip,len)>>8);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
#if 0
|
||||||
printf("A %llx B %llx|%llx Cprime %llx|%llx (crc %x,rxcrc %llx %d)\n",
|
printf("A %llx B %llx|%llx Cprime %llx|%llx (crc %x,rxcrc %llx %d)\n",
|
||||||
Ar,
|
Ar,
|
||||||
B[1],B[0],Cprime[1],Cprime[0],crc,
|
B[1],B[0],Cprime[1],Cprime[0],crc,
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
#include "PHY/sse_intrin.h"
|
#include "PHY/sse_intrin.h"
|
||||||
|
|
||||||
//#define DEBUG_PBCH
|
//#define DEBUG_PBCH
|
||||||
#define DEBUG_PBCH_ENCODING
|
//#define DEBUG_PBCH_ENCODING
|
||||||
//#define DEBUG_PBCH_DMRS
|
//#define DEBUG_PBCH_DMRS
|
||||||
|
|
||||||
#include "PHY/NR_REFSIG/nr_mod_table.h"
|
#include "PHY/NR_REFSIG/nr_mod_table.h"
|
||||||
@@ -250,7 +250,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
|
|||||||
uint16_t M;
|
uint16_t M;
|
||||||
uint8_t nushift;
|
uint8_t nushift;
|
||||||
uint32_t unscrambling_mask;
|
uint32_t unscrambling_mask;
|
||||||
uint64_t a_reversed=0;
|
|
||||||
|
|
||||||
LOG_I(PHY, "PBCH generation started\n");
|
LOG_I(PHY, "PBCH generation started\n");
|
||||||
|
|
||||||
@@ -305,14 +304,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
|
|||||||
printf("pbch_a_prime: 0x%08x\n", pbch->pbch_a_prime);
|
printf("pbch_a_prime: 0x%08x\n", pbch->pbch_a_prime);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// Encoder reversal
|
|
||||||
for (int i=0; i<NR_POLAR_PBCH_PAYLOAD_BITS; i++)
|
|
||||||
a_reversed |= (((uint64_t)pbch->pbch_a_prime>>i)&1)<<(31-i);
|
|
||||||
|
|
||||||
|
|
||||||
/// CRC, coding and rate matching
|
/// CRC, coding and rate matching
|
||||||
polar_encoder_fast (&a_reversed, (uint32_t*)pbch->pbch_e, 0, polar_params);
|
polar_encoder_fast (&pbch->pbch_a_prime, (uint32_t*)pbch->pbch_e, 0, polar_params);
|
||||||
#ifdef DEBUG_PBCH_ENCODING
|
#ifdef DEBUG_PBCH_ENCODING
|
||||||
printf("Channel coding:\n");
|
printf("Channel coding:\n");
|
||||||
for (int i=0; i<NR_POLAR_PBCH_E_DWORD; i++)
|
for (int i=0; i<NR_POLAR_PBCH_E_DWORD; i++)
|
||||||
|
|||||||
@@ -675,7 +675,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
|
|||||||
|
|
||||||
if(decoderState > 0) return(decoderState);
|
if(decoderState > 0) return(decoderState);
|
||||||
|
|
||||||
printf("polar decoder output 0x%08x\n",nr_ue_pbch_vars->pbch_a_prime);
|
// printf("polar decoder output 0x%08x\n",nr_ue_pbch_vars->pbch_a_prime);
|
||||||
|
|
||||||
//payload un-scrambling
|
//payload un-scrambling
|
||||||
memset(&nr_ue_pbch_vars->pbch_a_interleaved, 0, sizeof(uint32_t) );
|
memset(&nr_ue_pbch_vars->pbch_a_interleaved, 0, sizeof(uint32_t) );
|
||||||
|
|||||||
Reference in New Issue
Block a user