SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1607 | P a g e
Design and Implementation of FPGA System to Reduce Reed-
Solomon Errors
Md. Taj1
, P Srinivas2
, S. Nagaraju3
1
Dept.of ECE Nimra College of Engineering & Technology, Jupudi, Vijayawada-India.
2
Assistant Professor Dept.of ECE Nimra College of Engineering & Technology, Vijayawada, India.
3
Assistant Professor Dept.of ECE VLITS Vadlamdui Guntur, India.
ABSTRACT
The data reliability has become an
important issue in most communication and storage
systems for high speed operation and mass data
process. Various error correction code are provided
for improving data reliability. A Reed-Solomon code
is quite suitable for burst errors, but in case of
random errors, it has some difficulty. For MLC
NAND flash memories, Bose- Chaudhuri-
Hocquenghem (BCH) codes are frequently used.
BCH codes provide flexible code length and
variable range of error correcting capability.
However, NAND flash memory systems process with
the large size of data such as a page or a block unit.
Hence, BCH codes may not be appropriate for a
NAND flash controller.
We propose product Reed- Solomon (RS) code for
non-volatile NAND flash memory systems. Reed-
Solomon codes are the most diversely used in data
storage systems, but powerful for burst errors only.
In order to correct multiple random errors and
burst errors, another efficient decoding algorithm is
required. The product code composing of column-
wise Reed-Solomon codes and row-wise Reed-
Solomon codes may allow decoding multiple errors
beyond their error correction capability. The
proposed code consists of two shortened Reed-
Solomon codes and a conventional Reed- Solomon
code. We implement the proposed coding scheme on
a FPGA-based simulator with using an FPGA
device. The proposed code can correct 16 symbol
errors.
KEY WORDS: Bose-Chaudhuri-Hocquenghem
(BCH), Reed-Solomon codes, Berlekamp-Massey
Algorithm, flipped, Euclid's Algorithm, mass data
process, decoding, FPGA-based simulator, NAND
flash controller, and Altera.
I. INTRODUCTION
The data reliability has become an important
issue in most communication and storage systems for
high speed operation and mass data process. Various
error correction code are provided for improving data
reliability. A Reed-Solomon code is quite suitable for
burst errors, but in case of random errors, it has some
difficulty. For MLC NAND flash memories, Bose-
Chaudhuri-Hocquenghem (BCH) codes are
frequently used. BCH codes provide flexible code
length and variable range of error correcting
capability. However, NAND flash memory systems
process with the large size of data such as a page or a
block unit. Hence, BCH codes may not be
appropriate for a NAND flash controller.
The Reed- Solomon (RS) code for non-
volatile NAND flash memory systems. Reed-
Solomon codes are the most diversely used in data
storage systems, but powerful for burst errors only. In
order to correct multiple random errors and burst
errors, another efficient decoding algorithm is
required. The product code composing of column-
wise Reed-Solomon codes and row-wise Reed-
Solomon codes may allow to decoding multiple
errors beyond their error correction capability. The
proposed code consists of two shortened Reed-
Solomon codes and a conventional Reed- Solomon
code. We implement the proposed coding scheme on
a FPGA-based simulator with using an FPGA device.
The proposed code can correct 16 symbol errors.
Fig.1 Concept of forward error correction
II. Reed Solomon Encoder
The encoder is the easy bit. Since the code is
systematic, the whole of the block can be read into the
encoder, and then output the other side without
alteration. Once the kith data symbol has been read in,
the parity symbol calculation is finished, and the
parity symbols can be output to give the full n
symbols. Gross simplification coming up. The idea of
the parity words is to create a long polynomial (n
coefficients long it contains the message and the
parity) which can be divided exactly by the RS
generator polynomial. That way, at the decoder the
received message block can be divided by the RS
generator polynomial. If the remainder of the division
is zero, then no errors are detected.
If there is a remainder, then there are errors.
Dividing a polynomial by another is not conceptually
easy, but if you follow the maths in some of the
references its not too hard to understand. The encoder
acts to divide the polynomial represented by the k
message symbols d(x) by the RS generator
polynomial g(x). This generator polynomial is not the
same as the Galois Field generator polynomial, but is
derived from it
x(n-k).d(x)/g(x) = q(x) + r(x)/g(x) (1)
The term x(n-k) is a constant power of x,
which is simply a shift upwards n-k places of all the
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1608 | P a g e
polynomial coefficients in d(x). It happens as part of
the shifting process in the architecture below. The
remainder after the division r(x) becomes the parity.
By concatenating the parity symbols on to the end of
the k message symbols, an n coefficient polynomial is
created which is exactly divisible by g(x).
The encoder is a 2t tap shift register, where
each register is m bits wide. The multiplier
coefficients g0 to g (2t-1) are coefficients of the RS
generator polynomial. The coefficients are fixed,
which can be used to simplify the multipliers if
required. The only hard bit is working out the
coefficients, and for hardware implementations the
values can often be hard coded.
At the beginning of a block all the registers
are set to zero. From then on, at each clock cycle the
symbol in each register is added to the product of the
feedback symbol and the fixed coefficient for that tap,
and passed on to the next register. The symbol in the
last register becomes the feedback value on the next
cycle. When all n input symbols have been read in,
the parity symbols are sitting in the register, and it just
remains to shift them out one by one.
Equation(2),expresses the most conventional
form of Reed-Solomon (R-S) codes in terms of the
parameters n, k, t, and any positive integer m > 2.
(n, k) = (2m
- 1, 2m
- 1 - 2t) (2)
where n - k = 2t is the number of parity symbols, and
t is the symbol-error correcting capability of the code.
The generating polynomial for an R-S code takes the
following form
g(X ) = g0 + g1 X + g2 X2
+ … + g2t - 1 X2t - 1
+ X2t
(3)
The degree of the generator polynomial is
equal to the number of parity symbols. R-S codes are
a subset of the Bose, Chaudhuri, and Hocquenghem
(BCH) codes; hence, it should be no surprise that this
relationship between the degree of the generator
polynomial and the number of parity symbols holds,
just as for BCH codes.
Since the generator polynomial is of degree
2t, there must be precisely 2t successive powers of α
that are roots of the polynomial. We designate the
roots of g(X) as α, α2
, …, α2t
. It is not necessary to
start with the root α; starting with any power of α is
possible. Consider as an example the (7, 3) double-
symbol-error correcting R-S code. We describe the
generator polynomial in terms of its 2t = n - k = 4
roots, as follows
g(X) = ( X – α ) ( X – α2
) ( X – α3
)( X – α4
)
= ( X2
- ( α + α2
) X + α3
) ( X2
- ( α3
+ α4
) X + α7
)
= ( X2
– α4
X + α3
) ( X2
- α6
X + α0
)
= X4
- ( α4
+ α6
) X3
+ ( α3
+ α10
+ α0
) X2
- ( α4
+
α9
) X + α3
= X4
– α3
X3
+ α0
X2
– α1
X + α3
Following the low order to high order
format, and changing negative signs to positive, since
in the binary field +1 = –1, g(X ) can be expressed as
follows:
g(X ) = α3
+ α1
X + α0
X2
+ α3 X3
+ X4
(4)
III. Encoding in Systematic Form
Since R-S codes are cyclic codes, encoding
in systematic form is analogous to the binary
encoding procedure. We can think of shifting a
message polynomial, m(X ), into the rightmost k
stages of a codeword register and then appending a
parity polynomial, p(X ), by placing it in the leftmost
n - k stages. Therefore we multiply m(X ) by Xn-k
,
thereby manipulating the message polynomial
algebraically so that it is right-shifted n - k positions.
Next, we divide Xn-k
m(X ) by the generator
polynomial g(X ), which is written in the following
form
Xn-k
m(X ) = q(X ) g(X ) + p(X ) (5)
where q(X ) and p(X ) are quotient and remainder
polynomials, respectively. As in the binary case, the
remainder is the parity. Equation (23) can also be
expressed as follows
p(X ) = Xn-k
m(X ) modulo g(X ) (6)
The resulting codeword polynomial, U(X ) can be
written as
U(X ) = p(X ) + Xn-k
m(X ) (7)
We demonstrate the steps implied by Equations (5)
and (6) by encoding the following three-symbol
message:
with the (7, 3) R-S code whose generator polynomial
is given in Equation (5). We first multiply (upshift)
the message polynomial α1
+ α3
X + α5
X2
by X n - k
= X4
, yielding α1
X4
+ α3
X5
+ α5
X6
. We next divide
this upshifted message polynomial by the generator
polynomial in Equation (5), α3
+ α1
X + α0
X2
+ α3
X3
+ X4
. Polynomial division with nonbinary
coefficients is more tedious than its binary
counterpart, because the required operations of
addition (subtraction) and multiplication (division). It
is left as an exercise for the reader to verify that this
polynomial division results in the following
remainder (parity) polynomial.
p(X ) = α0
+ α2
X + α4
X2
+ α6
X3
(8)
Then, from Equation (7), the codeword polynomial
can be written as follows
U(X ) = α0
+ α2
X + α4
X2
+ α6
X3
+ α1
X4
+ α3
X5
+
α5
X6
(9)
Systematic Encoding with an (n - k)–Stage
Shift Register Using circuitry to encode a three-
symbol sequence in systematic form with the (7, 3)
R-S code described by g(X ) in Equation (4) requires
the implementation of a linear feedback shift register
(LFSR) circuit, as shown in Figure 6. It can easily be
verified that the multiplier terms in Figure 6, taken
from left to right, correspond to the coefficients of
the polynomial in Equation (4) (low order to high
order). This encoding process is the nonbinary
equivalent of cyclic encoding. Here,the (7, 3) R-S
nonzero codewords are made up of 2m - 1 = 7
symbols, and each symbol is made up of m = 3 bits.
IV. Reed Solomon Decoder
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1609 | P a g e
Earlier, a test message encoded in
systematic form using a (7, 3) R-S code resulted in a
codeword polynomial described by Equation (7).
Now, assume that during transmission this codeword
becomes corrupted so that two symbols are received
in error. (This number of errors corresponds to the
maximum error-correcting capability of the code.)
For this seven-symbol codeword example, the error
pattern, e(X), can be described in polynomial form as
follows
Fig2. Encoder with LFSR
e( X ) = ∑ en Xn
, (10) Where n = 0, 1, 2, 3, 4, 5, 6
For this example, let the double-symbol error be such
that
e ( X ) = 0 + 0X + 0X2
+ α2
X3
+ α5
X4
+ 0X5
+ 0X6
= (0 0 0)+(0 0 0)X+(0 0 0)X2
+(0 0 1)X3
+(1 1
1)X4
+(0 0 0)X5
+(0 0 0)X6
(11)
In other words, one parity symbol has been corrupted
with a 1-bit error (seen as α2
), and one data symbol
has been corrupted with a 3-bit error (seen as α5
). The
received corrupted-codeword polynomial, r(X), is
then represented by the sum of the transmitted-
codeword polynomial and the error-pattern
polynomial as follows
r(X) = U(X) + e(X) (12)
Following Equation (12), we add U(X ) from
Equation (11) to e(X ) and r(X ), as follows
r(X) = (100) + (001)X + (011)X2
+ (100)X3
+
(101)X4
+ (110)X5
+ (111)X6
α α2
Xα4
X2
α0
X3
α6
X4
α3
X5
α5
X6
(13)
In this example, there are four unknowns—two error
locations and two error values. Notice an important
difference between the non binary decoding of r(X )
that we are faced with in Equation (13) and binary
decoding; in binary decoding, the decoder only needs
to find the error locations. Knowledge that there is an
error at a particular location dictates that the bit must
be “flipped” from 1 to 0 or vice versa. But here, the
nonbinary symbols require that we not only learn the
error locations, but also determine the correct symbol
values at those locations. Since there are four
unknowns in this example, four equations are
required for their solution.
Decoding is a far harder task than encoding. Typically
about ten times more resources (be it logic, memory
or processor cycles) are required to decode and
correct the corrupted data The decode operation takes
several stages. There are plenty of sources available
for software implementations of the various
algorithms required. Hardware implementations
(FPGA or ASIC) are a little harder to come by,
especially those with parameterised specifications.
Texas Instruments give their software decoder away
for free, whilst by comparison FPGA manufacturers
such as Xilinx or Altera can charge many thousands
of dollars for their hardware implementation.
V. Berlekamp-Massey
The second step is to find the error
polynomial lambda. This requires solving 2t
simultaneous equations, one for each syndrome. The
2t syndromes form a simultaneous equation with t
unknowns. The unknowns are the locations of the
errors. In general there are many possible solutions to
the set of equations, but we assume that the one with
the least number of errors is the correct one.
This assumption is the reason that more than t errors
can actually cause the decoder to corrupt the received
signal further (if allowed to). If more than t errors
occur, then there will exist a possible solution to the
equations with less than t errors. Unfortunately this
solution is unlikely to correct the right symbols. The
process of solving the simultaneous equations is
usually split into two stages. First, an error location
polynomial is found.
This Polynomial has roots which give the
error locations. Then the roots of the error polynomial
are found. There are several methods of finding the
error polynomial lambda, the two most popular are
Euclid's Algorithm (easier to implement) and the
Berlekamp-Massey Algorithm (more efficient use of
hardware resources). The algorithm iteratively solves
the error locator polynomial by solving one equation
after another and updating the error locator
polynomial. If it turns out that it cannot solve the
equation at some step, then it computes the error and
weights it, increases the size of the error polynomial,
and does another iteration.
Fig3.Flow chart for Reed Solomon Decoder
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1610 | P a g e
A maximum of 2t iterations are required.
For n symbol errors, the algorithm gives a
polynomial with n coefficients. At this point the
decoder fails if there are more than t errors, and no
corrections can be made. Doing so might actually
introduce more errors than there were originally
Suppose there are ν errors in the codeword
at location X j1 , X j2 , ... , X j. Then, the error
polynomial e(X ) shown in Equations (10) and (11)
can be written as follows
e(X) = ej1Xj1
+ ej2Xj2
+ … + ejvXjv
(14)
The indices 1, 2, … ν refer to the first, second, …, νth
errors, and the index j refers to the error location. To
correct the corrupted codeword, each error value ejl
and its location Xjl
, where l = 1, 2, ..., ν, must be
determined. We define an error locator number as jl l.
Next, we obtain the n - k = 2t syndrome symbols by
substituting αi into the received polynomial for i = 1,
2, … 2t.
S1 = r(α) = ej1β1 + ej2β2 + … + ejvβv
S2 = r(α2
) = ej1β1
2
+ ej2β2
2
+ … + ejvβv
2
S2t = r(α2t
) = ej1β1
2t
+ ej2β2
2t
+ … + ejvβv
2t
(15)
There are 2t unknowns (t error values
and t locations), and 2t simultaneous equations.
However, these 2t simultaneous equations cannot be
solved in the usual way because they are nonlinear
(as some of the unknowns have exponents). Next, it
is necessary to learn the location of the error or
errors. An error-locator polynomial, σ(X ), can be
defined as follows
σ(X) = ( 1 + β1X ) ( 1 + β2X ) . . . ( 1 + βvX)
= 1 + σ1X + σ2X2
+ . . . + σvXv
(16)
The roots of σ(X ) are 1/β1, 1/β2, … ,1/βν.
The reciprocal of the roots of σ(X) are the error-
location numbers of the error pattern e(X). Then,
using autoregressive modeling techniques, we form a
matrix from the syndromes, where the first t
syndromes are used to predict the next syndrome.
That is,
(17)
We apply the autoregressive model of Equation (17)
by using the largest dimensioned matrix that has a
nonzero determinant. For the (7, 3) double-symbol
error correcting R-S code, the matrix size is 2 × 2,
and the model is written as follows
(18)
To solve for the coefficients σ1 and σ2 and
of the error-locator polynomial, σ(X ), we first take
the inverse of the matrix in Equation (18). The
inverse of a matrix [A] is found as follows
Fig4. Berlekamp-Massey Algorithm
Therefore
Cofactor (19)
(20)
VI. Design Summery Report
Number of errors: 0
Number of warnings: 257
1. Number of Slice
Registers
4,737 out of
28,800 16%
2. Number of Slice
LUTs
6,302 out of
28,800 21%
3. Number used as
logic
6,261 out of
28,800 21%
4. Number of route-
thrus
53 out of 57,600
1%
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1611 | P a g e
Table 5.2 Logic Utilization
1. Number of occupied
Slices
2,502 out of 7,200
34%
2. Number with an unused
Flip Flop
2,949 out of 7,686
38%
3. Number with an unused
LUT
1,384 out of 7,686
18%
4. Number of fully used
LUT-FF pairs
3,353 out of 7,686
43%
Table5.3 Logic Distribution
VII. 6. RESULTS
Fig5. Generation Of code words
Fig6. Generation Of Parity Bits
Fig 7. Adding Noise
Fig8. Detection of Error Values
Fig8.Decoded Symbols
VIII. Conclusion
This paper proposes a product Reed-
Solomon code for multiple random errors and burst
errors. The proposed code takes two dimensional
array data consisted of two shortened Reed-Solomon
codes in a column-wise and a conventional Reed-
Solomon code in a row-wise. The proposed code
becomes powerful against multiple random errors
and burst errors. The proposed code can corrects 16
symbol errors. The code has the coding gain of 1.8
dB and the bandwidth of 1.07 Gbps when operated at
290 MHz with the power consumption of 26.4 mW.
Future Scope of the project is to provide effective
code for detecting 20 error symbols in 255 code
words. Code can implement with low area and low
power
References
[1] Polynomial Codes Over Certain Finite
Fields by Reed, I. S. and Solomon, G.
SIAM Journal of Applied Math.
[2] Information Theory and Reliable
Communication by Gallager, R. G.
[3] Digital Communications: Fundamentals and
Applications, Second Edition by Sklar, B.
[4] The Application of Error Control to
Communications by Berlekamp, E. R., Peile,
R. E., and Pope, S. P.
[5] Forward Error Correction Coding for Fading
Compensation in Mobile Satellite Channels
by Hagenauer, J., and Lutz, E.
Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612
1612 | P a g e
[6] Theory and Practice of Error Control Codes
by Blahut, R. E.
[7] Reed-Solomon Codes and Their
Applications by Wicker, S. B. and
Bhargava, V. K.
[8] ASIC Implementation of Reed-Solomon
Error Correction Circuits for Low Area
Overhead on Memory System by S. P.
Kang, C. G. Kim, S. W. Rhee, and Y. Jee.
[9] X., Yang, “Industrial Data Communication
and Control Networks”, Beijing: TUP,
2003.6[9] B. Zeidman, “Designing with
FPGAs & CPLDs”, CMP Books, 2002
[10] C. E. Cummings, “Simulation and Synthesis
Techniques for Asynchronous FIFO Design
with Asynchronous Pointer Comparisons”,
SNUG San Jose 2002

