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
1fb76326
Commit
1fb76326
authored
Jan 10, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removing pbch_config structure
parent
f7778f8f
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
48 additions
and
74 deletions
+48
-74
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+1
-15
openair1/PHY/INIT/nr_parms.c
openair1/PHY/INIT/nr_parms.c
+2
-1
openair1/PHY/INIT/phy_init.h
openair1/PHY/INIT/phy_init.h
+1
-1
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+0
-3
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+4
-4
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+2
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+2
-2
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+31
-32
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+2
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+2
-14
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
1fb76326
...
@@ -477,20 +477,6 @@ typedef struct {
...
@@ -477,20 +477,6 @@ typedef struct {
uint8_t
p0_nominal
;
uint8_t
p0_nominal
;
}
fapi_nr_pucch_config_common_t
;
}
fapi_nr_pucch_config_common_t
;
typedef
struct
{
uint8_t
subcarrier_spacing_common
;
uint8_t
ssb_subcarrier_offset
;
uint8_t
dmrs_type_a_position
;
uint8_t
pdcch_config_sib1
;
uint8_t
cell_barred
;
uint8_t
intra_frequency_reselection
;
uint16_t
system_frame_number
;
uint8_t
ssb_index
;
uint8_t
half_frame_bit
;
}
fapi_nr_pbch_config_t
;
typedef
struct
{
typedef
struct
{
fapi_nr_pdcch_config_common_t
pdcch_config_common
;
fapi_nr_pdcch_config_common_t
pdcch_config_common
;
...
@@ -950,7 +936,7 @@ typedef struct {
...
@@ -950,7 +936,7 @@ typedef struct {
fapi_nr_tdd_table_t
tdd_table
;
fapi_nr_tdd_table_t
tdd_table
;
fapi_nr_prach_config_t
prach_config
;
fapi_nr_prach_config_t
prach_config
;
fapi_nr_pbch_config_t
pbch_config
;
// MIB
uint16_t
mib_sfn
;
fapi_nr_dl_bwp_common_config_t
dl_bwp_common
;
fapi_nr_dl_bwp_common_config_t
dl_bwp_common
;
fapi_nr_dl_bwp_dedicated_config_t
dl_bwp_dedicated
;
fapi_nr_dl_bwp_dedicated_config_t
dl_bwp_dedicated
;
...
...
openair1/PHY/INIT/nr_parms.c
View file @
1fb76326
...
@@ -27,11 +27,12 @@ uint32_t nr_subcarrier_spacing[MAX_NUM_SUBCARRIER_SPACING] = {15e3, 30e3, 60e3,
...
@@ -27,11 +27,12 @@ uint32_t nr_subcarrier_spacing[MAX_NUM_SUBCARRIER_SPACING] = {15e3, 30e3, 60e3,
uint16_t
nr_slots_per_subframe
[
MAX_NUM_SUBCARRIER_SPACING
]
=
{
1
,
2
,
4
,
16
,
32
};
uint16_t
nr_slots_per_subframe
[
MAX_NUM_SUBCARRIER_SPACING
]
=
{
1
,
2
,
4
,
16
,
32
};
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
,
uint8_t
i_ssb
)
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
)
{
{
int
mu
=
fp
->
numerology_index
;
int
mu
=
fp
->
numerology_index
;
uint8_t
half_frame_index
=
fp
->
half_frame_bit
;
uint8_t
half_frame_index
=
fp
->
half_frame_bit
;
uint8_t
i_ssb
=
fp
->
ssb_index
;
int
symbol
=
0
;
int
symbol
=
0
;
uint8_t
n
,
n_temp
;
uint8_t
n
,
n_temp
;
nr_ssb_type_e
type
=
fp
->
ssb_type
;
nr_ssb_type_e
type
=
fp
->
ssb_type
;
...
...
openair1/PHY/INIT/phy_init.h
View file @
1fb76326
...
@@ -377,7 +377,7 @@ void phy_config_request(PHY_Config_t *phy_config);
...
@@ -377,7 +377,7 @@ void phy_config_request(PHY_Config_t *phy_config);
int
init_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
osf
);
int
init_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
osf
);
void
dump_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
);
void
dump_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
);
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
,
uint8_t
i_ssb
);
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
);
int
nr_init_frame_parms
(
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
int
nr_init_frame_parms
(
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
int
nr_init_frame_parms_ue
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int
mu
,
int
Ncp
,
int
N_RB_DL
,
int
n_ssb_crb
,
int
ssb_subcarrier_offset
);
int
nr_init_frame_parms_ue
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int
mu
,
int
Ncp
,
int
N_RB_DL
,
int
n_ssb_crb
,
int
ssb_subcarrier_offset
);
int
init_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_eNB
,
uint8_t
abstraction_flag
);
int
init_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_eNB
,
uint8_t
abstraction_flag
);
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
1fb76326
...
@@ -206,9 +206,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
...
@@ -206,9 +206,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
int16_t
ch
[
2
],
*
pil
,
*
rxF
,
*
dl_ch
,
*
fl
,
*
fm
,
*
fr
;
int16_t
ch
[
2
],
*
pil
,
*
rxF
,
*
dl_ch
,
*
fl
,
*
fm
,
*
fr
;
int
ch_offset
,
symbol_offset
;
int
ch_offset
,
symbol_offset
;
//int slot_pbch;
//int slot_pbch;
//fapi_nr_pbch_config_t *pbch_config = &ue->nrUE_config.pbch_config;
// initialized to 5ms in nr_init_ue for scenarios where UE is not configured (otherwise acquired by cell configuration from gNB or LTE)
//uint8_t ssb_periodicity = 10;// ue->ssb_periodicity;
//uint16_t Nid_cell = (eNB_offset == 0) ? ue->frame_parms.Nid_cell : ue->measurements.adj_cell_id[eNB_offset-1];
//uint16_t Nid_cell = (eNB_offset == 0) ? ue->frame_parms.Nid_cell : ue->measurements.adj_cell_id[eNB_offset-1];
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
1fb76326
...
@@ -430,7 +430,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
...
@@ -430,7 +430,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
//uint32_t pbch_a_prime;
//uint32_t pbch_a_prime;
int16_t
*
pbch_e_rx
;
int16_t
*
pbch_e_rx
;
uint8_t
*
decoded_output
=
nr_ue_pbch_vars
->
decoded_output
;
uint8_t
*
decoded_output
=
nr_ue_pbch_vars
->
decoded_output
;
uint8_t
nushift
,
ssb_index
;
uint8_t
nushift
;
uint16_t
M
;
uint16_t
M
;
uint8_t
Lmax
=
frame_parms
->
Lmax
;
uint8_t
Lmax
=
frame_parms
->
Lmax
;
//uint16_t crc;
//uint16_t crc;
...
@@ -580,13 +580,13 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
...
@@ -580,13 +580,13 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
frame_parms
->
half_frame_bit
=
((
nr_ue_pbch_vars
->
xtra_byte
>>
4
)
&
0x01
);
// computing the half frame index from the extra byte
frame_parms
->
half_frame_bit
=
((
nr_ue_pbch_vars
->
xtra_byte
>>
4
)
&
0x01
);
// computing the half frame index from the extra byte
ssb_index
=
i_ssb
;
// ssb index corresponds to i_ssb for Lmax = 4,8
frame_parms
->
ssb_index
=
i_ssb
;
// ssb index corresponds to i_ssb for Lmax = 4,8
if
(
Lmax
==
64
)
{
// for Lmax = 64 ssb index 4th,5th and 6th bits are in extra byte
if
(
Lmax
==
64
)
{
// for Lmax = 64 ssb index 4th,5th and 6th bits are in extra byte
for
(
int
i
=
0
;
i
<
3
;
i
++
)
for
(
int
i
=
0
;
i
<
3
;
i
++
)
ssb_index
+=
(((
nr_ue_pbch_vars
->
xtra_byte
>>
(
7
-
i
))
&
0x01
)
<<
(
3
+
i
));
frame_parms
->
ssb_index
+=
(((
nr_ue_pbch_vars
->
xtra_byte
>>
(
7
-
i
))
&
0x01
)
<<
(
3
+
i
));
}
}
ue
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
,
ssb_index
);
ue
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
);
#ifdef DEBUG_PBCH
#ifdef DEBUG_PBCH
printf
(
"xtra_byte %x payload %x
\n
"
,
nr_ue_pbch_vars
->
xtra_byte
,
payload
);
printf
(
"xtra_byte %x payload %x
\n
"
,
nr_ue_pbch_vars
->
xtra_byte
,
payload
);
...
...
openair1/PHY/defs_nr_common.h
View file @
1fb76326
...
@@ -334,6 +334,8 @@ typedef struct NR_DL_FRAME_PARMS {
...
@@ -334,6 +334,8 @@ typedef struct NR_DL_FRAME_PARMS {
uint64_t
L_ssb
;
uint64_t
L_ssb
;
/// Total number of SSB transmitted
/// Total number of SSB transmitted
uint8_t
N_ssb
;
uint8_t
N_ssb
;
/// SSB index
uint8_t
ssb_index
;
/// PBCH polar encoder params
/// PBCH polar encoder params
t_nrPolar_params
pbch_polar_params
;
t_nrPolar_params
pbch_polar_params
;
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
1fb76326
...
@@ -120,8 +120,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
...
@@ -120,8 +120,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
if
((
fp
->
L_ssb
>>
ssb_index
)
&
0x01
)
{
// generating the ssb only if the bit of L_ssb at current ssb index is 1
if
((
fp
->
L_ssb
>>
ssb_index
)
&
0x01
)
{
// generating the ssb only if the bit of L_ssb at current ssb index is 1
gNB
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbBlockIndex
=
ssb_index
;
gNB
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbBlockIndex
=
ssb_index
;
fp
->
ssb_index
=
ssb_index
;
int
ssb_start_symbol_abs
=
nr_get_ssb_start_symbol
(
fp
,
ssb_index
);
// computing the starting symbol for current ssb
int
ssb_start_symbol_abs
=
nr_get_ssb_start_symbol
(
fp
);
// computing the starting symbol for current ssb
ssb_start_symbol
=
ssb_start_symbol_abs
%
14
;
// start symbol wrt slot
ssb_start_symbol
=
ssb_start_symbol_abs
%
14
;
// start symbol wrt slot
nr_set_ssb_first_subcarrier
(
cfg
,
fp
);
// setting the first subcarrier
nr_set_ssb_first_subcarrier
(
cfg
,
fp
);
// setting the first subcarrier
...
...
openair1/SCHED_NR_UE/defs.h
View file @
1fb76326
...
@@ -370,7 +370,7 @@ void nr_compute_srs_pos(lte_frame_type_t frameType,uint16_t isrs,uint16_t *psrsP
...
@@ -370,7 +370,7 @@ void nr_compute_srs_pos(lte_frame_type_t frameType,uint16_t isrs,uint16_t *psrsP
void
set_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
harq_pid
,
int
slot_tx
);
void
set_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
harq_pid
,
int
slot_tx
);
int
get_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
slot_tx
);
int
get_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
slot_tx
);
int
is_pbch_in_slot
(
fapi_nr_
pbch_config_t
*
pbch_config
,
int
frame
,
int
slot
,
int
periodicity
,
uint16_t
slots_per_frame
);
int
is_pbch_in_slot
(
fapi_nr_
config_request_t
*
config
,
int
frame
,
int
slot
,
NR_DL_FRAME_PARMS
*
fp
);
/*@}*/
/*@}*/
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
1fb76326
...
@@ -2707,7 +2707,7 @@ void nr_ue_pbch_procedures(uint8_t eNB_id,
...
@@ -2707,7 +2707,7 @@ void nr_ue_pbch_procedures(uint8_t eNB_id,
ue
->
pbch_vars
[
eNB_id
],
ue
->
pbch_vars
[
eNB_id
],
&
ue
->
frame_parms
,
&
ue
->
frame_parms
,
eNB_id
,
eNB_id
,
ue
->
nrUE_config
.
pbch_config
.
ssb_index
,
(
ue
->
frame_parms
.
ssb_index
)
&
7
,
SISO
,
SISO
,
ue
->
high_speed_flag
);
ue
->
high_speed_flag
);
...
@@ -4027,20 +4027,20 @@ void *UE_thread_slot1_dl_processing(void *arg) {
...
@@ -4027,20 +4027,20 @@ void *UE_thread_slot1_dl_processing(void *arg) {
#endif
#endif
int
is_pbch_in_slot
(
fapi_nr_
pbch_config_t
*
pbch_config
,
int
frame
,
int
slot
,
int
periodicity
,
uint16_t
slots_per_frame
)
{
int
is_pbch_in_slot
(
fapi_nr_
config_request_t
*
config
,
int
frame
,
int
slot
,
NR_DL_FRAME_PARMS
*
fp
)
{
int
ssb_slot_decoded
=
(
pbch_config
->
ssb_index
)
/
2
;
int
ssb_slot_decoded
=
(
fp
->
ssb_index
)
/
2
;
if
(
periodicity
==
5
)
{
if
(
config
->
ssb_table
.
ssb_period
==
5
)
{
// check for pbch in corresponding slot each half frame
// check for pbch in corresponding slot each half frame
if
(
pbch_config
->
half_frame_bit
)
if
(
fp
->
half_frame_bit
)
return
(
slot
==
ssb_slot_decoded
||
slot
==
ssb_slot_decoded
-
slots_per_frame
/
2
);
return
(
slot
==
ssb_slot_decoded
||
slot
==
ssb_slot_decoded
-
fp
->
slots_per_frame
/
2
);
else
else
return
(
slot
==
ssb_slot_decoded
||
slot
==
ssb_slot_decoded
+
slots_per_frame
/
2
);
return
(
slot
==
ssb_slot_decoded
||
slot
==
ssb_slot_decoded
+
fp
->
slots_per_frame
/
2
);
}
}
else
{
else
{
// if the current frame is supposed to contain ssb
// if the current frame is supposed to contain ssb
if
(
!
((
frame
-
(
pbch_config
->
system_frame_number
))
%
(
periodicity
/
10
)))
if
(
!
((
frame
-
(
config
->
mib_sfn
))
%
(
config
->
ssb_table
.
ssb_period
/
10
)))
return
(
slot
==
ssb_slot_decoded
);
return
(
slot
==
ssb_slot_decoded
);
else
else
return
0
;
return
0
;
...
@@ -4065,9 +4065,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4065,9 +4065,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
uint16_t
nb_symb_sch
=
dlsch0_harq
->
nb_symbols
;
uint16_t
nb_symb_sch
=
dlsch0_harq
->
nb_symbols
;
uint16_t
start_symb_sch
=
dlsch0_harq
->
start_symbol
;
uint16_t
start_symb_sch
=
dlsch0_harq
->
start_symbol
;
uint8_t
nb_symb_pdcch
=
pdcch_vars
->
nb_search_space
>
0
?
pdcch_vars
->
pdcch_config
[
0
].
coreset
.
duration
:
0
;
uint8_t
nb_symb_pdcch
=
pdcch_vars
->
nb_search_space
>
0
?
pdcch_vars
->
pdcch_config
[
0
].
coreset
.
duration
:
0
;
uint8_t
ssb_periodicity
=
cfg
->
ssb_table
.
ssb_period
;
uint8_t
dci_cnt
=
0
;
uint8_t
dci_cnt
=
0
;
fapi_nr_pbch_config_t
*
pbch_config
=
&
ue
->
nrUE_config
.
pbch_config
;
NR_DL_FRAME_PARMS
*
fp
=
&
ue
->
frame_parms
;
LOG_D
(
PHY
,
" ****** start RX-Chain for Frame.Slot %d.%d ******
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
LOG_D
(
PHY
,
" ****** start RX-Chain for Frame.Slot %d.%d ******
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
...
@@ -4082,7 +4081,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4082,7 +4081,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
if
(
pdcch_vars
->
nb_search_space
>
0
)
if
(
pdcch_vars
->
nb_search_space
>
0
)
get_coreset_rballoc
(
pdcch_vars
->
pdcch_config
[
0
].
coreset
.
frequency_domain_resource
,
&
coreset_nb_rb
,
&
coreset_start_rb
);
get_coreset_rballoc
(
pdcch_vars
->
pdcch_config
[
0
].
coreset
.
frequency_domain_resource
,
&
coreset_nb_rb
,
&
coreset_start_rb
);
slot_pbch
=
is_pbch_in_slot
(
pbch_config
,
frame_rx
,
nr_tti_rx
,
ssb_periodicity
,
ue
->
frame_parms
.
slots_per_frame
);
slot_pbch
=
is_pbch_in_slot
(
cfg
,
frame_rx
,
nr_tti_rx
,
fp
);
// looking for pbch only in slot where it is supposed to be
// looking for pbch only in slot where it is supposed to be
if
((
ue
->
decode_MIB
==
1
)
&&
slot_pbch
)
if
((
ue
->
decode_MIB
==
1
)
&&
slot_pbch
)
...
@@ -4092,7 +4091,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4092,7 +4091,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
for
(
int
i
=
1
;
i
<
4
;
i
++
)
{
for
(
int
i
=
1
;
i
<
4
;
i
++
)
{
nr_slot_fep
(
ue
,
nr_slot_fep
(
ue
,
(
ue
->
symbol_offset
+
i
)
%
(
ue
->
frame_parms
.
symbols_per_slot
),
(
ue
->
symbol_offset
+
i
)
%
(
fp
->
symbols_per_slot
),
nr_tti_rx
,
nr_tti_rx
,
0
,
0
,
0
);
0
);
...
@@ -4100,7 +4099,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4100,7 +4099,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
#endif
#endif
nr_pbch_channel_estimation
(
ue
,
0
,
nr_tti_rx
,(
ue
->
symbol_offset
+
i
)
%
(
ue
->
frame_parms
.
symbols_per_slot
),
i
-
1
,(
pbch_config
->
ssb_index
)
&
7
,
pbch_config
->
half_frame_bit
);
nr_pbch_channel_estimation
(
ue
,
0
,
nr_tti_rx
,(
ue
->
symbol_offset
+
i
)
%
(
fp
->
symbols_per_slot
),
i
-
1
,(
fp
->
ssb_index
)
&
7
,
fp
->
half_frame_bit
);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
#endif
#endif
...
@@ -4110,7 +4109,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4110,7 +4109,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
if
(
ue
->
no_timing_correction
==
0
)
{
if
(
ue
->
no_timing_correction
==
0
)
{
LOG_I
(
PHY
,
"start adjust sync slot = %d no timing %d
\n
"
,
nr_tti_rx
,
ue
->
no_timing_correction
);
LOG_I
(
PHY
,
"start adjust sync slot = %d no timing %d
\n
"
,
nr_tti_rx
,
ue
->
no_timing_correction
);
nr_adjust_synch_ue
(
&
ue
->
frame_parms
,
nr_adjust_synch_ue
(
fp
,
ue
,
ue
,
eNB_id
,
eNB_id
,
nr_tti_rx
,
nr_tti_rx
,
...
@@ -4137,13 +4136,13 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4137,13 +4136,13 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
// note: this only works if RBs for PDCCH are contigous!
// note: this only works if RBs for PDCCH are contigous!
LOG_D
(
PHY
,
"pdcch_channel_estimation: first_carrier_offset %d, BWPStart %d, coreset_start_rb %d
\n
"
,
LOG_D
(
PHY
,
"pdcch_channel_estimation: first_carrier_offset %d, BWPStart %d, coreset_start_rb %d
\n
"
,
ue
->
frame_parms
.
first_carrier_offset
,
pdcch_vars
->
pdcch_config
[
0
].
BWPStart
,
coreset_start_rb
);
fp
->
first_carrier_offset
,
pdcch_vars
->
pdcch_config
[
0
].
BWPStart
,
coreset_start_rb
);
if
(
coreset_nb_rb
>
0
)
if
(
coreset_nb_rb
>
0
)
nr_pdcch_channel_estimation
(
ue
,
nr_pdcch_channel_estimation
(
ue
,
0
,
0
,
nr_tti_rx
,
nr_tti_rx
,
l
,
l
,
ue
->
frame_parms
.
first_carrier_offset
+
(
pdcch_vars
->
pdcch_config
[
0
].
BWPStart
+
coreset_start_rb
)
*
12
,
fp
->
first_carrier_offset
+
(
pdcch_vars
->
pdcch_config
[
0
].
BWPStart
+
coreset_start_rb
)
*
12
,
coreset_nb_rb
);
coreset_nb_rb
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP
,
VCD_FUNCTION_OUT
);
...
@@ -4212,11 +4211,11 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -4212,11 +4211,11 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_ue_measurement_procedures
(
2
,
ue
,
proc
,
eNB_id
,
nr_tti_rx
,
mode
);
nr_ue_measurement_procedures
(
2
,
ue
,
proc
,
eNB_id
,
nr_tti_rx
,
mode
);
/*
/*
write_output("rxF.m","rxF",&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],
ue->frame_parms.
ofdm_symbol_size*14,1,1);
write_output("rxF.m","rxF",&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],
fp->
ofdm_symbol_size*14,1,1);
write_output("rxF_ch.m","rxFch",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->dl_ch_estimates[0][0],
ue->frame_parms.
ofdm_symbol_size*14,1,1);
write_output("rxF_ch.m","rxFch",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->dl_ch_estimates[0][0],
fp->
ofdm_symbol_size*14,1,1);
write_output("rxF_ch_ext.m","rxFche",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->dl_ch_estimates_ext[0][2*50*12],50*12,1,1);
write_output("rxF_ch_ext.m","rxFche",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->dl_ch_estimates_ext[0][2*50*12],50*12,1,1);
write_output("rxF_ext.m","rxFe",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->rxdataF_ext[0][0],50*12*14,1,1);
write_output("rxF_ext.m","rxFe",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->rxdataF_ext[0][0],50*12*14,1,1);
write_output("rxF_comp.m","rxFc",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->rxdataF_comp0[0][0],
ue->frame_parms.
N_RB_DL*12*14,1,1);
write_output("rxF_comp.m","rxFc",&ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->rxdataF_comp0[0][0],
fp->
N_RB_DL*12*14,1,1);
write_output("rxF_llr.m","rxFllr",ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->llr[0],(nb_symb_sch-1)*50*12+50*6,1,0);
write_output("rxF_llr.m","rxFllr",ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->llr[0],(nb_symb_sch-1)*50*12+50*6,1,0);
*/
*/
...
@@ -4307,16 +4306,16 @@ start_meas(&ue->generic_stat);
...
@@ -4307,16 +4306,16 @@ start_meas(&ue->generic_stat);
//write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0);
//write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0);
//write_output("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
//write_output("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
write_output("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],14*
ue->frame_parms.
ofdm_symbol_size,1,1);
write_output("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],14*
fp->
ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*
ue->frame_parms.
ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*
fp->
ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*
ue->frame_parms.
ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*
fp->
ofdm_symbol_size,1,1);
write_output("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].dl_ch_estimates[0][0][0],14*
ue->frame_parms.
ofdm_symbol_size,1,1);
write_output("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].dl_ch_estimates[0][0][0],14*
fp->
ofdm_symbol_size,1,1);
write_output("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_estimates_ext[0][0],14*
ue->frame_parms.
N_RB_DL*12,1,1);
write_output("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_estimates_ext[0][0],14*
fp->
N_RB_DL*12,1,1);
write_output("rxdataF_comp00.m","rxdataF_comp00", &ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->rxdataF_comp0[0][0],14*
ue->frame_parms.
N_RB_DL*12,1,1);
write_output("rxdataF_comp00.m","rxdataF_comp00", &ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->rxdataF_comp0[0][0],14*
fp->
N_RB_DL*12,1,1);
//write_output("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_mag0[0][0],14*f
rame_parms
->N_RB_DL*12,1,1);
//write_output("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_mag0[0][0],14*f
p
->N_RB_DL*12,1,1);
//write_output("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_magb0[0][0],14*f
rame_parms
->N_RB_DL*12,1,1);
//write_output("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[nr_tti_rx]][0]->dl_ch_magb0[0][0],14*f
p
->N_RB_DL*12,1,1);
AssertFatal (0,"");
AssertFatal (0,"");
}
}
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
1fb76326
...
@@ -589,7 +589,8 @@ int main(int argc, char **argv)
...
@@ -589,7 +589,8 @@ int main(int argc, char **argv)
UE
->
rx_offset
=
0
;
UE
->
rx_offset
=
0
;
uint8_t
ssb_index
=
0
;
uint8_t
ssb_index
=
0
;
while
(
!
((
SSB_positions
>>
ssb_index
)
&
0x01
))
ssb_index
++
;
// to select the first transmitted ssb
while
(
!
((
SSB_positions
>>
ssb_index
)
&
0x01
))
ssb_index
++
;
// to select the first transmitted ssb
UE
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
,
ssb_index
);
frame_parms
->
ssb_index
=
ssb_index
;
UE
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
);
int
ssb_slot
=
(
ssb_index
/
2
)
+
(
n_hf
*
frame_parms
->
slots_per_frame
);
int
ssb_slot
=
(
ssb_index
/
2
)
+
(
n_hf
*
frame_parms
->
slots_per_frame
);
for
(
int
i
=
UE
->
symbol_offset
+
1
;
i
<
UE
->
symbol_offset
+
4
;
i
++
)
{
for
(
int
i
=
UE
->
symbol_offset
+
1
;
i
<
UE
->
symbol_offset
+
4
;
i
++
)
{
nr_slot_fep
(
UE
,
nr_slot_fep
(
UE
,
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
1fb76326
...
@@ -609,20 +609,8 @@ int8_t nr_ue_decode_mib(UE_nr_rxtx_proc_t *proc,
...
@@ -609,20 +609,8 @@ int8_t nr_ue_decode_mib(UE_nr_rxtx_proc_t *proc,
mac
->
phy_config
.
Mod_id
=
module_id
;
mac
->
phy_config
.
Mod_id
=
module_id
;
mac
->
phy_config
.
CC_id
=
cc_id
;
mac
->
phy_config
.
CC_id
=
cc_id
;
mac
->
phy_config
.
config_req
.
pbch_config
.
system_frame_number
=
frame
;
// after calculation
mac
->
phy_config
.
config_req
.
mib_sfn
=
frame
;
mac
->
phy_config
.
config_req
.
pbch_config
.
subcarrier_spacing_common
=
mac
->
mib
->
subCarrierSpacingCommon
;
mac
->
phy_config
.
config_req
.
pbch_config
.
ssb_subcarrier_offset
=
ssb_subcarrier_offset
;
// after calculation
mac
->
phy_config
.
config_req
.
pbch_config
.
dmrs_type_a_position
=
mac
->
mib
->
dmrs_TypeA_Position
;
mac
->
phy_config
.
config_req
.
pbch_config
.
pdcch_config_sib1
=
(
mac
->
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
)
*
16
+
(
mac
->
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
mac
->
phy_config
.
config_req
.
pbch_config
.
cell_barred
=
mac
->
mib
->
cellBarred
;
mac
->
phy_config
.
config_req
.
pbch_config
.
intra_frequency_reselection
=
mac
->
mib
->
intraFreqReselection
;
mac
->
phy_config
.
config_req
.
pbch_config
.
half_frame_bit
=
half_frame_bit
;
mac
->
phy_config
.
config_req
.
pbch_config
.
ssb_index
=
ssb_index
;
mac
->
phy_config
.
config_req
.
config_mask
|=
FAPI_NR_CONFIG_REQUEST_MASK_PBCH
;
if
(
mac
->
if_module
!=
NULL
&&
mac
->
if_module
->
phy_config_request
!=
NULL
){
mac
->
if_module
->
phy_config_request
(
&
mac
->
phy_config
);
}
proc
->
decoded_frame_rx
=
frame
;
proc
->
decoded_frame_rx
=
frame
;
//}
//}
return
0
;
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