methods proposed in [15], the matrix of a QCNB-LDPC code
over can be divided into sub-matrices of dimension
. Accordingly, it can be divided into layers,
and the computation for rowsof are carried out at a time.
The top level architecture of our proposed partial-parallel
QCNB-LDPC decoder is shown in Fig. 5. Three types of RAM
blocks are used in this architecture. Each copy of RAM A
is capable of storing messages for each of the
variable nodes. Hence its size is
bits. It consists of two parts: one for LLRs and one for corresponding
finite field elements. In our design, the computations
for one block column ( columns) of are carried out at
a time. Accordingly, each part of RAM A is divided into
individual RAMs to enable simultaneous access of necessary
messages. Each RAM B has two sub-blocks. Each sub-block is
of similar architecture to RAM A, except that it can only store
the messages for a single block column of . Therefore, the
size of a RAM B is bits. The RAM
E blocks inside the sorters serve the same purpose as the RAM
S blocks in Fig. 3. copies of the sorters are employed in
the decoder to process one layer of at a time. Hence, each
RAM E consists of copies of RAM S and its size is
bits. The size, data
width, memory depth and memory block number for each type
of RAMs used in our decoder are summarized in Table I.
At the beginning of the decoding, the channel information is
loaded into RAM A0, and is used as the v-to-c messages for the
first layer in the first decoding iteration. The permutation block
in Fig. 5 is composed of barrel shifters. It routes messages for
check node processing according to the locations of the nonzero
entries of . In addition, the multiplications of the finite field
elements of the messages by the corresponding nonzero entries
of are carried out in the multiplication block. After that, the
messages are buffered by RAM B1. One sub-block of RAM B1
serves as the v-to-c message RAM to the sorters, while the other
methods proposed in [15], the matrix of a QCNB-LDPC code
over can be divided into sub-matrices of dimension
. Accordingly, it can be divided into layers,
and the computation for rowsof are carried out at a time.
The top level architecture of our proposed partial-parallel
QCNB-LDPC decoder is shown in Fig. 5. Three types of RAM
blocks are used in this architecture. Each copy of RAM A
is capable of storing messages for each of the
variable nodes. Hence its size is
bits. It consists of two parts: one for LLRs and one for corresponding
finite field elements. In our design, the computations
for one block column ( columns) of are carried out at
a time. Accordingly, each part of RAM A is divided into
individual RAMs to enable simultaneous access of necessary
messages. Each RAM B has two sub-blocks. Each sub-block is
of similar architecture to RAM A, except that it can only store
the messages for a single block column of . Therefore, the
size of a RAM B is bits. The RAM
E blocks inside the sorters serve the same purpose as the RAM
S blocks in Fig. 3. copies of the sorters are employed in
the decoder to process one layer of at a time. Hence, each
RAM E consists of copies of RAM S and its size is
bits. The size, data
width, memory depth and memory block number for each type
of RAMs used in our decoder are summarized in Table I.
At the beginning of the decoding, the channel information is
loaded into RAM A0, and is used as the v-to-c messages for the
first layer in the first decoding iteration. The permutation block
in Fig. 5 is composed of barrel shifters. It routes messages for
check node processing according to the locations of the nonzero
entries of . In addition, the multiplications of the finite field
elements of the messages by the corresponding nonzero entries
of are carried out in the multiplication block. After that, the
messages are buffered by RAM B1. One sub-block of RAM B1
serves as the v-to-c message RAM to the sorters, while the other
การแปล กรุณารอสักครู่..