Weitere ähnliche Inhalte

Was ist angesagt?

Error-Correcting codes: Application of convolutional codes to Video Streaming
Error-Correcting codes: Application of convolutional codes to Video StreamingError-Correcting codes: Application of convolutional codes to Video Streaming
Error-Correcting codes: Application of convolutional codes to Video StreamingFacultad de Informática UCM
 
Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Sateesh Allu
 
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...IJRES Journal
 
FPGA based BCH Decoder
FPGA based BCH DecoderFPGA based BCH Decoder
FPGA based BCH Decoderijsrd.com
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
Chapter 06 rsa cryptosystem
Chapter 06   rsa cryptosystemChapter 06   rsa cryptosystem
Chapter 06 rsa cryptosystemAnkur Choudhary
 
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...ijceronline
 
Online quesion deldunit-1-to_unit-4
Online quesion deldunit-1-to_unit-4Online quesion deldunit-1-to_unit-4
Online quesion deldunit-1-to_unit-4shivnarayan34
 
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...Seokhwan Kim
 
A method to determine partial weight enumerator for linear block codes
A method to determine partial weight enumerator for linear block codesA method to determine partial weight enumerator for linear block codes
A method to determine partial weight enumerator for linear block codesAlexander Decker
 
Bt0064, logic design
Bt0064, logic designBt0064, logic design
Bt0064, logic designsmumbahelp
 
