LDPC Peak Throughput - 1.1 English

Soft-Decision FEC Integrated Block LogiCORE IP Product Guide (PG256)

Document ID
PG256
Release Date
2022-10-19
Version
1.1 English
Note: The encoder calculation is the same as the decoder calculation with Niter set to 1.

Throughput is code-specific and depends on a number of factors including data dependences in the code. However, peak throughput of the LDPC decoder (measured for information bits at the output) for P = 128, is given by:



  • fcore_clk is the core clock frequency.
  • Niter is the number of iterations performed.
  • avg(DV) is the average variable node degree of the code (total number of circulants in the parity check matrix divided by the number of columns; in effect, the number of circulants per bit of the codeword).

The factor of 128 in the given equation is associated with the level of parallelism implemented in the SD-FEC core (128 check-node and variable node processors are implemented).

The given throughput equation assumes no data dependencies arising from the code, and that P is a multiple of 128. If P is not a multiple of 128, then there is under-utilization of the decoder processing resources, and throughput degrades by a factor of P/(128×MV) where .

For example, if P = 360, then

Therefore actual throughput = peak throughput × 360/384.

Input, decoding, and output are pipelined, and for small blocks there is sufficient memory to hold multiple blocks. When there is sufficient memory available, the core interleaves multiple blocks during encode/decode to hide data dependencies.

For codes where W>1, operations are added for each circulant in a sub-matrix where W>1, and consequently throughput is reduced. (For example, for one codeword with two sub-matrices containing two circulants each, four additional operations are required). There are also further data dependencies which might require greater codeword interleaving to hide (where memory allows). Throughput might also be limited for large block sizes, because the opportunity to overlap decoding with I/O is reduced by memory limitations.