Commit 02f1ec69 authored by Luis Ariza's avatar Luis Ariza

SSE Ziggurat version improved

parent fc657e21
...@@ -2896,7 +2896,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ...@@ -2896,7 +2896,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
int pbch_tx_ant=0; int pbch_tx_ant=0;
uint8_t pbch_phase; uint8_t pbch_phase;
uint16_t frame_tx; uint16_t frame_tx;
static uint8_t first_run = 1; static uint8_t first_run = 0;
uint8_t pbch_trials = 0; uint8_t pbch_trials = 0;
DevAssert(ue); DevAssert(ue);
...@@ -2985,8 +2985,8 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ...@@ -2985,8 +2985,8 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
//emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1]; //emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1];
#endif #endif
if (first_run) { if (first_run<=ue->Mod_id) {
first_run = 0; first_run++;
proc->frame_rx = (proc->frame_rx & 0xFFFFFC00) | (frame_tx & 0x000003FF); proc->frame_rx = (proc->frame_rx & 0xFFFFFC00) | (frame_tx & 0x000003FF);
proc->frame_tx = proc->frame_rx; proc->frame_tx = proc->frame_rx;
...@@ -5300,7 +5300,6 @@ else ...@@ -5300,7 +5300,6 @@ else
if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) { if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN);
ue_pdsch_procedures(ue, ue_pdsch_procedures(ue,
proc, proc,
eNB_id, eNB_id,
SI_PDSCH, SI_PDSCH,
...@@ -5410,6 +5409,7 @@ else ...@@ -5410,6 +5409,7 @@ else
if ( (subframe_rx == 0) && (ue->decode_MIB == 1)) if ( (subframe_rx == 0) && (ue->decode_MIB == 1))
{ {
//printf("[ue_pbch_procedures] subframe_rx %d ,ue->decode_MIB %d, UE %d\n",subframe_rx,ue->decode_MIB,ue->Mod_id);
ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag); ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag);
} }
......
...@@ -303,9 +303,9 @@ clock_t start=clock();*/ ...@@ -303,9 +303,9 @@ clock_t start=clock();*/
rx128_re = _mm_loadu_pd(&r_re[a][2*i]);//r_re[a][i],r_re[a][i+1] rx128_re = _mm_loadu_pd(&r_re[a][2*i]);//r_re[a][i],r_re[a][i+1]
rx128_im = _mm_loadu_pd(&r_im[a][2*i]);//r_im[a][i],r_im[a][i+1] rx128_im = _mm_loadu_pd(&r_im[a][2*i]);//r_im[a][i],r_im[a][i+1]
rx128_gain_lin = _mm_set1_pd(rx_gain_lin); rx128_gain_lin = _mm_set1_pd(rx_gain_lin);
//gauss_0_128_sqrt_NOW = _mm_set_pd(ziggurat(0.0,1.0),ziggurat(0.0,1.0)); gauss_0_128_sqrt_NOW = _mm_set_pd(ziggurat(0.0,1.0),ziggurat(0.0,1.0));
//gauss_1_128_sqrt_NOW = _mm_set_pd(ziggurat(0.0,1.0),ziggurat(0.0,1.0)); gauss_1_128_sqrt_NOW = _mm_set_pd(ziggurat(0.0,1.0),ziggurat(0.0,1.0));
boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW); //boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW);
gauss_0_128_sqrt_NOW = _mm_mul_pd(gauss_0_128_sqrt_NOW,_mm_set1_pd(sqrt_NOW)); gauss_0_128_sqrt_NOW = _mm_mul_pd(gauss_0_128_sqrt_NOW,_mm_set1_pd(sqrt_NOW));
gauss_1_128_sqrt_NOW = _mm_mul_pd(gauss_1_128_sqrt_NOW,_mm_set1_pd(sqrt_NOW)); gauss_1_128_sqrt_NOW = _mm_mul_pd(gauss_1_128_sqrt_NOW,_mm_set1_pd(sqrt_NOW));
// Amplify by receiver gain and apply 3rd order non-linearity // Amplify by receiver gain and apply 3rd order non-linearity
...@@ -435,7 +435,6 @@ clock_t start=clock();*/ ...@@ -435,7 +435,6 @@ clock_t start=clock();*/
//boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW); //boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW);
gauss_0_128_sqrt_NOW = ziggurat_SSE_float(); gauss_0_128_sqrt_NOW = ziggurat_SSE_float();
gauss_1_128_sqrt_NOW = ziggurat_SSE_float(); gauss_1_128_sqrt_NOW = ziggurat_SSE_float();
//stop_meas(&desc->ziggurat); //stop_meas(&desc->ziggurat);
gauss_0_128_sqrt_NOW = _mm_mul_ps(gauss_0_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW)); gauss_0_128_sqrt_NOW = _mm_mul_ps(gauss_0_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW));
gauss_1_128_sqrt_NOW = _mm_mul_ps(gauss_1_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW)); gauss_1_128_sqrt_NOW = _mm_mul_ps(gauss_1_128_sqrt_NOW,_mm_set1_ps(sqrt_NOW));
......
This diff is collapsed.
...@@ -2717,6 +2717,7 @@ int decode_BCCH_DLSCH_Message( ...@@ -2717,6 +2717,7 @@ int decode_BCCH_DLSCH_Message(
sizeof(SystemInformationBlockType1_t) ); sizeof(SystemInformationBlockType1_t) );
LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id );
decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp );
//printf("decode_BCCH_DLSCH_Message \n");
} }
} }
...@@ -2731,7 +2732,7 @@ int decode_BCCH_DLSCH_Message( ...@@ -2731,7 +2732,7 @@ int decode_BCCH_DLSCH_Message(
&bcch_message->message.choice.c1.choice.systemInformation, &bcch_message->message.choice.c1.choice.systemInformation,
sizeof(SystemInformation_t) ); sizeof(SystemInformation_t) );
LOG_D( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n",
ctxt_pP->module_id, ctxt_pP->module_id,
ctxt_pP->frame ); ctxt_pP->frame );
......
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