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
wangjie
OpenXG-RAN
Commits
8814c2c3
Commit
8814c2c3
authored
Jul 07, 2021
by
dongzhanyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
replace the NR_DL_FRAME_PARMS structure into the NR_DL_FRAME_PARMS structure pointer
parent
2d4e8cc3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
18 deletions
+18
-18
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+17
-17
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+1
-1
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
8814c2c3
...
@@ -70,7 +70,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -70,7 +70,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
NR_DL_FRAME_PARMS
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
)
{
int16_t
mod_dmrs
[
NR_MAX_CSET_DURATION
][
NR_MAX_PDCCH_DMRS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));
// 3 for the max coreset duration
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
;
uint16_t
cset_start_sc
;
...
@@ -85,7 +85,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -85,7 +85,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
// compute rb_offset and n_prb based on frequency allocation
// compute rb_offset and n_prb based on frequency allocation
nr_fill_cce_list
(
gNB
,
0
,
pdcch_pdu_rel15
);
nr_fill_cce_list
(
gNB
,
0
,
pdcch_pdu_rel15
);
get_coreset_rballoc
(
pdcch_pdu_rel15
->
FreqDomainResource
,
&
n_rb
,
&
rb_offset
);
get_coreset_rballoc
(
pdcch_pdu_rel15
->
FreqDomainResource
,
&
n_rb
,
&
rb_offset
);
cset_start_sc
=
frame_parms
.
first_carrier_offset
+
(
pdcch_pdu_rel15
->
BWPStart
+
rb_offset
)
*
NR_NB_SC_PER_RB
;
cset_start_sc
=
frame_parms
->
first_carrier_offset
+
(
pdcch_pdu_rel15
->
BWPStart
+
rb_offset
)
*
NR_NB_SC_PER_RB
;
for
(
int
d
=
0
;
d
<
pdcch_pdu_rel15
->
numDlDci
;
d
++
)
{
for
(
int
d
=
0
;
d
<
pdcch_pdu_rel15
->
numDlDci
;
d
++
)
{
/*The coreset is initialised
/*The coreset is initialised
...
@@ -165,8 +165,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -165,8 +165,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
/// Resource mapping
/// Resource mapping
if
(
cset_start_sc
>=
frame_parms
.
ofdm_symbol_size
)
if
(
cset_start_sc
>=
frame_parms
->
ofdm_symbol_size
)
cset_start_sc
-=
frame_parms
.
ofdm_symbol_size
;
cset_start_sc
-=
frame_parms
->
ofdm_symbol_size
;
// Get cce_list indices by reg_idx in ascending order
// Get cce_list indices by reg_idx in ascending order
int
reg_list_index
=
0
;
int
reg_list_index
=
0
;
...
@@ -191,8 +191,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -191,8 +191,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
k
=
cset_start_sc
+
gNB
->
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
start_sc_idx
;
k
=
cset_start_sc
+
gNB
->
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
start_sc_idx
;
if
(
k
>=
frame_parms
.
ofdm_symbol_size
)
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
.
ofdm_symbol_size
;
k
-=
frame_parms
->
ofdm_symbol_size
;
l
=
cset_start_symb
+
symbol_idx
;
l
=
cset_start_symb
+
symbol_idx
;
...
@@ -206,26 +206,26 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -206,26 +206,26 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
for
(
int
m
=
0
;
m
<
NR_NB_SC_PER_RB
;
m
++
)
{
for
(
int
m
=
0
;
m
<
NR_NB_SC_PER_RB
;
m
++
)
{
if
(
m
==
(
k_prime
<<
2
)
+
1
)
{
// DMRS if not already mapped
if
(
m
==
(
k_prime
<<
2
)
+
1
)
{
// DMRS if not already mapped
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
amp
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
(
amp
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
amp
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
(
amp
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PDCCH_DMRS
#ifdef DEBUG_PDCCH_DMRS
printf
(
"PDCCH DMRS: l %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
],
printf
(
"PDCCH DMRS: l %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
#endif
dmrs_idx
++
;
dmrs_idx
++
;
k_prime
++
;
k_prime
++
;
}
else
{
// DCI payload
}
else
{
// DCI payload
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
amp
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
amp
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
amp
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
(
amp
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_DCI
#ifdef DEBUG_DCI
printf
(
"PDCCH: l %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
],
printf
(
"PDCCH: l %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
#endif
dci_idx
++
;
dci_idx
++
;
...
@@ -233,8 +233,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -233,8 +233,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
k
++
;
k
++
;
if
(
k
>=
frame_parms
.
ofdm_symbol_size
)
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
.
ofdm_symbol_size
;
k
-=
frame_parms
->
ofdm_symbol_size
;
}
// m
}
// m
}
// reg_in_cce_idx
}
// reg_in_cce_idx
...
@@ -254,7 +254,7 @@ void nr_generate_dci_top(PHY_VARS_gNB *gNB,
...
@@ -254,7 +254,7 @@ void nr_generate_dci_top(PHY_VARS_gNB *gNB,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
NR_DL_FRAME_PARMS
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
)
{
AssertFatal
(
pdcch_pdu
!=
NULL
||
ul_dci_pdu
!=
NULL
,
"At least one pointer has to be !NULL
\n
"
);
AssertFatal
(
pdcch_pdu
!=
NULL
||
ul_dci_pdu
!=
NULL
,
"At least one pointer has to be !NULL
\n
"
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
8814c2c3
...
@@ -35,7 +35,7 @@ void nr_generate_dci_top(PHY_VARS_gNB *gNB,
...
@@ -35,7 +35,7 @@ void nr_generate_dci_top(PHY_VARS_gNB *gNB,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
NR_DL_FRAME_PARMS
frame_parms
);
NR_DL_FRAME_PARMS
*
frame_parms
);
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
uint32_t
size
,
uint32_t
size
,
...
...
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