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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
ba92e374
Commit
ba92e374
authored
Feb 24, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
re-initialization of gold sequences at gnb if needed according to fapi messages
parent
96919468
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
61 additions
and
55 deletions
+61
-55
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+10
-4
openair1/PHY/NR_REFSIG/nr_gold.c
openair1/PHY/NR_REFSIG/nr_gold.c
+9
-14
openair1/PHY/NR_REFSIG/nr_refsig.h
openair1/PHY/NR_REFSIG/nr_refsig.h
+1
-1
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
+4
-15
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+22
-13
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+1
-1
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+8
-3
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
+0
-1
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+4
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+2
-3
No files found.
openair1/PHY/INIT/nr_init.c
View file @
ba92e374
...
...
@@ -130,6 +130,7 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
}
nr_generate_modulation_table
();
gNB
->
pdcch_gold_init
=
cfg
->
cell_config
.
phy_cell_id
.
value
;
nr_init_pdcch_dmrs
(
gNB
,
cfg
->
cell_config
.
phy_cell_id
.
value
);
nr_init_pbch_interleaver
(
gNB
->
nr_pbch_interleaver
);
...
...
@@ -142,17 +143,21 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
AssertFatal
(
pdsch_dmrs
[
slot
]
!=
NULL
,
"NR init: pdsch_dmrs for slot %d - malloc failed
\n
"
,
slot
);
for
(
int
symb
=
0
;
symb
<
fp
->
symbols_per_slot
;
symb
++
)
{
pdsch_dmrs
[
slot
][
symb
]
=
(
uint32_t
**
)
malloc16
(
NR_MAX_NB_CODEWORDS
*
sizeof
(
uint32_t
*
));
pdsch_dmrs
[
slot
][
symb
]
=
(
uint32_t
**
)
malloc16
(
2
*
sizeof
(
uint32_t
*
));
AssertFatal
(
pdsch_dmrs
[
slot
][
symb
]
!=
NULL
,
"NR init: pdsch_dmrs for slot %d symbol %d - malloc failed
\n
"
,
slot
,
symb
);
for
(
int
q
=
0
;
q
<
NR_MAX_NB_CODEWORDS
;
q
++
)
{
for
(
int
q
=
0
;
q
<
2
;
q
++
)
{
pdsch_dmrs
[
slot
][
symb
][
q
]
=
(
uint32_t
*
)
malloc16
(
NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD
*
sizeof
(
uint32_t
));
AssertFatal
(
pdsch_dmrs
[
slot
][
symb
][
q
]
!=
NULL
,
"NR init: pdsch_dmrs for slot %d symbol %d
codewor
d %d - malloc failed
\n
"
,
slot
,
symb
,
q
);
AssertFatal
(
pdsch_dmrs
[
slot
][
symb
][
q
]
!=
NULL
,
"NR init: pdsch_dmrs for slot %d symbol %d
nsci
d %d - malloc failed
\n
"
,
slot
,
symb
,
q
);
}
}
}
nr_init_pdsch_dmrs
(
gNB
,
cfg
->
cell_config
.
phy_cell_id
.
value
);
for
(
int
nscid
=
0
;
nscid
<
2
;
nscid
++
)
{
gNB
->
pdsch_gold_init
[
nscid
]
=
cfg
->
cell_config
.
phy_cell_id
.
value
;
nr_init_pdsch_dmrs
(
gNB
,
nscid
,
cfg
->
cell_config
.
phy_cell_id
.
value
);
}
//PUSCH DMRS init
gNB
->
nr_gold_pusch_dmrs
=
(
uint32_t
****
)
malloc16
(
2
*
sizeof
(
uint32_t
***
));
...
...
@@ -193,6 +198,7 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
}
}
gNB
->
csi_gold_init
=
cfg
->
cell_config
.
phy_cell_id
.
value
;
nr_init_csi_rs
(
gNB
,
cfg
->
cell_config
.
phy_cell_id
.
value
);
for
(
int
id
=
0
;
id
<
NUMBER_OF_NR_SRS_MAX
;
id
++
)
{
...
...
openair1/PHY/NR_REFSIG/nr_gold.c
View file @
ba92e374
...
...
@@ -77,29 +77,24 @@ void nr_init_pdcch_dmrs(PHY_VARS_gNB* gNB, uint32_t Nid)
}
void
nr_init_pdsch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint32_t
Nid
)
void
nr_init_pdsch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint
8_t
nscid
,
uint
32_t
Nid
)
{
uint32_t
x1
,
x2
;
uint8_t
reset
,
q
;
uint8_t
reset
;
NR_DL_FRAME_PARMS
*
fp
=
&
gNB
->
frame_parms
;
uint32_t
****
pdsch_dmrs
=
gNB
->
nr_gold_pdsch_dmrs
;
uint16_t
N_n_scid
[
NR_MAX_NB_CODEWORDS
]
=
{
Nid
,
Nid
};
// Not correct, appropriate scrambling IDs have to be updated to support DCI 1_1
uint8_t
n_scid
=
0
;
// again works only for 1_0
for
(
uint8_t
slot
=
0
;
slot
<
fp
->
slots_per_frame
;
slot
++
)
{
for
(
uint8_t
symb
=
0
;
symb
<
fp
->
symbols_per_slot
;
symb
++
)
{
reset
=
1
;
x2
=
((
1
<<
17
)
*
(
fp
->
symbols_per_slot
*
slot
+
symb
+
1
)
*
((
N_n_scid
[
n_scid
]
<<
1
)
+
1
)
+
((
N_n_scid
[
n_scid
]
<<
1
)
+
n_scid
));
LOG_D
(
PHY
,
"PDSCH DMRS slot %d, symb %d x2 %x, N_n_scid %d,n_scid %d
\n
"
,
slot
,
symb
,
x2
,
N_n_scid
[
n_scid
],
n_scid
);
for
(
uint32_t
n
=
0
;
n
<
NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD
;
n
++
)
{
pdsch_dmrs
[
slot
][
symb
][
0
][
n
]
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
reset
=
0
;
}
for
(
q
=
1
;
q
<
NR_MAX_NB_CODEWORDS
;
q
++
)
memcpy
(
pdsch_dmrs
[
slot
][
symb
][
q
],
pdsch_dmrs
[
slot
][
symb
][
0
],
sizeof
(
uint32_t
)
*
NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD
);
reset
=
1
;
x2
=
((
1
<<
17
)
*
(
fp
->
symbols_per_slot
*
slot
+
symb
+
1
)
*
((
Nid
<<
1
)
+
1
)
+
((
Nid
<<
1
)
+
nscid
));
LOG_D
(
PHY
,
"PDSCH DMRS slot %d, symb %d x2 %x, Nid %d,nscid %d
\n
"
,
slot
,
symb
,
x2
,
Nid
,
nscid
);
for
(
uint32_t
n
=
0
;
n
<
NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD
;
n
++
)
{
pdsch_dmrs
[
slot
][
symb
][
nscid
][
n
]
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
reset
=
0
;
}
}
}
}
...
...
openair1/PHY/NR_REFSIG/nr_refsig.h
View file @
ba92e374
...
...
@@ -37,7 +37,7 @@ void nr_init_pbch_dmrs(PHY_VARS_gNB* gNB);
@param Nid is used for the initialization of x2, Physical cell Id by default or upper layer configured pdcch_scrambling_ID
*/
void
nr_init_pdcch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint32_t
Nid
);
void
nr_init_pdsch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint32_t
Nid
);
void
nr_init_pdsch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint
8_t
nscid
,
uint
32_t
Nid
);
void
nr_init_csi_rs
(
PHY_VARS_gNB
*
gNB
,
uint32_t
Nid
);
void
nr_gold_pusch
(
PHY_VARS_gNB
*
gNB
,
uint32_t
*
Nid
);
...
...
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
View file @
ba92e374
...
...
@@ -30,7 +30,6 @@
void
nr_generate_csi_rs
(
PHY_VARS_gNB
*
gNB
,
int16_t
amp
,
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
csi_params
,
uint16_t
cell_id
,
int
slot
){
NR_DL_FRAME_PARMS
frame_parms
=
gNB
->
frame_parms
;
...
...
@@ -50,20 +49,10 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
AssertFatal
(
b
!=
0
,
"Invalid CSI frequency domain mapping: no bit selected in bitmap
\n
"
);
// pre-computed for scrambling id equel to cell id
// if the scrambling id is not the cell id we need to re-initialize the rs
if
(
csi_params
.
scramb_id
!=
cell_id
)
{
uint8_t
reset
;
uint32_t
x1
,
x2
;
uint32_t
Nid
=
csi_params
.
scramb_id
;
for
(
uint8_t
symb
=
0
;
symb
<
frame_parms
.
symbols_per_slot
;
symb
++
)
{
reset
=
1
;
x2
=
((
1
<<
10
)
*
(
frame_parms
.
symbols_per_slot
*
slot
+
symb
+
1
)
*
((
Nid
<<
1
)
+
1
)
+
(
Nid
));
for
(
uint32_t
n
=
0
;
n
<
NR_MAX_CSI_RS_INIT_LENGTH_DWORD
;
n
++
)
{
gold_csi_rs
[
symb
][
n
]
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
reset
=
0
;
}
}
// if the scrambling id is not the one previously used to initialize we need to re-initialize the rs
if
(
csi_params
.
scramb_id
!=
gNB
->
csi_gold_init
)
{
gNB
->
csi_gold_init
=
csi_params
.
scramb_id
;
nr_init_csi_rs
(
gNB
,
csi_params
.
scramb_id
);
}
switch
(
csi_params
.
row
)
{
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
ba92e374
...
...
@@ -66,11 +66,12 @@ void nr_pdcch_scrambling(uint32_t *in,
}
}
void
nr_generate_dci
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
uint32_t
**
gold_pdcch_dmrs
,
void
nr_generate_dci
(
PHY_VARS_gNB
*
gNB
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
int32_t
*
txdataF
,
int16_t
amp
,
NR_DL_FRAME_PARMS
*
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
,
int
slot
)
{
int16_t
mod_dmrs
[
NR_MAX_CSET_DURATION
][
NR_MAX_PDCCH_DMRS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));
// 3 for the max coreset duration
uint16_t
cset_start_sc
;
...
...
@@ -81,7 +82,7 @@ void nr_generate_dci(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
int
rb_offset
;
int
n_rb
;
// compute rb_offset and n_prb based on frequency allocation
nr_cce_t
cce_list
[
MAX_DCI_CORESET
][
NR_MAX_PDCCH_AGG_LEVEL
];
nr_fill_cce_list
(
cce_list
,
0
,
pdcch_pdu_rel15
);
...
...
@@ -95,6 +96,13 @@ void nr_generate_dci(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
* in time: by its first slot and its first symbol*/
const
nfapi_nr_dl_dci_pdu_t
*
dci_pdu
=
&
pdcch_pdu_rel15
->
dci_pdu
[
d
];
if
(
dci_pdu
->
ScramblingId
!=
gNB
->
pdcch_gold_init
)
{
gNB
->
pdcch_gold_init
=
dci_pdu
->
ScramblingId
;
nr_init_pdcch_dmrs
(
gNB
,
dci_pdu
->
ScramblingId
);
}
uint32_t
**
gold_pdcch_dmrs
=
gNB
->
nr_gold_pdcch_dmrs
[
slot
];
cset_start_symb
=
pdcch_pdu_rel15
->
StartSymbolIndex
;
cset_nsymb
=
pdcch_pdu_rel15
->
DurationSymbols
;
dci_idx
=
0
;
...
...
@@ -104,8 +112,8 @@ void nr_generate_dci(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
uint32_t
dmrs_length
=
n_rb
*
6
;
//2(QPSK)*3(per RB)*6(REG per CCE)
uint32_t
encoded_length
=
dci_pdu
->
AggregationLevel
*
108
;
//2(QPSK)*9(per RB)*6(REG per CCE)
LOG_D
(
PHY
,
"DL_DCI : rb_offset %d, nb_rb %d, DMRS length per symbol %d
\t
DCI encoded length %d (precoder_granularity %d,reg_mapping %d),Scrambling_Id %d,ScramblingRNTI %x,PayloadSizeBits %d
\n
"
,
rb_offset
,
n_rb
,
dmrs_length
,
encoded_length
,
pdcch_pdu_rel15
->
precoderGranularity
,
pdcch_pdu_rel15
->
CceRegMappingType
,
dci_pdu
->
ScramblingId
,
dci_pdu
->
ScramblingRNTI
,
dci_pdu
->
PayloadSizeBits
);
rb_offset
,
n_rb
,
dmrs_length
,
encoded_length
,
pdcch_pdu_rel15
->
precoderGranularity
,
pdcch_pdu_rel15
->
CceRegMappingType
,
dci_pdu
->
ScramblingId
,
dci_pdu
->
ScramblingRNTI
,
dci_pdu
->
PayloadSizeBits
);
dmrs_length
+=
rb_offset
*
6
;
// To accommodate more DMRS symbols in case of rb offset
/// DMRS QPSK modulation
...
...
@@ -115,10 +123,10 @@ void nr_generate_dci(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
#ifdef DEBUG_PDCCH_DMRS
if
(
dci_pdu
->
RNTI
!=
0xFFFF
)
{
for
(
int
i
=
0
;
i
<
dmrs_length
>>
1
;
i
++
)
printf
(
"symb %d i %d %p gold seq 0x%08x mod_dmrs %d %d
\n
"
,
symb
,
i
,
&
gold_pdcch_dmrs
[
symb
][
i
>>
5
],
gold_pdcch_dmrs
[
symb
][
i
>>
5
],
mod_dmrs
[
symb
][
i
<<
1
],
mod_dmrs
[
symb
][(
i
<<
1
)
+
1
]
);
}
for
(
int
i
=
0
;
i
<
dmrs_length
>>
1
;
i
++
)
printf
(
"symb %d i %d %p gold seq 0x%08x mod_dmrs %d %d
\n
"
,
symb
,
i
,
&
gold_pdcch_dmrs
[
symb
][
i
>>
5
],
gold_pdcch_dmrs
[
symb
][
i
>>
5
],
mod_dmrs
[
symb
][
i
<<
1
],
mod_dmrs
[
symb
][(
i
<<
1
)
+
1
]
);
}
#endif
}
...
...
@@ -251,15 +259,16 @@ void nr_generate_dci(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
}
void
nr_generate_dci_top
(
processingData_L1tx_t
*
msgTx
,
uint32_t
**
gold_pdcch_dmrs
,
int
slot
,
int32_t
*
txdataF
,
int16_t
amp
,
NR_DL_FRAME_PARMS
*
frame_parms
)
{
for
(
int
i
=
0
;
i
<
msgTx
->
num_ul_pdcch
;
i
++
)
nr_generate_dci
(
&
msgTx
->
ul_pdcch_pdu
[
i
].
pdcch_pdu
.
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
nr_generate_dci
(
msgTx
->
gNB
,
&
msgTx
->
ul_pdcch_pdu
[
i
].
pdcch_pdu
.
pdcch_pdu_rel15
,
txdataF
,
amp
,
frame_parms
,
slot
);
for
(
int
i
=
0
;
i
<
msgTx
->
num_dl_pdcch
;
i
++
)
nr_generate_dci
(
&
msgTx
->
pdcch_pdu
[
i
].
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
nr_generate_dci
(
msgTx
->
gNB
,
&
msgTx
->
pdcch_pdu
[
i
].
pdcch_pdu_rel15
,
txdataF
,
amp
,
frame_parms
,
slot
);
}
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
ba92e374
...
...
@@ -30,7 +30,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
uint16_t
N_RB
);
void
nr_generate_dci_top
(
processingData_L1tx_t
*
msgTx
,
uint32_t
**
gold_pdcch_dmrs
,
int
slot
,
int32_t
*
txdataF
,
int16_t
amp
,
NR_DL_FRAME_PARMS
*
frame_parms
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
View file @
ba92e374
...
...
@@ -58,7 +58,6 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
PHY_VARS_gNB
*
gNB
=
msgTx
->
gNB
;
NR_gNB_DLSCH_t
*
dlsch
;
uint32_t
***
pdsch_dmrs
=
gNB
->
nr_gold_pdsch_dmrs
[
slot
];
int32_t
**
txdataF
=
gNB
->
common_vars
.
txdataF
;
int16_t
amp
=
AMP
;
int
xOverhead
=
0
;
...
...
@@ -95,6 +94,12 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
n_dmrs
=
(
rel15
->
BWPStart
+
rel15
->
rbStart
+
rel15
->
rbSize
)
*
nb_re_dmrs
;
if
(
rel15
->
dlDmrsScramblingId
!=
gNB
->
pdsch_gold_init
[
rel15
->
SCID
])
{
gNB
->
pdsch_gold_init
[
rel15
->
SCID
]
=
rel15
->
dlDmrsScramblingId
;
nr_init_pdsch_dmrs
(
gNB
,
rel15
->
SCID
,
rel15
->
dlDmrsScramblingId
);
}
uint32_t
***
pdsch_dmrs
=
gNB
->
nr_gold_pdsch_dmrs
[
slot
];
uint16_t
dmrs_symbol_map
=
rel15
->
dlDmrsSymbPos
;
//single DMRS: 010000100 Double DMRS 110001100
uint8_t
dmrs_len
=
get_num_dmrs
(
rel15
->
dlDmrsSymbPos
);
uint16_t
nb_re
=
((
12
*
rel15
->
NrOfSymbols
)
-
nb_re_dmrs
*
dmrs_len
-
xOverhead
)
*
rel15
->
rbSize
*
rel15
->
nrOfLayers
;
...
...
@@ -273,7 +278,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
l_prime
=
0
;
}
/// DMRS QPSK modulation
nr_modulation
(
pdsch_dmrs
[
l
][
0
],
n_dmrs
*
2
,
DMRS_MOD_ORDER
,
mod_dmrs
);
// currently only codeword 0 is modulated.
Qm = 2 as DMRS is QPSK modulated
nr_modulation
(
pdsch_dmrs
[
l
][
rel15
->
SCID
],
n_dmrs
*
2
,
DMRS_MOD_ORDER
,
mod_dmrs
);
//
Qm = 2 as DMRS is QPSK modulated
#ifdef DEBUG_DLSCH
printf
(
"DMRS modulation (symbol %d, %d symbols, type %d):
\n
"
,
l
,
n_dmrs
,
dmrs_Type
);
...
...
@@ -294,7 +299,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
if
(
ptrs_symbol
)
{
/* PTRS QPSK Modulation for each OFDM symbol in a slot */
printf
(
"Doing ptrs modulation for symbol %d, n_ptrs %d
\n
"
,
l
,
n_ptrs
);
nr_modulation
(
pdsch_dmrs
[
l
][
0
],
(
n_ptrs
<<
1
),
DMRS_MOD_ORDER
,
mod_ptrs
);
nr_modulation
(
pdsch_dmrs
[
l
][
rel15
->
SCID
],
(
n_ptrs
<<
1
),
DMRS_MOD_ORDER
,
mod_ptrs
);
}
}
uint16_t
k
=
start_sc
;
...
...
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
View file @
ba92e374
...
...
@@ -334,7 +334,6 @@ uint8_t get_nr_prach_duration(uint8_t prach_format);
void
nr_generate_csi_rs
(
PHY_VARS_gNB
*
gNB
,
int16_t
amp
,
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
csi_params
,
uint16_t
cell_id
,
int
slot
);
void
free_nr_prach_entry
(
PHY_VARS_gNB
*
gNB
,
int
prach_id
);
...
...
openair1/PHY/defs_gNB.h
View file @
ba92e374
...
...
@@ -847,6 +847,10 @@ typedef struct PHY_VARS_gNB_s {
/// counter to average prach energh over first 100 prach opportunities
int
prach_energy_counter
;
int
csi_gold_init
;
int
pdcch_gold_init
;
int
pdsch_gold_init
[
2
];
int
pucch0_thres
;
int
pusch_thres
;
int
prach_thres
;
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
ba92e374
...
...
@@ -161,8 +161,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
1
);
nr_generate_dci_top
(
msgTx
,
gNB
->
nr_gold_pdcch_dmrs
[
slot
],
nr_generate_dci_top
(
msgTx
,
slot
,
&
gNB
->
common_vars
.
txdataF
[
0
][
txdataF_offset
],
AMP
,
fp
);
...
...
@@ -181,7 +180,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
if
(
csirs
->
active
==
1
)
{
LOG_D
(
PHY
,
"CSI-RS generation started in frame %d.%d
\n
"
,
frame
,
slot
);
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
csi_params
=
csirs
->
csirs_pdu
.
csi_rs_pdu_rel15
;
nr_generate_csi_rs
(
gNB
,
AMP
,
csi_params
,
gNB
->
gNB_config
.
cell_config
.
phy_cell_id
.
value
,
slot
);
nr_generate_csi_rs
(
gNB
,
AMP
,
csi_params
,
slot
);
csirs
->
active
=
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