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
ee2b9a32
Commit
ee2b9a32
authored
Oct 05, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/ldpc-coderate-round-fix' into integration_2022_wk40
parents
626e700c
d5cdf6d3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
66 additions
and
42 deletions
+66
-42
ci-scripts/datalog_rt_stats.1x1.60.yaml
ci-scripts/datalog_rt_stats.1x1.60.yaml
+4
-4
ci-scripts/datalog_rt_stats.default.yaml
ci-scripts/datalog_rt_stats.default.yaml
+4
-4
openair1/PHY/CODING/coding_defs.h
openair1/PHY/CODING/coding_defs.h
+7
-0
openair1/PHY/CODING/nr_rate_matching.c
openair1/PHY/CODING/nr_rate_matching.c
+33
-0
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+6
-18
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+6
-16
openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
+3
-0
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+3
-0
No files found.
ci-scripts/datalog_rt_stats.1x1.60.yaml
View file @
ee2b9a32
...
...
@@ -13,12 +13,12 @@ Ref :
feptx_total
:
59.0
L1 Tx processing
:
210.0
DLSCH encoding
:
129.0
L1 Rx processing
:
287
.0
L1 Rx processing
:
359
.0
PUSCH inner-receiver
:
166.0
PUSCH decoding
:
176
.0
Schedule Response
:
4
2.0
PUSCH decoding
:
270
.0
Schedule Response
:
5
2.0
DL & UL scheduling timing
:
13.0
UL Indication
:
5
5.0
UL Indication
:
6
5.0
Threshold
:
feprx
:
1.25
feptx_prec
:
1.25
...
...
ci-scripts/datalog_rt_stats.default.yaml
View file @
ee2b9a32
...
...
@@ -13,12 +13,12 @@ Ref :
feptx_total
:
62.0
L1 Tx processing
:
170.0
DLSCH encoding
:
118.0
L1 Rx processing
:
2
23
.0
L1 Rx processing
:
2
75
.0
PUSCH inner-receiver
:
107.0
PUSCH decoding
:
170
.0
Schedule Response
:
15
.0
PUSCH decoding
:
246
.0
Schedule Response
:
22
.0
DL & UL scheduling timing
:
10.0
UL Indication
:
27
.0
UL Indication
:
34
.0
Threshold
:
feprx
:
1.25
feptx_prec
:
1.25
...
...
openair1/PHY/CODING/coding_defs.h
View file @
ee2b9a32
...
...
@@ -472,6 +472,13 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f);
void
nr_deinterleaving_ldpc
(
uint32_t
E
,
uint8_t
Qm
,
int16_t
*
e
,
int16_t
*
f
);
int
nr_get_R_ldpc_decoder
(
int
rvidx
,
int
E
,
int
BG
,
int
Z
,
int
*
llrLen
,
int
round
);
int
nr_rate_matching_ldpc
(
uint32_t
Tbslbrm
,
uint8_t
BG
,
uint16_t
Z
,
...
...
openair1/PHY/CODING/nr_rate_matching.c
View file @
ee2b9a32
...
...
@@ -386,6 +386,39 @@ void nr_deinterleaving_ldpc(uint32_t E, uint8_t Qm, int16_t *e,int16_t *f)
}
int
nr_get_R_ldpc_decoder
(
int
rvidx
,
int
E
,
int
BG
,
int
Z
,
int
*
llrLen
,
int
round
)
{
AssertFatal
(
BG
==
1
||
BG
==
2
,
"Unknown BG %d
\n
"
,
BG
);
int
Ncb
=
(
BG
==
1
)
?
(
66
*
Z
)
:
(
50
*
Z
);
int
infoBits
=
(
index_k0
[
BG
-
1
][
rvidx
]
*
Z
+
E
);
if
(
round
==
0
)
*
llrLen
=
infoBits
;
if
(
infoBits
>
Ncb
)
infoBits
=
Ncb
;
if
(
infoBits
>
*
llrLen
)
*
llrLen
=
infoBits
;
int
sysBits
=
(
BG
==
1
)
?
(
22
*
Z
)
:
(
10
*
Z
);
float
decoderR
=
(
float
)
sysBits
/
(
infoBits
+
2
*
Z
);
if
(
BG
==
2
)
if
(
decoderR
<
0
.
3333
)
return
15
;
else
if
(
decoderR
<
0
.
6667
)
return
13
;
else
return
23
;
else
if
(
decoderR
<
0
.
6667
)
return
13
;
else
if
(
decoderR
<
0
.
8889
)
return
23
;
else
return
89
;
}
int
nr_rate_matching_ldpc
(
uint32_t
Tbslbrm
,
uint8_t
BG
,
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
ee2b9a32
...
...
@@ -234,6 +234,12 @@ void nr_processULSegment(void* arg) {
short
*
ulsch_llr
=
rdata
->
ulsch_llr
;
int
max_ldpc_iterations
=
p_decoderParms
->
numMaxIter
;
int8_t
llrProcBuf
[
OAI_UL_LDPC_MAX_NUM_LLR
]
__attribute__
((
aligned
(
32
)));
p_decoderParms
->
R
=
nr_get_R_ldpc_decoder
(
rv_index
,
E
,
p_decoderParms
->
BG
,
p_decoderParms
->
Z
,
&
ulsch_harq
->
llrLen
,
ulsch_harq
->
round
);
int16_t
z
[
68
*
384
+
16
]
__attribute__
((
aligned
(
16
)));
int8_t
l
[
68
*
384
+
16
]
__attribute__
((
aligned
(
16
)));
...
...
@@ -465,26 +471,8 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
int
kc
;
if
(
p_decParams
->
BG
==
2
){
kc
=
52
;
if
(
Coderate
<
0
.
3333
)
{
p_decParams
->
R
=
15
;
}
else
if
(
Coderate
<
0
.
6667
)
{
p_decParams
->
R
=
13
;
}
else
{
p_decParams
->
R
=
23
;
}
}
else
{
kc
=
68
;
if
(
Coderate
<
0
.
6667
)
{
p_decParams
->
R
=
13
;
}
else
if
(
Coderate
<
0
.
8889
)
{
p_decParams
->
R
=
23
;
}
else
{
p_decParams
->
R
=
89
;
}
}
NR_gNB_SCH_STATS_t
*
stats
=
NULL
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
ee2b9a32
...
...
@@ -251,6 +251,12 @@ void nr_processDLSegment(void* arg) {
short
*
dlsch_llr
=
rdata
->
dlsch_llr
;
rdata
->
decodeIterations
=
dlsch
->
max_ldpc_iterations
+
1
;
int8_t
llrProcBuf
[
OAI_UL_LDPC_MAX_NUM_LLR
]
__attribute__
((
aligned
(
32
)));
p_decoderParms
->
R
=
nr_get_R_ldpc_decoder
(
rdata
->
rv_index
,
E
,
p_decoderParms
->
BG
,
p_decoderParms
->
Z
,
&
harq_process
->
llrLen
,
harq_process
->
DLround
);
int16_t
z
[
68
*
384
+
16
]
__attribute__
((
aligned
(
16
)));
int8_t
l
[
68
*
384
+
16
]
__attribute__
((
aligned
(
16
)));
...
...
@@ -476,25 +482,9 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
if
((
A
<=
292
)
||
((
A
<=
NR_MAX_PDSCH_TBS
)
&&
(
Coderate
<=
0
.
6667
))
||
Coderate
<=
0
.
25
)
{
p_decParams
->
BG
=
2
;
kc
=
52
;
if
(
Coderate
<
0
.
3333
)
{
p_decParams
->
R
=
15
;
}
else
if
(
Coderate
<
0
.
6667
)
{
p_decParams
->
R
=
13
;
}
else
{
p_decParams
->
R
=
23
;
}
}
else
{
p_decParams
->
BG
=
1
;
kc
=
68
;
if
(
Coderate
<
0
.
6667
)
{
p_decParams
->
R
=
13
;
}
else
if
(
Coderate
<
0
.
8889
)
{
p_decParams
->
R
=
23
;
}
else
{
p_decParams
->
R
=
89
;
}
}
if
(
harq_process
->
first_rx
==
1
)
{
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
View file @
ee2b9a32
...
...
@@ -259,6 +259,9 @@ typedef struct {
uint16_t
dlDmrsScramblingId
;
/// PDU BITMAP
uint16_t
pduBitmap
;
/// Last index of LLR buffer that contains information.
/// Used for computing LDPC decoder R
int
llrLen
;
}
NR_DL_UE_HARQ_t
;
typedef
struct
{
...
...
openair1/PHY/defs_gNB.h
View file @
ee2b9a32
...
...
@@ -342,6 +342,9 @@ typedef struct {
int16_t
q_RI
[
MAX_RI_PAYLOAD
];
/// Temporary h sequence to flag PUSCH_x/PUSCH_y symbols which are not scrambled
uint8_t
h
[
MAX_NUM_CHANNEL_BITS
];
/// Last index of LLR buffer that contains information.
/// Used for computing LDPC decoder R
int
llrLen
;
//////////////////////////////////////////////////////////////
}
NR_UL_gNB_HARQ_t
;
...
...
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