fixed #320 issue
This commit is contained in:
@@ -989,134 +989,6 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y,
|
||||
yp1 = yparity1;
|
||||
yp2 = yparity2;
|
||||
|
||||
|
||||
#if 0
|
||||
__m128i *yp128,*yp128_cw2;
|
||||
__m128i tmpe,tmpe_cw2;
|
||||
yp128 = (__m128i*)y;
|
||||
yp128_cw2 = (__m128i*)y2;
|
||||
|
||||
|
||||
|
||||
for (i=0; i<n; i+=8) {
|
||||
pi2_p = &pi2tab16avx2[iind][i];
|
||||
|
||||
j=pi2_p[0];
|
||||
|
||||
|
||||
tmpe = _mm_load_si128(yp128);
|
||||
tmpe_cw2 = _mm_load_si128(yp128_cw2);
|
||||
// fprintf(fdavx2,"yp128 %p\n",yp128);
|
||||
// print_shorts("tmpe",(int16_t*)&tmpe);
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,0);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,1);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,2);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,0);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,1);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,2);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init0: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init0: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
|
||||
j=pi2_p[1];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,3);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,4);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,5);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,3);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,4);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,5);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init1: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init1: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[2];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,6);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,7);
|
||||
tmpe = _mm_load_si128(&yp128[1]);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,0);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,6);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,7);
|
||||
tmpe_cw2 = _mm_load_si128(&yp128_cw2[1]);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,0);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init2: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init2: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[3];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,1);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,2);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,3);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,1);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,2);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,3);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init3: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init3: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[4];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,4);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,5);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,6);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,4);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,5);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,6);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init4: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init4: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[5];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,7);
|
||||
tmpe = _mm_load_si128(&yp128[2]);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,0);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,1);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,7);
|
||||
tmpe_cw2 = _mm_load_si128(&yp128_cw2[2]);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,0);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,1);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init5: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init5: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[6];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,2);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,3);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,4);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,2);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,3);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,4);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init6: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init6: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
j=pi2_p[7];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,5);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,6);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,7);
|
||||
s[j+8] = _mm_extract_epi16(tmpe_cw2,5);
|
||||
yp1[j+8] = _mm_extract_epi16(tmpe_cw2,6);
|
||||
yp2[j+8] = _mm_extract_epi16(tmpe_cw2,7);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdavx2,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j],yp1[j],yp2[j]);
|
||||
fprintf(fdavx2b,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",((j>>4)<<3)+(j&7),s[j+8],yp1[j+8],yp2[j+8]);
|
||||
#endif
|
||||
yp128+=3;
|
||||
yp128_cw2+=3;
|
||||
|
||||
}
|
||||
yp=(llr_t*)yp128;
|
||||
yp_cw2=(llr_t*)yp128_cw2;
|
||||
#else
|
||||
|
||||
pi2_p = &pi2tab16avx2[iind][0];
|
||||
for (i=0,j=0; i<n; i++) {
|
||||
s[*pi2_p] = y[j];
|
||||
@@ -1128,8 +1000,6 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y,
|
||||
}
|
||||
yp=(llr_t*)&y[j];
|
||||
yp_cw2=(llr_t*)&y2[j];
|
||||
#endif
|
||||
|
||||
|
||||
// Termination
|
||||
for (i=0; i<3; i++) {
|
||||
|
||||
@@ -233,9 +233,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
alpha128 = (__m128i *)alpha;
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha256 = (__m256i *)alpha;
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
alpha128 = (int16x8_t *)alpha;
|
||||
#endif
|
||||
@@ -317,10 +314,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
|
||||
alpha_ptr = &alpha128[0];
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha_ptr256 = &alpha256[0];
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
m11p = (__m128i*)m_11;
|
||||
m10p = (__m128i*)m_10;
|
||||
@@ -450,9 +443,6 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
|
||||
alpha_ptr+=8;
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha_ptr256+=4;
|
||||
#endif
|
||||
m11p++;
|
||||
m10p++;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
|
||||
@@ -427,67 +427,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho
|
||||
|
||||
llr_t beta2,beta3,beta4,beta5,beta6,beta7;
|
||||
|
||||
|
||||
#if 0
|
||||
int16_t m11,m10;
|
||||
int16_t beta0_16,beta1_16,beta2_16,beta3_16,beta4_16,beta5_16,beta6_16,beta7_16,beta0_2,beta1_2,beta2_2,beta3_2,beta_m;
|
||||
__m128i beta_16;
|
||||
// termination for beta initialization
|
||||
|
||||
m11=(int16_t)m_11[2+frame_length];
|
||||
m10=(int16_t)m_10[2+frame_length];
|
||||
|
||||
beta0 = -m11;//M0T_TERM;
|
||||
beta1 = m11;//M1T_TERM;
|
||||
m11=(int16_t)m_11[1+frame_length];
|
||||
m10=(int16_t)m_10[1+frame_length];
|
||||
|
||||
beta0_2 = beta0-m11;//+M0T_TERM;
|
||||
beta1_2 = beta0+m11;//+M1T_TERM;
|
||||
beta2_2 = beta1+m10;//M2T_TERM;
|
||||
beta3_2 = beta1-m10;//+M3T_TERM;
|
||||
m11=(int16_t)m_11[frame_length];
|
||||
m10=(int16_t)m_10[frame_length];
|
||||
|
||||
beta0_16 = beta0_2-m11;//+M0T_TERM;
|
||||
beta1_16 = beta0_2+m11;//+M1T_TERM;
|
||||
beta2_16 = beta1_2+m10;//+M2T_TERM;
|
||||
beta3_16 = beta1_2-m10;//+M3T_TERM;
|
||||
beta4_16 = beta2_2-m10;//+M4T_TERM;
|
||||
beta5_16 = beta2_2+m10;//+M5T_TERM;
|
||||
beta6_16 = beta3_2+m11;//+M6T_TERM;
|
||||
beta7_16 = beta3_2-m11;//+M7T_TERM;
|
||||
|
||||
beta_m = (beta0_16>beta1_16) ? beta0_16 : beta1_16;
|
||||
beta_m = (beta_m>beta2_16) ? beta_m : beta2_16;
|
||||
beta_m = (beta_m>beta3_16) ? beta_m : beta3_16;
|
||||
beta_m = (beta_m>beta4_16) ? beta_m : beta4_16;
|
||||
beta_m = (beta_m>beta5_16) ? beta_m : beta5_16;
|
||||
beta_m = (beta_m>beta6_16) ? beta_m : beta6_16;
|
||||
beta_m = (beta_m>beta7_16) ? beta_m : beta7_16;
|
||||
|
||||
beta0_16=beta0_16-beta_m;
|
||||
beta1_16=beta1_16-beta_m;
|
||||
beta2_16=beta2_16-beta_m;
|
||||
beta3_16=beta3_16-beta_m;
|
||||
beta4_16=beta4_16-beta_m;
|
||||
beta5_16=beta5_16-beta_m;
|
||||
beta6_16=beta6_16-beta_m;
|
||||
beta7_16=beta7_16-beta_m;
|
||||
|
||||
beta_16 = _mm_set_epi16(beta7_16,beta6_16,beta5_16,beta4_16,beta3_16,beta2_16,beta1_16,beta0_16);
|
||||
beta_16 = _mm_packs_epi16(beta_16,beta_16);
|
||||
beta0 = _mm_extract_epi8(beta_16,0);
|
||||
beta1 = _mm_extract_epi8(beta_16,1);
|
||||
beta2 = _mm_extract_epi8(beta_16,2);
|
||||
beta3 = _mm_extract_epi8(beta_16,3);
|
||||
beta4 = _mm_extract_epi8(beta_16,4);
|
||||
beta5 = _mm_extract_epi8(beta_16,5);
|
||||
beta6 = _mm_extract_epi8(beta_16,6);
|
||||
beta7 = _mm_extract_epi8(beta_16,7);
|
||||
|
||||
#endif
|
||||
|
||||
if (frame_length > 6144) {
|
||||
LOG_E(PHY,"compute_beta: frame_length %d\n",frame_length);
|
||||
return;
|
||||
@@ -1085,209 +1024,6 @@ unsigned char phy_threegpplte_turbo_decoder8(short *y,
|
||||
yp2[k]=*yp++;
|
||||
}
|
||||
|
||||
#endif
|
||||
#if 0
|
||||
|
||||
for (i=0; i<n2; i+=16) {
|
||||
pi2_p = &pi2tab8[iind][i];
|
||||
|
||||
j=pi2_p[0];
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
s[j] = _mm_extract_epi8(yp128[0],0);
|
||||
yp1[j] = _mm_extract_epi8(yp128[0],1);
|
||||
yp2[j] = _mm_extract_epi8(yp128[0],2);
|
||||
|
||||
|
||||
j=pi2_p[1];
|
||||
s[j] = _mm_extract_epi8(yp128[0],3);
|
||||
yp1[j] = _mm_extract_epi8(yp128[0],4);
|
||||
yp2[j] = _mm_extract_epi8(yp128[0],5);
|
||||
|
||||
|
||||
j=pi2_p[2];
|
||||
s[j] = _mm_extract_epi8(yp128[0],6);
|
||||
yp1[j] = _mm_extract_epi8(yp128[0],7);
|
||||
yp2[j] = _mm_extract_epi8(yp128[0],8);
|
||||
|
||||
|
||||
j=pi2_p[3];
|
||||
s[j] = _mm_extract_epi8(yp128[0],9);
|
||||
yp1[j] = _mm_extract_epi8(yp128[0],10);
|
||||
yp2[j] = _mm_extract_epi8(yp128[0],11);
|
||||
|
||||
|
||||
j=pi2_p[4];
|
||||
s[j] = _mm_extract_epi8(yp128[0],12);
|
||||
yp1[j] = _mm_extract_epi8(yp128[0],13);
|
||||
yp2[j] = _mm_extract_epi8(yp128[0],14);
|
||||
|
||||
|
||||
j=pi2_p[5];
|
||||
s[j] = _mm_extract_epi8(yp128[0],15);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],0);
|
||||
yp2[j] = _mm_extract_epi8(yp128[1],1);
|
||||
|
||||
|
||||
j=pi2_p[6];
|
||||
s[j] = _mm_extract_epi8(yp128[1],2);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],3);
|
||||
yp2[j] = _mm_extract_epi8(yp128[1],4);
|
||||
|
||||
|
||||
j=pi2_p[7];
|
||||
s[j] = _mm_extract_epi8(yp128[1],5);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],6);
|
||||
yp2[j] = _mm_extract_epi8(yp128[1],7);
|
||||
|
||||
|
||||
j=pi2_p[8];
|
||||
s[j] = _mm_extract_epi8(yp128[1],8);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],9);
|
||||
yp2[j] = _mm_extract_epi8(yp128[1],10);
|
||||
|
||||
|
||||
j=pi2_p[9];
|
||||
s[j] = _mm_extract_epi8(yp128[1],11);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],12);
|
||||
yp2[j] = _mm_extract_epi8(yp128[1],13);
|
||||
|
||||
|
||||
j=pi2_p[10];
|
||||
s[j] = _mm_extract_epi8(yp128[1],14);
|
||||
yp1[j] = _mm_extract_epi8(yp128[1],15);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],0);
|
||||
|
||||
|
||||
j=pi2_p[11];
|
||||
s[j] = _mm_extract_epi8(yp128[2],1);
|
||||
yp1[j] = _mm_extract_epi8(yp128[2],2);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],3);
|
||||
|
||||
|
||||
j=pi2_p[12];
|
||||
s[j] = _mm_extract_epi8(yp128[2],4);
|
||||
yp1[j] = _mm_extract_epi8(yp128[2],5);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],6);
|
||||
|
||||
|
||||
j=pi2_p[13];
|
||||
s[j] = _mm_extract_epi8(yp128[2],7);
|
||||
yp1[j] = _mm_extract_epi8(yp128[2],8);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],9);
|
||||
|
||||
|
||||
j=pi2_p[14];
|
||||
s[j] = _mm_extract_epi8(yp128[2],10);
|
||||
yp1[j] = _mm_extract_epi8(yp128[2],11);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],12);
|
||||
|
||||
|
||||
j=pi2_p[15];
|
||||
s[j] = _mm_extract_epi8(yp128[2],13);
|
||||
yp1[j] = _mm_extract_epi8(yp128[2],14);
|
||||
yp2[j] = _mm_extract_epi8(yp128[2],15);
|
||||
|
||||
|
||||
#elif defined(__arm__)
|
||||
s[j] = vgetq_lane_s8(yp128[0],0);
|
||||
yp1[j] = vgetq_lane_s8(yp128[0],1);
|
||||
yp2[j] = vgetq_lane_s8(yp128[0],2);
|
||||
|
||||
|
||||
j=pi2_p[1];
|
||||
s[j] = vgetq_lane_s8(yp128[0],3);
|
||||
yp1[j] = vgetq_lane_s8(yp128[0],4);
|
||||
yp2[j] = vgetq_lane_s8(yp128[0],5);
|
||||
|
||||
|
||||
j=pi2_p[2];
|
||||
s[j] = vgetq_lane_s8(yp128[0],6);
|
||||
yp1[j] = vgetq_lane_s8(yp128[0],7);
|
||||
yp2[j] = vgetq_lane_s8(yp128[0],8);
|
||||
|
||||
|
||||
j=pi2_p[3];
|
||||
s[j] = vgetq_lane_s8(yp128[0],9);
|
||||
yp1[j] = vgetq_lane_s8(yp128[0],10);
|
||||
yp2[j] = vgetq_lane_s8(yp128[0],11);
|
||||
|
||||
|
||||
j=pi2_p[4];
|
||||
s[j] = vgetq_lane_s8(yp128[0],12);
|
||||
yp1[j] = vgetq_lane_s8(yp128[0],13);
|
||||
yp2[j] = vgetq_lane_s8(yp128[0],14);
|
||||
|
||||
|
||||
j=pi2_p[5];
|
||||
s[j] = vgetq_lane_s8(yp128[0],15);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],0);
|
||||
yp2[j] = vgetq_lane_s8(yp128[1],1);
|
||||
|
||||
|
||||
j=pi2_p[6];
|
||||
s[j] = vgetq_lane_s8(yp128[1],2);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],3);
|
||||
yp2[j] = vgetq_lane_s8(yp128[1],4);
|
||||
|
||||
|
||||
j=pi2_p[7];
|
||||
s[j] = vgetq_lane_s8(yp128[1],5);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],6);
|
||||
yp2[j] = vgetq_lane_s8(yp128[1],7);
|
||||
|
||||
|
||||
j=pi2_p[8];
|
||||
s[j] = vgetq_lane_s8(yp128[1],8);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],9);
|
||||
yp2[j] = vgetq_lane_s8(yp128[1],10);
|
||||
|
||||
|
||||
j=pi2_p[9];
|
||||
s[j] = vgetq_lane_s8(yp128[1],11);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],12);
|
||||
yp2[j] = vgetq_lane_s8(yp128[1],13);
|
||||
|
||||
|
||||
j=pi2_p[10];
|
||||
s[j] = vgetq_lane_s8(yp128[1],14);
|
||||
yp1[j] = vgetq_lane_s8(yp128[1],15);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],0);
|
||||
|
||||
|
||||
j=pi2_p[11];
|
||||
s[j] = vgetq_lane_s8(yp128[2],1);
|
||||
yp1[j] = vgetq_lane_s8(yp128[2],2);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],3);
|
||||
|
||||
|
||||
j=pi2_p[12];
|
||||
s[j] = vgetq_lane_s8(yp128[2],4);
|
||||
yp1[j] = vgetq_lane_s8(yp128[2],5);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],6);
|
||||
|
||||
|
||||
j=pi2_p[13];
|
||||
s[j] = vgetq_lane_s8(yp128[2],7);
|
||||
yp1[j] = vgetq_lane_s8(yp128[2],8);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],9);
|
||||
|
||||
|
||||
j=pi2_p[14];
|
||||
s[j] = vgetq_lane_s8(yp128[2],10);
|
||||
yp1[j] = vgetq_lane_s8(yp128[2],11);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],12);
|
||||
|
||||
|
||||
j=pi2_p[15];
|
||||
s[j] = vgetq_lane_s8(yp128[2],13);
|
||||
yp1[j] = vgetq_lane_s8(yp128[2],14);
|
||||
yp2[j] = vgetq_lane_s8(yp128[2],15);
|
||||
|
||||
#endif
|
||||
yp128+=3;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
yp=(llr_t*)yp128;
|
||||
|
||||
@@ -255,12 +255,7 @@ void phy_config_request(PHY_Config_t *phy_config) {
|
||||
"prach_starting_subframe_periodicity[0] %d < prach_numPetitionPerPreambleAttempt[0] %d\n",
|
||||
fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0],
|
||||
fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]);
|
||||
#if 0
|
||||
AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] > 0,
|
||||
"prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]==0\n");
|
||||
#else
|
||||
LOG_D(PHY,"***DJP*** removed assert on preamble fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]:%d expecting >0 %s:%d\n\n\n", fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0], __FILE__, __LINE__);
|
||||
#endif
|
||||
|
||||
fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[0] = cfg->emtc_config.prach_ce_level_0_configuration_index.value;
|
||||
fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[0] = cfg->emtc_config.prach_ce_level_0_frequency_offset.value;
|
||||
fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[0] = cfg->emtc_config.prach_ce_level_0_hopping_enable.value;
|
||||
|
||||
@@ -454,7 +454,7 @@ int32_t lte_srs_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
&srs_vars->srs[eNB_id],
|
||||
0x7FFF,
|
||||
subframe)==-1) {
|
||||
LOG_E(PHY,"lte_srs_channel_estimation: Error in generate_srs_rx\n");
|
||||
LOG_E(PHY,"lte_srs_channel_estimation: Error in generate_srs\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -184,32 +184,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
uint16_t i;
|
||||
#endif
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
int Kr_last,skipped_last=0;
|
||||
uint8_t (*tc_2cw)(int16_t *y,
|
||||
int16_t *y2,
|
||||
uint8_t *,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
uint16_t,
|
||||
uint16_t,
|
||||
uint8_t,
|
||||
uint8_t,
|
||||
uint8_t,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *);
|
||||
|
||||
#endif
|
||||
decoder_if_t tc;
|
||||
|
||||
|
||||
|
||||
decoder_if_t tc;
|
||||
|
||||
if (!dlsch_llr) {
|
||||
printf("dlsch_decoding.c: NULL dlsch_llr pointer\n");
|
||||
@@ -237,17 +212,13 @@ decoder_if_t tc;
|
||||
}
|
||||
|
||||
if (llr8_flag == 0) {
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
tc_2cw = phy_threegpplte_turbo_decoder16avx2;
|
||||
#endif
|
||||
tc = decoder16;
|
||||
}
|
||||
else
|
||||
{
|
||||
AssertFatal (harq_process->TBS >= 256 , "Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d \n",
|
||||
harq_process->nb_rb, harq_process->TBS,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round);
|
||||
tc = decoder8;
|
||||
AssertFatal (harq_process->TBS >= 256 , "Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d \n",
|
||||
harq_process->nb_rb, harq_process->TBS,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round);
|
||||
tc = decoder8;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1188,7 +1188,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
|
||||
LOG_D(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
// Please keep it: useful for debugging
|
||||
|
||||
// Please keep it: useful for debugging
|
||||
#if 0
|
||||
if( (symbol == 13) && (subframe==0) && (dlsch0_harq->Qm == 6) /*&& (nb_rb==25)*/)
|
||||
{
|
||||
|
||||
@@ -1208,7 +1208,6 @@ void dlsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
#endif
|
||||
}
|
||||
|
||||
//#if 0
|
||||
void dlsch_64qam_llr_SIC(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int32_t **rxdataF_comp,
|
||||
int32_t **sic_buffer, //Q15
|
||||
@@ -8859,15 +8858,6 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
memcpy(ch_mag_i_256i, ch_mag_i, len*4);
|
||||
memcpy(rho_256i, rho, len*4);
|
||||
|
||||
#if 0
|
||||
qam64_qam16_avx2((short *)rxF_256i,
|
||||
(short *)rxF_i_256i,
|
||||
(short *)ch_mag_256i,
|
||||
(short *)ch_mag_i_256i,
|
||||
(short *)llr16,
|
||||
(short *) rho_256i,
|
||||
len);
|
||||
#else
|
||||
qam64_qam64_avx2((int32_t *)rxF_256i,
|
||||
(int32_t *)rxF_i_256i,
|
||||
(int32_t *)ch_mag_256i,
|
||||
@@ -8875,7 +8865,6 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
(int16_t *)llr16,
|
||||
(int32_t *) rho_256i,
|
||||
len);
|
||||
#endif
|
||||
|
||||
free16(rxF_256i, sizeof(rxF_256i));
|
||||
free16(rxF_i_256i, sizeof(rxF_i_256i));
|
||||
|
||||
@@ -220,113 +220,6 @@ int generate_srs_tx_emul(PHY_VARS_UE *phy_vars_ue,uint8_t subframe)
|
||||
return(0);
|
||||
}
|
||||
|
||||
#if 0
|
||||
int generate_srs_rx(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
SOUNDINGRS_UL_CONFIG_DEDICATED *soundingrs_ul_config_dedicated,
|
||||
int *txdataF)
|
||||
{
|
||||
|
||||
uint16_t msrsb=0,Nb=0,nb,b,msrs0=0,k,Msc_RS,Msc_RS_idx,carrier_pos;
|
||||
uint16_t *Msc_idx_ptr;
|
||||
int k0;
|
||||
uint8_t Bsrs = soundingrs_ul_config_dedicated->srs_Bandwidth;
|
||||
uint8_t Csrs = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig;
|
||||
uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition;
|
||||
uint8_t kTC = soundingrs_ul_config_dedicated->transmissionComb;
|
||||
|
||||
if (frame_parms->N_RB_UL < 41) {
|
||||
msrs0 = msrsb_6_40[Csrs][0];
|
||||
msrsb = msrsb_6_40[Csrs][Bsrs];
|
||||
Nb = Nb_6_40[Csrs][Bsrs];
|
||||
} else if (frame_parms->N_RB_UL < 61) {
|
||||
msrs0 = msrsb_41_60[Csrs][0];
|
||||
msrsb = msrsb_41_60[Csrs][Bsrs];
|
||||
Nb = Nb_41_60[Csrs][Bsrs];
|
||||
} else if (frame_parms->N_RB_UL < 81) {
|
||||
msrs0 = msrsb_61_80[Csrs][0];
|
||||
msrsb = msrsb_61_80[Csrs][Bsrs];
|
||||
Nb = Nb_61_80[Csrs][Bsrs];
|
||||
} else if (frame_parms->N_RB_UL <111) {
|
||||
msrs0 = msrsb_81_110[Csrs][0];
|
||||
msrsb = msrsb_81_110[Csrs][Bsrs];
|
||||
Nb = Nb_81_110[Csrs][Bsrs];
|
||||
}
|
||||
|
||||
Msc_RS = msrsb * 6;
|
||||
k0 = (((frame_parms->N_RB_UL>>1)-(msrs0>>1))*12) + kTC;
|
||||
nb = (4*n_RRC/msrsb)%Nb;
|
||||
|
||||
for (b=0; b<=Bsrs; b++) {
|
||||
k0 += 2*nb*Msc_RS;
|
||||
}
|
||||
|
||||
if (k0<0) {
|
||||
LOG_E(PHY,"Invalid parameter set msrs0=%d, msrsb=%d, Nb=%d => nb=%d, k0=%d\n",msrs0,msrsb,Nb,nb,k0);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
Msc_idx_ptr = (uint16_t*) bsearch((uint16_t*) &Msc_RS, (uint16_t*) dftsizes, 33, sizeof(uint16_t), compareints);
|
||||
|
||||
if (Msc_idx_ptr)
|
||||
Msc_RS_idx = Msc_idx_ptr - dftsizes;
|
||||
else {
|
||||
LOG_E(PHY,"generate_srs: index for Msc_RS=%d not found\n",Msc_RS);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
#ifdef DEBUG_SRS
|
||||
LOG_I(PHY,"generate_srs_rx: Msc_RS = %d, Msc_RS_idx = %d, k0=%d\n",Msc_RS, Msc_RS_idx,k0);
|
||||
#endif
|
||||
|
||||
carrier_pos = (frame_parms->first_carrier_offset + k0) % frame_parms->ofdm_symbol_size;
|
||||
|
||||
for (k=0; k<Msc_RS; k++) {
|
||||
((short*) txdataF)[carrier_pos<<1] = ul_ref_sigs_rx[0][0][Msc_RS_idx][k<<1];
|
||||
((short*) txdataF)[(carrier_pos<<1)+1] = ul_ref_sigs_rx[0][0][Msc_RS_idx][(k<<1)+1];
|
||||
carrier_pos+=2;
|
||||
|
||||
if (carrier_pos >= frame_parms->ofdm_symbol_size)
|
||||
carrier_pos=1;
|
||||
}
|
||||
|
||||
/*
|
||||
for (k=0;k<Msc_RS;k++) {
|
||||
if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] >= 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] >= 0)) {
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = ONE_OVER_SQRT2_Q15;
|
||||
}
|
||||
else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] >= 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] < 0)) {
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = ONE_OVER_SQRT2_Q15;
|
||||
}
|
||||
else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] < 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] >= 0)) {
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = -ONE_OVER_SQRT2_Q15;
|
||||
}
|
||||
else if ((ul_ref_sigs[0][0][Msc_RS_idx][k<<1] < 0) && (ul_ref_sigs[0][0][Msc_RS_idx][(k<<1)+1] < 0)) {
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+1] = -ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+2] = ONE_OVER_SQRT2_Q15;
|
||||
((short*) txdataF)[4*(symbol_offset + carrier_pos)+3] = -ONE_OVER_SQRT2_Q15;
|
||||
}
|
||||
|
||||
carrier_pos+=2;
|
||||
if (carrier_pos >= frame_parms->ofdm_symbol_size)
|
||||
carrier_pos=0;
|
||||
}
|
||||
*/
|
||||
|
||||
// write_output("srs_rx.m","srsrx",txdataF,1024,2,1);
|
||||
return(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MAIN
|
||||
main()
|
||||
{
|
||||
|
||||
@@ -2511,25 +2511,6 @@ const static int16_t tw64[96] __attribute__((aligned(32))) = {
|
||||
-23170,-23170,-28898,-15447,-32138,-6393,-32610,3211,
|
||||
-30273,12539,-25330,20787,-18205,27244,-9512,31356
|
||||
};
|
||||
|
||||
#if 0
|
||||
/* this is defined but not used, let's comment */
|
||||
const static int16_t tw64rep[192] __attribute__((aligned(32))) = {
|
||||
32767,0,32609,-3212,32137,-6393,31356,-9512,32767,0,32609,-3212,32137,-6393,31356,-9512,
|
||||
30272,-12540,28897,-15447,27244,-18205,25329,-20788,30272,-12540,28897,-15447,27244,-18205,25329,-20788,
|
||||
23169,-23170,20787,-25330,18204,-27245,15446,-28898,23169,-23170,20787,-25330,18204,-27245,15446,-28898,
|
||||
12539,-30273,9511,-31357,6392,-32138,3211,-32610,12539,-30273,9511,-31357,6392,-32138,3211,-32610,
|
||||
32767,0,32137,-6393,30272,-12540,27244,-18205,32767,0,32137,-6393,30272,-12540,27244,-18205,
|
||||
23169,-23170,18204,-27245,12539,-30273,6392,-32138,23169,-23170,18204,-27245,12539,-30273,6392,-32138,
|
||||
0,-32767,-6393,-32138,-12540,-30273,-18205,-27245,0,-32767,-6393,-32138,-12540,-30273,-18205,-27245,
|
||||
-23170,-23170,-27245,-18205,-30273,-12540,-32138,-6393,-23170,-23170,-27245,-18205,-30273,-12540,-32138,-6393,
|
||||
32767,0,31356,-9512,27244,-18205,20787,-25330,32767,0,31356,-9512,27244,-18205,20787,-25330,
|
||||
12539,-30273,3211,-32610,-6393,-32138,-15447,-28898,12539,-30273,3211,-32610,-6393,-32138,-15447,-28898,
|
||||
-23170,-23170,-28898,-15447,-32138,-6393,-32610,3211,-23170,-23170,-28898,-15447,-32138,-6393,-32610,3211,
|
||||
-30273,12539,-25330,20787,-18205,27244,-9512,31356,-30273,12539,-25330,20787,-18205,27244,-9512,31356
|
||||
};
|
||||
#endif
|
||||
|
||||
const static int16_t tw64a[96] __attribute__((aligned(32))) = {
|
||||
32767,0,32609,3212,32137,6393,31356,9512,
|
||||
30272,12540,28897,15447,27244,18205,25329,20788,
|
||||
@@ -2544,24 +2525,6 @@ const static int16_t tw64a[96] __attribute__((aligned(32))) = {
|
||||
-23170,23170,-28898,15447,-32138,6393,-32610,-3211,
|
||||
-30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356
|
||||
};
|
||||
#if 0
|
||||
/* this is defined but not used, let's comment */
|
||||
const static int16_t tw64arep[192] __attribute__((aligned(32))) = {
|
||||
32767,0,32609,3212,32137,6393,31356,9512,32767,0,32609,3212,32137,6393,31356,9512,
|
||||
30272,12540,28897,15447,27244,18205,25329,20788,30272,12540,28897,15447,27244,18205,25329,20788,
|
||||
23169,23170,20787,25330,18204,27245,15446,28898,23169,23170,20787,25330,18204,27245,15446,28898,
|
||||
12539,30273,9511,31357,6392,32138,3211,32610,12539,30273,9511,31357,6392,32138,3211,32610,
|
||||
32767,0,32137,6393,30272,12540,27244,18205,32767,0,32137,6393,30272,12540,27244,18205,
|
||||
23169,23170,18204,27245,12539,30273,6392,32138,23169,23170,18204,27245,12539,30273,6392,32138,
|
||||
0,32767,-6393,32138,-12540,30273,-18205,27245,0,32767,-6393,32138,-12540,30273,-18205,27245,
|
||||
-23170,23170,-27245,18205,-30273,12540,-32138,6393,-23170,23170,-27245,18205,-30273,12540,-32138,6393,
|
||||
32767,0,31356,9512,27244,18205,20787,25330,32767,0,31356,9512,27244,18205,20787,25330,
|
||||
12539,30273,3211,32610,-6393,32138,-15447,28898,12539,30273,3211,32610,-6393,32138,-15447,28898,
|
||||
-23170,23170,-28898,15447,-32138,6393,-32610,-3211,-23170,23170,-28898,15447,-32138,6393,-32610,-3211,
|
||||
-30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356,-30273,-12539,-25330,-20787,-18205,-27244,-9512,-31356
|
||||
};
|
||||
#endif
|
||||
|
||||
const static int16_t tw64b[96] __attribute__((aligned(32))) = {
|
||||
0,32767,-3212,32609,-6393,32137,-9512,31356,
|
||||
-12540,30272,-15447,28897,-18205,27244,-20788,25329,
|
||||
@@ -2576,25 +2539,6 @@ const static int16_t tw64b[96] __attribute__((aligned(32))) = {
|
||||
-23170,-23170,-15447,-28898,-6393,-32138,3211,-32610,
|
||||
12539,-30273,20787,-25330,27244,-18205,31356,-9512
|
||||
};
|
||||
|
||||
#if 0
|
||||
/* this is defined but not used, let's comment */
|
||||
const static int16_t tw64brep[192] __attribute__((aligned(32))) = {
|
||||
0,32767,-3212,32609,-6393,32137,-9512,31356,0,32767,-3212,32609,-6393,32137,-9512,31356,
|
||||
-12540,30272,-15447,28897,-18205,27244,-20788,25329,-12540,30272,-15447,28897,-18205,27244,-20788,25329,
|
||||
-23170,23169,-25330,20787,-27245,18204,-28898,15446,-23170,23169,-25330,20787,-27245,18204,-28898,15446,
|
||||
-30273,12539,-31357,9511,-32138,6392,-32610,3211,-30273,12539,-31357,9511,-32138,6392,-32610,3211,
|
||||
0,32767,-6393,32137,-12540,30272,-18205,27244,0,32767,-6393,32137,-12540,30272,-18205,27244,
|
||||
-23170,23169,-27245,18204,-30273,12539,-32138,6392,-23170,23169,-27245,18204,-30273,12539,-32138,6392,
|
||||
-32767,0,-32138,-6393,-30273,-12540,-27245,-18205,-32767,0,-32138,-6393,-30273,-12540,-27245,-18205,
|
||||
-23170,-23170,-18205,-27245,-12540,-30273,-6393,-32138,-23170,-23170,-18205,-27245,-12540,-30273,-6393,-32138,
|
||||
0,32767,-9512,31356,-18205,27244,-25330,20787,0,32767,-9512,31356,-18205,27244,-25330,20787,
|
||||
-30273,12539,-32610,3211,-32138,-6393,-28898,-15447,-30273,12539,-32610,3211,-32138,-6393,-28898,-15447,
|
||||
-23170,-23170,-15447,-28898,-6393,-32138,3211,-32610,-23170,-23170,-15447,-28898,-6393,-32138,3211,-32610,
|
||||
12539,-30273,20787,-25330,27244,-18205,31356,-9512,12539,-30273,20787,-25330,27244,-18205,31356,-9512
|
||||
};
|
||||
#endif
|
||||
|
||||
const static int16_t tw64c[96] __attribute__((aligned(32))) = {
|
||||
0,32767,3212,32609,6393,32137,9512,31356,
|
||||
12540,30272,15447,28897,18205,27244,20788,25329,
|
||||
@@ -2609,26 +2553,6 @@ const static int16_t tw64c[96] __attribute__((aligned(32))) = {
|
||||
23170,-23170,15447,-28898,6393,-32138,-3211,-32610,
|
||||
-12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512
|
||||
};
|
||||
|
||||
#if 0
|
||||
/* this is defined but not used, let's comment */
|
||||
const static int16_t tw64crep[192] __attribute__((aligned(32))) = {
|
||||
0,32767,3212,32609,6393,32137,9512,31356,0,32767,3212,32609,6393,32137,9512,31356,
|
||||
12540,30272,15447,28897,18205,27244,20788,25329,12540,30272,15447,28897,18205,27244,20788,25329,
|
||||
23170,23169,25330,20787,27245,18204,28898,15446,23170,23169,25330,20787,27245,18204,28898,15446,
|
||||
30273,12539,31357,9511,32138,6392,32610,3211,30273,12539,31357,9511,32138,6392,32610,3211,
|
||||
0,32767,6393,32137,12540,30272,18205,27244,0,32767,6393,32137,12540,30272,18205,27244,
|
||||
23170,23169,27245,18204,30273,12539,32138,6392,23170,23169,27245,18204,30273,12539,32138,6392,
|
||||
32767,0,32138,-6393,30273,-12540,27245,-18205,32767,0,32138,-6393,30273,-12540,27245,-18205,
|
||||
23170,-23170,18205,-27245,12540,-30273,6393,-32138,23170,-23170,18205,-27245,12540,-30273,6393,-32138,
|
||||
0,32767,9512,31356,18205,27244,25330,20787,0,32767,9512,31356,18205,27244,25330,20787,
|
||||
30273,12539,32610,3211,32138,-6393,28898,-15447,30273,12539,32610,3211,32138,-6393,28898,-15447,
|
||||
23170,-23170,15447,-28898,6393,-32138,-3211,-32610,23170,-23170,15447,-28898,6393,-32138,-3211,-32610,
|
||||
-12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512,-12539,-30273,-20787,-25330,-27244,-18205,-31356,-9512
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#define simd_q15_t __m128i
|
||||
#define simdshort_q15_t __m64
|
||||
|
||||
@@ -410,11 +410,6 @@ void feptx_prec(RU_t *ru) {
|
||||
aa);
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
LOG_D(PHY,"feptx_prec: frame %d, subframe %d: txp (freq) %d dB\n",
|
||||
ru->proc.frame_tx,subframe,
|
||||
dB_fixed(signal_energy_nodc(ru->common.txdataF_BF[0],2*fp->symbols_per_tti*fp->ofdm_symbol_size)));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3601,16 +3601,14 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
||||
stop_meas(&ue->dlsch_unscrambling_stats);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
LOG_I(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d ------ \n", frame_rx, subframe_rx, harq_pid);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->rb_alloc_even);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Qm);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Nl);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->G);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo);
|
||||
LOG_I(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
|
||||
#endif
|
||||
LOG_D(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d ------ \n", frame_rx, subframe_rx, harq_pid);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->rb_alloc_even);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Qm);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->Nl);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->G);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo);
|
||||
LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
|
||||
|
||||
#if UE_TIMING_TRACE
|
||||
start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
|
||||
@@ -3667,15 +3665,13 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
|
||||
stop_meas(&ue->dlsch_unscrambling_stats);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->rb_alloc_even);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Qm);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Nl);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->G);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
|
||||
LOG_I(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
|
||||
#endif
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->rb_alloc_even);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Qm %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Qm);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Nl %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->Nl);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> G %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->G);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Kmimo %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
|
||||
LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> Pdcch Sym %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
|
||||
|
||||
#if UE_TIMING_TRACE
|
||||
start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
|
||||
@@ -4424,11 +4420,9 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
|
||||
/**** End Subframe FE Processing ****/
|
||||
|
||||
|
||||
#if 0
|
||||
//Trigger LLR parallelized for Slot 1
|
||||
proc->dci_slot0_available=1;
|
||||
printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
|
||||
#endif
|
||||
//proc->dci_slot0_available=1;
|
||||
//printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
|
||||
|
||||
/**** Pdsch Procedure Slot0 ****/
|
||||
// start main thread for Pdsch Procedure (slot0)
|
||||
|
||||
@@ -5182,11 +5182,6 @@ int main(int argc, char **argv)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if 0
|
||||
thr_cw0_tm4_nonconst = rate[0]*get_Qm(PHY_vars_eNB->dlsch[0][0]->harq_processes[0]->mcs)* \
|
||||
((double)(round_trials[0][0]-dci_errors)/((double)round_trials[0][0] + round_trials[0][1] + round_trials[0][2] + round_trials[0][3]));
|
||||
printf("Throughput cw0 noncnstr = %f \n", thr_cw0_tm4_nonconst);
|
||||
#endif
|
||||
//FOR CW1
|
||||
/*thr_cw1[0] = rate[1]*get_Qm(PHY_vars_eNB->dlsch[0][1]->harq_processes[0]->mcs)*(1-((double)errs[0][0]/(double)round_trials[0][0])) \
|
||||
*(1-((double)errs[1][0]/(double)round_trials[1][0]));
|
||||
|
||||
@@ -63,33 +63,6 @@ void randominit(unsigned seed_init)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
void randominit(unsigned seed_init)
|
||||
{
|
||||
int i;
|
||||
// this need to be integrated with the existing rng, like taus: navid
|
||||
LOG_D(PHY,"Initializing random number generator, seed %x\n",seed_init);
|
||||
|
||||
seed_init = 62110;
|
||||
|
||||
if (seed_init == 0) {
|
||||
srand((unsigned)time(NULL));
|
||||
|
||||
seed = (unsigned int) rand();
|
||||
} else {
|
||||
seed = seed_init;
|
||||
}
|
||||
|
||||
if (seed % 2 == 0) seed += 1; /* seed and mod are relative prime */
|
||||
|
||||
for (i=1; i<=97; i++) {
|
||||
seed = a*seed; /* mod 2**32 */
|
||||
ir[i]= seed; /* initialize the shuffle table */
|
||||
}
|
||||
|
||||
iy=1;
|
||||
}
|
||||
#endif
|
||||
/*!\brief Uniform linear congruential random number generator on \f$[0,1)\f$. Returns a double-precision floating-point number.*/
|
||||
|
||||
double uniformrandom(void)
|
||||
|
||||
@@ -65,35 +65,6 @@ void set_taus_seed(unsigned int seed_init)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
void set_taus_seed(unsigned int seed_init)
|
||||
{
|
||||
|
||||
struct drand48_data buffer;
|
||||
unsigned long result = 0;
|
||||
s0 = (unsigned int)0x1e23d852;
|
||||
s1 = (unsigned int)0x81f38a1c;
|
||||
s2 = (unsigned int)0xfe1a133e;
|
||||
|
||||
return;
|
||||
|
||||
if (seed_init == 0) {
|
||||
s0 = (unsigned int)time(NULL);
|
||||
s1 = (unsigned int)time(NULL);
|
||||
s2 = (unsigned int)time(NULL);
|
||||
} else {
|
||||
// Use reentrant version of rand48 to ensure that no conflicts with other generators occur */
|
||||
srand48_r((long int)seed_init, &buffer);
|
||||
mrand48_r(&buffer, (long int *)&result);
|
||||
s0 = result;
|
||||
mrand48_r(&buffer, (long int *)&result);
|
||||
s1 = result;
|
||||
mrand48_r(&buffer, (long int *)&result);
|
||||
s2 = result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MAIN
|
||||
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user