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
spbro
OpenXG-RAN
Commits
3dbd5964
Commit
3dbd5964
authored
Sep 27, 2018
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
after testing
parent
dd4f1ab7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
26 deletions
+34
-26
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+0
-3
openair1/SIMULATION/LTE_PHY/ulsim.c
openair1/SIMULATION/LTE_PHY/ulsim.c
+33
-22
No files found.
cmake_targets/CMakeLists.txt
View file @
3dbd5964
...
@@ -185,7 +185,7 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CU
...
@@ -185,7 +185,7 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CU
# these changes are related to hardcoded path to include .h files
# these changes are related to hardcoded path to include .h files
add_definitions
(
-DCMAKER
)
add_definitions
(
-DCMAKER
)
set
(
CMAKE_C_FLAGS_DEBUG
"
${
CMAKE_C_FLAGS
}
-g -DMALLOC_CHECK_=3"
)
set
(
CMAKE_C_FLAGS_DEBUG
"
${
CMAKE_C_FLAGS
}
-g -DMALLOC_CHECK_=3"
)
set
(
CMAKE_C_FLAGS_RELWITHDEBINFO
"
${
CMAKE_C_FLAGS
}
-g -DMALLOC_CHECK_=3 -O
0
"
)
set
(
CMAKE_C_FLAGS_RELWITHDEBINFO
"
${
CMAKE_C_FLAGS
}
-g -DMALLOC_CHECK_=3 -O
2
"
)
set
(
GIT_BRANCH
"UNKNOWN"
)
set
(
GIT_BRANCH
"UNKNOWN"
)
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
3dbd5964
...
@@ -2084,7 +2084,4 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
...
@@ -2084,7 +2084,4 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
,
0
);
stop_meas
(
&
eNB
->
phy_proc_rx
);
}
}
openair1/SIMULATION/LTE_PHY/ulsim.c
View file @
3dbd5964
...
@@ -353,8 +353,16 @@ void printDistribution(time_stats_t *ptr, varArray_t *sortedList, char *txt) {
...
@@ -353,8 +353,16 @@ void printDistribution(time_stats_t *ptr, varArray_t *sortedList, char *txt) {
txt
,
txt
,
(
double
)
ptr
->
diff
/
ptr
->
trials
*
timeBase
,
(
double
)
ptr
->
diff
/
ptr
->
trials
*
timeBase
,
ptr
->
trials
);
ptr
->
trials
);
printf
(
"|__ Statistics std: %.2f us median %.2fus q1 %.2fus q3 %.2fus
\n
"
,
printf
(
"|__ Statistics std=%.2f, median=%.2f, q1=%.2f, q3=%.2f µs (on %ld trials)
\n
"
,
squareRoot
(
ptr
),
median
(
sortedList
),
q1
(
sortedList
),
q3
(
sortedList
));
squareRoot
(
ptr
),
median
(
sortedList
),
q1
(
sortedList
),
q3
(
sortedList
),
sortedList
->
size
);
}
void
logDistribution
(
FILE
*
fd
,
time_stats_t
*
ptr
,
varArray_t
*
sortedList
,
int
dropped
)
{
fprintf
(
fd
,
"%f;%f;%f;%f;%f;%f;%d;"
,
squareRoot
(
ptr
),
(
double
)
ptr
->
max
,
*
(
double
*
)
dataArray
(
sortedList
),
median
(
sortedList
),
q1
(
sortedList
),
q3
(
sortedList
),
dropped
);
}
}
enum
eTypes
{
eBool
,
eInt
,
eFloat
,
eText
};
enum
eTypes
{
eBool
,
eInt
,
eFloat
,
eText
};
...
@@ -1018,6 +1026,7 @@ int main(int argc, char **argv) {
...
@@ -1018,6 +1026,7 @@ int main(int argc, char **argv) {
reset_meas
(
&
eNB
->
ulsch_deinterleaving_stats
);
reset_meas
(
&
eNB
->
ulsch_deinterleaving_stats
);
reset_meas
(
&
eNB
->
ulsch_demultiplexing_stats
);
reset_meas
(
&
eNB
->
ulsch_demultiplexing_stats
);
reset_meas
(
&
eNB
->
ulsch_rate_unmatching_stats
);
reset_meas
(
&
eNB
->
ulsch_rate_unmatching_stats
);
reset_meas
(
&
eNB
->
ulsch_demodulation_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_init_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_init_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_alpha_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_alpha_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_beta_stats
);
reset_meas
(
&
eNB
->
ulsch_tc_beta_stats
);
...
@@ -1244,11 +1253,13 @@ int main(int argc, char **argv) {
...
@@ -1244,11 +1253,13 @@ int main(int argc, char **argv) {
if
(
eNB
->
frame_parms
.
nb_antennas_rx
>
1
)
LOG_M
(
"rxsig1UL.m"
,
"rxs1"
,
&
ru
->
common
.
rxdata
[
1
][
eNB
->
frame_parms
.
samples_per_tti
*
subframe
],
eNB
->
frame_parms
.
samples_per_tti
,
1
,
1
);
if
(
eNB
->
frame_parms
.
nb_antennas_rx
>
1
)
LOG_M
(
"rxsig1UL.m"
,
"rxs1"
,
&
ru
->
common
.
rxdata
[
1
][
eNB
->
frame_parms
.
samples_per_tti
*
subframe
],
eNB
->
frame_parms
.
samples_per_tti
,
1
,
1
);
}
}
start_meas
(
&
eNB
->
phy_proc_rx
);
ru
->
feprx
=
(
parallel_flag
==
1
)
?
ru_fep_full_2thread
:
fep_full
;
ru
->
feprx
=
(
parallel_flag
==
1
)
?
ru_fep_full_2thread
:
fep_full
;
eNB
->
td
=
(
parallel_flag
==
1
)
?
ulsch_decoding_data_2thread
:
ulsch_decoding_data
;
eNB
->
td
=
(
parallel_flag
==
1
)
?
ulsch_decoding_data_2thread
:
ulsch_decoding_data
;
ru
->
feprx
(
ru
);
ru
->
feprx
(
ru
);
phy_procedures_eNB_uespec_RX
(
eNB
,
proc_rxtx
);
phy_procedures_eNB_uespec_RX
(
eNB
,
proc_rxtx
);
stop_meas
(
&
eNB
->
phy_proc_rx
);
if
(
cqi_flag
>
0
)
{
if
(
cqi_flag
>
0
)
{
cqi_error
=
0
;
cqi_error
=
0
;
...
@@ -1375,14 +1386,6 @@ int main(int argc, char **argv) {
...
@@ -1375,14 +1386,6 @@ int main(int argc, char **argv) {
LOG_UDUMPMSG
(
SIM
,
dataArray
(
table_rx
),
table_rx
->
size
,
LOG_DUMP_DOUBLE
,
"The receiver raw data:
\n
"
);
LOG_UDUMPMSG
(
SIM
,
dataArray
(
table_rx
),
table_rx
->
size
,
LOG_DUMP_DOUBLE
,
"The receiver raw data:
\n
"
);
}
}
double
std_phy_proc_tx
=
squareRoot
(
&
UE
->
phy_proc_tx
);
double
std_phy_proc_tx_ifft
=
squareRoot
(
&
UE
->
ofdm_mod_stats
);
double
std_phy_proc_tx_mod
=
squareRoot
(
&
UE
->
ulsch_modulation_stats
);
double
std_phy_proc_tx_enc
=
squareRoot
(
&
UE
->
ulsch_encoding_stats
);
double
std_phy_proc_rx
=
squareRoot
(
&
eNB
->
phy_proc_rx
);
double
std_phy_proc_rx_fft
=
squareRoot
(
&
ru
->
ofdm_demod_stats
);
double
std_phy_proc_rx_demod
=
squareRoot
(
&
eNB
->
ulsch_demodulation_stats
);
double
std_phy_proc_rx_dec
=
squareRoot
(
&
eNB
->
ulsch_decoding_stats
);
printf
(
"
\n
**********rb: %d ***mcs : %d *********SNR = %f dB (%f): TX %d dB (gain %f dB), N0W %f dB, I0 %d dB, delta_IF %d [ (%d,%d) dB / (%d,%d) dB ]**************************
\n
"
,
printf
(
"
\n
**********rb: %d ***mcs : %d *********SNR = %f dB (%f): TX %d dB (gain %f dB), N0W %f dB, I0 %d dB, delta_IF %d [ (%d,%d) dB / (%d,%d) dB ]**************************
\n
"
,
nb_rb
,
mcs
,
SNR
,
SNR2
,
nb_rb
,
mcs
,
SNR
,
SNR2
,
tx_lev_dB
,
tx_lev_dB
,
...
@@ -1453,7 +1456,7 @@ int main(int argc, char **argv) {
...
@@ -1453,7 +1456,7 @@ int main(int argc, char **argv) {
printStatIndent
(
&
UE
->
ulsch_rate_matching_stats
,
"ULSCH rate-matching time"
);
printStatIndent
(
&
UE
->
ulsch_rate_matching_stats
,
"ULSCH rate-matching time"
);
printStatIndent
(
&
UE
->
ulsch_interleaving_stats
,
"ULSCH sub-block interleaving"
);
printStatIndent
(
&
UE
->
ulsch_interleaving_stats
,
"ULSCH sub-block interleaving"
);
printStatIndent
(
&
UE
->
ulsch_multiplexing_stats
,
"ULSCH multiplexing time"
);
printStatIndent
(
&
UE
->
ulsch_multiplexing_stats
,
"ULSCH multiplexing time"
);
printDistribution
(
&
eNB
->
phy_proc_rx
,
table_rx
,
"
Total PHY proc rx
"
);
printDistribution
(
&
eNB
->
phy_proc_rx
,
table_rx
,
"
\n
Total PHY proc rx subframe
"
);
printDistribution
(
&
ru
->
ofdm_demod_stats
,
table_rx_fft
,
"OFDM_demod time"
);
printDistribution
(
&
ru
->
ofdm_demod_stats
,
table_rx_fft
,
"OFDM_demod time"
);
printDistribution
(
&
eNB
->
ulsch_demodulation_stats
,
table_rx_demod
,
"ULSCH demodulation time"
);
printDistribution
(
&
eNB
->
ulsch_demodulation_stats
,
table_rx_demod
,
"ULSCH demodulation time"
);
printf
(
"ULSCH Decoding time (%.2f Mbit/s, avg iter %.2f) :%.2f us (%d trials, max %.2f)
\n
"
,
printf
(
"ULSCH Decoding time (%.2f Mbit/s, avg iter %.2f) :%.2f us (%d trials, max %.2f)
\n
"
,
...
@@ -1461,8 +1464,8 @@ int main(int argc, char **argv) {
...
@@ -1461,8 +1464,8 @@ int main(int argc, char **argv) {
(
double
)
eNB
->
ulsch_decoding_stats
.
diff
/
eNB
->
ulsch_decoding_stats
.
trials
*
timeBase
,
(
double
)
eNB
->
ulsch_decoding_stats
.
diff
/
eNB
->
ulsch_decoding_stats
.
trials
*
timeBase
,
eNB
->
ulsch_decoding_stats
.
trials
,
eNB
->
ulsch_decoding_stats
.
trials
,
(
double
)
eNB
->
ulsch_decoding_stats
.
max
*
timeBase
);
(
double
)
eNB
->
ulsch_decoding_stats
.
max
*
timeBase
);
printf
(
"|__ Statistcs std: %.2fus median %.2fus q1 %.2fus q3 %.2fus
\n
"
,
printf
(
"|__ Statist
i
cs std: %.2fus median %.2fus q1 %.2fus q3 %.2fus
\n
"
,
s
td_phy_proc_rx_dec
,
s
quareRoot
(
&
eNB
->
ulsch_decoding_stats
)
,
median
(
table_rx_dec
),
q1
(
table_rx_dec
),
q3
(
table_rx_dec
));
median
(
table_rx_dec
),
q1
(
table_rx_dec
),
q3
(
table_rx_dec
));
printStatIndent
(
&
eNB
->
ulsch_deinterleaving_stats
,
"sub-block interleaving"
);
printStatIndent
(
&
eNB
->
ulsch_deinterleaving_stats
,
"sub-block interleaving"
);
printStatIndent
(
&
eNB
->
ulsch_demultiplexing_stats
,
"sub-block demultiplexing"
);
printStatIndent
(
&
eNB
->
ulsch_demultiplexing_stats
,
"sub-block demultiplexing"
);
...
@@ -1559,27 +1562,35 @@ int main(int argc, char **argv) {
...
@@ -1559,27 +1562,35 @@ int main(int argc, char **argv) {
get_time_meas_us
(
&
eNB
->
ulsch_decoding_stats
)
get_time_meas_us
(
&
eNB
->
ulsch_decoding_stats
)
);
);
//fprintf(time_meas_fd,"UE_PROC_TX_STD;UE_PROC_TX_MAX;UE_PROC_TX_MIN;UE_PROC_TX_MED;UE_PROC_TX_Q1;UE_PROC_TX_Q3;UE_PROC_TX_DROPPED;\n");
//fprintf(time_meas_fd,"UE_PROC_TX_STD;UE_PROC_TX_MAX;UE_PROC_TX_MIN;UE_PROC_TX_MED;UE_PROC_TX_Q1;UE_PROC_TX_Q3;UE_PROC_TX_DROPPED;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;%f;%f;%d;"
,
std_phy_proc_tx
,
t_tx_max
,
t_tx_min
,
median
(
table_tx
),
q1
(
table_tx
),
q3
(
table_tx
),
n_tx_dropped
);
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;%f;%f;%d;"
,
squareRoot
(
&
UE
->
phy_proc_tx
),
t_tx_max
,
t_tx_min
,
median
(
table_tx
),
q1
(
table_tx
),
q3
(
table_tx
),
n_tx_dropped
);
//fprintf(time_meas_fd,"IFFT;\n");
//fprintf(time_meas_fd,"IFFT;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
std_phy_proc_tx_ifft
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
squareRoot
(
&
UE
->
ofdm_mod_stats
),
median
(
table_tx_ifft
),
q1
(
table_tx_ifft
),
q3
(
table_tx_ifft
));
median
(
table_tx_ifft
),
q1
(
table_tx_ifft
),
q3
(
table_tx_ifft
));
//fprintf(time_meas_fd,"MOD;\n");
//fprintf(time_meas_fd,"MOD;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
std_phy_proc_tx_mod
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
squareRoot
(
&
UE
->
ulsch_modulation_stats
),
median
(
table_tx_mod
),
q1
(
table_tx_mod
),
q3
(
table_tx_mod
));
median
(
table_tx_mod
),
q1
(
table_tx_mod
),
q3
(
table_tx_mod
));
//fprintf(time_meas_fd,"ENC;\n");
//fprintf(time_meas_fd,"ENC;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
std_phy_proc_tx_enc
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
squareRoot
(
&
UE
->
ulsch_encoding_stats
),
median
(
table_tx_enc
),
q1
(
table_tx_enc
),
q3
(
table_tx_enc
));
median
(
table_tx_enc
),
q1
(
table_tx_enc
),
q3
(
table_tx_enc
));
//fprintf(time_meas_fd,"eNB_PROC_RX_STD;eNB_PROC_RX_MAX;eNB_PROC_RX_MIN;eNB_PROC_RX_MED;eNB_PROC_RX_Q1;eNB_PROC_RX_Q3;eNB_PROC_RX_DROPPED;\n");
//fprintf(time_meas_fd,"eNB_PROC_RX_STD;eNB_PROC_RX_MAX;eNB_PROC_RX_MIN;eNB_PROC_RX_MED;eNB_PROC_RX_Q1;eNB_PROC_RX_Q3;eNB_PROC_RX_DROPPED;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;%f;%f;%d;"
,
std_phy_proc_rx
,
t_rx_max
,
t_rx_min
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;%f;%f;%d;"
,
squareRoot
(
&
eNB
->
phy_proc_rx
),
t_rx_max
,
t_rx_min
,
median
(
table_rx
),
q1
(
table_rx
),
q3
(
table_rx
),
n_rx_dropped
);
median
(
table_rx
),
q1
(
table_rx
),
q3
(
table_rx
),
n_rx_dropped
);
//fprintf(time_meas_fd,"FFT;\n");
//fprintf(time_meas_fd,"FFT;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
std_phy_proc_rx_fft
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
squareRoot
(
&
ru
->
ofdm_demod_stats
),
median
(
table_rx_fft
),
q1
(
table_rx_fft
),
q3
(
table_rx_fft
));
median
(
table_rx_fft
),
q1
(
table_rx_fft
),
q3
(
table_rx_fft
));
//fprintf(time_meas_fd,"DEMOD;\n");
//fprintf(time_meas_fd,"DEMOD;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
std_phy_proc_rx_demod
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f;"
,
squareRoot
(
&
eNB
->
ulsch_demodulation_stats
),
median
(
table_rx_demod
),
q1
(
table_rx_demod
),
q3
(
table_rx_demod
));
median
(
table_rx_demod
),
q1
(
table_rx_demod
),
q3
(
table_rx_demod
));
//fprintf(time_meas_fd,"DEC;\n");
//fprintf(time_meas_fd,"DEC;\n");
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f
\n
"
,
std_phy_proc_rx_dec
,
fprintf
(
time_meas_fd
,
"%f;%f;%f;%f
\n
"
,
squareRoot
(
&
eNB
->
ulsch_decoding_stats
),
median
(
table_rx_dec
),
q1
(
table_rx_dec
),
q3
(
table_rx_dec
));
median
(
table_rx_dec
),
q1
(
table_rx_dec
),
q3
(
table_rx_dec
));
printf
(
"[passed] effective rate : %f (%2.1f%%,%f)): log and break
\n
"
,
rate
*
effective_rate
,
100
*
effective_rate
,
rate
);
printf
(
"[passed] effective rate : %f (%2.1f%%,%f)): log and break
\n
"
,
rate
*
effective_rate
,
100
*
effective_rate
,
rate
);
break
;
break
;
...
...
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