# US 10,374,636 B1 · Circuit structure and method for high-speed forward error correction

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

- Number: US 10,374,636 B1
- Document ID: US10374636B1
- Status: Granted
- Kind: B1
- Application number: 15/090,170
- Filed: 2016-04-04
- Granted: 2019-08-06
- Earliest claimed: 2013-04-26
- Assignees: Altera Corporation
- Applicants: Altera Corporation
- Inventors: Haiyun Yang; Martin Langhammer; Peng Li; Divya Vijayaraghavan
- Web page: https://patentgrep.com/patent/US10374636B1

## CPC

- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- H03M 13/05: using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits {(H03M13/2906 takes precedence)}
- H03M 13/136: {Reed-Muller [RM] codes}
- H03M 13/1515: {Reed-Solomon codes}
- H04L 1/004: {by using forward error control (H04L1/0618 takes precedence; coding, decoding or code conversion, for error detection or correction H03M13/00)}
- H04L 1/20: using signal quality detector
- H04L 12/40: Bus networks
- H04L 12/40013: {Details regarding a bus controller}
- H04L 25/14: Channel dividing arrangements {, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver}
- H04L 2001/0094: {Bus}
- 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)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One embodiment relates a method of receiving data from a multi-lane data link. The data is encoded with an FEC code having a block length. The data is FEC encoded at a bus width which is specified within particular constraints. One constraint is that the FEC encoder bus width in bits is an exact multiple of a number of bits per symbol in the data. Another constraint may be that the FEC code block length is an exact multiple of the FEC encoder bus width. Another constraint may be that the FEC encoder bus width is an exact multiple of a number of serial lanes of the multi-lane interface. Other embodiments and features are also disclosed.

## Claims

### Claim 1

A transmitter for a multi-lane data link, the transmitter comprising:
a plurality of physical media attachment circuits for serializing data for a plurality of serial lanes of the multi-lane data link, each physical media attachment circuit receiving the data at a first bus width;
a plurality of gearbox circuits, each gearbox circuit outputting the data at the first bus width and receiving the data at a second bus width, wherein the first bus width is different from the second bus width; and
a forward error correction (FEC) encoder for encoding and outputting the data at a third bus width, wherein the third bus width in bits is a product of the second bus width in bits and a number of the serial lanes of the multi-lane data link, and wherein the data is encoded with an FEC code having a block length,
wherein the third bus width in bits is not an exact multiplier of a number of serial lanes of the multi-lane interface;
wherein the plurality of gearbox circuits comprises an even number N gearbox circuits in parallel, a first group of N/2 gearbox circuits receives a first number n bits on even clock cycles and a second number bits on odd clock cycles, and a second group of N/2 gearbox circuits receives the second number in bits on the odd clock cycles and the first number n bits on the even clock cycles, such that on average the N gearbox circuits receives (n+m)×N/2 bits per input cycle;
wherein the third bus width in bits is an exact multiple of a number of bits per symbol in the data; and
wherein the block length in bits is an exact multiple of the third bus width.

### Claim 2 (depends on 1)

The transmitter of claim 1, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width switches of 43 bits, and the third bus width is 170 bits, and the block length is 5440 bits.

### Claim 3 (depends on 1)

The transmitter of claim 1, wherein the third bus width in bits is an exact multiple of a number of serial lanes of the multi-lane interface.

### Claim 4 (depends on 3)

The transmitter of claim 3, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 40 bits, and the third bus width is 160 bits, and the block length is 5440 bits.

### Claim 5 (depends on 3)

The transmitter of claim 3, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 80 bits, and the third bus width is 320 bits, and the block length is 5440 bits.

### Claim 6 (depends on 3)

The transmitter of claim 3, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 170 bits, and the third bus width is 680 bits, and the block length is 5440 bits.

### Claim 7

A transmitter for a multi-lane data link, the transmitter comprising:
a plurality of physical media attachment circuits for serializing data for a plurality of serial lanes of the multi-lane data link, each physical media attachment circuit receiving the data at a first bus width;
a plurality of gearbox circuits, each gearbox circuit outputting the data at the first bus width and receiving the data at a second bus width, wherein the first bus width is different from the second bus width; and
a forward error correction (FEC) encoder for encoding and outputting the data at a third bus width, wherein the third bus width in bits is a product of the second bus width in bits and a number of the serial lanes of the multi-lane data link, and wherein the data is encoded with an FEC code having a block length,
wherein the third bus width in bits is an exact multiple of a number of bits per symbol in the data, and
wherein the third bus width in bits is an exact multiple of a number of serial lanes of the multi-lane interface.

### Claim 8 (depends on 7)

The transmitter of claim 7, wherein the block length in bits is not an exact multiple of the third bus width.

### Claim 9 (depends on 8)

The transmitter of claim 8, wherein the plurality of gearbox circuits comprises variable gearbox circuits that receives a variable number of symbols per clock cycle.

### Claim 10 (depends on 8)

The transmitter of claim 8, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 45 bits, and the third bus width is 180 bits, and the block length is 5440 bits.

### Claim 11 (depends on 8)

The transmitter of claim 8, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 50 bits, and the third bus width is 200 bits, and the block length is 5440 bits.

### Claim 12 (depends on 8)

The transmitter of claim 8, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 75 bits, and the third bus width is 300 bits, and the block length is 5440 bits.

### Claim 13 (depends on 8)

The transmitter of claim 8, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 90 bits, and the third bus width is 360 bits, and the block length is 5440 bits.

### Claim 14 (depends on 8)

The transmitter of claim 8, wherein the number of bits per symbol is ten, the number of serial lanes of the multi-lane data link is four, the first bus width is 128 bits, the second bus width is 110 bits, and the third bus width is 440 bits, and the block length is 5440 bits.

### Claim 15

A forward error correction (FEC) circuit for a multi-lane interface, the FEC circuit comprising:
an output bus having a bus width;
an FEC encoder for, encoding data received on the output bus, wherein the data is encoded with an FEC code having a block length; and
an input bus for receiving the encoded data from the FEC encoder,
wherein the bus width in bits is an exact multiple of a number of bits per symbol in the data, and
wherein the block length in bits is an exact multiple of the bus width.

### Claim 16 (depends on 15)

The FEC circuit of claim 15, wherein the FEC code comprises a Reed Solomon code.

### Claim 17

A forward error correction (FEC) circuit for a multi-lane interface, the FEC circuit comprising:
an output bus having a bus width;
an FEC encoder for encoding data for output on the output bus, wherein the data is encoded with an FEC code having a block length; and
an input bus for receiving the data for the FEC encoder,
wherein the bus width in bits is an exact multiple of a number of bits per symbol in the data, and
wherein the bus width in bits is an exact multiple of a number of serial lanes of the multi-lane interface.