Convolutional Codes And Their Decoding
Convolutional Codes And Their DecodingConvolutional Codes And Their Decoding
Convolutional Codes And Their DecodingKakali Saharia
 

Was ist angesagt? (16)

Error-Correcting codes: Application of convolutional codes to Video Streaming
Error-Correcting codes: Application of convolutional codes to Video StreamingError-Correcting codes: Application of convolutional codes to Video Streaming
Error-Correcting codes: Application of convolutional codes to Video Streaming
 
Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Technical aptitude questions_e_book1
Technical aptitude questions_e_book1
 
Hamming codes
Hamming codesHamming codes
Hamming codes
 
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...
Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM...
 
FPGA based BCH Decoder
FPGA based BCH DecoderFPGA based BCH Decoder
FPGA based BCH Decoder
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Chapter 06 rsa cryptosystem
Chapter 06   rsa cryptosystemChapter 06   rsa cryptosystem
Chapter 06 rsa cryptosystem
 
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...
Implementation of Elliptic Curve Digital Signature Algorithm Using Variable T...
 
Coding
CodingCoding
Coding
 
Online quesion deldunit-1-to_unit-4
Online quesion deldunit-1-to_unit-4Online quesion deldunit-1-to_unit-4
Online quesion deldunit-1-to_unit-4
 
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...
Deep Recurrent Neural Networks with Layer-wise Multi-head Attentions for Punc...
 
