Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
canghaiwuhen
OpenXG-RAN
Commits
5461757f
Commit
5461757f
authored
Jun 14, 2018
by
lfarizav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Running C-RAN emulations
parent
e7b2b644
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
8 deletions
+28
-8
openair1/SIMULATION/RF/dac.c
openair1/SIMULATION/RF/dac.c
+2
-2
openair1/SIMULATION/RF/rf.c
openair1/SIMULATION/RF/rf.c
+3
-3
openair1/SIMULATION/TOOLS/abstraction.c
openair1/SIMULATION/TOOLS/abstraction.c
+2
-2
targets/SIMU/USER/channel_sim.c
targets/SIMU/USER/channel_sim.c
+21
-1
No files found.
openair1/SIMULATION/RF/dac.c
View file @
5461757f
...
...
@@ -384,7 +384,7 @@ float dac_fixed_gain_prach_SSE_float(float *s_re[2],
_mm_storeu_ps
(
&
s_re
[
aa
][
4
*
i
],
input_re128
);
_mm_storeu_ps
(
&
s_im
[
aa
][
4
*
i
],
input_im128
);
if
(
2
*
i
+
input_offset
==
12
*
2
*
ofdm_symbol_size
)
if
(
4
*
i
+
input_offset
==
12
*
2
*
ofdm_symbol_size
)
i
=
0
;
}
}
...
...
@@ -449,7 +449,7 @@ float dac_fixed_gain_prach_AVX_float(float *s_re[2],
_mm256_storeu_ps
(
&
s_re
[
aa
][
8
*
i
],
input_re256
);
_mm256_storeu_ps
(
&
s_im
[
aa
][
8
*
i
],
input_im256
);
if
(
2
*
i
+
input_offset
==
12
*
2
*
ofdm_symbol_size
)
if
(
8
*
i
+
input_offset
==
12
*
2
*
ofdm_symbol_size
)
i
=
0
;
}
}
...
...
openair1/SIMULATION/RF/rf.c
View file @
5461757f
...
...
@@ -432,9 +432,9 @@ clock_t start=clock();*/
//gauss_1_128_sqrt_NOW = _mm_set_ps(gaussdouble(0.0,1.0),gaussdouble(0.0,1.0),gaussdouble(0.0,1.0),gaussdouble(0.0,1.0));
//gauss_0_128_sqrt_NOW = _mm_set_ps(ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0));
//gauss_1_128_sqrt_NOW = _mm_set_ps(ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0),ziggurat(0.0,1.0));
//
boxmuller_SSE_float(&gauss_0_128_sqrt_NOW, &gauss_1_128_sqrt_NOW);
gauss_0_128_sqrt_NOW
=
ziggurat_SSE_float
();
gauss_1_128_sqrt_NOW
=
ziggurat_SSE_float
();
boxmuller_SSE_float
(
&
gauss_0_128_sqrt_NOW
,
&
gauss_1_128_sqrt_NOW
);
//
gauss_0_128_sqrt_NOW = ziggurat_SSE_float();
//
gauss_1_128_sqrt_NOW = ziggurat_SSE_float();
//stop_meas(&desc->ziggurat);
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
));
...
...
openair1/SIMULATION/TOOLS/abstraction.c
View file @
5461757f
...
...
@@ -232,7 +232,7 @@ int init_freq_channel_SSE_float(channel_desc_t *desc,uint16_t nb_rb,int16_t n_sa
//printf("f %d,l %d (cos,sin) (%e,%e):\n",4*f,l,cos_lut_f[(n_samples>>1)][l],sin_lut_f[(n_samples>>1)][l]);
}
for
(
f
=
1
;
f
<=
(
n_samples
>>
3
)
+
1
;
f
++
)
{
for
(
f
=
1
;
f
<=
(
n_samples
>>
3
);
f
++
)
{
//count++;
//freq=delta_f*(double)f*1e-6;// due to the fact that delays is in mus
for
(
l
=
0
;
l
<
(
int
)
desc
->
nb_taps
;
l
++
)
{
...
...
@@ -314,7 +314,7 @@ int init_freq_channel_AVX_float(channel_desc_t *desc,uint16_t nb_rb,int16_t n_sa
delay
=
desc
->
delays
[
l
];
else
delay
=
desc
->
delays
[
l
]
+
NB_SAMPLES_CHANNEL_OFFSET
/
desc
->
sampling_rate
;
sincos256_ps
(
_mm256_set_ps
(
twopi
*
(
4
*
f
)
*
delay
,
twopi
*
(
4
*
f
-
1
)
*
delay
,
twopi
*
(
4
*
f
-
2
)
*
delay
,
twopi
*
(
4
*
f
-
3
)
*
delay
,
twopi
*
(
4
*
f
-
4
)
*
delay
,
twopi
*
(
4
*
f
-
5
)
*
delay
,
twopi
*
(
4
*
f
-
6
)
*
delay
,
twopi
*
(
4
*
f
-
7
)
*
delay
),
&
sin_lut256
,
&
cos_lut256
);
sincos256_ps
(
_mm256_set_ps
(
twopi
*
(
8
*
f
)
*
delay
,
twopi
*
(
8
*
f
-
1
)
*
delay
,
twopi
*
(
8
*
f
-
2
)
*
delay
,
twopi
*
(
8
*
f
-
3
)
*
delay
,
twopi
*
(
8
*
f
-
4
)
*
delay
,
twopi
*
(
8
*
f
-
5
)
*
delay
,
twopi
*
(
8
*
f
-
6
)
*
delay
,
twopi
*
(
8
*
f
-
7
)
*
delay
),
&
sin_lut256
,
&
cos_lut256
);
//cos_lut256=_mm256_set_ps(cos(twopi*(4*f)*delay),cos(twopi*(4*f-1)*delay),cos(twopi*(4*f-2)*delay),cos(twopi*(4*f-3)*delay),cos(twopi*(4*f-4)*delay),cos(twopi*(4*f-5)*delay),cos(twopi*(4*f-6)*delay),cos(twopi*(4*f-7)*delay));
//sin_lut256=_mm256_set_ps(sin(twopi*(4*f)*delay),sin(twopi*(4*f-1)*delay),sin(twopi*(4*f-2)*delay),sin(twopi*(4*f-3)*delay),sin(twopi*(4*f-4)*delay),sin(twopi*(4*f-5)*delay),sin(twopi*(4*f-6)*delay),sin(twopi*(4*f-7)*delay));
_mm256_storeu_ps
(
&
cos_lut_f
[
l
][
8
*
f
-
7
+
(
n_samples
>>
1
)],
cos_lut256
);
...
...
targets/SIMU/USER/channel_sim.c
View file @
5461757f
...
...
@@ -1520,14 +1520,34 @@ void do_UL_sig_freq_prach(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB
if
(
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
first_run
==
1
)
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
first_run
=
0
;
__m256
r_re0_f_prach_256
,
r_im0_f_prach_256
,
r_re_UL_f_prach_256
,
r_im_UL_f_prach_256
;
pthread_mutex_lock
(
&
UE_output_mutex
[
eNB_id
]);
#ifdef SSE_float
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
for
(
i
=
0
;
i
<
(
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
)
>>
3
;
i
++
)
{
//r_re_UL_f_prach[eNB_id][aa][i]+=r_re0_f_prach[aa][i];
//r_im_UL_f_prach[eNB_id][aa][i]+=r_im0_f_prach[aa][i];
r_re0_f_prach_256
=
_mm256_loadu_ps
(
&
r_re0_f_prach
[
aa
][
8
*
i
]);
r_im0_f_prach_256
=
_mm256_loadu_ps
(
&
r_im0_f_prach
[
aa
][
8
*
i
]);
r_re_UL_f_prach_256
=
_mm256_loadu_ps
(
&
r_re_UL_f_prach
[
eNB_id
][
aa
][
8
*
i
]);
r_im_UL_f_prach_256
=
_mm256_loadu_ps
(
&
r_im_UL_f_prach
[
eNB_id
][
aa
][
8
*
i
]);
r_re_UL_f_prach_256
=
_mm256_add_ps
(
r_re_UL_f_prach_256
,
r_re0_f_prach_256
);
r_im_UL_f_prach_256
=
_mm256_add_ps
(
r_im_UL_f_prach_256
,
r_im0_f_prach_256
);
_mm256_storeu_ps
(
&
r_re_UL_f_prach
[
eNB_id
][
aa
][
8
*
i
],
r_re_UL_f_prach_256
);
_mm256_storeu_ps
(
&
r_im_UL_f_prach
[
eNB_id
][
aa
][
8
*
i
],
r_im_UL_f_prach_256
);
}
}
#else
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
for
(
i
=
0
;
i
<
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
;
i
++
)
{
r_re_UL_f_prach
[
eNB_id
][
aa
][
i
]
+=
r_re0_f_prach
[
aa
][
i
];
r_im_UL_f_prach
[
eNB_id
][
aa
][
i
]
+=
r_im0_f_prach
[
aa
][
i
];
}
}
#endif
pthread_mutex_unlock
(
&
UE_output_mutex
[
eNB_id
]);
}
}
//UE_id
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment