Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
4df26768
Commit
4df26768
authored
Feb 15, 2019
by
HOAI SON DANG
Browse files
Format astyle for modified file
parent
beb30f1e
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
ci-scripts/astyle-options.txt
100644 → 100755
View file @
4df26768
File mode changed from 100644 to 100755
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
View file @
4df26768
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.c
View file @
4df26768
...
...
@@ -66,7 +66,7 @@
/*************** LOCAL VARIABLES***********************************/
static
nfapi_config_request_t
config_t
;
static
nfapi_config_request_t
*
config
=&
config_t
;
static
nfapi_config_request_t
*
config
=&
config_t
;
/*************** FUNCTIONS ****************************************/
...
...
@@ -86,8 +86,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_eNB, uint8_t abstract
*
*********************************************************************/
void
phase_shift_samples
(
int16_t
*
samples
,
int
length
,
int16_t
phase_shift_re
,
int16_t
phase_shift_im
)
{
void
phase_shift_samples
(
int16_t
*
samples
,
int
length
,
int16_t
phase_shift_re
,
int16_t
phase_shift_im
)
{
int16_t
sample_re
,
sample_im
;
for
(
int
i
=
0
;
i
<
length
;
i
++
)
{
...
...
@@ -112,22 +111,23 @@ void phase_shift_samples(int16_t *samples, int length, int16_t phase_shift_re, i
*
*********************************************************************/
void
display_data
(
int
pss_sequence_number
,
int16_t
*
rxdata
,
int
position
)
{
void
display_data
(
int
pss_sequence_number
,
int16_t
*
rxdata
,
int
position
)
{
#ifdef DEBUG_TEST_PSS
int16_t
*
pss_sequence
[
NUMBER_PSS_SEQUENCE
]
=
{
primary_synch0_time
,
primary_synch1_time
,
primary_synch2_time
};
int16_t
*
pss_sequence_time
=
pss_sequence
[
pss_sequence_number
];
printf
(
" pss %6d data
\n
"
,
pss_sequence_number
);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
{
if
(
pss_sequence_number
<
NUMBER_PSS_SEQUENCE
)
{
printf
(
"[i %6d] : %4d [i %6d] : %8i at address : %p
\n
"
,
i
,
pss_sequence_time
[
2
*
i
],
(
i
+
position
),
rxdata
[
2
*
i
+
(
position
*
2
)],
&
(
rxdata
[
2
*
i
+
(
position
*
2
)]));
printf
(
"[q %6d] : %4d [q %6d] : %8i at address : %p
\n
"
,
i
,
pss_sequence_time
[
2
*
i
+
1
],
(
i
+
position
),
rxdata
[
2
*
i
+
1
+
(
position
*
2
)],
&
(
rxdata
[
2
*
i
+
1
+
(
position
*
2
)]));
}
else
{
}
else
{
printf
(
"[i %6d] : Undef [i %6d] : %8i at address : %p
\n
"
,
i
,
(
i
+
position
),
rxdata
[
2
*
i
+
(
position
*
2
)],
&
(
rxdata
[
2
*
i
+
(
position
*
2
)]));
printf
(
"[q %6d] : Undef [q %6d] : %8i at address : %p
\n
"
,
i
,
(
i
+
position
),
rxdata
[
2
*
i
+
1
+
(
position
*
2
)],
&
(
rxdata
[
2
*
i
+
1
+
(
position
*
2
)]));
}
}
nr_init_frame_parms
}
nr_init_frame_parms
printf
(
" ... ...
\n
"
);
#else
(
void
)
pss_sequence_number
;
...
...
@@ -149,11 +149,9 @@ void display_data(int pss_sequence_number, int16_t *rxdata, int position)
*
*********************************************************************/
void
display_test_configuration_pss
(
int
position
,
int
pss_sequence_number
)
{
void
display_test_configuration_pss
(
int
position
,
int
pss_sequence_number
)
{
const
char
next_test_text
[]
=
"------------------------------------------------
\n
"
;
const
char
test_text_pss
[]
=
"Test nr pss with Nid2 %i at position %i
\n
"
;
printf
(
next_test_text
);
printf
(
test_text_pss
,
pss_sequence_number
,
position
);
}
...
...
@@ -171,8 +169,7 @@ void display_test_configuration_pss(int position, int pss_sequence_number)
*
*********************************************************************/
void
display_test_configuration_sss
(
int
sss_sequence_number
)
{
void
display_test_configuration_sss
(
int
sss_sequence_number
)
{
const
char
test_text_sss
[]
=
"Test nr sss with Nid1 %i
\n
"
;
printf
(
test_text_sss
,
sss_sequence_number
);
}
...
...
@@ -191,8 +188,7 @@ void display_test_configuration_sss(int sss_sequence_number)
*
*********************************************************************/
void
undefined_function
(
const
char
*
function
)
{
void
undefined_function
(
const
char
*
function
)
{
printf
(
"%s undefined
\n
"
,
function
);
printf
(
"Warning: function
\"
%s
\"
has been replaced by an empty function for avoiding undefined function error at build
\n
"
,
function
);
}
...
...
@@ -210,34 +206,22 @@ void undefined_function(const char *function)
*********************************************************************/
int
init_test
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
unsigned
char
extended_prefix_flag
,
uint8_t
frame_type
,
uint16_t
Nid_cell
,
uint8_t
N_RB_DL
)
{
unsigned
char
extended_prefix_flag
,
uint8_t
frame_type
,
uint16_t
Nid_cell
,
uint8_t
N_RB_DL
)
{
(
void
)
transmission_mode
;
NR_DL_FRAME_PARMS
*
frame_parms
;
int
log_level
=
OAILOG_TRACE
;
logInit
();
// enable these lines if you need debug info
//set_comp_log(PHY,LOG_DEBUG,LOG_HIGH,1);
set_glog
(
log_level
);
#ifndef NR_UNIT_TEST
cpuf
=
get_cpu_freq_GHz
();
//LOG_I(PHY, "[CONFIG] Test of UE synchronisation \n");
set_component_filelog
(
USIM
);
// file located in /tmp/testSynchroue.txt
#endif
//randominit(0);
//set_taus_seed(0);
printf
(
"Start lte_param_init, frame_type %d, extended_prefix %d
\n
"
,
frame_type
,
extended_prefix_flag
);
PHY_vars_UE
=
malloc
(
sizeof
(
PHY_VARS_NR_UE
));
bzero
(
PHY_vars_UE
,
sizeof
(
PHY_VARS_NR_UE
));
...
...
@@ -245,7 +229,6 @@ int init_test(unsigned char N_tx, unsigned char N_rx, unsigned char transmission
return
(
-
1
);
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
frame_parms
->
N_RB_DL
=
N_RB_DL
;
//50 for 10MHz and 25 for 5 MHz
frame_parms
->
N_RB_UL
=
N_RB_DL
;
frame_parms
->
Ncp
=
extended_prefix_flag
;
...
...
@@ -257,41 +240,35 @@ int init_test(unsigned char N_tx, unsigned char N_rx, unsigned char transmission
frame_parms
->
nb_antenna_ports_eNB
=
1
;
frame_parms
->
threequarter_fs
=
0
;
frame_parms
->
numerology_index
=
NUMEROLOGY_INDEX_MAX_NR
;
int
mu
=
1
;
int
n_ssb_crb
=
0
;
int
ssb_subcarrier_offset
=
0
;
nr_init_frame_parms_ue
(
frame_parms
,
mu
,
extended_prefix_flag
,
N_RB_DL
,
n_ssb_crb
,
ssb_subcarrier_offset
);
PHY_vars_UE
->
frame_parms
.
Nid_cell
=
(
3
*
N_ID_1_NUMBER
)
+
N_ID_2_NUMBER
;
/* set to unvalid value */
//phy_init_nr_top(frame_parms);
if
(
init_nr_ue_signal
(
PHY_vars_UE
,
1
,
0
)
!=
0
)
{
if
(
init_nr_ue_signal
(
PHY_vars_UE
,
1
,
0
)
!=
0
)
{
LOG_E
(
PHY
,
"Error at UE NR initialisation : at line %d in function %s of file %s
\n
"
,
LINE_FILE
,
__func__
,
FILE_NAME
);
return
(
0
);
}
/* dummy initialisation of global structure PHY_vars_UE_g */
/* dummy initialisation of global structure PHY_vars_UE_g */
unsigned
char
NB_UE_INST
=
1
;
PHY_vars_UE_g
=
(
PHY_VARS_NR_UE
***
)
calloc
(
NB_UE_INST
,
sizeof
(
PHY_VARS_NR_UE
**
));
for
(
int
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
{
PHY_vars_UE_g
[
UE_id
]
=
(
PHY_VARS_NR_UE
**
)
calloc
(
MAX_NUM_CCs
,
sizeof
(
PHY_VARS_NR_UE
*
));
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
//(frame_parms[CC_id])->nb_antennas_tx = 1;
//(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx_ue;
// PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag);
PHY_vars_UE_g
[
UE_id
][
CC_id
]
=
calloc
(
1
,
sizeof
(
PHY_VARS_NR_UE
));
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
Mod_id
=
UE_id
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
CC_id
=
CC_id
;
}
}
PHY_vars_UE_g
=
(
PHY_VARS_NR_UE
**
*
)
calloc
(
NB_UE_INST
,
sizeof
(
PHY_VARS_NR_UE
**
));
for
(
int
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
{
PHY_vars_UE_g
[
UE_id
]
=
(
PHY_VARS_NR_UE
**
)
calloc
(
MAX_NUM_CCs
,
sizeof
(
PHY_VARS_NR_UE
*
));
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
//(frame_parms[CC_id])->nb_antennas_tx = 1;
//(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx_ue;
// PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag);
PHY_vars_UE_g
[
UE_id
][
CC_id
]
=
calloc
(
1
,
sizeof
(
PHY_VARS_NR_UE
));
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
Mod_id
=
UE_id
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
CC_id
=
CC_id
;
}
}
return
(
0
);
}
...
...
@@ -321,73 +298,66 @@ typedef enum {
#define FREQUENCY_15_MHZ (15360000L)
#define FREQUENCY (FREQUENCY_15_MHZ)
/* to generate a frequency with a sampling of 30,72 MHz 5 gives 770 KHz, 20 gives 1,5 MHz, 40 gives 3 MHz */
void
set_random_rx_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
amp
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
int
samples_for_frame
=
(
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
*
frame_parms
->
samples_per_tti
);
int16_t
random
;
int16_t
*
data_p
;
random_data_format_t
data_format
=
SINUSOIDAL_DATA
;
void
set_random_rx_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
amp
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
int
samples_for_frame
=
(
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
*
frame_parms
->
samples_per_tti
);
int16_t
random
;
int16_t
*
data_p
;
random_data_format_t
data_format
=
SINUSOIDAL_DATA
;
/* reinitialise random for always getting same data */
srand
(
0
);
double
n
=
0
;
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
data_p
=
(
int16_t
*
)
&
(
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
][
0
]);
int
frequency_switch
=
samples_for_frame
/
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
;
int
frequency_step
=
0
;
double
beat
=
(
2
*
M_PI
*
FREQUENCY_15_MHZ
)
/
(
SAMPLING_RATE
);
for
(
int
i
=
0
;
i
<
samples_for_frame
;
i
++
)
{
switch
(
data_format
)
{
case
ZERO_DATA
:
{
case
ZERO_DATA
:
{
/* all data are forced to zero */
random
=
0
;
break
;
}
case
SINUSOIDAL_DATA
:
{
case
SINUSOIDAL_DATA
:
{
/* sinusoidal signal */
n
=
cos
(
beat
*
i
);
random
=
n
*
(
amp
*
SCALING_SINUSOIDAL_DATA
);
frequency_step
++
;
if
(
frequency_step
==
frequency_switch
)
{
beat
=
beat
/
2
;
/* frequency is divided by 2 */
//printf("frequency %f at %d\n", (beat/2*M_PI), i);
frequency_step
=
0
;
frequency_step
=
0
;
}
//printf("%d : cos %d %d \n", i, n, random);
break
;
}
case
RANDOM_DATA
:
{
case
RANDOM_DATA
:
{
/* random data can take any value between -SHRT_MAX and SHRT_MAX */
/* in this case one can use maxim value for uint16 because there is no saturation */
#define SCALING_RANDOM_DATA (24)
/* 48 is max value without decimation */
#define RANDOM_MAX_AMP (amp * SCALING_RANDOM_DATA)
#define SCALING_RANDOM_DATA (24)
/* 48 is max value without decimation */
#define RANDOM_MAX_AMP (amp * SCALING_RANDOM_DATA)
random
=
((
rand
()
%
RANDOM_MAX_AMP
)
-
RANDOM_MAX_AMP
/
2
);
break
;
}
case
RANDOM_MAX_DATA
:
{
case
RANDOM_MAX_DATA
:
{
/* random data can take only two value (-RANDOM_MAX) or RANDOM_MAX */
/* In this case saturation can occur with value of scaling_value greater than 23 */
#define SCALING_RANDOM_MAX_DATA (8)
#define RANDOM_VALUE (amp * SCALING_RANDOM_DATA)
#define SCALING_RANDOM_MAX_DATA (8)
#define RANDOM_VALUE (amp * SCALING_RANDOM_DATA)
const
int
random_number
[
2
]
=
{
-
1
,
+
1
};
random
=
random_number
[
rand
()
%
2
]
*
RANDOM_VALUE
;
break
;
}
default:
{
default:
{
printf
(
"Format of data is undefined
\n
"
);
assert
(
0
);
break
;
...
...
@@ -396,12 +366,13 @@ random_data_format_t data_format = SINUSOIDAL_DATA;
data_p
[
2
*
i
]
=
random
;
data_p
[
2
*
i
+
1
]
=
random
;
#if 0
if (i < 10) {
printf("random %d \n", random);
printf("random %d \n", random);
printf("data[%d] : %d %d at address %p \n", i, data_p[2*i], data_p[2*i+1], &data_p[2*i]);
}
#endif
}
}
...
...
@@ -421,23 +392,22 @@ random_data_format_t data_format = SINUSOIDAL_DATA;
*
*********************************************************************/
int
set_pss_in_rx_buffer_from_external_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
short
*
input_buffer
)
{
int
set_pss_in_rx_buffer_from_external_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
short
*
input_buffer
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
int
samples_for_frame
=
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME
*
frame_parms
->
samples_per_subframe
;
/* both i and q */
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
i
=
0
;
i
<
samples_for_frame
;
i
++
)
{
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
]
=
input_buffer
[
2
*
i
];
/* real part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]
=
input_buffer
[
2
*
i
+
1
];
/* imaginary part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
]
=
input_buffer
[
2
*
i
];
/* real part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]
=
input_buffer
[
2
*
i
+
1
];
/* imaginary part */
}
}
/* check that sequence has been properly copied */
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
i
=
0
;
i
<
samples_for_frame
;
i
++
)
{
if
((
input_buffer
[
2
*
i
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
])
||
(
input_buffer
[
2
*
i
+
1
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]))
{
if
((
input_buffer
[
2
*
i
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
])
||
(
input_buffer
[
2
*
i
+
1
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]))
{
printf
(
"Sequence pss was not properly copied into received buffer at index %d
\n
"
,
i
);
exit
(
-
1
);
}
...
...
@@ -469,15 +439,13 @@ int set_pss_in_rx_buffer_from_external_buffer(PHY_VARS_NR_UE *PHY_vars_UE, short
*
*********************************************************************/
int
set_pss_in_rx_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
position_symbol
,
int
pss_sequence_number
)
{
int
set_pss_in_rx_buffer
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
position_symbol
,
int
pss_sequence_number
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
int
samples_for_frame
=
frame_parms
->
samples_per_frame
;
int16_t
*
pss_sequence_time
;
if
((
position_symbol
>
samples_for_frame
)
||
((
position_symbol
+
frame_parms
->
ofdm_symbol_size
)
>
samples_for_frame
))
{
||
((
position_symbol
+
frame_parms
->
ofdm_symbol_size
)
>
samples_for_frame
))
{
printf
(
"This pss sequence can not be fully written in the received window
\n
"
);
return
(
-
1
);
}
...
...
@@ -489,18 +457,18 @@ int set_pss_in_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int p
pss_sequence_time
=
primary_synchro_time_nr
[
pss_sequence_number
];
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
i
=
0
;
i
<
frame_parms
->
ofdm_symbol_size
;
i
++
)
{
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
)]
=
pss_sequence_time
[
2
*
i
];
/* real part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
+
1
)]
=
pss_sequence_time
[
2
*
i
+
1
];
/* imaginary part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
)]
=
pss_sequence_time
[
2
*
i
];
/* real part */
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
+
1
)]
=
pss_sequence_time
[
2
*
i
+
1
];
/* imaginary part */
}
}
/* check that sequence has been properly copied */
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
aa
=
0
;
aa
<
PHY_vars_UE
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
for
(
int
i
=
0
;
i
<
(
frame_parms
->
ofdm_symbol_size
);
i
++
)
{
if
((
pss_sequence_time
[
2
*
i
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
)])
||
(
pss_sequence_time
[
2
*
i
+
1
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
+
1
)]))
{
if
((
pss_sequence_time
[
2
*
i
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
)])
||
(
pss_sequence_time
[
2
*
i
+
1
]
!=
((
int16_t
*
)
PHY_vars_UE
->
common_vars
.
rxdata
[
aa
])[(
position_symbol
*
2
)
+
(
2
*
i
+
1
)]))
{
printf
(
"Sequence pss was not properly copied into received buffer at index %d
\n
"
,
i
);
exit
(
-
1
);
}
...
...
@@ -528,11 +496,9 @@ int set_pss_in_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int p
*
*********************************************************************/
void
set_sequence_pss
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
position_symbol
,
int
pss_sequence_number
)
{
void
set_sequence_pss
(
PHY_VARS_NR_UE
*
PHY_vars_UE
,
int
position_symbol
,
int
pss_sequence_number
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
(
PHY_vars_UE
->
frame_parms
);
int
samples_for_frame
=
frame_parms
->
samples_per_frame
;
/* initialise received ue data with random */
set_random_rx_buffer
(
PHY_vars_UE
,
AMP
);
...
...
@@ -546,6 +512,7 @@ void set_sequence_pss(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_
printf
(
"This position for pss sequence %d is not supported because it exceeds the frame length %d!
\n
"
,
position_symbol
,
samples_for_frame
);
exit
(
0
);
}
if
(
set_pss_in_rx_buffer
(
PHY_vars_UE
,
position_symbol
,
pss_sequence_number
)
!=
0
)
printf
(
"Warning: pss sequence can not be properly written into received buffer !
\n
"
);
}
...
...
openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_generator_test.c
View file @
4df26768
...
...
@@ -17,38 +17,37 @@
#define TST_THREAD_ID (0)
int
test_pucch_generators
(
PHY_VARS_NR_UE
*
ue
)
{
int
test_pucch_generators
(
PHY_VARS_NR_UE
*
ue
)
{
int
gNB_id
=
TST_GNB_ID_0
;
int
thread_number
=
TST_THREAD_ID
;
int
TB_identifier
=
0
;
int
v_return
=
0
;
pucch_format_nr_t
format
=
pucch_format2_nr
;
uint8_t
starting_symbol_index
;
uint8_t
nb_symbols_total
=
4
;
uint16_t
starting_prb
=
0
;;
/* it can be considered as first hop on case of pucch hopping */
uint16_t
second_hop
=
0
;
/* second part for pucch for hopping */
uint8_t
nb_of_prbs
=
1
;
switch
(
format
){
case
pucch_format0_nr
:
nb_symbols_total
=
2
;
nb_of_prbs
=
1
;
starting_symbol_index
=
0
;
break
;
case
pucch_format1_nr
:
nb_symbols_total
=
5
;
nb_of_prbs
=
1
;
starting_symbol_index
=
0
;
break
;
case
pucch_format2_nr
:
nb_symbols_total
=
2
;
nb_of_prbs
=
16
;
starting_symbol_index
=
0
;
break
;
}
switch
(
format
)
{
case
pucch_format0_nr
:
nb_symbols_total
=
2
;
nb_of_prbs
=
1
;
starting_symbol_index
=
0
;
break
;
case
pucch_format1_nr
:
nb_symbols_total
=
5
;
nb_of_prbs
=
1
;
starting_symbol_index
=
0
;
break
;
case
pucch_format2_nr
:
nb_symbols_total
=
2
;
nb_of_prbs
=
16
;
starting_symbol_index
=
0
;
break
;
}
int
m_0
=
0
;
/* format 0 only */
int
m_CS
=
0
;
/* for all format except for format 0 */
...
...
@@ -61,9 +60,9 @@ int test_pucch_generators(PHY_VARS_NR_UE *ue)
int
tx_amp
=
512
;
int
nr_tti_tx
=
0
;
int
N_UCI
=
0
;
/* size in bits for Uplink Control Information */
switch
(
format
)
{
case
pucch_format0_nr
:
{
case
pucch_format0_nr
:
{
nr_generate_pucch0
(
ue
,
ue
->
common_vars
.
txdataF
,
&
ue
->
frame_parms
,
&
ue
->
pucch_config_dedicated_nr
[
gNB_id
],
...
...
@@ -76,8 +75,8 @@ int test_pucch_generators(PHY_VARS_NR_UE *ue)
starting_prb
);
break
;
}
case
pucch_format1_nr
:
{
case
pucch_format1_nr
:
{
nr_generate_pucch1
(
ue
,
ue
->
common_vars
.
txdataF
,
&
ue
->
frame_parms
,
&
ue
->
pucch_config_dedicated_nr
[
gNB_id
],
...
...
@@ -93,8 +92,8 @@ int test_pucch_generators(PHY_VARS_NR_UE *ue)
(
uint8_t
)
N_UCI
);
break
;
}
case
pucch_format2_nr
:
{
case
pucch_format2_nr
:
{
nr_generate_pucch2
(
ue
,
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_tx
]][
gNB_id
]
->
crnti
,
ue
->
common_vars
.
txdataF
,
...
...
@@ -110,9 +109,9 @@ int test_pucch_generators(PHY_VARS_NR_UE *ue)
(
uint8_t
)
N_UCI
);
break
;
}
case
pucch_format3_nr
:
case
pucch_format4_nr
:
{
case
pucch_format4_nr
:
{
nr_generate_pucch3_4
(
ue
,
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_tx
]][
gNB_id
]
->
crnti
,
ue
->
common_vars
.
txdataF
,
...
...
@@ -138,8 +137,7 @@ int test_pucch_generators(PHY_VARS_NR_UE *ue)
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
main
(
int
argc
,
char
*
argv
[])
{
uint8_t
transmission_mode
=
1
;
uint8_t
nb_antennas_tx
=
1
;
uint8_t
nb_antennas_rx
=
1
;
...
...
@@ -149,7 +147,6 @@ int main(int argc, char *argv[])
int
Nid_cell
[]
=
{(
3
*
1
+
3
)};
VOID_PARAMETER
argc
;
VOID_PARAMETER
argv
;
printf
(
" PUCCH TEST
\n
"
);
printf
(
"-----------
\n
"
);
...
...
@@ -160,12 +157,10 @@ int main(int argc, char *argv[])
if
(
test_pucch_generators
(
PHY_vars_UE
)
!=
0
)
{
printf
(
"
\n
Test PUCCH is fail
\n
"
);
}
else
{
}
else
{
printf
(
"
\n
Test PUCCH is pass
\n
"
);
}
free_context_synchro_nr
();
return
(
0
);
}
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