BCH forward error correction decoder
First Claim
1. A method of decoding an error-correction code in a data signal, comprising the steps of:
- receiving the data signal at a decoding unit;
computing a plurality of syndromes associated with the data signal using the decoding unit;
extracting an error polynomial from the data signal, wherein the extracting comprises generating a plurality of minimum-degree polynomials based on no more than six equations using no more than two branch decisions; and
locating errors within the data signal using the error polynomial.
2 Assignments
0 Petitions
Accused Products
Abstract
An OC-192 front-end application-specific integrated circuit (ASIC) de-interleaves an OC-192 signal to create four OC-48 signals, and decodes error-correction codes embedded in each of the four OC-48 signals. The decoder generates a Bose-Chaudhuri-Hocquenghem (BCH) error polynomial in no more than 12 clock cycles. The decoder includes several Galois field multiply accumulators, and a state machine which controls the Galois field units. If the error-correction code is a BCH triple error-correcting code, four Galois field units are used to carry out only six equations to solve the error polynomial. The Galois field units are advantageously designed to complete a Galois field multiply/accumulate operation in a single clock cycle. The Galois field units may operate in multiply or addition pass-through modes.
36 Citations
54 Claims
-
1. A method of decoding an error-correction code in a data signal, comprising the steps of:
-
receiving the data signal at a decoding unit; computing a plurality of syndromes associated with the data signal using the decoding unit; extracting an error polynomial from the data signal, wherein the extracting comprises generating a plurality of minimum-degree polynomials based on no more than six equations using no more than two branch decisions; and locating errors within the data signal using the error polynomial. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of determining an error polynomial for decoding a Bose-Chaudhuri-Hocquenghem (BCH) code, comprising the steps of:
-
computing a plurality of syndromes associated with a data signal having a BCH code embedded therein; feeding the syndromes to a plurality of Galois field multiply accumulators; calculating a plurality of minimum-degree polynomials associated with the BCH code, using the Galois field multiply accumulators; and generating an error polynomial based on the minimum-degree polynomials, said calculating and generating steps extracting the error polynomial in no more than 12 clock cycles. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A circuit for generating an error polynomial of a Bose-Chaudhuri-Hocquenghem (BCH) code, comprising:
-
a plurality of syndrome inputs; a plurality of Galois field multiply accumulators; and means for using said Galois field multiply accumulators to generate an error polynomial by generating a plurality of minimum-degree polynomials based on values provided at said syndrome inputs, by executing no more than six equations with two branch decisions. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A decoder circuit comprising:
-
a plurality of Galois field multiply accumulators; and a state machine programmed to use said Galois field multiply accumulators to generate an error polynomial based on the following six equations;
d0=S1,
(1)
d1=S3+S1S2,
(2)
σ
1(X)=1+S1X,
(3)
if (d1=0) then σ
2(X)=σ
1(X)
else if (d0=0) then σ
2(X)=q0σ
1(X)+d1X3
else σ
2(X)=q0σ
1(X)+d1X2,
(4)
d2=S5σ
0+S4σ
1+S3σ
2+S2σ
3, and
(5)
if (d2=0) then σ
3(X)=σ
2(X)
else σ
3(X)=q1σ
1(X)+d1X3,
(6)where Si are error syndromes, σ
i are minimum-degree polynomials, σ
i are four coefficients for σ
2(X), d0-d2 are correction factors, q0-q1 are additional correction factors, q0 is equal to d0 unless d0 is zero, when q0 is 1, and q1 is equal to d1 unless d1 is zero, when q1=q0.- View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. An OC-192 input/output card comprising:
-
four OC-48 processors; and an OC-192 front-end application-specific integrated circuit (ASIC) connected to said four OC-48 processors, said OC-192 front-end ASIC having means for de-interleaving an OC-192 signal to create four OC-48 signals, and means for decoding error-correction codes embedded in each of the four OC-48 signals, said decoding means including means for generating an error polynomial associated with a given one of the error-correction codes in no more than 12 clock cycles, wherein said decoding means uses a non-iterative algorithm to generate the error polynomial based on a plurality of minimum-degree polynomials. - View Dependent Claims (49, 50, 51, 52, 53, 54)
-
Specification