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
Michael Black
OpenXG-RAN
Commits
feadb949
Commit
feadb949
authored
Jan 12, 2023
by
Roberto Louro Magueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix stack size limitation for 4-layers DL
parent
ffe13ae5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
41 deletions
+51
-41
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+25
-24
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+9
-9
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+17
-8
No files found.
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
feadb949
...
...
@@ -83,13 +83,13 @@ unsigned char offset_mumimo_llr_drange[29][3]={{8,8,8},{7,7,7},{7,7,7},{7,7,7},{
/* compute H_h_H matrix inversion up to 4x4 matrices */
uint8_t
nr_zero_forcing_rx
(
uint32_t
rx_size
,
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
int32_t
dl_ch_estimates_ext
[][
rx_size
],
unsigned
short
nb_rb
,
unsigned
char
n_rx
,
unsigned
char
n_tx
,
//
number of layer
unsigned
char
n_tx
,
//
number of layer
unsigned
char
mod_order
,
int
shift
,
unsigned
char
symbol
,
...
...
@@ -109,9 +109,9 @@ static int nr_dlsch_llr(uint32_t rx_size,
int16_t
*
layer_llr
[
NR_MAX_NB_LAYERS
],
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
NR_DL_UE_HARQ_t
*
dlsch0_harq
,
NR_DL_UE_HARQ_t
*
dlsch1_harq
,
unsigned
char
harq_pid
,
...
...
@@ -142,9 +142,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
int32_t
dl_ch_estimates_ext
[][
rx_size
],
int32_t
rxdataF_ext
[][
rx_size
],
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
],
uint32_t
llr_offset
[
NR_SYMBOLS_PER_SLOT
],
int32_t
*
log2_maxh
)
...
...
@@ -633,9 +633,9 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
void
nr_dlsch_channel_compensation
(
uint32_t
rx_size
,
int32_t
rxdataF_ext
[][
rx_size
],
int32_t
dl_ch_estimates_ext
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
int32_t
rxdataF_comp
[][
rx_size
],
int
***
rho
,
NR_DL_FRAME_PARMS
*
frame_parms
,
...
...
@@ -1723,14 +1723,15 @@ void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
void
nr_dlsch_detection_mrc
(
uint32_t
rx_size
,
int32_t
rxdataF_comp
[][
rx_size
],
int
***
rho
,
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
short
n_tx
,
short
n_rx
,
unsigned
char
symbol
,
unsigned
short
nb_rb
,
int
length
)
{
int
length
)
{
#if defined(__x86_64__)||defined(__i386__)
unsigned
char
aatx
,
aarx
;
int
i
;
...
...
@@ -2185,13 +2186,13 @@ void nr_conjch0_mult_ch1(int *ch0,
* */
uint8_t
nr_zero_forcing_rx
(
uint32_t
rx_size
,
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
int32_t
dl_ch_estimates_ext
[][
rx_size
],
unsigned
short
nb_rb
,
unsigned
char
n_rx
,
unsigned
char
n_tx
,
//
number of layer
unsigned
char
n_tx
,
//
number of layer
unsigned
char
mod_order
,
int
shift
,
unsigned
char
symbol
,
...
...
@@ -2387,9 +2388,9 @@ static int nr_dlsch_llr(uint32_t rx_size,
int16_t
*
layer_llr
[
NR_MAX_NB_LAYERS
],
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
NR_DL_UE_HARQ_t
*
dlsch0_harq
,
NR_DL_UE_HARQ_t
*
dlsch1_harq
,
unsigned
char
harq_pid
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
feadb949
...
...
@@ -579,9 +579,9 @@ void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
void
nr_dlsch_channel_compensation
(
uint32_t
rx_size
,
int32_t
rxdataF_ext
[][
rx_size
],
int32_t
dl_ch_estimates_ext
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
int32_t
rxdataF_comp
[][
rx_size
],
int
***
rho
,
NR_DL_FRAME_PARMS
*
frame_parms
,
...
...
@@ -625,9 +625,9 @@ void nr_dlsch_channel_level_median(uint32_t rx_size,
void
nr_dlsch_detection_mrc
(
uint32_t
rx_size
,
int32_t
rxdataF_comp
[][
rx_size
],
int
***
rho
,
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
short
n_tx
,
short
n_rx
,
unsigned
char
symbol
,
...
...
@@ -884,9 +884,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
int32_t
dl_ch_estimates_ext
[][
rx_size
],
int32_t
rxdataF_ext
[][
rx_size
],
int32_t
rxdataF_comp
[][
rx_size
],
int32_t
dl_ch_mag
[][
rx_size
]
,
int32_t
dl_ch_magb
[][
rx_size
]
,
int32_t
dl_ch_magr
[][
rx_size
]
,
int32_t
**
dl_ch_mag
,
int32_t
**
dl_ch_magb
,
int32_t
**
dl_ch_magr
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
],
uint32_t
llr_offset
[
NR_SYMBOLS_PER_SLOT
],
int32_t
*
log2_maxh
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
feadb949
...
...
@@ -657,14 +657,14 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
__attribute__
((
aligned
(
32
)))
int32_t
rxdataF_comp
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
rxdataF_comp
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_mag
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
]
;
memset
(
dl_ch_mag
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_magb
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
dl_ch_magb
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
)
);
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_magr
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
]
;
memset
(
dl_ch_magr
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
int32_t
**
dl_ch_mag
=
(
int32_t
**
)
malloc16_clear
(
dlsch0
->
Nl
*
ue
->
frame_parms
.
nb_antennas_rx
*
sizeof
(
int32_t
*
))
;
int32_t
**
dl_ch_magb
=
(
int32_t
**
)
malloc16_clear
(
dlsch0
->
Nl
*
ue
->
frame_parms
.
nb_antennas_rx
*
sizeof
(
int32_t
*
));
int32_t
**
dl_ch_magr
=
(
int32_t
**
)
malloc16_clear
(
dlsch0
->
Nl
*
ue
->
frame_parms
.
nb_antennas_rx
*
sizeof
(
int32_t
*
));
for
(
int
i
=
0
;
i
<
dlsch0
->
Nl
*
ue
->
frame_parms
.
nb_antennas_rx
;
i
++
)
{
dl_ch_mag
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
rx_size
);
dl_ch_magb
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
rx_size
);
dl_ch_magr
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
rx_size
)
;
}
int32_t
log2_maxh
=
0
;
start_meas
(
&
ue
->
rx_pdsch_stats
);
...
...
@@ -724,6 +724,15 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
memcpy
(
ue
->
phy_sim_pdsch_dl_ch_estimates_ext
,
dl_ch_estimates_ext
,
sizeof
(
int32_t
)
*
rx_size
*
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
);
if
(
ue
->
phy_sim_pdsch_dl_ch_estimates
)
memcpy
(
ue
->
phy_sim_pdsch_dl_ch_estimates
,
dl_ch_estimates_ext
,
sizeof
(
int32_t
)
*
rx_size
*
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
);
for
(
int
i
=
0
;
i
<
dlsch0
->
Nl
*
ue
->
frame_parms
.
nb_antennas_rx
;
i
++
)
{
free
(
dl_ch_mag
[
i
]);
free
(
dl_ch_magb
[
i
]);
free
(
dl_ch_magr
[
i
]);
}
free
(
dl_ch_mag
);
free
(
dl_ch_magb
);
free
(
dl_ch_magr
);
}
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