A method to determine partial weight enumerator for linear block codes
A method to determine partial weight enumerator for linear block codesA method to determine partial weight enumerator for linear block codes
A method to determine partial weight enumerator for linear block codes
 
Convolutional codes
Convolutional codesConvolutional codes
Convolutional codes
 
BCH Codes
BCH CodesBCH Codes
BCH Codes
 
Bt0064, logic design
Bt0064, logic designBt0064, logic design
Bt0064, logic design
 
Convolutional Codes And Their Decoding
Convolutional Codes And Their DecodingConvolutional Codes And Their Decoding
Convolutional Codes And Their Decoding
 

Andere mochten auch

Divisió egípcia 2 (adaptada)
Divisió egípcia 2 (adaptada)Divisió egípcia 2 (adaptada)
Divisió egípcia 2 (adaptada)calaix2ie
 
Alternativa viable en la solucion del problema del
Alternativa viable en la solucion del problema delAlternativa viable en la solucion del problema del
Alternativa viable en la solucion del problema delSairiel Sazchariel Ibarra
 
Erdi Mailako zikloak MAI Bergara
Erdi Mailako zikloak MAI BergaraErdi Mailako zikloak MAI Bergara
Erdi Mailako zikloak MAI BergaraMAIBERGARA
 
João ubaldo educação
João ubaldo    educaçãoJoão ubaldo    educação
João ubaldo educaçãoG. Gomes
 
Dance and dense denso
Dance and dense densoDance and dense denso
Dance and dense densoPathetic_punk
 
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟Arab Muslim
 

