# US 10,374,633 B2 · Method and system for LDPC decoding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,374,633 B2
- Document ID: US10374633B2
- Status: Granted
- Kind: B2
- Application number: 15/619,764
- Filed: 2017-06-12
- Published: 2018-01-11
- Granted: 2019-08-06
- Earliest claimed: 2016-07-08
- Assignees: MaxLinear, Inc.
- Applicants: Maxlinear, Inc.
- Inventors: Mario Milicevic; Glenn Gulak
- Web page: https://patentgrep.com/patent/US10374633B2

## CPC

- H03M 13/1174: {Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes}
- H03M 13/112: {with correction functions for the min-sum rule, e.g. using an offset or a scaling factor}
- H03M 13/1122: {storing only the first and second minimum values per check node}
- H03M 13/1128: {Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations}
- H03M 13/114: {Shuffled, staggered, layered or turbo decoding schedules}
- H03M 13/116: {Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices}
- H03M 13/3746: {with iterative decoding}
- H03M 13/635: {Error control coding in combination with rate matching}
- H03M 13/6502: {Reduction of hardware complexity or efficient processing}
- H03M 13/6505: {Memory efficient implementations}
- H03M 13/6516: {Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A Low-Density Parity-Check (LDPC) decoder and a method for LDPC decoding are provided. The LDPC decoder receives a soft-decision input codeword block in which the probability of a bit being a “0” or a “1” is represented as a log-likelihood ratio (LLR). During LDPC decoding, a sequence of hardware logic units iteratively updates the soft-decision input codeword block until a valid codeword is found or a maximum number of decoding iterations is reached. Each hardware logic unit comprises a check node (CN) update logic unit and a variable node (VN) update logic unit. The CN update logic units are coupled via a closed CN path, and the VN update logic units are coupled via a closed VN path. Aspects of this LDPC decoder alleviate the global routing and energy efficiency challenges of traditional LDPC decoders, to enable multi-rate, multi-Gb/s decoding without compromising error correction performance in next-generation systems and future CMOS technology nodes.

## Claims

### Claim 1

A method for Low-Density Parity-Check (LDPC) decoding, the method comprising: receiving a soft-decision input codeword block, wherein the probability of a bit being a “0” or a “1” is represented in the soft-decision input codeword block as a log-likelihood ratio (LLR); and iteratively updating the soft-decision input codeword block, by a sequence of hardware logic units, until a valid codeword is found or a maximum number of decoding iterations is reached, wherein each decoding iteration comprises a check node (CN) phase followed by a variable node (VN) phase, and wherein each hardware logic unit of the sequence of hardware logic units is operably coupled to receive input from a first other hardware logic unit of the sequence of hardware logic units and provide output to a second other hardware logic unit of the sequence of hardware logic units, wherein each hardware logic unit of the sequence of hardware logic units operates in series during the CN phase, thereby: generating a CN-to-VN message, generating an intermediate LLR and a VN-to-CN message according to the CN-to-VN message, and storing the VN-to-CN message in a memory for use during the CN phase in a next iteration, wherein each hardware logic unit of the sequence of hardware logic units operates in series during the VN phase, thereby performing a piecewise parity check, such that a final parity value across a plurality of connected VNs is determined by the last hardware logic unit of the sequence of hardware logic units.

### Claim 2 (depends on 1)

The method for LDPC decoding of claim 1, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having at least one all-zero sub-matrix.

### Claim 3 (depends on 2)

The method for LDPC decoding of claim 2, wherein the method comprises bypassing a hardware logic unit according to the placement of the all-zero sub-matrix in the parity-check matrix.

### Claim 4 (depends on 1)

The method for LDPC decoding of claim 1, wherein the method comprises iteratively update the soft-decision input codeword block during the VN phase of each decoding iteration of a plurality of decoding iterations.

### Claim 5 (depends on 1)

The method for LDPC decoding of claim 1, wherein the method comprises propagating a plurality of intermediate CN update values during the CN phase of each decoding iteration of a plurality of decoding iterations.

### Claim 6 (depends on 5)

The method for LDPC decoding of claim 5, wherein the plurality of intermediate CN update values comprises a parity value, a sign value, and at least one minimum magnitude value.

### Claim 7 (depends on 5)

The method for LDPC decoding of claim 5, wherein the method comprises updating the CN-to-VN message according to the plurality of intermediate CN update values.

### Claim 8 (depends on 5)

The method for LDPC decoding of claim 5, wherein the method comprises generating the VN-to-CN message according to the plurality of intermediate CN update values.

### Claim 9 (depends on 1)

The method for LDPC decoding of claim 1, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having a plurality of independent routing layers, wherein the plurality of independent routing layers are processed in parallel by each hardware logic unit of the sequence of hardware logic units.

### Claim 10 (depends on 1)

The method for LDPC decoding of claim 1, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having a plurality of columns, wherein the plurality of columns are processed in parallel by each hardware logic unit of the sequence of hardware logic units.

### Claim 11

A Low-Density Parity-Check (LDPC) decoder, the LDPC decoder comprising: an interface operable to receive a soft-decision input codeword block, wherein the probability of a bit being a “0” or a “1” is represented in the soft-decision input codeword block as a log-likelihood ratio (LLR); a sequence of hardware logic units, each hardware logic unit comprising a check node (CN) update logic unit and a variable node (VN) update logic unit, wherein each hardware logic unit of the sequence of hardware logic units is operably coupled to receive input from a first other hardware logic unit of the sequence of hardware logic units and provide output to a second other hardware logic unit of the sequence of hardware logic units; a closed CN path between the CN update logic unit in each hardware logic unit of the sequence of hardware logic units, wherein the closed CN path is operable to propagate a plurality of intermediate CN update values during a first pass of each decoding iteration of a plurality of decoding iterations; and a closed VN path between the VN update logic unit in each hardware logic unit of the sequence of hardware logic units, wherein each VN update logic unit is operable to iteratively update the soft-decision input codeword block until a valid codeword is found or a maximum number of decoding iterations is reached.

### Claim 12 (depends on 11)

The LDPC decoder of claim 11, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having at least one all-zero sub-matrix.

### Claim 13 (depends on 12)

The LDPC decoder of claim 12, wherein a hardware logic unit corresponding to the all-zero sub-matrix in the parity-check matrix comprises a CN update logic unit with bypass circuitry and a VN update logic unit with bypass circuitry.

### Claim 14 (depends on 11)

The LDPC decoder of claim 11, wherein a CN update logic unit is operable to generate a CN-to-VN message and update an intermediate LLR according to the CN-to-VN message.

### Claim 15 (depends on 11)

The LDPC decoder of claim 11, wherein the VN update logic unit in the last hardware logic unit of the sequence of hardware logic units is operable to determine whether the valid codeword is found based on a piecewise parity check performed via the closed VN path.

### Claim 16 (depends on 15)

The LDPC decoder of claim 15, wherein the CN update logic unit is operable to update a CN-to-VN message according to the plurality of intermediate CN update values.

### Claim 17 (depends on 15)

The LDPC decoder of claim 15, wherein the CN update logic unit is operable to generate a VN-to-CN message according to the plurality of intermediate CN update values.

### Claim 18 (depends on 11)

The LDPC decoder of claim 11, wherein the plurality of intermediate CN update values comprises a parity value, a sign value, and at least one minimum magnitude value.

### Claim 19 (depends on 11)

The LDPC decoder of claim 11, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having a plurality of independent routing layers, wherein each hardware logic unit of the sequence of hardware logic units is operable to process the plurality of independent routing layers in parallel.

### Claim 20 (depends on 11)

The LDPC decoder of claim 11, wherein the soft-decision input codeword block corresponds to an LDPC encoded signal generated from a parity-check matrix having a plurality of columns, wherein each hardware logic unit of the sequence of hardware logic units is operable to process the plurality of columns in parallel.
