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
72999a10
Commit
72999a10
authored
Sep 30, 2019
by
sebastian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clean up and documentation
parent
6f351c3d
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
138 additions
and
244 deletions
+138
-244
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf
+0
-0
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
+48
-29
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
+6
-138
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
+2
-1
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
+3
-5
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_defs.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_defs.h
+0
-1
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut.h
+3
-3
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
+72
-63
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
+4
-4
No files found.
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.pdf
View file @
72999a10
No preview for this file type
openair1/PHY/CODING/nrLDPC_decoder/doc/nrLDPC/nrLDPC.tex
View file @
72999a10
This diff is collapsed.
Click to expand it.
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h
View file @
72999a10
This diff is collapsed.
Click to expand it.
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
View file @
72999a10
...
...
@@ -22,7 +22,7 @@
/*!\file nrLDPC_cnProc.h
* \brief Defines the functions for check node processing
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \date
30-09-2019
* \version 1.0
* \note
* \warning
...
...
@@ -34,6 +34,7 @@
/**
\brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer.
\param p_lut Pointer to decoder LUTs
\param p_procBuf Pointer to processing buffers
\param Z Lifting size
*/
static
inline
void
nrLDPC_cnProc_BG2
(
t_nrLDPC_lut
*
p_lut
,
t_nrLDPC_procBuf
*
p_procBuf
,
uint16_t
Z
)
...
...
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
View file @
72999a10
...
...
@@ -22,8 +22,8 @@
/*!\file nrLDPC_decoder.c
* \brief Defines the LDPC decoder
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \version
1
.0
* \date
30-09-2019
* \version
2
.0
* \note
* \warning
*/
...
...
@@ -222,7 +222,6 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
#endif
#ifdef NR_LDPC_DEBUG_MODE
nrLDPC_debug_initBuffer2File
(
nrLDPC_buffers_CN_PROC
);
nrLDPC_debug_writeBuffer2File
(
nrLDPC_buffers_CN_PROC
,
p_procBuf
);
#endif
...
...
@@ -451,7 +450,6 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
stop_meas
(
&
p_profiler
->
cnProcPc
);
#endif
#endif
//mexPrintf("End Last Iter: i=%d, numMaxIter=%d, pcRes = %d\n",i,numMaxIter,pcRes);
}
// If maximum number of iterations reached an PC still fails increase number of iterations
...
...
@@ -468,7 +466,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
#ifdef NR_LDPC_PROFILER_DETAIL
start_meas
(
&
p_profiler
->
llrRes2llrOut
);
#endif
nrLDPC_llrRes2llrOut
(
p_lut
,
p_llrOut
,
p_procBuf
,
numLLR
,
Z
,
BG
);
nrLDPC_llrRes2llrOut
(
p_lut
,
p_llrOut
,
p_procBuf
,
Z
,
BG
);
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas
(
&
p_profiler
->
llrRes2llrOut
);
#endif
...
...
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_defs.h
View file @
72999a10
...
...
@@ -197,6 +197,5 @@ static const int8_t ones256_epi8[32] __attribute__ ((aligned(32))) = {1,1,1,1,1,
static
const
int8_t
zeros256_epi8
[
32
]
__attribute__
((
aligned
(
32
)))
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
/** Vector of 32 '127' in int8 for application with AVX2 */
static
const
int8_t
maxLLR256_epi8
[
32
]
__attribute__
((
aligned
(
32
)))
=
{
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
,
127
};
static
const
int8_t
minLLR256_epi8
[
32
]
__attribute__
((
aligned
(
32
)))
=
{
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
,
-
127
};
#endif
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut.h
View file @
72999a10
...
...
@@ -20,10 +20,10 @@
*/
/*!\file nrLDPC_lut.h
* \brief Header file
load
ing all look-up tables
* \brief Header file
defin
ing all look-up tables
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \version
1
.0
* \date
30-09-2019
* \version
2
.0
* \note
* \warning
*/
...
...
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
View file @
72999a10
This diff is collapsed.
Click to expand it.
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
View file @
72999a10
...
...
@@ -46,11 +46,11 @@ typedef struct nrLDPC_lut {
const
uint8_t
*
numBnInBnGroups
;
/**< Number of CNs in every BN group */
const
uint32_t
*
startAddrBnGroups
;
/**< Start addresses for BN groups in BN processing buffer */
const
uint16_t
*
startAddrBnGroupsLlr
;
/**< Start addresses for BN groups in LLR processing buffer */
const
uint16_t
**
circShift
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for circular shift values for all CN groups and Z
'
s */
const
uint32_t
**
startAddrBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT
for circular shift values for all CN groups and Z's
*/
const
uint8_t
**
bnPosBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT
for circular shift values for all CN groups and Z'
s */
const
uint16_t
**
circShift
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for circular shift values for all CN groups and Zs */
const
uint32_t
**
startAddrBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT
of start addresses of CN groups in BN proc buffer
*/
const
uint8_t
**
bnPosBnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT
of BN positions in BG for CN group
s */
const
uint16_t
*
llr2llrProcBufAddr
;
/**< LUT for transferring input LLRs to LLR processing buffer */
const
uint8_t
*
llr2llrProcBufBnPos
;
/**< LUT
for transferring input LLRs to LLR processing buffer
*/
const
uint8_t
*
llr2llrProcBufBnPos
;
/**< LUT
BN position in BG
*/
const
uint8_t
**
posBnInCnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for llr2cnProcBuf */
}
t_nrLDPC_lut
;
...
...
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