Andere mochten auch (20)

Is3416041606
Is3416041606Is3416041606
Is3416041606
 
Im3415711578
Im3415711578Im3415711578
Im3415711578
 
Ii3415521555
Ii3415521555Ii3415521555
Ii3415521555
 
Im3314481452
Im3314481452Im3314481452
Im3314481452
 
Go3411961201
Go3411961201Go3411961201
Go3411961201
 
Fy3410901095
Fy3410901095Fy3410901095
Fy3410901095
 
Gn3411911195
Gn3411911195Gn3411911195
Gn3411911195
 
Gc3411211125
Gc3411211125Gc3411211125
Gc3411211125
 
Gj3411701173
Gj3411701173Gj3411701173
Gj3411701173
 
Gq3412071214
Gq3412071214Gq3412071214
Gq3412071214
 
Ga3411031110
Ga3411031110Ga3411031110
Ga3411031110
 
Z32178181
Z32178181Z32178181
Z32178181
 
Dd32653661
Dd32653661Dd32653661
Dd32653661
 
Rodolfo
RodolfoRodolfo
Rodolfo
 
Divisió egípcia 2 (adaptada)
Divisió egípcia 2 (adaptada)Divisió egípcia 2 (adaptada)
Divisió egípcia 2 (adaptada)
 
Alternativa viable en la solucion del problema del
Alternativa viable en la solucion del problema delAlternativa viable en la solucion del problema del
Alternativa viable en la solucion del problema del
 
Erdi Mailako zikloak MAI Bergara
Erdi Mailako zikloak MAI BergaraErdi Mailako zikloak MAI Bergara
Erdi Mailako zikloak MAI Bergara
 
João ubaldo educação
João ubaldo    educaçãoJoão ubaldo    educação
João ubaldo educação
 
Dance and dense denso
Dance and dense densoDance and dense denso
Dance and dense denso
 
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟
أعمال تنجي من النيران بإذن الله - كيف أنجو من النار؟
 

Ähnlich wie It3416071612

art_sklar7_reed-solomon
art_sklar7_reed-solomonart_sklar7_reed-solomon
art_sklar7_reed-solomonAniruddh Tyagi
 
art_sklar7_reed-solomon
art_sklar7_reed-solomonart_sklar7_reed-solomon
art_sklar7_reed-solomonaniruddh Tyagi
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)theijes
 
Reed solomon Encoder and Decoder
Reed solomon Encoder and DecoderReed solomon Encoder and Decoder
Reed solomon Encoder and DecoderAmeer H Ali
 
Reed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and CorrectionReed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and Correctioninventionjournals
 
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding Algorithm
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding AlgorithmFixed Point Realization of Iterative LR-Aided Soft MIMO Decoding Algorithm
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding AlgorithmCSCJournals
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
A High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityA High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityIOSR Journals
 
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...IJERA Editor
 
Design and Implementation of Variable Radius Sphere Decoding Algorithm
Design and Implementation of Variable Radius Sphere Decoding AlgorithmDesign and Implementation of Variable Radius Sphere Decoding Algorithm
Design and Implementation of Variable Radius Sphere Decoding Algorithmcsandit
 
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...RSIS International
 
An Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH DecoderAn Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH Decoderijsrd.com
 
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...IOSR Journals
 
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...IRJET Journal
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 

Ähnlich wie It3416071612 (20)

art_sklar7_reed-solomon
art_sklar7_reed-solomonart_sklar7_reed-solomon
art_sklar7_reed-solomon
 
art_sklar7_reed-solomon
art_sklar7_reed-solomonart_sklar7_reed-solomon
art_sklar7_reed-solomon
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
Reed solomon Encoder and Decoder
Reed solomon Encoder and DecoderReed solomon Encoder and Decoder
Reed solomon Encoder and Decoder
 
Reed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and CorrectionReed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and Correction
 
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding Algorithm
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding AlgorithmFixed Point Realization of Iterative LR-Aided Soft MIMO Decoding Algorithm
Fixed Point Realization of Iterative LR-Aided Soft MIMO Decoding Algorithm
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
A High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityA High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction Capability
 
40120130406011 2-3
40120130406011 2-340120130406011 2-3
40120130406011 2-3
 
A HIGH THROUGHPUT AES DESIGN
A HIGH THROUGHPUT AES DESIGNA HIGH THROUGHPUT AES DESIGN
A HIGH THROUGHPUT AES DESIGN
 
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
 
Design and Implementation of Variable Radius Sphere Decoding Algorithm
Design and Implementation of Variable Radius Sphere Decoding AlgorithmDesign and Implementation of Variable Radius Sphere Decoding Algorithm
Design and Implementation of Variable Radius Sphere Decoding Algorithm
 
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...
Hardware Implementations of RS Decoding Algorithm for Multi-Gb/s Communicatio...
 
An Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH DecoderAn Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH Decoder
 
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
 
LDPC_CODES.ppt
LDPC_CODES.pptLDPC_CODES.ppt
LDPC_CODES.ppt
 
rs_1.pptx
rs_1.pptxrs_1.pptx
rs_1.pptx
 
widely-linear-minimum (1)
widely-linear-minimum (1)widely-linear-minimum (1)
widely-linear-minimum (1)
 
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 

