2) Path Constructor: Fig. 4 illustrates the path construction
architecture that implements Algorithm B. The sorted
v-to-c messages are read from RAM S one at a time, starting
from the first one, which has the smallest nonzero LLR. During
the path construction for computing , , the index of
the variable node that the message belongs to, is first compared
with in the comparator block. This block can be implemented
by XOR gates and a -input OR gate. If it outputs
“0”, the message read out is from variable node , and thus
should not be included in the path construction. Otherwise,
is passed to the decoder to generate a -bit binary vector, in
which only the th bit is “1”. The bit test block in Fig. 4 carries
out bit-wise AND on this vector and . Then the outputs
of the AND gates are passed to a -input NOR gate. Hence, the
bit test block outputs “1” when . The in Algorithm
B is computed by the two finite field adders in Fig. 4.
The two multiplexors are added to enable the computation of
at the initialization. In addition, when is inserted into
the vector, it is also copied to the first-in-first-out (FIFO)
buffer consisting of serially concatenated registers. In this way,
each element in can be simultaneously compared with the
newly computed in the GF comparator to test if . The
GF comparator outputs “1” when equals none of the elements
in the FIFO. When the comparator, bit test and GF comparator
all output “1”, the load signal at the output of the AND gate in the
bottom right corner of Fig. 4 is asserted. Accordingly, and the
read from RAM S are loaded into the and memories,
respectively. In addition, the vector for the new path is generated
by the bit-wise OR gates, and loaded into the memory.
Using the proposed CNU architecture, only sorted
v-to-c messages need to be stored for each check node. Compared
to storing intermediate messages for each of the
forward and backward processes, the memory requirement has