\title{Low Density Parity Check decoder (LDPC) documentation}
\title{Low Density Parity Check decoder (\ldpc) documentation}
\author{}
\begin{document}
...
...
@@ -30,11 +30,7 @@
\chapter{Introduction}
This document describes the Low Density Parity Check decoder (LDPC) of the \Embb processor. Chapter \ref{ch:ug} is the LDPC user guide and presents the decoder
on a purely functional point of view. Chapter \ref{ch:ds} is a technical data sheet describing all the internal details of the hardware architecture. The reader
interested in writing a software application that uses LDPC can skip chapter \ref{ch:ds}: all the information about LDPC features and how to control it are
given in chapter \ref{ch:ug}. The user interested in understanding the underlying hardware architecture will find a comprehensive description in chapter
\ref{ch:ds}.
This document describes the Low Density Parity Check decoder (\ldpc) of the \Embb\ processor. Chapter~\ref{ch:ug} is the \ldpc\ user guide and presents the decoder on a purely functional point of view. Chapter~\ref{ch:ds} is a technical data sheet describing all the internal details of the hardware architecture. The reader interested in writing a software application that uses \ldpc\ can skip chapter~\ref{ch:ds}: all the information about \ldpc\ features and how to control it are given in chapter~\ref{ch:ug}. The user interested in understanding the underlying hardware architecture will find a comprehensive description in chapter~\ref{ch:ds}.
\section*{Revision history}
...
...
@@ -44,15 +40,14 @@ given in chapter \ref{ch:ug}. The user interested in understanding the underlyin
% at http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
%
The original SCMS algorithm, as proposed in~\cite{savin2008self}, is depicted on algorithm~\ref{alg:scms-original}, with the following notations:
The original Self-Corrected Min-Sum (SCMS) decoding algorithm for LDPC codes, as proposed in~\cite{savin2008self}, is depicted on algorithm~\ref{alg:scms-original}, with the following notations:
\begin{itemize}
\item$\Tg$: Tanner graph of LDPC code
...
...
@@ -60,7 +60,11 @@ The original SCMS algorithm, as proposed in~\cite{savin2008self}, is depicted on
\caption{The original SCMS algorithm}\label{alg:scms-original}
\end{algorithm}
Note that algorithm~\ref{alg:scms-original} can be slightly modified to use only posterior information ($\post_n$), initialized with prior information ($\prio_n$) before the first iteration. Line~\ref{alg:scms-original-posterior-update} becomes: $\post_n^{(l)}\leftarrow\post_n^{(l-1)}+\sum\limits_{m\in\Tg(n)}\beta_{m,n}^{(l)}$ with $\post_n^{(0)}=\prio_n$. The impact on decoding performance is negigible but the savings in terms of storage space is significant.
Algorithm~\ref{alg:scms-original} can be slightly modified to use only posterior information ($\post_n$), initialized with prior information ($\prio_n$) before the first iteration. Line~\ref{alg:scms-original-posterior-update} becomes:
with $\post_n^{(0)}=\prio_n$. The impact on decoding performance is negigible but the savings in terms of storage space is significant.
Algorithm~\ref{alg:scms-original} can also be transformed in an equivalent algorithm where the CN-to-VN ($\beta$) and VN-to-CN ($\alpha$) message computations are swapped and their initializations are changed. Algorithm~\ref{alg:scms-modified} illustrates these two modifications.
...
...
@@ -77,7 +81,7 @@ Algorithm~\ref{alg:scms-original} can also be transformed in an equivalent algor
\For{$l =1$ to $l_{max}$}\Comment\ Iterate
\For{$m =0$ to $M-1$}\Comment\ For all rows
\For{$n \in\Tg(m)$}\Comment\ For all active columns in row