In order to reduce the decoding latency, the sorting for
the next layer can start as soon as the corresponding v-to-c
messages are available. The outputs of Path Constructor-I need
to go through the adder, permutation and multiplication blocks,
and subtractor before the v-to-c messages for the same block
column of for the next layer are computed. In addition, the
path construction has latency, and the outputs of the subtractor
need to be loaded into RAM B1. Hence, the sorting for the
next layer can start five stages after the path construction for
the current layer started. Each stage has a latency of
clock cycles. Path Constructor-II derives the c-to-v messages
for the same layer of the previous decoding iteration. These
messages are subtracted from the permutated and multiplied
a posteriori messages. To avoid adding extra buffers, Path
Constructor-II can start two stages after Path Constructor-I.
In this way, its outputs will arrive at the subtractor at the same
time as the a posteriori messages of the same block column of
. Due to the pipelining latency, by the time that the v-to-c
messages of a block column are computed by the subtractor,
the v-to-c messages of the same block column for the previous
layer stored in RAM A1 have already been read out for the
a posteriori message computation. Hence the newly computed
v-to-c messages can be stored into RAM A1 without loosing
any data. Therefore, a single copy of RAM A is adequate to
hold the v-to-c messages.
During the sorting, RAM E0 and another RAM E are used in
a ping-pong manner to store intermediate results. At the end of
the sorting for a layer, the sorted messages will be located at the
other RAM E. This can be controlled by copying the messages
for the first block column of into either RAM E0 or the other
RAME at the beginning of the sorting, depending on whether
is even or odd. Since the sorted messages need to be stored until
the computation for the same layer in the next decoding iteration
is completed, RAM E blocks are required for sorting
and storing messages for layers. In addition, the sorting for a
layer is carried out at the same time when the c-to-v messages
from the same layer of the previous decoding iteration need to
be recovered by Path Constructor-II. The RAM E holding the