Commit f187b0e1 authored by Sebastian Wagner's avatar Sebastian Wagner

WIP: integrated changes to softmodem, TODO: not sure where to free memory

parent eb5c33de
...@@ -494,8 +494,8 @@ int test_ldpc(short No_iteration, ...@@ -494,8 +494,8 @@ int test_ldpc(short No_iteration,
//free(channel_output_fixed); //free(channel_output_fixed);
//free(estimated_output); //free(estimated_output);
//nrLDPC_free_mem(p_nrLDPC_procBuf); nrLDPC_free_mem(p_nrLDPC_procBuf);
print_meas(&time,"ldpc_encoder",NULL,NULL); print_meas(&time,"ldpc_encoder",NULL,NULL);
print_meas(time_optim,"ldpc_encoder_optim",NULL,NULL); print_meas(time_optim,"ldpc_encoder_optim",NULL,NULL);
print_meas(&tinput,"ldpc_encoder_optim(input)",NULL,NULL); print_meas(&tinput,"ldpc_encoder_optim(input)",NULL,NULL);
......
...@@ -219,6 +219,9 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue, ...@@ -219,6 +219,9 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
t_nrLDPC_dec_params* p_decParams = &decParams; t_nrLDPC_dec_params* p_decParams = &decParams;
t_nrLDPC_time_stats procTime; t_nrLDPC_time_stats procTime;
t_nrLDPC_time_stats* p_procTime =&procTime ; t_nrLDPC_time_stats* p_procTime =&procTime ;
// Pointer to LDPC processing buffer of thread 0
t_nrLDPC_procBuf* p_nrLDPC_procBuf = phy_vars_ue->p_nrLDPC_procBuf[0];
int16_t z [68*384]; int16_t z [68*384];
int8_t l [68*384]; int8_t l [68*384];
//__m128i l; //__m128i l;
...@@ -506,7 +509,8 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue, ...@@ -506,7 +509,8 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
no_iteration_ldpc = nrLDPC_decoder(p_decParams, no_iteration_ldpc = nrLDPC_decoder(p_decParams,
(int8_t*)&pl[0], (int8_t*)&pl[0],
llrProcBuf, llrProcBuf,
p_procTime); p_nrLDPC_procBuf,
p_procTime);
/* /*
if (check_crc(llrProcBuf,Kr,harq_process->F,crc_type)) { if (check_crc(llrProcBuf,Kr,harq_process->F,crc_type)) {
...@@ -692,6 +696,8 @@ uint32_t nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue, ...@@ -692,6 +696,8 @@ uint32_t nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue,
t_nrLDPC_dec_params* p_decParams = &decParams; t_nrLDPC_dec_params* p_decParams = &decParams;
t_nrLDPC_time_stats procTime; t_nrLDPC_time_stats procTime;
t_nrLDPC_time_stats* p_procTime =&procTime ; t_nrLDPC_time_stats* p_procTime =&procTime ;
// Pointer to LDPC processing buffer of thread 0
t_nrLDPC_procBuf* p_nrLDPC_procBuf = phy_vars_ue->p_nrLDPC_procBuf[0];
int16_t z [68*384]; int16_t z [68*384];
int8_t l [68*384]; int8_t l [68*384];
//__m128i l; //__m128i l;
...@@ -1091,6 +1097,7 @@ if (harq_process->C>1) { // wakeup worker if more than 1 segment ...@@ -1091,6 +1097,7 @@ if (harq_process->C>1) { // wakeup worker if more than 1 segment
no_iteration_ldpc = nrLDPC_decoder(p_decParams, no_iteration_ldpc = nrLDPC_decoder(p_decParams,
(int8_t*)&pl[0], (int8_t*)&pl[0],
llrProcBuf, llrProcBuf,
p_nrLDPC_procBuf,
p_procTime); p_procTime);
nb_total_decod++; nb_total_decod++;
...@@ -1274,6 +1281,8 @@ void *nr_dlsch_decoding_2thread0(void *arg) ...@@ -1274,6 +1281,8 @@ void *nr_dlsch_decoding_2thread0(void *arg)
t_nrLDPC_dec_params* p_decParams = &decParams; t_nrLDPC_dec_params* p_decParams = &decParams;
t_nrLDPC_time_stats procTime; t_nrLDPC_time_stats procTime;
t_nrLDPC_time_stats* p_procTime =&procTime ; t_nrLDPC_time_stats* p_procTime =&procTime ;
// Pointer to LDPC processing buffer of thread 0
t_nrLDPC_procBuf* p_nrLDPC_procBuf = phy_vars_ue->p_nrLDPC_procBuf[0];
int16_t z [68*384]; int16_t z [68*384];
int8_t l [68*384]; int8_t l [68*384];
//__m128i l; //__m128i l;
...@@ -1607,6 +1616,7 @@ void *nr_dlsch_decoding_2thread0(void *arg) ...@@ -1607,6 +1616,7 @@ void *nr_dlsch_decoding_2thread0(void *arg)
no_iteration_ldpc = nrLDPC_decoder(p_decParams, no_iteration_ldpc = nrLDPC_decoder(p_decParams,
(int8_t*)&pl[0], (int8_t*)&pl[0],
llrProcBuf, llrProcBuf,
p_nrLDPC_procBuf,
p_procTime); p_procTime);
if (no_iteration_ldpc > 10) if (no_iteration_ldpc > 10)
...@@ -1779,6 +1789,8 @@ void *nr_dlsch_decoding_2thread1(void *arg) ...@@ -1779,6 +1789,8 @@ void *nr_dlsch_decoding_2thread1(void *arg)
t_nrLDPC_dec_params* p_decParams = &decParams; t_nrLDPC_dec_params* p_decParams = &decParams;
t_nrLDPC_time_stats procTime; t_nrLDPC_time_stats procTime;
t_nrLDPC_time_stats* p_procTime =&procTime ; t_nrLDPC_time_stats* p_procTime =&procTime ;
// Pointer to LDPC processing buffer of thread 1
t_nrLDPC_procBuf* p_nrLDPC_procBuf = phy_vars_ue->p_nrLDPC_procBuf[1];
int16_t z [68*384]; int16_t z [68*384];
int8_t l [68*384]; int8_t l [68*384];
//__m128i l; //__m128i l;
...@@ -2111,6 +2123,7 @@ void *nr_dlsch_decoding_2thread1(void *arg) ...@@ -2111,6 +2123,7 @@ void *nr_dlsch_decoding_2thread1(void *arg)
no_iteration_ldpc = nrLDPC_decoder(p_decParams, no_iteration_ldpc = nrLDPC_decoder(p_decParams,
(int8_t*)&pl[0], (int8_t*)&pl[0],
llrProcBuf, llrProcBuf,
p_nrLDPC_procBuf,
p_procTime); p_procTime);
if (no_iteration_ldpc > 10) if (no_iteration_ldpc > 10)
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
#include "targets/ARCH/COMMON/common_lib.h" #include "targets/ARCH/COMMON/common_lib.h"
#include "NR_IF_Module.h" #include "NR_IF_Module.h"
#include "PHY/CODING/nrLDPC_decoder/nrLDPC_types.h" #include "PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h"
/// Context data structure for RX/TX portion of subframe processing /// Context data structure for RX/TX portion of subframe processing
typedef struct { typedef struct {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment