From db71a0b98c71586dc6c39f8cb93d7eca0e8b2f00 Mon Sep 17 00:00:00 2001 From: sebastian <you@example.com> Date: Fri, 20 Sep 2019 11:24:06 +0200 Subject: [PATCH] cn2bnProc is done --- .../PHY/CODING/nrLDPC_decoder/nrLDPC_init.h | 494 +++++++++++++++++- .../nrLDPC_decoder/nrLDPC_lut/nrLDPC_lut.h | 45 +- .../PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h | 105 +--- 3 files changed, 556 insertions(+), 88 deletions(-) diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init.h index bc0479e6881..5e8f3d15474 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init.h @@ -1191,6 +1191,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu // LUT that depend on Z and R if (Z == 2) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z2_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z2_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z2_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z2_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R13; @@ -1212,6 +1222,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 3) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z3_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z3_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z3_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z3_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R13; @@ -1233,6 +1253,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 4) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z4_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z4_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z4_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z4_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R13; @@ -1254,6 +1284,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 5) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z5_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z5_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z5_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z5_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R13; @@ -1275,6 +1315,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 6) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z6_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z6_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z6_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z6_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R13; @@ -1296,6 +1346,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 7) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z7_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z7_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z7_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z7_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R13; @@ -1317,6 +1377,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 8) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z8_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z8_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z8_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z8_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R13; @@ -1338,6 +1408,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 9) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z9_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z9_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z9_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z9_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R13; @@ -1359,6 +1439,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 10) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z10_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z10_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z10_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z10_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R13; @@ -1380,6 +1470,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 11) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z11_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z11_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z11_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z11_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R13; @@ -1401,6 +1501,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 12) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z12_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z12_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z12_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z12_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R13; @@ -1422,6 +1532,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 13) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z13_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z13_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z13_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z13_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R13; @@ -1443,6 +1563,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 14) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z14_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z14_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z14_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z14_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R13; @@ -1464,6 +1594,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 15) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z15_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z15_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z15_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z15_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R13; @@ -1485,6 +1625,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 16) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z16_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z16_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z16_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z16_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R13; @@ -1506,6 +1656,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 18) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z18_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z18_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z18_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z18_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R13; @@ -1527,6 +1687,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 20) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z20_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z20_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z20_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z20_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R13; @@ -1548,6 +1718,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 22) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z22_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z22_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z22_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z22_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R13; @@ -1569,6 +1749,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 24) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z24_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z24_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z24_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z24_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R13; @@ -1590,6 +1780,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 26) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z26_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z26_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z26_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z26_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R13; @@ -1611,6 +1811,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 28) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z28_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z28_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z28_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z28_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R13; @@ -1632,6 +1842,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 30) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z30_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z30_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z30_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z30_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R13; @@ -1653,6 +1873,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 32) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z32_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z32_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z32_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z32_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R13; @@ -1674,6 +1904,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 36) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z36_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z36_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z36_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z36_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R13; @@ -1695,6 +1935,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 40) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z40_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z40_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z40_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z40_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R13; @@ -1716,6 +1966,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 44) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z44_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z44_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z44_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z44_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R13; @@ -1737,6 +1997,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 48) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z48_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z48_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z48_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z48_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R13; @@ -1758,6 +2028,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 52) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z52_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z52_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z52_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z52_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R13; @@ -1779,6 +2059,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 56) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z56_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z56_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z56_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z56_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R13; @@ -1800,6 +2090,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 60) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z60_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z60_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z60_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z60_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R13; @@ -1821,6 +2121,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 64) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z64_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z64_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z64_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z64_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R13; @@ -1842,6 +2152,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 72) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z72_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z72_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z72_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z72_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R13; @@ -1863,6 +2183,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 80) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z80_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z80_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z80_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z80_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R13; @@ -1884,6 +2214,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 88) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z88_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z88_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z88_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z88_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R13; @@ -1905,6 +2245,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 96) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z96_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z96_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z96_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z96_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R13; @@ -1926,6 +2276,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 104) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z104_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z104_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z104_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z104_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R13; @@ -1947,6 +2307,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 112) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z112_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z112_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z112_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z112_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R13; @@ -1968,6 +2338,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 120) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z120_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z120_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z120_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z120_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R13; @@ -1989,6 +2369,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 128) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z128_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z128_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z128_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z128_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R13; @@ -2010,6 +2400,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 144) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z144_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z144_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z144_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z144_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R13; @@ -2031,6 +2431,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 160) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z160_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z160_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z160_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z160_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R13; @@ -2052,6 +2462,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 176) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z176_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z176_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z176_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z176_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R13; @@ -2073,6 +2493,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 192) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z192_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z192_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z192_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z192_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R13; @@ -2094,6 +2524,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 208) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z208_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z208_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z208_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z208_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R13; @@ -2115,6 +2555,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 224) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z224_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z224_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z224_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z224_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R13; @@ -2136,6 +2586,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 240) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z240_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z240_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z240_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z240_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R13; @@ -2157,6 +2617,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 256) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z256_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z256_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z256_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z256_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R13; @@ -2178,6 +2648,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 288) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z288_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z288_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z288_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z288_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R13; @@ -2208,7 +2688,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19; - + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R13; @@ -2230,6 +2710,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu } else if (Z == 352) { + p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3; + p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4; + p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z352_CNG5; + p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z352_CNG6; + p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z352_CNG7; + p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z352_CNG8; + p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9; + p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10; + p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19; + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R13; @@ -2260,7 +2750,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19; - + if (R == 13) { p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R13; diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut/nrLDPC_lut.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut/nrLDPC_lut.h index 373869748b7..e237459aab8 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut/nrLDPC_lut.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut/nrLDPC_lut.h @@ -515,16 +515,41 @@ static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19 // Startaddressses in the BN buffer of the different CN groups // BG1 -// Group of CNs with 3 BNs (CNG3) -static const uint32_t startAddrBnProcBuf_BG1_CNG3[3] = {111360, 100224, 0}; -static const uint32_t startAddrBnProcBuf_BG1_CNG4[4][5] = {{105984, 107904, 120192, 120576, 109440}, {40704, 74880, 43392, 47232, 43008}, {42240, 19200, 62592, 23424, 92928}, {8832, 12672, 13824, 14592, 15744}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG5[5][18] = {{116736, 105216, 105600, 117504, 117888, 106368, 118272, 106752, 118656, 107136, 119040, 107520, 119424, 119808, 108288, 108672, 109056, 120960}, {88704, 30336, 39552, 31872, 46848, 58752, 89856, 87936, 90240, 33408, 89472, 41856, 61824, 30720, 73344, 74496, 62208, 92544}, {72576, 88320, 86400, 46464, 33024, 97536, 73728, 90624, 60288, 61440, 32640, 91776, 34176, 91392, 91008, 32256, 98688, 33792}, {59520, 97152, 57216, 31104, 74112, 22272, 21888, 23040, 22656, 75264, 61056, 92160, 97920, 93312, 34560, 98304, 23808, 93696}, {6912, 7296, 8064, 8448, 9216, 9600, 9984, 10368, 10752, 11136, 11520, 11904, 12288, 13056, 13440, 14208, 14976, 15360}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG6[6][8] = {{114432, 103680, 115584, 104064, 115968, 116352, 104832, 117120}, {68736, 69888, 55680, 87168, 104448, 71040, 17280, 72192}, {83328, 56832, 59136, 71424, 84864, 29184, 60672, 46080}, {41472, 42624, 57984, 96768, 41088, 58368, 43776, 59904}, {18816, 86016, 71808, 31488, 86784, 87552, 72960, 89088}, {3456, 4608, 4992, 5376, 5760, 6144, 6528, 7680}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG7[7][5] = {{112512, 102144, 114048, 114816, 115200}, {100992, 28800, 102912, 85632, 103296}, {45312, 45696, 83712, 29568, 85248}, {80256, 81792, 55296, 57600, 70272}, {38784, 39936, 69120, 56448, 96384}, {52608, 54144, 96000, 70656, 21504}, {1152, 2304, 3072, 3840, 4224}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG8[8][2] = {{111744, 113664}, {100608, 102528}, {66432, 84096}, {81024, 56064}, {52992, 69504}, {67200, 84480}, {81408, 18432}, {384, 2688}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG9[9][2] = {{112128, 113280}, {38400, 101760}, {80640, 82176}, {52224, 53760}, {66816, 67968}, {53376, 54912}, {95232, 95616}, {39168, 40320}, {768, 1920}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG10[10][1] = {{112896}, {101376}, {67584}, {82560}, {54528}, {29952}, {68352}, {82944}, {21120}, {1536}}; -static const uint32_t startAddrBnProcBuf_BG1_CNG19[19][4] = {{109824, 110208, 110592, 110976}, {99072, 25728, 99456, 99840}, {24192, 64128, 27264, 65280}, {62976, 44160, 44544, 44928}, {16128, 16512, 16896, 37248}, {34944, 75648, 36096, 78720}, {24576, 35328, 77184, 37632}, {76032, 26112, 36480, 79104}, {47616, 49152, 27648, 50688}, {76416, 77952, 77568, 79488}, {63360, 48000, 64512, 65664}, {24960, 26496, 49536, 51072}, {48384, 49920, 28032, 51456}, {94080, 48768, 50304, 51840}, {25344, 26880, 94464, 94848}, {35712, 64896, 28416, 38016}, {63744, 78336, 36864, 66048}, {76800, 18048, 20352, 79872}, {17664, 19584, 19968, 20736}}; +// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z +static const uint32_t startAddrBnProcBuf_BG1_CNG3[3][1] = {{111360},{100224},{0}}; + +// Group of CNs with 4 BNs (CNG4) +static const uint32_t startAddrBnProcBuf_BG1_CNG4[4][5] = {{105984, 107904, 120192, 120576, 109440},{40704, 74496, 43008, 47232, 43008},{41856, 19200, 61440, 23424, 92544},{0, 0, 0, 0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG4[4][5] = {{0, 0, 0, 0, 0},{0, 1, 1, 0, 0},{1, 0, 3, 0, 1},{23, 33, 36, 38, 41}}; + +// Group of CNs with 5 BNs (CNG5) +static const uint32_t startAddrBnProcBuf_BG1_CNG5[5][18] = {{116736, 105216, 105600, 117504, 117888, 106368, 118272, 106752, 118656, 107136, 119040, 107520, 119424, 119808, 108288, 108672, 109056, 120960},{87936, 30336, 39552, 31872, 46848, 58368, 89472, 87936, 89472, 33408, 89472, 41856, 61440, 30336, 73344, 74496, 61440, 92544},{72192, 87936, 86400, 46464, 31872, 97536, 73344, 89472, 59904, 61440, 31872, 91008, 33408, 91008, 91008, 31872, 98688, 33408},{58368, 97152, 56832, 30336, 73344, 21888, 21888, 22656, 22656, 74496, 59904, 91008, 97920, 92544, 33408, 98304, 23424, 92544},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG5[5][18] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 1, 1, 0, 0, 2, 0},{1, 1, 0, 0, 3, 0, 1, 3, 1, 0, 2, 2, 2, 1, 0, 1, 0, 1},{3, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 3, 0, 2, 3, 0, 1, 3},{18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40}}; + +// Group of CNs with 6 BNs (CNG6) +static const uint32_t startAddrBnProcBuf_BG1_CNG6[6][8] = {{114432, 103680, 115584, 104064, 115968, 116352, 104832, 117120},{68736, 69888, 55296, 86400, 104448, 71040, 17280, 72192},{83328, 56832, 58368, 71040, 84864, 28800, 59904, 46080},{40704, 41856, 56832, 96768, 40704, 58368, 43008, 59904},{18816, 84864, 71040, 30336, 86400, 86400, 72192, 87936},{0, 0, 0, 0, 0, 0, 0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG6[6][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 1, 2, 0, 0, 0, 0},{0, 0, 2, 1, 0, 1, 2, 0},{2, 2, 3, 0, 1, 0, 2, 0},{0, 3, 2, 3, 1, 3, 2, 3},{9, 12, 13, 14, 15, 16, 17, 20}}; + +// Group of CNs with 7 BNs (CNG7) +static const uint32_t startAddrBnProcBuf_BG1_CNG7[7][5] = {{112512, 102144, 114048, 114816, 115200},{100992, 28800, 102912, 84864, 103296},{45312, 45696, 83328, 28800, 84864},{80256, 81792, 55296, 56832, 69888},{38400, 39552, 68736, 55296, 96384},{52224, 53760, 96000, 69888, 21120},{0, 0, 0, 0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 0, 0, 2, 0},{0, 0, 1, 2, 1},{0, 0, 0, 2, 1},{1, 1, 1, 3, 0},{1, 1, 0, 2, 1},{3, 6, 8, 10, 11}}; + +// Group of CNs with 8 BNs (CNG8) +static const uint32_t startAddrBnProcBuf_BG1_CNG8[8][2] = {{111744, 113664},{100608, 102528},{66432, 83328},{80256, 55296},{52224, 68736},{66432, 83328},{80256, 18432},{0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 2},{2, 2},{2, 3},{3, 0},{1, 7}}; + +// Group of CNs with 9 BNs (CNG9) +static const uint32_t startAddrBnProcBuf_BG1_CNG9[9][2] = {{112128, 113280},{38400, 101760},{80256, 81792},{52224, 53760},{66432, 67584},{52224, 53760},{95232, 95616},{38400, 39552},{0, 0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG9[9][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{3, 3},{0, 0},{2, 2},{2, 5}}; + +// Group of CNs with 10 BNs (CNG10) +static const uint32_t startAddrBnProcBuf_BG1_CNG10[10][1] = {{112896},{101376},{67584},{81792},{53760},{28800},{67584},{81792},{21120},{0}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG10[10][1] = {{0},{0},{0},{2},{2},{3},{2},{3},{0},{4}}; + +// Group of CNs with 19 BNs (CNG19) +static const uint32_t startAddrBnProcBuf_BG1_CNG19[19][4] = {{109824, 110208, 110592, 110976},{99072, 25728, 99456, 99840},{24192, 64128, 27264, 65280},{62976, 44160, 44544, 44928},{16128, 16512, 16896, 37248},{34944, 75648, 36096, 78720},{24192, 34944, 77184, 37248},{75648, 25728, 36096, 78720},{47616, 49152, 27264, 50688},{75648, 77184, 77184, 78720},{62976, 47616, 64128, 65280},{24192, 25728, 49152, 50688},{47616, 49152, 27264, 50688},{94080, 47616, 49152, 50688},{24192, 25728, 94464, 94848},{34944, 64128, 27264, 37248},{62976, 77184, 36096, 65280},{75648, 18048, 20352, 78720},{17664, 19584, 19584, 20352}}; +static const uint8_t bnPosBnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{1, 1, 0, 1},{1, 1, 1, 1},{0, 0, 1, 0},{2, 2, 1, 2},{1, 1, 1, 1},{2, 2, 1, 1},{2, 2, 2, 2},{0, 3, 3, 3},{3, 3, 0, 0},{2, 2, 3, 2},{2, 3, 2, 2},{3, 0, 0, 3},{0, 0, 1, 1}}; + // BG1 // Z = 2 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h index 18088c7aa2f..aa71f33e40f 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h @@ -297,6 +297,7 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf uint32_t i; uint32_t j; uint32_t M; + uint32_t idxBn = 0; // ===================================================================== // CN group with 3 BNs @@ -309,14 +310,7 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; -/* - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } -*/ - - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG3[j]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); + nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG3[j][0]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); } // ===================================================================== @@ -330,19 +324,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - /* - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - */ for (i=0; i<lut_numCnInCnGroups_BG1_R13[1]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG4[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG4[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG4[j][i] + bnPosBnProcBuf_BG1_CNG4[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG4[j][i]); + p_cnProcBufRes += Z; } - - } // ===================================================================== @@ -355,18 +342,14 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<5; j++) { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[2] + j*bitOffsetInGroup]; -/* - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - */ + for (i=0; i<lut_numCnInCnGroups_BG1_R13[2]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG5[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG5[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG5[j][i] + bnPosBnProcBuf_BG1_CNG5[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG5[j][i]); + //nrLDPC_circ_memcpy(&bnProcBuf[lut_startAddrBnProcBuf_CNG5[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG5[j][i]); + p_cnProcBufRes += Z; } - } // ===================================================================== @@ -380,17 +363,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[3] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[3]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG6[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG6[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG6[j][i] + bnPosBnProcBuf_BG1_CNG6[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG6[j][i]); + p_cnProcBufRes += Z; } - */ } // ===================================================================== @@ -404,17 +382,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[4] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[4]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG7[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG7[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG7[j][i] + bnPosBnProcBuf_BG1_CNG7[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG7[j][i]); + p_cnProcBufRes += Z; } - */ } // ===================================================================== @@ -428,17 +401,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[5] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[5]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG8[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG8[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG8[j][i] + bnPosBnProcBuf_BG1_CNG8[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG8[j][i]); + p_cnProcBufRes += Z; } - */ } // ===================================================================== @@ -452,17 +420,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[6] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[6]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG9[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG9[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG9[j][i] + bnPosBnProcBuf_BG1_CNG9[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG9[j][i]); + p_cnProcBufRes += Z; } - */ } // ===================================================================== @@ -476,17 +439,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[7] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[7]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG10[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG10[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG10[j][i] + bnPosBnProcBuf_BG1_CNG10[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG10[j][i]); + p_cnProcBufRes += Z; } - */ } // ===================================================================== @@ -500,17 +458,12 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf { p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[8] + j*bitOffsetInGroup]; - for (i=0; i<M; i++) - { - bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; - } - /* for (i=0; i<lut_numCnInCnGroups_BG1_R13[8]; i++) { - nrLDPC_circ_memcpy(&bnProcBuf[startAddrBnProcBuf_BG1_CNG19[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG19[j][i]); - p_cnProcBufRes += NR_LDPC_ZMAX; + idxBn = startAddrBnProcBuf_BG1_CNG19[j][i] + bnPosBnProcBuf_BG1_CNG19[j][i]*Z; + nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG19[j][i]); + p_cnProcBufRes += Z; } - */ } } @@ -711,7 +664,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<4; j++) { p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup]; - + for (i=0; i<M; i++) { p_cnProcBuf[i] = bnProcBufRes[p_lut_cn2bn[j*M + i]]; -- GitLab