A low density parity check (LDPC) code that is particularly well adapted
for hardware implementation of a belief propagation decoder circuit is
disclose& The LDPC code is arranged as a macro matrix (H) whose rows and
columns represent block columns and block rows of a corresponding parity
check matrix (H.sub.pc). Each non-zero entry corresponds to a permutation
matrix, such as a cyclically shifted identity matrix, with the shift
corresponding to the position of the permutation matrix entry in the
macro matrix. The block columns of the macro matrix are grouped, so that
only one column in the macro matrix group contributes to the parity check
sum in any given row. The decoder circuitry includes a parity check value
estimate memory which may be arranged in banks that can be logically
connected in various data widths and depths. A parallel adder generates
extrinsic estimates that are applied to parity check update circuitry for
generating new parity check value estimates. These parity check value
estimates are stored back into the memory, and are forwarded to bit
update circuits for updating of probability values for the input nodes.
Variations including parallelism, time-sequencing of ultrawide parity
check rows, and pairing of circuitry to handle ultrawide code rows, are
also disclosed.