Kürzlich hochgeladen

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Kürzlich hochgeladen (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

It3416071612

  • 1. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1607 | P a g e Design and Implementation of FPGA System to Reduce Reed- Solomon Errors Md. Taj1 , P Srinivas2 , S. Nagaraju3 1 Dept.of ECE Nimra College of Engineering & Technology, Jupudi, Vijayawada-India. 2 Assistant Professor Dept.of ECE Nimra College of Engineering & Technology, Vijayawada, India. 3 Assistant Professor Dept.of ECE VLITS Vadlamdui Guntur, India. ABSTRACT The data reliability has become an important issue in most communication and storage systems for high speed operation and mass data process. Various error correction code are provided for improving data reliability. A Reed-Solomon code is quite suitable for burst errors, but in case of random errors, it has some difficulty. For MLC NAND flash memories, Bose- Chaudhuri- Hocquenghem (BCH) codes are frequently used. BCH codes provide flexible code length and variable range of error correcting capability. However, NAND flash memory systems process with the large size of data such as a page or a block unit. Hence, BCH codes may not be appropriate for a NAND flash controller. We propose product Reed- Solomon (RS) code for non-volatile NAND flash memory systems. Reed- Solomon codes are the most diversely used in data storage systems, but powerful for burst errors only. In order to correct multiple random errors and burst errors, another efficient decoding algorithm is required. The product code composing of column- wise Reed-Solomon codes and row-wise Reed- Solomon codes may allow decoding multiple errors beyond their error correction capability. The proposed code consists of two shortened Reed- Solomon codes and a conventional Reed- Solomon code. We implement the proposed coding scheme on a FPGA-based simulator with using an FPGA device. The proposed code can correct 16 symbol errors. KEY WORDS: Bose-Chaudhuri-Hocquenghem (BCH), Reed-Solomon codes, Berlekamp-Massey Algorithm, flipped, Euclid's Algorithm, mass data process, decoding, FPGA-based simulator, NAND flash controller, and Altera. I. INTRODUCTION The data reliability has become an important issue in most communication and storage systems for high speed operation and mass data process. Various error correction code are provided for improving data reliability. A Reed-Solomon code is quite suitable for burst errors, but in case of random errors, it has some difficulty. For MLC NAND flash memories, Bose- Chaudhuri-Hocquenghem (BCH) codes are frequently used. BCH codes provide flexible code length and variable range of error correcting capability. However, NAND flash memory systems process with the large size of data such as a page or a block unit. Hence, BCH codes may not be appropriate for a NAND flash controller. The Reed- Solomon (RS) code for non- volatile NAND flash memory systems. Reed- Solomon codes are the most diversely used in data storage systems, but powerful for burst errors only. In order to correct multiple random errors and burst errors, another efficient decoding algorithm is required. The product code composing of column- wise Reed-Solomon codes and row-wise Reed- Solomon codes may allow to decoding multiple errors beyond their error correction capability. The proposed code consists of two shortened Reed- Solomon codes and a conventional Reed- Solomon code. We implement the proposed coding scheme on a FPGA-based simulator with using an FPGA device. The proposed code can correct 16 symbol errors. Fig.1 Concept of forward error correction II. Reed Solomon Encoder The encoder is the easy bit. Since the code is systematic, the whole of the block can be read into the encoder, and then output the other side without alteration. Once the kith data symbol has been read in, the parity symbol calculation is finished, and the parity symbols can be output to give the full n symbols. Gross simplification coming up. The idea of the parity words is to create a long polynomial (n coefficients long it contains the message and the parity) which can be divided exactly by the RS generator polynomial. That way, at the decoder the received message block can be divided by the RS generator polynomial. If the remainder of the division is zero, then no errors are detected. If there is a remainder, then there are errors. Dividing a polynomial by another is not conceptually easy, but if you follow the maths in some of the references its not too hard to understand. The encoder acts to divide the polynomial represented by the k message symbols d(x) by the RS generator polynomial g(x). This generator polynomial is not the same as the Galois Field generator polynomial, but is derived from it x(n-k).d(x)/g(x) = q(x) + r(x)/g(x) (1) The term x(n-k) is a constant power of x, which is simply a shift upwards n-k places of all the
  • 2. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1608 | P a g e polynomial coefficients in d(x). It happens as part of the shifting process in the architecture below. The remainder after the division r(x) becomes the parity. By concatenating the parity symbols on to the end of the k message symbols, an n coefficient polynomial is created which is exactly divisible by g(x). The encoder is a 2t tap shift register, where each register is m bits wide. The multiplier coefficients g0 to g (2t-1) are coefficients of the RS generator polynomial. The coefficients are fixed, which can be used to simplify the multipliers if required. The only hard bit is working out the coefficients, and for hardware implementations the values can often be hard coded. At the beginning of a block all the registers are set to zero. From then on, at each clock cycle the symbol in each register is added to the product of the feedback symbol and the fixed coefficient for that tap, and passed on to the next register. The symbol in the last register becomes the feedback value on the next cycle. When all n input symbols have been read in, the parity symbols are sitting in the register, and it just remains to shift them out one by one. Equation(2),expresses the most conventional form of Reed-Solomon (R-S) codes in terms of the parameters n, k, t, and any positive integer m > 2. (n, k) = (2m - 1, 2m - 1 - 2t) (2) where n - k = 2t is the number of parity symbols, and t is the symbol-error correcting capability of the code. The generating polynomial for an R-S code takes the following form g(X ) = g0 + g1 X + g2 X2 + … + g2t - 1 X2t - 1 + X2t (3) The degree of the generator polynomial is equal to the number of parity symbols. R-S codes are a subset of the Bose, Chaudhuri, and Hocquenghem (BCH) codes; hence, it should be no surprise that this relationship between the degree of the generator polynomial and the number of parity symbols holds, just as for BCH codes. Since the generator polynomial is of degree 2t, there must be precisely 2t successive powers of α that are roots of the polynomial. We designate the roots of g(X) as α, α2 , …, α2t . It is not necessary to start with the root α; starting with any power of α is possible. Consider as an example the (7, 3) double- symbol-error correcting R-S code. We describe the generator polynomial in terms of its 2t = n - k = 4 roots, as follows g(X) = ( X – α ) ( X – α2 ) ( X – α3 )( X – α4 ) = ( X2 - ( α + α2 ) X + α3 ) ( X2 - ( α3 + α4 ) X + α7 ) = ( X2 – α4 X + α3 ) ( X2 - α6 X + α0 ) = X4 - ( α4 + α6 ) X3 + ( α3 + α10 + α0 ) X2 - ( α4 + α9 ) X + α3 = X4 – α3 X3 + α0 X2 – α1 X + α3 Following the low order to high order format, and changing negative signs to positive, since in the binary field +1 = –1, g(X ) can be expressed as follows: g(X ) = α3 + α1 X + α0 X2 + α3 X3 + X4 (4) III. Encoding in Systematic Form Since R-S codes are cyclic codes, encoding in systematic form is analogous to the binary encoding procedure. We can think of shifting a message polynomial, m(X ), into the rightmost k stages of a codeword register and then appending a parity polynomial, p(X ), by placing it in the leftmost n - k stages. Therefore we multiply m(X ) by Xn-k , thereby manipulating the message polynomial algebraically so that it is right-shifted n - k positions. Next, we divide Xn-k m(X ) by the generator polynomial g(X ), which is written in the following form Xn-k m(X ) = q(X ) g(X ) + p(X ) (5) where q(X ) and p(X ) are quotient and remainder polynomials, respectively. As in the binary case, the remainder is the parity. Equation (23) can also be expressed as follows p(X ) = Xn-k m(X ) modulo g(X ) (6) The resulting codeword polynomial, U(X ) can be written as U(X ) = p(X ) + Xn-k m(X ) (7) We demonstrate the steps implied by Equations (5) and (6) by encoding the following three-symbol message: with the (7, 3) R-S code whose generator polynomial is given in Equation (5). We first multiply (upshift) the message polynomial α1 + α3 X + α5 X2 by X n - k = X4 , yielding α1 X4 + α3 X5 + α5 X6 . We next divide this upshifted message polynomial by the generator polynomial in Equation (5), α3 + α1 X + α0 X2 + α3 X3 + X4 . Polynomial division with nonbinary coefficients is more tedious than its binary counterpart, because the required operations of addition (subtraction) and multiplication (division). It is left as an exercise for the reader to verify that this polynomial division results in the following remainder (parity) polynomial. p(X ) = α0 + α2 X + α4 X2 + α6 X3 (8) Then, from Equation (7), the codeword polynomial can be written as follows U(X ) = α0 + α2 X + α4 X2 + α6 X3 + α1 X4 + α3 X5 + α5 X6 (9) Systematic Encoding with an (n - k)–Stage Shift Register Using circuitry to encode a three- symbol sequence in systematic form with the (7, 3) R-S code described by g(X ) in Equation (4) requires the implementation of a linear feedback shift register (LFSR) circuit, as shown in Figure 6. It can easily be verified that the multiplier terms in Figure 6, taken from left to right, correspond to the coefficients of the polynomial in Equation (4) (low order to high order). This encoding process is the nonbinary equivalent of cyclic encoding. Here,the (7, 3) R-S nonzero codewords are made up of 2m - 1 = 7 symbols, and each symbol is made up of m = 3 bits. IV. Reed Solomon Decoder
  • 3. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1609 | P a g e Earlier, a test message encoded in systematic form using a (7, 3) R-S code resulted in a codeword polynomial described by Equation (7). Now, assume that during transmission this codeword becomes corrupted so that two symbols are received in error. (This number of errors corresponds to the maximum error-correcting capability of the code.) For this seven-symbol codeword example, the error pattern, e(X), can be described in polynomial form as follows Fig2. Encoder with LFSR e( X ) = ∑ en Xn , (10) Where n = 0, 1, 2, 3, 4, 5, 6 For this example, let the double-symbol error be such that e ( X ) = 0 + 0X + 0X2 + α2 X3 + α5 X4 + 0X5 + 0X6 = (0 0 0)+(0 0 0)X+(0 0 0)X2 +(0 0 1)X3 +(1 1 1)X4 +(0 0 0)X5 +(0 0 0)X6 (11) In other words, one parity symbol has been corrupted with a 1-bit error (seen as α2 ), and one data symbol has been corrupted with a 3-bit error (seen as α5 ). The received corrupted-codeword polynomial, r(X), is then represented by the sum of the transmitted- codeword polynomial and the error-pattern polynomial as follows r(X) = U(X) + e(X) (12) Following Equation (12), we add U(X ) from Equation (11) to e(X ) and r(X ), as follows r(X) = (100) + (001)X + (011)X2 + (100)X3 + (101)X4 + (110)X5 + (111)X6 α α2 Xα4 X2 α0 X3 α6 X4 α3 X5 α5 X6 (13) In this example, there are four unknowns—two error locations and two error values. Notice an important difference between the non binary decoding of r(X ) that we are faced with in Equation (13) and binary decoding; in binary decoding, the decoder only needs to find the error locations. Knowledge that there is an error at a particular location dictates that the bit must be “flipped” from 1 to 0 or vice versa. But here, the nonbinary symbols require that we not only learn the error locations, but also determine the correct symbol values at those locations. Since there are four unknowns in this example, four equations are required for their solution. Decoding is a far harder task than encoding. Typically about ten times more resources (be it logic, memory or processor cycles) are required to decode and correct the corrupted data The decode operation takes several stages. There are plenty of sources available for software implementations of the various algorithms required. Hardware implementations (FPGA or ASIC) are a little harder to come by, especially those with parameterised specifications. Texas Instruments give their software decoder away for free, whilst by comparison FPGA manufacturers such as Xilinx or Altera can charge many thousands of dollars for their hardware implementation. V. Berlekamp-Massey The second step is to find the error polynomial lambda. This requires solving 2t simultaneous equations, one for each syndrome. The 2t syndromes form a simultaneous equation with t unknowns. The unknowns are the locations of the errors. In general there are many possible solutions to the set of equations, but we assume that the one with the least number of errors is the correct one. This assumption is the reason that more than t errors can actually cause the decoder to corrupt the received signal further (if allowed to). If more than t errors occur, then there will exist a possible solution to the equations with less than t errors. Unfortunately this solution is unlikely to correct the right symbols. The process of solving the simultaneous equations is usually split into two stages. First, an error location polynomial is found. This Polynomial has roots which give the error locations. Then the roots of the error polynomial are found. There are several methods of finding the error polynomial lambda, the two most popular are Euclid's Algorithm (easier to implement) and the Berlekamp-Massey Algorithm (more efficient use of hardware resources). The algorithm iteratively solves the error locator polynomial by solving one equation after another and updating the error locator polynomial. If it turns out that it cannot solve the equation at some step, then it computes the error and weights it, increases the size of the error polynomial, and does another iteration. Fig3.Flow chart for Reed Solomon Decoder
  • 4. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1610 | P a g e A maximum of 2t iterations are required. For n symbol errors, the algorithm gives a polynomial with n coefficients. At this point the decoder fails if there are more than t errors, and no corrections can be made. Doing so might actually introduce more errors than there were originally Suppose there are ν errors in the codeword at location X j1 , X j2 , ... , X j. Then, the error polynomial e(X ) shown in Equations (10) and (11) can be written as follows e(X) = ej1Xj1 + ej2Xj2 + … + ejvXjv (14) The indices 1, 2, … ν refer to the first, second, …, νth errors, and the index j refers to the error location. To correct the corrupted codeword, each error value ejl and its location Xjl , where l = 1, 2, ..., ν, must be determined. We define an error locator number as jl l. Next, we obtain the n - k = 2t syndrome symbols by substituting αi into the received polynomial for i = 1, 2, … 2t. S1 = r(α) = ej1β1 + ej2β2 + … + ejvβv S2 = r(α2 ) = ej1β1 2 + ej2β2 2 + … + ejvβv 2 S2t = r(α2t ) = ej1β1 2t + ej2β2 2t + … + ejvβv 2t (15) There are 2t unknowns (t error values and t locations), and 2t simultaneous equations. However, these 2t simultaneous equations cannot be solved in the usual way because they are nonlinear (as some of the unknowns have exponents). Next, it is necessary to learn the location of the error or errors. An error-locator polynomial, σ(X ), can be defined as follows σ(X) = ( 1 + β1X ) ( 1 + β2X ) . . . ( 1 + βvX) = 1 + σ1X + σ2X2 + . . . + σvXv (16) The roots of σ(X ) are 1/β1, 1/β2, … ,1/βν. The reciprocal of the roots of σ(X) are the error- location numbers of the error pattern e(X). Then, using autoregressive modeling techniques, we form a matrix from the syndromes, where the first t syndromes are used to predict the next syndrome. That is, (17) We apply the autoregressive model of Equation (17) by using the largest dimensioned matrix that has a nonzero determinant. For the (7, 3) double-symbol error correcting R-S code, the matrix size is 2 × 2, and the model is written as follows (18) To solve for the coefficients σ1 and σ2 and of the error-locator polynomial, σ(X ), we first take the inverse of the matrix in Equation (18). The inverse of a matrix [A] is found as follows Fig4. Berlekamp-Massey Algorithm Therefore Cofactor (19) (20) VI. Design Summery Report Number of errors: 0 Number of warnings: 257 1. Number of Slice Registers 4,737 out of 28,800 16% 2. Number of Slice LUTs 6,302 out of 28,800 21% 3. Number used as logic 6,261 out of 28,800 21% 4. Number of route- thrus 53 out of 57,600 1%
  • 5. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1611 | P a g e Table 5.2 Logic Utilization 1. Number of occupied Slices 2,502 out of 7,200 34% 2. Number with an unused Flip Flop 2,949 out of 7,686 38% 3. Number with an unused LUT 1,384 out of 7,686 18% 4. Number of fully used LUT-FF pairs 3,353 out of 7,686 43% Table5.3 Logic Distribution VII. 6. RESULTS Fig5. Generation Of code words Fig6. Generation Of Parity Bits Fig 7. Adding Noise Fig8. Detection of Error Values Fig8.Decoded Symbols VIII. Conclusion This paper proposes a product Reed- Solomon code for multiple random errors and burst errors. The proposed code takes two dimensional array data consisted of two shortened Reed-Solomon codes in a column-wise and a conventional Reed- Solomon code in a row-wise. The proposed code becomes powerful against multiple random errors and burst errors. The proposed code can corrects 16 symbol errors. The code has the coding gain of 1.8 dB and the bandwidth of 1.07 Gbps when operated at 290 MHz with the power consumption of 26.4 mW. Future Scope of the project is to provide effective code for detecting 20 error symbols in 255 code words. Code can implement with low area and low power References [1] Polynomial Codes Over Certain Finite Fields by Reed, I. S. and Solomon, G. SIAM Journal of Applied Math. [2] Information Theory and Reliable Communication by Gallager, R. G. [3] Digital Communications: Fundamentals and Applications, Second Edition by Sklar, B. [4] The Application of Error Control to Communications by Berlekamp, E. R., Peile, R. E., and Pope, S. P. [5] Forward Error Correction Coding for Fading Compensation in Mobile Satellite Channels by Hagenauer, J., and Lutz, E.
  • 6. Md. Taj, P Srinivas, S. Nagaraju / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 3, Issue 4, Jul-Aug 2013, pp.1607-1612 1612 | P a g e [6] Theory and Practice of Error Control Codes by Blahut, R. E. [7] Reed-Solomon Codes and Their Applications by Wicker, S. B. and Bhargava, V. K. [8] ASIC Implementation of Reed-Solomon Error Correction Circuits for Low Area Overhead on Memory System by S. P. Kang, C. G. Kim, S. W. Rhee, and Y. Jee. [9] X., Yang, “Industrial Data Communication and Control Networks”, Beijing: TUP, 2003.6[9] B. Zeidman, “Designing with FPGAs & CPLDs”, CMP Books, 2002 [10] C. E. Cummings, “Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons”, SNUG San Jose 2002