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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
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 @@
...
@@ -22,7 +22,7 @@
/*!\file nrLDPC_cnProc.h
/*!\file nrLDPC_cnProc.h
* \brief Defines the functions for check node processing
* \brief Defines the functions for check node processing
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \date
30-09-2019
* \version 1.0
* \version 1.0
* \note
* \note
* \warning
* \warning
...
@@ -34,6 +34,7 @@
...
@@ -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.
\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_lut Pointer to decoder LUTs
\param p_procBuf Pointer to processing buffers
\param Z Lifting size
\param Z Lifting size
*/
*/
static
inline
void
nrLDPC_cnProc_BG2
(
t_nrLDPC_lut
*
p_lut
,
t_nrLDPC_procBuf
*
p_procBuf
,
uint16_t
Z
)
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 @@
...
@@ -22,8 +22,8 @@
/*!\file nrLDPC_decoder.c
/*!\file nrLDPC_decoder.c
* \brief Defines the LDPC decoder
* \brief Defines the LDPC decoder
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \date
30-09-2019
* \version
1
.0
* \version
2
.0
* \note
* \note
* \warning
* \warning
*/
*/
...
@@ -222,7 +222,6 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
...
@@ -222,7 +222,6 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
#endif
#endif
#ifdef NR_LDPC_DEBUG_MODE
#ifdef NR_LDPC_DEBUG_MODE
nrLDPC_debug_initBuffer2File
(
nrLDPC_buffers_CN_PROC
);
nrLDPC_debug_writeBuffer2File
(
nrLDPC_buffers_CN_PROC
,
p_procBuf
);
nrLDPC_debug_writeBuffer2File
(
nrLDPC_buffers_CN_PROC
,
p_procBuf
);
#endif
#endif
...
@@ -451,7 +450,6 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
...
@@ -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
);
stop_meas
(
&
p_profiler
->
cnProcPc
);
#endif
#endif
#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
// 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
...
@@ -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
#ifdef NR_LDPC_PROFILER_DETAIL
start_meas
(
&
p_profiler
->
llrRes2llrOut
);
start_meas
(
&
p_profiler
->
llrRes2llrOut
);
#endif
#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
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas
(
&
p_profiler
->
llrRes2llrOut
);
stop_meas
(
&
p_profiler
->
llrRes2llrOut
);
#endif
#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,
...
@@ -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
};
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 */
/** 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
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
#endif
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_lut.h
View file @
72999a10
...
@@ -20,10 +20,10 @@
...
@@ -20,10 +20,10 @@
*/
*/
/*!\file nrLDPC_lut.h
/*!\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>
* \author Sebastian Wagner (TCL Communications) Email: <mailto:sebastian.wagner@tcl.com>
* \date
27-03-2018
* \date
30-09-2019
* \version
1
.0
* \version
2
.0
* \note
* \note
* \warning
* \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 {
...
@@ -46,11 +46,11 @@ typedef struct nrLDPC_lut {
const
uint8_t
*
numBnInBnGroups
;
/**< Number of CNs in every BN group */
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
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
*
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
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
for circular shift values for all CN groups and Z's
*/
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
for circular shift values for all CN groups and Z'
s */
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
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 */
const
uint8_t
**
posBnInCnProcBuf
[
NR_LDPC_NUM_CN_GROUPS_BG1
];
/**< LUT for llr2cnProcBuf */
}
t_nrLDPC_lut
;
}
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