A decoding system decodes forward error correction (FEC) encoded data.
Factor graph circuitry (such as trellis decoder circuitry) processes the
FEC encoded data according to at least one factor graph. Order restoring
circuitry (such as convolutional deinterleaver circuitry) is coupled to
an output of the factor graph circuitry and restores ordering of symbols
in the encoded data. Error detection and correction circuitry is coupled
to an output of the order restoring circuitry and processes block-based
error correcting codes to detect and correct errors in the FEC encoded
data and to provide a hard-decision output to an output of the decoding
system. Feedback circuitry (such as convolutional interleaver circuitry
and symbol interleaver circuitry) is coupled to process the hard-decision
output from the error correction and detection circuitry and to provide
the processed hard-decision output to the factor graph circuitry.