From debd35a877a80db5c60e7dc0d1bcea1f5b422125 Mon Sep 17 00:00:00 2001 From: luis_pereira87 Date: Tue, 26 Sep 2023 20:45:14 +0100 Subject: [PATCH] Apply function with better performance to reverse bits for polar encoder/decoder in PBCH --- openair1/PHY/NR_TRANSPORT/nr_pbch.c | 4 +--- openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_TRANSPORT/nr_pbch.c index 692776b8cb..dd2493984e 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_TRANSPORT/nr_pbch.c @@ -236,7 +236,6 @@ int nr_generate_pbch(nfapi_nr_dl_tti_ssb_pdu *ssb_pdu, uint16_t M; uint8_t nushift; uint32_t unscrambling_mask; - uint64_t a_reversed=0; LOG_D(PHY, "PBCH generation started\n"); ///Payload generation NR_gNB_PBCH m_pbch; @@ -298,8 +297,7 @@ int nr_generate_pbch(nfapi_nr_dl_tti_ssb_pdu *ssb_pdu, #endif // Encoder reversal - for (int i=0; ipbch_a_prime>>i)&1)<<(31-i); + uint64_t a_reversed = reverse_bits((uint64_t)pbch->pbch_a_prime, NR_POLAR_PBCH_PAYLOAD_BITS); /// CRC, coding and rate matching polar_encoder_fast (&a_reversed, (void*)pbch->pbch_e, 0, 0, diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c index ee79bdc47b..c7d10b69f4 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c @@ -493,12 +493,8 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue, } // printf("polar decoder output 0x%08x\n",pbch_a_prime); // Decoder reversal - uint32_t a_reversed=0; + pbch_a_prime = (uint32_t)reverse_bits(pbch_a_prime, NR_POLAR_PBCH_PAYLOAD_BITS); - for (int i=0; i>i)&1)<<(31-i); - - pbch_a_prime = a_reversed; //payload un-scrambling M = (Lmax == 64)? (NR_POLAR_PBCH_PAYLOAD_BITS - 6) : (NR_POLAR_PBCH_PAYLOAD_BITS - 3); nushift = ((pbch_a_prime>>24)&1) ^ (((pbch_a_prime>>6)&1)<<1);