Merge remote-tracking branch 'origin/fix_cppcheck' into integration_2024_w15
This commit is contained in:
@@ -344,7 +344,7 @@ static int add_dev(uint8_t dev_id, struct rte_bbdev_info *info)
|
||||
for (queue_id = 0; queue_id < nb_queues; ++queue_id) {
|
||||
ret = rte_bbdev_queue_configure(dev_id, queue_id, &qconf);
|
||||
if (ret == 0) {
|
||||
printf("Found LDCP encoding queue (id=%u) at prio%u on dev%u\n", queue_id, qconf.priority, dev_id);
|
||||
printf("Found LDCP encoding queue (id=%d) at prio%u on dev%u\n", queue_id, qconf.priority, dev_id);
|
||||
qconf.priority++;
|
||||
//ret = rte_bbdev_queue_configure(ad->dev_id, queue_id, &qconf);
|
||||
ad->enc_queue = queue_id;
|
||||
@@ -359,7 +359,7 @@ static int add_dev(uint8_t dev_id, struct rte_bbdev_info *info)
|
||||
for (queue_id++; queue_id < nb_queues; ++queue_id) {
|
||||
ret = rte_bbdev_queue_configure(dev_id, queue_id, &qconf);
|
||||
if (ret == 0) {
|
||||
printf("Found LDCP decoding queue (id=%u) at prio%u on dev%u\n", queue_id, qconf.priority, dev_id);
|
||||
printf("Found LDCP decoding queue (id=%d) at prio%u on dev%u\n", queue_id, qconf.priority, dev_id);
|
||||
qconf.priority++;
|
||||
//ret = rte_bbdev_queue_configure(ad->dev_id, queue_id, &qconf);
|
||||
ad->dec_queue = queue_id;
|
||||
@@ -957,8 +957,8 @@ int32_t LDPCinit()
|
||||
// Set number of queues based on number of initialized cores (-l option) and driver
|
||||
// capabilities
|
||||
TEST_ASSERT_SUCCESS(add_dev(dev_id, &info), "Failed to setup bbdev");
|
||||
TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id), "Failed to reset stats of bbdev %u", dev_id);
|
||||
TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id), "Failed to start bbdev %u", dev_id);
|
||||
TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id), "Failed to reset stats of bbdev %d", dev_id);
|
||||
TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id), "Failed to start bbdev %d", dev_id);
|
||||
|
||||
//the previous calls have populated this global variable (beurk)
|
||||
// One more global to remove, not thread safe global op_params
|
||||
|
||||
+9
-9
@@ -80,10 +80,10 @@ void nrLDPC_bnProcPc_BG1_generator_128(const char *dir, int R)
|
||||
fprintf(fd," // Process group with 1 CN\n");
|
||||
fprintf(fd," uint32_t M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[0]);
|
||||
|
||||
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i ymm0, ymm1, ymmRes0, ymmRes1;\n");
|
||||
|
||||
|
||||
@@ -114,9 +114,9 @@ void nrLDPC_bnProcPc_BG1_generator_128(const char *dir, int R)
|
||||
cnOffsetInGroup = (lut_numBnInBnGroups[cnidx]*NR_LDPC_ZMAX)>>4;
|
||||
|
||||
// Set pointers to start of group 2
|
||||
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
|
||||
// Loop over BNs
|
||||
fprintf(fd," for (int i=0;i<M;i++) {\n");
|
||||
@@ -127,10 +127,10 @@ void nrLDPC_bnProcPc_BG1_generator_128(const char *dir, int R)
|
||||
// Loop over CNs
|
||||
for (k=1; k<=cnidx; k++)
|
||||
{
|
||||
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%d + i]);\n", k*cnOffsetInGroup);
|
||||
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%u + i]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
|
||||
|
||||
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%d + i],8));\n", k*cnOffsetInGroup);
|
||||
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%u + i],8));\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1); \n");
|
||||
}
|
||||
|
||||
+9
-9
@@ -81,10 +81,10 @@ void nrLDPC_bnProcPc_BG2_generator_128(const char *dir, int R)
|
||||
fprintf(fd," // Process group with 1 CN\n");
|
||||
fprintf(fd," uint32_t M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[0]);
|
||||
|
||||
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," simde__m128i ymm0, ymm1, ymmRes0, ymmRes1;\n");
|
||||
|
||||
|
||||
@@ -115,9 +115,9 @@ void nrLDPC_bnProcPc_BG2_generator_128(const char *dir, int R)
|
||||
cnOffsetInGroup = (lut_numBnInBnGroups[cnidx]*NR_LDPC_ZMAX)>>4;
|
||||
|
||||
// Set pointers to start of group 2
|
||||
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%u];\n", lut_startAddrBnGroups[idxBnGroup]);
|
||||
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n", lut_startAddrBnGroupsLlr[idxBnGroup]);
|
||||
|
||||
// Loop over BNs
|
||||
fprintf(fd," for (int i=0;i<M;i++) {\n");
|
||||
@@ -128,10 +128,10 @@ void nrLDPC_bnProcPc_BG2_generator_128(const char *dir, int R)
|
||||
// Loop over CNs
|
||||
for (k=1; k<=cnidx; k++)
|
||||
{
|
||||
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%d + i]);\n", k*cnOffsetInGroup);
|
||||
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%u + i]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
|
||||
|
||||
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%d + i],8));\n", k*cnOffsetInGroup);
|
||||
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%u + i],8));\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1); \n");
|
||||
}
|
||||
|
||||
+6
-6
@@ -121,7 +121,7 @@ fprintf(fd, "// Process group with 1 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
@@ -177,7 +177,7 @@ fprintf(fd, "// Process group with 2 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
@@ -290,7 +290,7 @@ fprintf(fd, "// Process group with 4 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
@@ -346,7 +346,7 @@ fprintf(fd, "// Process group with 5 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
@@ -459,7 +459,7 @@ fprintf(fd, "// Process group with 7 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
@@ -1479,7 +1479,7 @@ fprintf(fd, "// Process group with 25 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0, zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1, zmm1); \n");
|
||||
}
|
||||
|
||||
+3
-3
@@ -575,7 +575,7 @@ fprintf(fd, "// Process group with 9 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0,zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1,zmm1); \n");
|
||||
}
|
||||
@@ -1195,7 +1195,7 @@ fprintf(fd, "// Process group with 20 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0,zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1,zmm1); \n");
|
||||
}
|
||||
@@ -1759,7 +1759,7 @@ fprintf(fd, "// Process group with 30 CNs \n");
|
||||
fprintf(fd, " zmm0 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmmRes0 = simde_mm512_adds_epi16(zmmRes0,zmm0);\n");
|
||||
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k * cnOffsetInGroup);
|
||||
fprintf(fd, " zmm1 = simde_mm512_cvtepi8_epi16(p_bnProcBuf[%u + j +1]);\n", k * cnOffsetInGroup);
|
||||
|
||||
fprintf(fd, " zmmRes1 = simde_mm512_adds_epi16(zmmRes1,zmm1); \n");
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
|
||||
#include "common/utils/nr/nr_common.h"
|
||||
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -110,10 +110,9 @@ t_nrPolar_params *nr_polar_params(int8_t messageType, uint16_t messageLength, ui
|
||||
// printf("currentPtr %p (polarParams %p)\n",currentPtr,polarParams);
|
||||
//Else, initialize and add node to the end of the linked list.
|
||||
t_nrPolar_params *newPolarInitNode = calloc(sizeof(t_nrPolar_params),1);
|
||||
newPolarInitNode->busy=true;
|
||||
AssertFatal(newPolarInitNode, "[nr_polar_init] New t_nrPolar_params * could not be created");
|
||||
newPolarInitNode->busy = true;
|
||||
pthread_mutex_unlock(&PolarListMutex);
|
||||
|
||||
AssertFatal(newPolarInitNode != NULL, "[nr_polar_init] New t_nrPolar_params * could not be created");
|
||||
|
||||
// LOG_D(PHY,"Setting new polarParams index %d, messageType %d, messageLength %d, aggregation_prime %d\n",(messageType * messageLength * aggregation_prime),messageType,messageLength,aggregation_prime);
|
||||
newPolarInitNode->idx = PolarKey;
|
||||
|
||||
@@ -491,6 +491,7 @@ uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) {
|
||||
break;
|
||||
case 4: // even: 4->1, odd: 4->4
|
||||
ret= ((3*odd_slot) + 1)%6;
|
||||
break;
|
||||
case 5: // even: 5->4, odd: 5->1
|
||||
ret= ((3*odd_slot) + 4)%6;
|
||||
break;
|
||||
|
||||
@@ -41,8 +41,8 @@ double get_pa_dB(uint8_t pa)
|
||||
|
||||
}
|
||||
|
||||
double computeRhoA_eNB(uint8_t pa,
|
||||
LTE_eNB_DLSCH_t *dlsch_eNB, int dl_power_off, uint8_t n_antenna_port){
|
||||
double computeRhoA_eNB(uint8_t pa, LTE_eNB_DLSCH_t *dlsch_eNB, int dl_power_off, uint8_t n_antenna_port)
|
||||
{
|
||||
double rho_a_dB;
|
||||
double sqrt_rho_a_lin;
|
||||
|
||||
@@ -59,10 +59,10 @@ double computeRhoA_eNB(uint8_t pa,
|
||||
if (dlsch_eNB) {
|
||||
dlsch_eNB->sqrt_rho_a= (short) (sqrt_rho_a_lin*pow(2,13));
|
||||
dlsch_eNB->pa = pa;
|
||||
}
|
||||
#if DEBUG_PC
|
||||
printf("eNB: p_a=%d, value=%f, sqrt_rho_a=%d\n",p_a,pa_values[ pdsch_config_dedicated->p_a],dlsch_eNB->sqrt_rho_a);
|
||||
printf("eNB: p_a=%d, value=%f, sqrt_rho_a=%d\n", p_a, pa_values[pdsch_config_dedicated->p_a], dlsch_eNB->sqrt_rho_a);
|
||||
#endif
|
||||
}
|
||||
|
||||
return(rho_a_dB);
|
||||
}
|
||||
@@ -89,12 +89,12 @@ double computeRhoB_eNB(uint8_t pa,
|
||||
sqrt_rho_b_lin= pow(10,(0.05*rho_b_dB));
|
||||
|
||||
if (dlsch_eNB) {
|
||||
dlsch_eNB->sqrt_rho_b= (short) (sqrt_rho_b_lin*pow(2,13));
|
||||
dlsch_eNB->sqrt_rho_b = (short) (sqrt_rho_b_lin * pow(2, 13));
|
||||
dlsch_eNB->pb = pb;
|
||||
}
|
||||
#ifdef DEBUG_PC
|
||||
printf("eNB: n_ant=%d, p_b=%d -> rho_b/rho_a=%f -> sqrt_rho_b=%d\n",n_antenna_port,pb,ratioPB[1][pb],dlsch_eNB->sqrt_rho_b);
|
||||
printf("eNB: n_ant=%d, p_b=%d -> rho_b/rho_a=%f -> sqrt_rho_b=%d\n", n_antenna_port, pb, ratioPB[1][pb], dlsch_eNB->sqrt_rho_b);
|
||||
#endif
|
||||
}
|
||||
return(rho_b_dB);
|
||||
}
|
||||
|
||||
|
||||
@@ -805,8 +805,28 @@ void nr_layer_precoder_simd(const int n_layers,
|
||||
|
||||
#ifdef DEBUG_DLSCH_PRECODING_PRINT_WITH_TRIVIAL // Print simd and trivial result, TODO: To be removed
|
||||
c16_t *y_simd = (c16_t*) &y;
|
||||
printf("debug_to_be_removed re_cnt=%d, sc=%d, y_simd=(%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d)\n", re_cnt, sc, y_simd[0].r, y_simd[0].i, y_simd[1].r, y_simd[1].i, y_simd[2].r, y_simd[2].i, y_simd[3].r, y_simd[3].i);
|
||||
printf("debug_to_be_removed re_cnt=%d, sc=%d, y_triv=(%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d)\n", re_cnt, sc, y_triv[0].r, y_triv[0].i, y_triv[1].r, y_triv[1].i, y_triv[2].r, y_triv[2].i, y_triv[3].r, y_triv[3].i);
|
||||
printf("debug_to_be_removed re_cnt=%d, sc=%u, y_simd=(%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d)\n",
|
||||
re_cnt,
|
||||
sc,
|
||||
y_simd[0].r,
|
||||
y_simd[0].i,
|
||||
y_simd[1].r,
|
||||
y_simd[1].i,
|
||||
y_simd[2].r,
|
||||
y_simd[2].i,
|
||||
y_simd[3].r,
|
||||
y_simd[3].i);
|
||||
printf("debug_to_be_removed re_cnt=%d, sc=%u, y_triv=(%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d), (%+4d,%+4d)\n",
|
||||
re_cnt,
|
||||
sc,
|
||||
y_triv[0].r,
|
||||
y_triv[0].i,
|
||||
y_triv[1].r,
|
||||
y_triv[1].i,
|
||||
y_triv[2].r,
|
||||
y_triv[2].i,
|
||||
y_triv[3].r,
|
||||
y_triv[3].i);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,8 +292,14 @@ int nr_pusch_lowpaprtype1_dmrs_rx(PHY_VARS_gNB *gNB,
|
||||
nb_pusch_rb,
|
||||
nb_dmrs);
|
||||
printf("NR_DMRS_RX: wf[%d] = %d wt[%d]= %d\n", i & 1, wf1[p - 1000][i & 1], lp, wt1[p - 1000][lp]);
|
||||
printf("NR_DMRS_RX: i %d dmrs_offset %d k %d pusch dmrsseq[i<<1] %d, dmrsseq[(i<<1)+1] %d pilots[k<<1] %d pilots[(k<<1)+1] %d\n", i, dmrs_offset, k,
|
||||
dmrs_seq[i].r, dmrs_seq[i].i, output[k].r, output[(k].i);
|
||||
printf("NR_DMRS_RX: i %d dmrs_offset %d k %d pusch dmrsseq.r %d, dmrsseq.i %d pilots.r %d pilots.i %d\n",
|
||||
i,
|
||||
dmrs_offset,
|
||||
k,
|
||||
dmrs_seq[i].r,
|
||||
dmrs_seq[i].i,
|
||||
output[k].r,
|
||||
output[k].i);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -175,7 +175,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx, int frame, int slot)
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_MODULATION, 0);
|
||||
stop_meas(dlsch_modulation_stats);
|
||||
#ifdef DEBUG_DLSCH
|
||||
printf("PDSCH Modulation: Qm %d(%u)\n", Qm, nb_re);
|
||||
printf("PDSCH Modulation: Qm %d(%d)\n", Qm, nb_re);
|
||||
for (int i = 0; i < nb_re; i += 8) {
|
||||
for (int j=0; j<8; j++) {
|
||||
printf("%d %d\t", mod_symbs[codeWord][i + j].r, mod_symbs[codeWord][i + j].i);
|
||||
@@ -213,8 +213,12 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx, int frame, int slot)
|
||||
c16_t txdataF_precoding[rel15->nrOfLayers][NR_NUMBER_OF_SYMBOLS_PER_SLOT][frame_parms->ofdm_symbol_size] __attribute__((aligned(64)));;
|
||||
|
||||
#ifdef DEBUG_DLSCH_MAPPING
|
||||
printf("PDSCH resource mapping started (start SC %d\tstart symbol %d\tN_PRB %d\tnb_re %u,nb_layers %d)\n",
|
||||
start_sc, rel15->StartSymbolIndex, rel15->rbSize, nb_re,rel15->nrOfLayers);
|
||||
printf("PDSCH resource mapping started (start SC %d\tstart symbol %d\tN_PRB %d\tnb_re %d,nb_layers %d)\n",
|
||||
start_sc,
|
||||
rel15->StartSymbolIndex,
|
||||
rel15->rbSize,
|
||||
nb_re,
|
||||
rel15->nrOfLayers);
|
||||
#endif
|
||||
|
||||
start_meas(&gNB->dlsch_resource_mapping_stats);
|
||||
|
||||
@@ -265,10 +265,10 @@ int nr_generate_pbch(nfapi_nr_dl_tti_ssb_pdu *ssb_pdu,
|
||||
pbch->pbch_a |= n_hf<<28; // half frame index bit
|
||||
|
||||
if (Lmax == 64)
|
||||
for (int i=0; i<3; i++)
|
||||
pbch->pbch_a |= ((ssb_index>>(5-i))&1)<<(29+i); // resp. 6th, 5th and 4th bits of ssb_index
|
||||
for (int i = 0; i < 3; i++)
|
||||
pbch->pbch_a |= (uint32_t)((ssb_index >> (5 - i)) & 1) << (29 + i); // resp. 6th, 5th and 4th bits of ssb_index
|
||||
else
|
||||
pbch->pbch_a |= ((ssb_sc_offset>>4)&1)<<29; //MSB of k_SSB (bit index 4)
|
||||
pbch->pbch_a |= ((ssb_sc_offset >> 4) & 1) << 29; //MSB of k_SSB (bit index 4)
|
||||
|
||||
LOG_D(PHY,"After extra byte: pbch_a = 0x%08x\n",pbch->pbch_a);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ static NR_gNB_ULSCH_t *find_nr_ulsch(PHY_VARS_gNB *gNB, uint16_t rnti, int pid)
|
||||
|
||||
for (int i = 0; i < gNB->max_nb_pusch; i++) {
|
||||
ulsch = &gNB->ulsch[i];
|
||||
AssertFatal(ulsch != NULL, "gNB->ulsch[%d] is null\n", i);
|
||||
AssertFatal(ulsch, "gNB->ulsch[%d] is null\n", i);
|
||||
if (!ulsch->active) {
|
||||
if (first_free_index == -1)
|
||||
first_free_index = i;
|
||||
|
||||
@@ -587,7 +587,7 @@ void nr_decode_pucch1(c16_t **rxdataF,
|
||||
printf(
|
||||
"\t [nr_generate_pucch1] mapping %s to RE \t amp=%d "
|
||||
"\tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d "
|
||||
"\tz_pucch[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
"\tz_pucch[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
l % 2 ? "PUCCH" : "DM-RS",
|
||||
amp,
|
||||
frame_parms->ofdm_symbol_size,
|
||||
|
||||
@@ -647,7 +647,7 @@ c32_t nr_pbch_dmrs_correlation(const PHY_VARS_NR_UE *ue,
|
||||
|
||||
unsigned int k = ue->frame_parms.Nid_cell % 4;
|
||||
|
||||
DEBUG_PBCH("PBCH DMRS Correlation : gNB_id %d , OFDM size %d, Ncp=%d, k=%d symbol %d\n",
|
||||
DEBUG_PBCH("PBCH DMRS Correlation : gNB_id %d , OFDM size %d, Ncp=%d, k=%u symbol %d\n",
|
||||
proc->gNB_id,
|
||||
ue->frame_parms.ofdm_symbol_size,
|
||||
ue->frame_parms.Ncp,
|
||||
@@ -666,7 +666,7 @@ c32_t nr_pbch_dmrs_correlation(const PHY_VARS_NR_UE *ue,
|
||||
const c16_t *rxF = &rxdataF[aarx][symbol_offset + k];
|
||||
|
||||
DEBUG_PBCH("pbch ch est pilot RB_DL %d\n", ue->frame_parms.N_RB_DL);
|
||||
DEBUG_PBCH("k %d, first_carrier %d\n", k, ue->frame_parms.first_carrier_offset);
|
||||
DEBUG_PBCH("k %u, first_carrier %d\n", k, ue->frame_parms.first_carrier_offset);
|
||||
|
||||
// Treat first 2 pilots specially (left edge)
|
||||
computed_val = c32x16maddShift(*pil, rxF[re_offset], computed_val, 15);
|
||||
@@ -1336,7 +1336,6 @@ void NFAPI_NR_DMRS_TYPE1_average_prb(NR_DL_FRAME_PARMS *frame_parms,
|
||||
for (int i = 0; i < 2 * P_average; i++) {
|
||||
dl_ch[i] = ch;
|
||||
}
|
||||
dl_ch += 2 * P_average;
|
||||
#else
|
||||
dl_ch[3].r += (ch.r * 1365) >> 15; // 1/12*16384
|
||||
dl_ch[3].i += (ch.i * 1365) >> 15; // 1/12*16384
|
||||
@@ -1488,7 +1487,6 @@ void NFAPI_NR_DMRS_TYPE2_average_prb(NR_DL_FRAME_PARMS *frame_parms,
|
||||
for (int i = 0; i < 3 * P_average; i++) {
|
||||
dl_ch[i] = ch;
|
||||
}
|
||||
dl_ch += 3 * P_average;
|
||||
#else
|
||||
dl_ch[3].r += (ch.r * 1365) >> 15; // 1/12*16384
|
||||
dl_ch[3].i += (ch.i * 1365) >> 15; // 1/12*16384
|
||||
|
||||
@@ -42,8 +42,6 @@
|
||||
//#define DEBUG_PBCH
|
||||
//#define DEBUG_PBCH_ENCODING
|
||||
|
||||
//#include "PHY_INTERFACE/defs.h"
|
||||
|
||||
#define PBCH_A 24
|
||||
#define PBCH_MAX_RE_PER_SYMBOL (20*12)
|
||||
#define PBCH_MAX_RE (PBCH_MAX_RE_PER_SYMBOL*4)
|
||||
@@ -69,15 +67,17 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz,
|
||||
for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
|
||||
unsigned int rx_offset = frame_parms->first_carrier_offset + frame_parms->ssb_start_subcarrier;
|
||||
rx_offset = (rx_offset)%(frame_parms->ofdm_symbol_size);
|
||||
struct complex16 *rxF = &rxdataF[aarx][(symbol+s_offset)*frame_parms->ofdm_symbol_size];
|
||||
struct complex16 *rxF_ext = rxdataF_ext[aarx];
|
||||
struct complex16 *rxF = &rxdataF[aarx][(symbol+s_offset)*frame_parms->ofdm_symbol_size];
|
||||
struct complex16 *rxF_ext = rxdataF_ext[aarx];
|
||||
#ifdef DEBUG_PBCH
|
||||
printf("extract_rbs (nushift %d): rx_offset=%d, symbol %u\n",frame_parms->nushift,
|
||||
(rx_offset + ((symbol+s_offset)*(frame_parms->ofdm_symbol_size))),symbol);
|
||||
printf("extract_rbs (nushift %d): rx_offset=%d, symbol %u\n",
|
||||
nushiftmod4,
|
||||
(rx_offset + ((symbol+s_offset) * (frame_parms->ofdm_symbol_size))),
|
||||
symbol);
|
||||
int16_t *p = (int16_t *)rxF;
|
||||
|
||||
for (int i =0; i<8; i++) {
|
||||
printf("rxF [%d]= %d\n",i,rxF[i]);
|
||||
printf("rxF.r [%d]= %d rxF.i [%d]= %d\n", i, rxF[i].r, i, rxF[i].i);
|
||||
printf("pbch extract rxF %d %d addr %p\n", p[2*i], p[2*i+1], &p[2*i]);
|
||||
}
|
||||
|
||||
@@ -94,10 +94,12 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz,
|
||||
rxF_ext[j]=rxF[rx_offset];
|
||||
#ifdef DEBUG_PBCH
|
||||
printf("rxF ext[%d] = (%d,%d) rxF [%u]= (%d,%d)\n",
|
||||
(9*rb) + j,
|
||||
rxF_ext[j].r, rxF_ext[j].i,
|
||||
(9 * rb) + j,
|
||||
rxF_ext[j].r,
|
||||
rxF_ext[j].i,
|
||||
rx_offset,
|
||||
rxF[rx_offset].r,rxF[rx_offset].j;
|
||||
rxF[rx_offset].r,
|
||||
rxF[rx_offset].i);
|
||||
#endif
|
||||
j++;
|
||||
}
|
||||
@@ -115,10 +117,13 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz,
|
||||
(i!=(nushiftmod4+8))) {
|
||||
rxF_ext[j]=rxF[rx_offset];
|
||||
#ifdef DEBUG_PBCH
|
||||
printf("rxF ext[%d] = (%d,%d) rxF [%u]= (%d,%d)\n",(rb<4) ? (9*rb) + j : (9*(rb-12))+j,
|
||||
rxF_ext[j].r, rxF_ext[j].i,
|
||||
printf("rxF ext[%d] = (%d,%d) rxF [%u]= (%d,%d)\n",
|
||||
(rb < 4) ? (9 * rb) + j : (9 * (rb - 12)) + j,
|
||||
rxF_ext[j].r,
|
||||
rxF_ext[j].i,
|
||||
rx_offset,
|
||||
rxF[rx_offset].r,rxF[rx_offset].j;
|
||||
rxF[rx_offset].r,
|
||||
rxF[rx_offset].i);
|
||||
#endif
|
||||
j++;
|
||||
}
|
||||
@@ -149,11 +154,14 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz,
|
||||
(i!=(nushiftmod4+8))) {
|
||||
dl_ch0_ext[j]=dl_ch0[i];
|
||||
#ifdef DEBUG_PBCH
|
||||
if ((rb==0) && (i<2))
|
||||
printf("dl ch0 ext[%d] = (%d,%d) dl_ch0 [%d]= (%d,%d)\n",j,
|
||||
dl_ch0_ext[j].r, dl_ch0_ext[j].i,
|
||||
if ((rb == 0) && (i < 2))
|
||||
printf("dl ch0 ext[%d] = (%d,%d) dl_ch0 [%d]= (%d,%d)\n",
|
||||
j,
|
||||
dl_ch0_ext[j].r,
|
||||
dl_ch0_ext[j].i,
|
||||
i,
|
||||
dl_ch0[j].r, dl_ch0[j].i,
|
||||
dl_ch0[j].r,
|
||||
dl_ch0[j].i);
|
||||
#endif
|
||||
j++;
|
||||
}
|
||||
@@ -169,10 +177,13 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz,
|
||||
(i!=(nushiftmod4+8))) {
|
||||
dl_ch0_ext[j]=dl_ch0[i];
|
||||
#ifdef DEBUG_PBCH
|
||||
printf("dl ch0 ext[%d] = (%d,%d) dl_ch0 [%d]= (%d,%d)\n",j,
|
||||
dl_ch0_ext[j].r, dl_ch0_ext[j].i,
|
||||
printf("dl ch0 ext[%d] = (%d,%d) dl_ch0 [%d]= (%d,%d)\n",
|
||||
j,
|
||||
dl_ch0_ext[j].r,
|
||||
dl_ch0_ext[j].i,
|
||||
i,
|
||||
dl_ch0[j].r, dl_ch0[j].i,
|
||||
dl_ch0[j].r,
|
||||
dl_ch0[j].i);
|
||||
#endif
|
||||
j++;
|
||||
}
|
||||
@@ -425,7 +436,7 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
|
||||
#ifdef DEBUG_PBCH
|
||||
LOG_I(PHY,"[PHY] PBCH log2_maxh = %d (%d)\n", log2_maxh, max_h);
|
||||
LOG_I(PHY,"[PHY] PBCH log2_maxh = %f (%d)\n", log2_maxh, max_h);
|
||||
#endif
|
||||
__attribute__ ((aligned(32))) struct complex16 rxdataF_comp[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
|
||||
nr_pbch_channel_compensation(rxdataF_ext,
|
||||
@@ -452,12 +463,8 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue,
|
||||
UEscopeCopy(ue, pbchRxdataF_comp, pbch_unClipped, sizeof(struct complex16), frame_parms->nb_antennas_rx, pbch_e_rx_idx / 2, 0);
|
||||
UEscopeCopy(ue, pbchLlr, pbch_e_rx, sizeof(int16_t), frame_parms->nb_antennas_rx, pbch_e_rx_idx, 0);
|
||||
#ifdef DEBUG_PBCH
|
||||
write_output("rxdataF_comp.m","rxFcomp",rxdataF_comp[0],240*3,1,1);
|
||||
short *p = (short *)rxdataF_comp[0]);
|
||||
|
||||
for (int cnt = 0; cnt < 864 ; cnt++)
|
||||
printf("pbch rx llr %d\n",*(pbch_e_rx+cnt));
|
||||
|
||||
printf("pbch rx llr %d\n", *(pbch_e_rx + cnt));
|
||||
#endif
|
||||
// un-scrambling
|
||||
uint32_t unscrambling_mask = (Lmax==64)?0x100006D:0x1000041;
|
||||
@@ -527,7 +534,7 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue,
|
||||
ue->symbol_offset += (frame_parms->slots_per_frame>>1)*frame_parms->symbols_per_slot;
|
||||
|
||||
#ifdef DEBUG_PBCH
|
||||
printf("xtra_byte %x payload %x\n", xtra_byte, payload);
|
||||
printf("xtra_byte %x payload %x\n", result->xtra_byte, payload);
|
||||
|
||||
for (int i=0; i<(NR_POLAR_PBCH_PAYLOAD_BITS>>3); i++) {
|
||||
// printf("unscrambling pbch_a[%d] = %x \n", i,pbch_a[i]);
|
||||
|
||||
@@ -126,7 +126,7 @@ void nr_generate_pucch0(const PHY_VARS_NR_UE *ue,
|
||||
|
||||
//txptr = &txdataF[0][re_offset];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch0] symbol %d PRB %d (%u)\n",l,prb_offset[l],re_offset);
|
||||
printf("\t [nr_generate_pucch0] symbol %d PRB %d (%d)\n",l,prb_offset[l], re_offset);
|
||||
#endif
|
||||
c16_t *txdataFptr = txdataF[0] + l2 * frame_parms->ofdm_symbol_size;
|
||||
const int32_t amp = amp16;
|
||||
@@ -777,7 +777,7 @@ void nr_generate_pucch2(const PHY_VARS_NR_UE *ue,
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf(
|
||||
"\t [nr_generate_pucch2] (n=%d,i=%d) mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d "
|
||||
"\tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
"\tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
n,
|
||||
i,
|
||||
amp,
|
||||
@@ -801,7 +801,7 @@ void nr_generate_pucch2(const PHY_VARS_NR_UE *ue,
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf(
|
||||
"\t [nr_generate_pucch2] (n=%d,i=%d) mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d "
|
||||
"\tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
"\tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
n,
|
||||
i,
|
||||
amp,
|
||||
|
||||
@@ -496,14 +496,14 @@ bool rx_sss_nr(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
|
||||
//#ifdef DEBUG_SSS_NR
|
||||
|
||||
#define SSS_METRIC_FLOOR_NR (30000)
|
||||
if (*tot_metric > SSS_METRIC_FLOOR_NR) {
|
||||
Nid2 = GET_NID2(frame_parms->Nid_cell);
|
||||
Nid1 = GET_NID1(frame_parms->Nid_cell);
|
||||
LOG_D(PHY,"Nid2 %d Nid1 %d tot_metric %d, phase_max %d \n", Nid2, Nid1, *tot_metric, *phase_max);
|
||||
}
|
||||
// #endif
|
||||
// #endif
|
||||
|
||||
int re = 0;
|
||||
int im = 0;
|
||||
if (Nid1 == N_ID_1_NUMBER) {
|
||||
|
||||
@@ -1647,7 +1647,7 @@ void dft64(int16_t *x,int16_t *y,unsigned char scale)
|
||||
|
||||
#ifdef D64STATS
|
||||
stop_meas(&ts_b);
|
||||
printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff);
|
||||
printf("t: %lld cycles, d: %lld cycles, b: %lld cycles\n",ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1746,7 +1746,7 @@ void idft64(int16_t *x,int16_t *y,unsigned char scale)
|
||||
|
||||
#ifdef D64STATS
|
||||
stop_meas(&ts_b);
|
||||
printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff);
|
||||
printf("t: %lld cycles, d: %lld cycles, b: %lld cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1013,7 +1013,11 @@ void dft64(int16_t *x,int16_t *y,unsigned char scale)
|
||||
|
||||
#ifdef D64STATS
|
||||
stop_meas(&ts_b);
|
||||
printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff);
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
printf("t: %lld cycles, d: %lld cycles, b: %lld cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
printf("t: %u cycles, d: %u cycles, b: %u cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1102,7 +1106,11 @@ void idft64(int16_t *x,int16_t *y,unsigned char scale)
|
||||
|
||||
#ifdef D64STATS
|
||||
stop_meas(&ts_b);
|
||||
printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff);
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
printf("t: %lld cycles, d: %lld cycles, b: %lld cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
printf("t: %u cycles, d: %u cycles, b: %u cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1433,7 +1441,11 @@ void dft256(int16_t *x,int16_t *y,unsigned char scale)
|
||||
|
||||
#ifdef D256STATS
|
||||
stop_meas(&ts_b);
|
||||
printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff);
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
printf("t: %lld cycles, d: %lld cycles, b: %lld cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
printf("t: %u cycles, d: %u cycles, b: %u cycles\n", ts_t.diff, ts_d.diff, ts_b.diff);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (scale>0) {
|
||||
|
||||
@@ -813,11 +813,6 @@ double interp(double x, double *xs, double *ys, int count);
|
||||
void simde_mm128_separate_real_imag_parts(simde__m128i *out_re, simde__m128i *out_im, simde__m128i in0, simde__m128i in1);
|
||||
void simde_mm256_separate_real_imag_parts(simde__m256i *out_re, simde__m256i *out_im, simde__m256i in0, simde__m256i in1);
|
||||
|
||||
static __attribute__((always_inline)) inline int count_bits_set(uint64_t v)
|
||||
{
|
||||
return __builtin_popcountll(v);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -549,13 +549,14 @@ void fill_ul_rb_mask(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
|
||||
int rb2 = 0;
|
||||
int prbpos = 0;
|
||||
|
||||
for (int symbol=0;symbol<14;symbol++) {
|
||||
for (int m=0;m<9;m++) {
|
||||
for (int symbol = 0; symbol < 14; symbol++) {
|
||||
for (int m = 0; m < 9; m++) {
|
||||
gNB->rb_mask_ul[symbol][m] = 0;
|
||||
for (int i=0;i<32;i++) {
|
||||
prbpos = (m*32)+i;
|
||||
if (prbpos>gNB->frame_parms.N_RB_UL) break;
|
||||
gNB->rb_mask_ul[symbol][m] |= (gNB->ulprbbl[prbpos]>0 ? 1 : 0)<<i;
|
||||
for (int i = 0; i < 32; i++) {
|
||||
prbpos = (m * 32) + i;
|
||||
if (prbpos>gNB->frame_parms.N_RB_UL)
|
||||
break;
|
||||
gNB->rb_mask_ul[symbol][m] |= (gNB->ulprbbl[prbpos] > 0 ? 1U : 0) << i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,6 @@ static void free_uci_inds(nfapi_nr_uci_indication_t *uci_ind)
|
||||
free(uci_ind->uci_list);
|
||||
uci_ind->uci_list = NULL;
|
||||
free(uci_ind);
|
||||
uci_ind = NULL;
|
||||
}
|
||||
|
||||
int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response) {
|
||||
|
||||
@@ -688,9 +688,8 @@ int main(int argc, char **argv) {
|
||||
else {
|
||||
while(fgets(buf, 63, proc_fd))
|
||||
printf("%s", buf);
|
||||
fclose(proc_fd);
|
||||
}
|
||||
|
||||
fclose(proc_fd);
|
||||
cpu_freq_GHz = ((double)atof(buf))/1e6;
|
||||
#else
|
||||
cpu_freq_GHz = get_cpu_freq_GHz();
|
||||
|
||||
@@ -312,7 +312,7 @@ int main(int argc, char **argv) {
|
||||
#ifdef IFFT_FPGA
|
||||
int **txdataF2;
|
||||
#endif
|
||||
int **txdata,**txdata1 = NULL,**txdata2 = NULL;
|
||||
int **txdata, **txdata1 = NULL, **txdata2 = NULL;
|
||||
double **s_re,**s_im,**s_re1,**s_im1,**s_re2,**s_im2,**r_re,**r_im,**r_re1,**r_im1,**r_re2,**r_im2;
|
||||
double iqim = 0.0;
|
||||
unsigned char pbch_pdu[6];
|
||||
@@ -1180,12 +1180,12 @@ int main(int argc, char **argv) {
|
||||
s_re[aa][i] = tmp_re;
|
||||
s_im[aa][i] = tmp_im;
|
||||
|
||||
if (interf1>-20) {
|
||||
if (interf1 >- 20 && txdata1) {
|
||||
s_re1[aa][i] = ((double)(((short *)txdata1[aa]))[(i<<1)]);
|
||||
s_im1[aa][i] = ((double)(((short *)txdata1[aa]))[(i<<1)+1]);
|
||||
}
|
||||
|
||||
if (interf2>-20) {
|
||||
if (interf2 >- 20 && txdata2) {
|
||||
s_re2[aa][i] = ((double)(((short *)txdata2[aa]))[(i<<1)]);
|
||||
s_im2[aa][i] = ((double)(((short *)txdata2[aa]))[(i<<1)+1]);
|
||||
}
|
||||
|
||||
@@ -917,6 +917,11 @@ int main(int argc, char **argv)
|
||||
csv_file = fopen(filename_csv, "a");
|
||||
if (csv_file == NULL) {
|
||||
printf("Can't open file \"%s\", errno %d\n", filename_csv, errno);
|
||||
free(s_re);
|
||||
free(s_im);
|
||||
free(r_re);
|
||||
free(r_im);
|
||||
free(txdata);
|
||||
return 1;
|
||||
}
|
||||
// adding name of parameters into file
|
||||
|
||||
@@ -902,6 +902,10 @@ int main(int argc, char *argv[])
|
||||
csv_file = fopen(filename_csv, "a");
|
||||
if (csv_file == NULL) {
|
||||
printf("Can't open file \"%s\", errno %d\n", filename_csv, errno);
|
||||
free(s_re);
|
||||
free(s_im);
|
||||
free(r_re);
|
||||
free(r_im);
|
||||
return 1;
|
||||
}
|
||||
// adding name of parameters into file
|
||||
|
||||
@@ -115,7 +115,7 @@ void display_data(int pss_sequence_number, int16_t *rxdata, int position) {
|
||||
int16_t *pss_sequence[pss_sequence] = {primary_synch0_time, primary_synch1_time, primary_synch2_time};
|
||||
int16_t *pss_sequence_sl[pss_sequence] = {primary_synch0_time, primary_synch1_time};
|
||||
int16_t *pss_sequence_time = pss_sequence[pss_sequence_number];;
|
||||
if (get_softmodem_params()->sl_mode != 0) {
|
||||
if (get_softmodem_params()->sl_mode != 0)
|
||||
pss_sequence_time = pss_sequence_sl[pss_sequence_number];
|
||||
printf(" pss %6d data \n", pss_sequence_number);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
||||
@@ -107,6 +107,7 @@ double dac_fixed_gain(double *s_re[2],
|
||||
*amp1p=sqrt(*amp1p);
|
||||
}
|
||||
|
||||
AssertFatal(amp1p != NULL && *amp1p != 0.0, "Precondition to avoid UB\n");
|
||||
|
||||
#ifdef DEBUG_DAC
|
||||
LOG_I(OCM,"DAC: amp %f, amp1 %f dB (%d,%d), tx_power target %f (actual %f %f),length %d,pos %d\n",
|
||||
@@ -122,7 +123,6 @@ double dac_fixed_gain(double *s_re[2],
|
||||
|
||||
#endif
|
||||
|
||||
AssertFatal(amp1p != NULL && *amp1p != 0.0, "Precondition to avoid UB\n");
|
||||
for (i=0; i<length; i++) {
|
||||
for (aa=0; aa<nb_tx_antennas; aa++) {
|
||||
s_re[aa][i] = amp*((double)(((short *)input[aa]))[((i+input_offset)<<1)])/(*amp1p);
|
||||
|
||||
@@ -344,7 +344,7 @@ void do_UL_sig(sim_t *sim, uint16_t subframe, uint8_t abstraction_flag, LTE_DL_F
|
||||
for (UE_id=0; UE_id<NB_UE_INST; UE_id++) {
|
||||
|
||||
txdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.txdata;
|
||||
AssertFatal(txdata != NULL,"txdata is null\n");
|
||||
AssertFatal(txdata,"txdata is null\n");
|
||||
|
||||
sf_offset = subframe*frame_parms->samples_per_tti;
|
||||
if (subframe>0) sf_offset_tdd = sf_offset - PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset;
|
||||
|
||||
@@ -25,28 +25,24 @@
|
||||
#include "defs.h"
|
||||
|
||||
|
||||
unsigned int *generate_gauss_LUT(unsigned char Nbits,
|
||||
unsigned char L
|
||||
) {
|
||||
unsigned int *LUT_ptr,i;
|
||||
LUT_ptr = (unsigned int *)malloc((1<<(Nbits-1))*sizeof(int));
|
||||
unsigned int *generate_gauss_LUT(unsigned char Nbits, unsigned char L)
|
||||
{
|
||||
unsigned int *LUT_ptr = calloc((1U << (Nbits - 1)), sizeof(int));
|
||||
assert(LUT_ptr);
|
||||
|
||||
for (i=0; i<(1<<(Nbits-1)); i++) {
|
||||
LUT_ptr[i] = (unsigned int)((double)((unsigned int)(1<<31))*erf(i*L/(double)(1<<(Nbits-1))));
|
||||
for (int i = 0; i < (1 << (Nbits - 1)); i++) {
|
||||
LUT_ptr[i] = (unsigned int)((double)((unsigned int)(1U << 31)) * erf(i * L / (double)(1 << (Nbits - 1))));
|
||||
#ifdef LUTDEBUG
|
||||
printf("pos %u : LUT_ptr[%u]=%x (%f)\n",i,i,LUT_ptr[i],(double)(erf(i*L/(double)(1<<(Nbits-1)))));
|
||||
printf("pos %d : LUT_ptr[%d]=%x (%f)\n", i, i, LUT_ptr[i], (double)(erf(i * L / (double)(1 << (Nbits -1 )))));
|
||||
#endif //LUTDEBUG
|
||||
}
|
||||
|
||||
return(LUT_ptr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int gauss(unsigned int *gauss_LUT,
|
||||
unsigned char Nbits
|
||||
) {
|
||||
int gauss(unsigned int *gauss_LUT, unsigned char Nbits)
|
||||
{
|
||||
unsigned int search_pos,step_size,u,tmp,tmpm1,tmpp1,s;
|
||||
// Get a 32-bit uniform random-variable
|
||||
u = taus();
|
||||
@@ -127,8 +123,10 @@ void main(int argc,char **argv) {
|
||||
// printf("%d\n",gauss(gauss_LUT_ptr,Nbits));
|
||||
}
|
||||
|
||||
printf("Tail probability = %e(%x)\n",2*erfc((double)L*gauss_LUT_ptr[(1<<(Nbits-1))-1]/(unsigned int)(1<<31)),gauss_LUT_ptr[(1<<(Nbits-1))-1]);
|
||||
printf("max %d, min %d, mean %f, stddev %f, Pr(maxnum)=%e(%d)\n",maxg,ming,meang,sqrt(varg),(double)maxnum/Ntrials,maxnum);
|
||||
printf("Tail probability = %e(%x)\n",
|
||||
2 * erfc((double)L * gauss_LUT_ptr[(1U << (Nbits - 1)) - 1] / (unsigned int)(1U << 31)),
|
||||
gauss_LUT_ptr[(1U << (Nbits - 1)) - 1]);
|
||||
printf("max %d, min %d, mean %f, stddev %f, Pr(maxnum)=%e(%d)\n", maxg, ming, meang, sqrt(varg), (double)maxnum / Ntrials, maxnum);
|
||||
// for (i=0;i<(1<<Nhistbits);i++)
|
||||
// printf("%d : %u\n",i,hist[i]);
|
||||
free(gauss_LUT_ptr);
|
||||
|
||||
@@ -2033,8 +2033,8 @@ int get_channel_params(char *buf, int debug, void *vdata, telnet_printfunc_t prn
|
||||
}
|
||||
tdata->numlines++;
|
||||
}
|
||||
return tdata->numlines;
|
||||
}
|
||||
return tdata->numlines;
|
||||
} /* show */ else if (strstr(buf, "set") == buf) {
|
||||
char cmdbuf[TELNET_MAX_MSGLENGTH];
|
||||
int sst = sscanf(tdata->tblname, "%*[^=]=%i", &chanidx);
|
||||
@@ -2229,11 +2229,12 @@ int get_modchannel_index(char *buf, int debug, void *vdata, telnet_printfunc_t p
|
||||
if (debug)
|
||||
LOG_I(UTIL, "%s received %s\n", __FUNCTION__, buf);
|
||||
webdatadef_t *tdata = (webdatadef_t *)vdata;
|
||||
tdata->numlines = 0;
|
||||
if (strncmp(buf, "set", 3) == 0) {
|
||||
return get_channel_params(buf, debug, vdata, prnt);
|
||||
}
|
||||
int numlines = 0;
|
||||
if (tdata != NULL) {
|
||||
tdata->numlines = 0;
|
||||
for (int i = 0; i < max_chan; i++) {
|
||||
if (defined_channels[i] != NULL) {
|
||||
tdata->numlines++;
|
||||
@@ -2245,8 +2246,9 @@ int get_modchannel_index(char *buf, int debug, void *vdata, telnet_printfunc_t p
|
||||
else {
|
||||
snprintf(tdata->tblname, sizeof(tdata->tblname) - 1, "No running model in the system");
|
||||
}
|
||||
numlines = tdata->numlines;
|
||||
}
|
||||
return tdata->numlines;
|
||||
return numlines;
|
||||
} /* get_currentchannel_type */
|
||||
/*------------------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user