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
aab4698f
Commit
aab4698f
authored
Sep 01, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-ldpc' into integration_2024_w35
parents
cbcc5526
97dfa90c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
121 additions
and
138 deletions
+121
-138
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+11
-9
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encode_parity_check.c
...air1/PHY/CODING/nrLDPC_encoder/ldpc_encode_parity_check.c
+107
-126
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim.c
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim.c
+1
-1
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c
+1
-1
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
...1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
+1
-1
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
aab4698f
...
...
@@ -79,17 +79,19 @@
<main_exec>
ldpctest
</main_exec>
<main_exec_args>
-l3872 -s10 -n100
-l4224 -s10 -n100
-l4576 -s10 -n100
-l4928 -s10 -n100
-l5280 -s10 -n100
-l5632 -s10 -n100
-l6336 -s10 -n100
-l7040 -s10 -n100
-l7744 -s10 -n100
-l8448 -s10 -n100
</main_exec_args>
-l4576 -s10 -n100
-l4928 -s10 -n100
-l5280 -s10 -n100
-l5632 -s10 -n100
-l6336 -s10 -n100
-l7040 -s10 -n100
-l7744 -s10 -n100
-l8448 -s10 -n100
-l561 -s10 -n1
-l500 -s10 -n1
</main_exec_args>
<tags>
test1 test2 test3 test4 test5 test6 test7 test8 test9 test10
</tags>
<search_expr_true>
BLER 0.000000
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
|differ
</search_expr_false>
<nruns>
3
</nruns>
</testCase>
...
...
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encode_parity_check.c
View file @
aab4698f
...
...
@@ -85,138 +85,119 @@
#include "ldpc_BG2_Zc80_byte.c"
#include "ldpc_BG2_Zc72_byte.c"
static
void
encode_parity_check_part_optim
(
uint8_t
*
cc
,
uint8_t
*
d
,
short
BG
,
short
Zc
,
short
Kb
,
int
simd_size
,
int
ncols
)
static
void
encode_parity_check_part_optim
(
uint8_t
*
cc
,
uint8_t
*
d
,
short
BG
,
short
Zc
,
short
Kb
,
int
simd_size
,
int
ncols
)
{
unsigned
char
c
[
2
*
22
*
Zc
*
simd_size
]
__attribute__
((
aligned
(
32
)));
//double size matrix of c
for
(
int
i1
=
0
;
i1
<
ncols
;
i1
++
)
{
memcpy
(
&
c
[
2
*
i1
*
Zc
],
&
cc
[
i1
*
Zc
],
Zc
*
sizeof
(
unsigned
char
));
memcpy
(
&
c
[(
2
*
i1
+
1
)
*
Zc
],
&
cc
[
i1
*
Zc
],
Zc
*
sizeof
(
unsigned
char
));
unsigned
char
c
[
2
*
22
*
Zc
*
simd_size
]
__attribute__
((
aligned
(
32
)));
//double size matrix of c
for
(
int
i1
=
0
;
i1
<
ncols
;
i1
++
)
{
memcpy
(
&
c
[
2
*
i1
*
Zc
],
&
cc
[
i1
*
Zc
],
Zc
*
sizeof
(
unsigned
char
));
memcpy
(
&
c
[(
2
*
i1
+
1
)
*
Zc
],
&
cc
[
i1
*
Zc
],
Zc
*
sizeof
(
unsigned
char
));
}
for
(
int
i1
=
1
;
i1
<
simd_size
;
i1
++
)
{
memcpy
(
&
c
[(
2
*
ncols
*
Zc
*
i1
)],
&
c
[
i1
],
(
2
*
ncols
*
Zc
*
sizeof
(
unsigned
char
))
-
i1
);
for
(
int
i1
=
1
;
i1
<
simd_size
;
i1
++
)
{
memcpy
(
&
c
[(
2
*
ncols
*
Zc
*
i1
)],
&
c
[
i1
],
(
2
*
ncols
*
Zc
*
sizeof
(
unsigned
char
))
-
i1
);
}
if
(
BG
==
1
)
{
switch
(
Zc
)
{
case
2
:
break
;
case
3
:
break
;
case
4
:
break
;
case
5
:
break
;
case
6
:
break
;
case
7
:
break
;
case
8
:
break
;
case
9
:
break
;
case
10
:
break
;
case
11
:
break
;
case
12
:
break
;
case
13
:
break
;
case
14
:
break
;
case
15
:
break
;
case
16
:
break
;
case
18
:
break
;
case
20
:
break
;
case
22
:
break
;
case
24
:
break
;
case
26
:
break
;
case
28
:
break
;
case
30
:
break
;
case
32
:
break
;
case
36
:
break
;
case
40
:
break
;
case
44
:
break
;
case
48
:
break
;
case
52
:
break
;
case
56
:
break
;
case
60
:
break
;
case
64
:
break
;
case
72
:
break
;
case
80
:
break
;
case
88
:
break
;
case
96
:
break
;
case
104
:
break
;
case
112
:
break
;
case
120
:
break
;
case
128
:
break
;
case
144
:
break
;
case
160
:
break
;
case
176
:
ldpc176_byte
(
c
,
d
);
break
;
case
192
:
ldpc192_byte
(
c
,
d
);
break
;
case
208
:
ldpc208_byte
(
c
,
d
);
break
;
case
224
:
ldpc224_byte
(
c
,
d
);
break
;
case
240
:
ldpc240_byte
(
c
,
d
);
break
;
case
256
:
ldpc256_byte
(
c
,
d
);
break
;
case
288
:
ldpc288_byte
(
c
,
d
);
break
;
case
320
:
ldpc320_byte
(
c
,
d
);
break
;
case
352
:
ldpc352_byte
(
c
,
d
);
break
;
case
384
:
ldpc384_byte
(
c
,
d
);
break
;
default:
AssertFatal
(
0
,
"BG %d Zc %d is not supported yet
\n
"
,
BG
,
Zc
);
break
;
if
(
BG
==
1
)
{
switch
(
Zc
)
{
case
176
:
ldpc176_byte
(
c
,
d
);
break
;
case
192
:
ldpc192_byte
(
c
,
d
);
break
;
case
208
:
ldpc208_byte
(
c
,
d
);
break
;
case
224
:
ldpc224_byte
(
c
,
d
);
break
;
case
240
:
ldpc240_byte
(
c
,
d
);
break
;
case
256
:
ldpc256_byte
(
c
,
d
);
break
;
case
288
:
ldpc288_byte
(
c
,
d
);
break
;
case
320
:
ldpc320_byte
(
c
,
d
);
break
;
case
352
:
ldpc352_byte
(
c
,
d
);
break
;
case
384
:
ldpc384_byte
(
c
,
d
);
break
;
default:
AssertFatal
(
false
,
"BG %d Zc %d is not supported yet
\n
"
,
BG
,
Zc
);
}
}
else
if
(
BG
==
2
)
{
switch
(
Zc
)
{
case
2
:
break
;
case
3
:
break
;
case
4
:
break
;
case
5
:
break
;
case
6
:
break
;
case
7
:
break
;
case
8
:
break
;
case
9
:
break
;
case
10
:
break
;
case
11
:
break
;
case
12
:
break
;
case
13
:
break
;
case
14
:
break
;
case
15
:
break
;
case
16
:
break
;
case
18
:
break
;
case
20
:
break
;
case
22
:
break
;
case
24
:
break
;
case
26
:
break
;
case
28
:
break
;
case
30
:
break
;
case
32
:
break
;
case
36
:
break
;
case
40
:
break
;
case
44
:
break
;
case
48
:
break
;
case
52
:
break
;
case
56
:
break
;
case
60
:
break
;
case
64
:
break
;
case
72
:
ldpc_BG2_Zc72_byte
(
c
,
d
);
break
;
case
80
:
ldpc_BG2_Zc80_byte
(
c
,
d
);
break
;
case
88
:
ldpc_BG2_Zc88_byte
(
c
,
d
);
break
;
case
96
:
ldpc_BG2_Zc96_byte
(
c
,
d
);
break
;
case
104
:
ldpc_BG2_Zc104_byte
(
c
,
d
);
break
;
case
112
:
ldpc_BG2_Zc112_byte
(
c
,
d
);
break
;
case
120
:
ldpc_BG2_Zc120_byte
(
c
,
d
);
break
;
case
128
:
ldpc_BG2_Zc128_byte
(
c
,
d
);
break
;
case
144
:
ldpc_BG2_Zc144_byte
(
c
,
d
);
break
;
case
160
:
ldpc_BG2_Zc160_byte
(
c
,
d
);
break
;
case
176
:
ldpc_BG2_Zc176_byte
(
c
,
d
);
break
;
case
192
:
ldpc_BG2_Zc192_byte
(
c
,
d
);
break
;
case
208
:
ldpc_BG2_Zc208_byte
(
c
,
d
);
break
;
case
224
:
ldpc_BG2_Zc224_byte
(
c
,
d
);
break
;
case
240
:
ldpc_BG2_Zc240_byte
(
c
,
d
);
break
;
case
256
:
ldpc_BG2_Zc256_byte
(
c
,
d
);
break
;
case
288
:
ldpc_BG2_Zc288_byte
(
c
,
d
);
break
;
case
320
:
ldpc_BG2_Zc320_byte
(
c
,
d
);
break
;
case
352
:
ldpc_BG2_Zc352_byte
(
c
,
d
);
break
;
case
384
:
ldpc_BG2_Zc384_byte
(
c
,
d
);
break
;
default:
AssertFatal
(
0
,
"BG %d Zc %d is not supported yet
\n
"
,
BG
,
Zc
);
break
;
}
else
if
(
BG
==
2
)
{
switch
(
Zc
)
{
case
72
:
ldpc_BG2_Zc72_byte
(
c
,
d
);
break
;
case
80
:
ldpc_BG2_Zc80_byte
(
c
,
d
);
break
;
case
88
:
ldpc_BG2_Zc88_byte
(
c
,
d
);
break
;
case
96
:
ldpc_BG2_Zc96_byte
(
c
,
d
);
break
;
case
104
:
ldpc_BG2_Zc104_byte
(
c
,
d
);
break
;
case
112
:
ldpc_BG2_Zc112_byte
(
c
,
d
);
break
;
case
120
:
ldpc_BG2_Zc120_byte
(
c
,
d
);
break
;
case
128
:
ldpc_BG2_Zc128_byte
(
c
,
d
);
break
;
case
144
:
ldpc_BG2_Zc144_byte
(
c
,
d
);
break
;
case
160
:
ldpc_BG2_Zc160_byte
(
c
,
d
);
break
;
case
176
:
ldpc_BG2_Zc176_byte
(
c
,
d
);
break
;
case
192
:
ldpc_BG2_Zc192_byte
(
c
,
d
);
break
;
case
208
:
ldpc_BG2_Zc208_byte
(
c
,
d
);
break
;
case
224
:
ldpc_BG2_Zc224_byte
(
c
,
d
);
break
;
case
240
:
ldpc_BG2_Zc240_byte
(
c
,
d
);
break
;
case
256
:
ldpc_BG2_Zc256_byte
(
c
,
d
);
break
;
case
288
:
ldpc_BG2_Zc288_byte
(
c
,
d
);
break
;
case
320
:
ldpc_BG2_Zc320_byte
(
c
,
d
);
break
;
case
352
:
ldpc_BG2_Zc352_byte
(
c
,
d
);
break
;
case
384
:
ldpc_BG2_Zc384_byte
(
c
,
d
);
break
;
default:
AssertFatal
(
false
,
"BG %d Zc %d is not supported yet
\n
"
,
BG
,
Zc
);
}
}
else
{
AssertFatal
(
0
,
"BG %d is not supported yet
\n
"
,
BG
);
}
}
else
AssertFatal
(
false
,
"BG %d is not supported
\n
"
,
BG
);
}
...
...
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim.c
View file @
aab4698f
...
...
@@ -101,7 +101,7 @@ int LDPCencoder(uint8_t **test_input, uint8_t **channel_input, encoder_implempar
if
(
impp
->
tinput
!=
NULL
)
stop_meas
(
impp
->
tinput
);
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
64
))
{
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
72
))
{
// extend matrix
if
(
impp
->
tprep
!=
NULL
)
start_meas
(
impp
->
tprep
);
if
(
impp
->
tprep
!=
NULL
)
stop_meas
(
impp
->
tprep
);
...
...
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c
View file @
aab4698f
...
...
@@ -143,7 +143,7 @@ int LDPCencoder(uint8_t **test_input, uint8_t **channel_input, encoder_implempar
if
(
impp
->
tinput
!=
NULL
)
stop_meas
(
impp
->
tinput
);
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
64
))
{
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
72
))
{
// extend matrix
if
(
impp
->
tprep
!=
NULL
)
start_meas
(
impp
->
tprep
);
if
(
impp
->
tprep
!=
NULL
)
stop_meas
(
impp
->
tprep
);
...
...
openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
View file @
aab4698f
...
...
@@ -151,7 +151,7 @@ int LDPCencoder(uint8_t **input, uint8_t **output, encoder_implemparams_t *impp)
if
(
impp
->
tinput
!=
NULL
)
stop_meas
(
impp
->
tinput
);
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
64
))
{
if
((
BG
==
1
&&
Zc
>=
176
)
||
(
BG
==
2
&&
Zc
>=
72
))
{
// extend matrix
if
(
impp
->
tprep
!=
NULL
)
start_meas
(
impp
->
tprep
);
if
(
impp
->
tprep
!=
NULL
)
stop_meas
(
impp
->
tprep
);
...
...
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