Lattice Semiconductor Reed-Solomon Encoder
2
Figure 2. Illustration of a Systematic Reed-Solomon Encoder
A Reed-Solomon Decoder can correct errors and erasures. The maximum number of correctable erroneous sym-
bols in a codeword is t = (n-k)/2, and the maximum number of correctable erasures in a codeword is t = n-k.
Reed-Solomon codes are based on finite field arithmetic, also known as Galois field. The size of the field is deter-
mined by the width of the information symbol where the field has 2
s
elements. When
n
is less than the maximum
value of 2
s
-1, it is referred to as a
shortened code.
Reed-Solomon codes are characterized by two polynomials: the generator polynomial and the field polynomial.
The field polynomial defines the Galois field where the information and check symbols belong. The generator poly-
nomial determines the check symbol generation, and it is a prime polynomial for all codewords (i.e. all codewords
are exactly divisible by the generator polynomial). Both the field and generator polynomials are user configurable.
Field Polynomial
The field polynomial can be specified as any prime polynomial up to 2
s+1
- 1. The field polynomial is de fined by its
decimal value (f). The decimal value of a field polynomial is given by setting x = 2 in the polynomial and calculating
the result. For example, the polynomial x
2
+ x + 1 in decimal value is 2
2
+ 2 + 1 = 7.
Generator Polynomial
The generator polynomial determines the value of the check symbols. The generator polynomial is defined by the
starting root (gstart) and the root spacing (rootspace). The general form of the generator polynomial is given by:
(1)
Shortened Codes
Shortened codes are defined as any code w ord where
n
is less than 2
s
- 1. For example, RS (204,188) where
s
= 8.
Only the non-zero data is transmitted to the encoder (i.e. 188 in the above example). The encoder then generates
the required check symbol from the non-zero data.
Functional Description
The Reed-Solomon encoder utilizes the Multiplier, Adder, and Remainder arrays to perform finite field arithmetic.
The following section explains the operation of the arrays and the Control block.
Multiplier Array
The Multiplier array performs the Galois field multiplication between the generator coefficients and the addition of
input data and feedback (modulo 2). This multiplication is an optimized multiplication between the generator coeffi-
cients, which are constants, and the input of the multiplier array. This optimization is done during the processing of
the core.
Adder Array
The Adder arra y performs modulo 2 addition on the data from the previous element of the Remainder array and the
result of the corresponding Galois field multiplication from the Multiplier array. The outputs from the Adder arra y are
latched into the Remainder array on each clock cycle.
Reed-Solomon
Encoder
DATA
1
DATA
2
DATA
k
DATA
1
DATA
2
DATA
k
CHECK
1
CHECK
n-k
CHECK
2
k Information Symbols
n-k Check Symbols
s-bits wide
Codeword
= π (x - αrootspace ⋅ (gstart + i))
g(x) n-k-1
i = 0