ISSN ONLINE(2278-8875) PRINT (2320-3765)

All submissions of the EM system will be redirected to Online Manuscript Submission System. Authors are requested to submit articles directly to Online Manuscript Submission System of respective journal.

An Enhanced (15, 5) BCH Decoder Using VHDL

Rajkumar Goverchav1 and V.Sreevani2
  1. P.G. Student(M.Tech) in VLSI and ES, GIET, Rajahmundry, A.P. India
  2. Asst.prof, M.Tech (VLSI & SD), Dept of ECE, GIET, Rajahmundry, A.P. India
Related article at Pubmed, Scholar Google

Visit for more related articles at International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering

Abstract

Error-correction codes are the codes used to correct the errors occurred during the transmission of the data in the unreliable communication mediums. The idea behind these codes is to add redundancy bits to the data being transmitted so that even if some errors occur due to noise in the channel, the data can be correctly received at the destination end. Bose, Ray- Chaudhuri, Hocquenghem (BCH)codes are one of the error-correcting codes. The BCH decoder consists of four blocks namely syndrome block, IBM block, chien search block and error correction block. This paper describes a new method for error detection in syndrome and chien search block of BCH decoder. The proposed syndrome block is used to reduce the number of computation by calculating the even number syndromes from the corresponding odd number syndromes. The new factorization method used to implement the algorithm of chien search block of enhanced BCH decoder reduces the number of components required. Thus, a new model of BCH decoder is proposed to reduce the area and simplify the computational scheduling of both syndrome and chien search blocks without parallelism leading to high throughput. The enhanced chase BCH decoder is designed using hardware description language called Verilog and synthesized in Xilinx ISE 14.3.



Keywords

BCH Codes, Syndrome Block, Chien search Block, Error detection

INTRODUCTION

The information theory and coding theory are used in computer communication and telecommunication applications. Error correction and detection are the techniques used in the above mentioned applications that enable reliable delivery of digital data over unreliable communication channels. Many communication channels are subjected to channel noise which introduces the errors during transmission of messages from the source to receiver [1][6]. The channel coding theory states that the reliable transmission is achievable by performing proper coding. “Channel Coding” is the technique, which is used to sustain the originality of the information bits, to avoid the retransmission of information bits as well as to detect and correct any error which has been occurred during transmission.
Error detection is the detection of errors caused by noise or other impairments during transmission from the transmitter to the receiver.It uses the concept of redundancy[8], which means adding of extra bits for detectingerrors at the destination. In error correction the receiver can use any of the error-correcting code, which can automatically corrects certain errors and enables reconstruction of the original data.
A. Detection Methods
1) Repetition codes:
A repetition code is coding scheme that repeats the bit across a channel to achieve error-free communication. Repetition codes are very inefficient and can be susceptible to problems if the error occurs in exactly the same place for each group.
2) Cyclic Redundancy Checks (CRC):
A CRC is a single-burst error –detecting cyclic code designed to detect accidental changes to design to detect accidental changes to digital data in computer networks. It is not preferable for detecting maliciously introduced errors.
3) Parity Bit:
These are the simplest form of error-detecting code. They can detect single or any other odd number of errors in the output. Even parity is a special case of a cyclic redundancy check (CRC), where the 1-bit CRC is generated by the polynomial x+1.
B Correction Methods
1) Automatic Repeat Request (ARQ):
Automatic Repeat request (ARQ) is an error control method for data transmission that makes use of error-detection codes, acknowledgment and negative acknowledgment messages and timeouts to achieve reliable data transmission. ARQ is appropriate if the communication channel has varying or unknown capacity. It requires the availability of a channel, results in possibly increased latency due to retransmissions and requires the maintenance of buffers and timers for retransmissions.
2) Forward Error Correction (FEC):
An error-correcting code (ECC) or forward error correction (FEC) code is a system of adding redundant data or parity data, to a message, so that the message can be recovered by a receiver even when a number of errors are introduced, during the process of transmission.Aback-channel is not required in forward error correction since the receiver does not have to ask the sender for retransmission of the data [9] [10].
Error-Correcting codes are futureclassified into two major class of codes such as convolutional codes and block codes: Convolutional codes:
They are processed on a bit-by-bit basis. They are suitable for implementation in hardware and many algorithms exist for decoding these codes. The Viterbi algorithm provides high performance.Thus the Viterbi decoder is commonly used which allows optimal decoding.
Block Codes:
The block codes are implemented as (n, k) codes where n indicates the codeword and the k defines the original information bits. Therefore, the numbers of redundant bits need to be added in to the original message bits are given as (n-k) the block codes are fixed channel codes.BCH codes are subset of the Block codes.
The objective of this work is to reduce the number of components used in both in syndrome and chien search blocks[5] [3].The new factorization method which allowed to conceive another chien search block with reduced number of logic gates.
This paper is organized as follows; Section II BCHencoder_lfsr design and architure IIIexplains the modifiedBCH decoder and detailed structure of syndrome and Chiensearch respectively. Section IV shows the simulation resultsof the enhanced BCH (15,5) and Results are analyzed.Section V is drawn with the conclusion.

ENCODER_LFSR DESIGN ANDARCHITECTURE FOR BCH CODE

The Encoder_LFSR design used in this project is most commonly used in the modern digital communication system. This encoder_LFSR design is almost common to all the BCH code architecture, which uses the linear feedback shift register for polynomial division.
The format of the codeword is as follows [4]:
c(x) = xn-k * i(x) + b(x) (3.1)
Where, codeword c(x) = c0 + c1x +...+ cn-1xn-1
information bits i(x)= i0 + i1x +...+ ik-1xk-1
remainder b(x)= b0 + b1x +...+ bm-1xm-1
also, ci, ji, bi are the subsets of Galois field. If b(x) is taken to be the polynomial such that the k data bits will be presented in the codeword, which is given as follows:
xn-k * i(x) = q(x) * g(x) - b(x) (3.2)
BCH codes are implemented as cyclic code. As a result the logic which implements encoder_LFSR and decoder is controlled into shift register circuits. With the help of cyclic code properties the remainder b(x) can be calculated in the linear (n-k) stage shift register with the feedback connection to the coefficient of generator polynomial.
The original message bits are transmitted without changing its form (during this operation switch s2_in is in position 2), and the linear [2] The generated parity bits in the linear feedback shift register are transmitted (switch s2_in is inFor cycle k+1 to n, position 1) and the feedback in the LFSR is switch off (s1_in off). feedback shift register calculates the parity bits (switch s1_in is on now).

DECODER DESIGN AND ARCHITECTURE FOR BCH CODE

The BCH decoder has four modules as mentioned below:
- Syndrome Calculator
- Solving the key equation
- Error Location
- Error Correction
The implementation and the algorithms used to design above modules are varies with the architectures. The 2nd module, Solving the key equation is the most difficult and complex module as compared to the other modules in respect to the hardware complexity. This chapter contains the detailed explanation of the different algorithms used to implements those modules.
1. Syndrome Calculator:The syndrome calculator is the first module at the decoder also, the design of this module is almost same for all the BCH code decoder architecture. The input to this module is corrupted codeword. The equations for the codeword, received bits and the error bits are given in equations (5.1), (5.2), (5.3)[4].
Codeword equation
c(x) = c0 + c1x + c2x2 + ... + cn-1xn-1 (5.1)
Received bits equation
r(x) = r0 + r1x + r2x2 + ... + rn-1xn-1 (5.2)
Error bits equation
e(x) = e0 + e1x + e2x2 + ... + en-1xn-1 (5.3)
Thus, the final transmitted data polynomial equation is given as below:
r(x) = c(x) + e(x) (5.4)
2. Key Equation Solver: The second stage in the decoding process is to find the co-efficient of the error location polynomial using the generated syndromes in the previous stage. The error location polynomial is given as: The relation between the syndromes and the error location polynomial is given as below [4]:
There are various algorithms used to solve the key equation solver. This project is using the Inversion less Berlekamp Massey algorithm to solve the key equation.
3. Error Location – Chain’s Search: To calculate the error location is the next step of decoding process, which can be done using chain search block.
3.1 Chain Search Algorithm
The roots are calculated as follows [12] [4]:
1. For each power of α for ( j = 0 to n – 1), αj is taken as the test root
2. Calculate the polynomial coefficients, of the current root using, coefficients of the past iteration, using, Λ i (j) = Λ i (j- 1) αiduring the jth iteration
3. Calculate the sum of the polynomial coefficients
4. The sum is equal to
5. Continue to Step 1 till j = n-1
Error Correction Block output:
Codeword = r(x) ^ e(x) = ‘000010100110111’
So, the codeword is generated by adding the message bits with parity bits and transmitted over to the decoder. The data get corrupted during the transmission. The decoder will decode the corrupted data and retrieve the original codeword.
4. Error Correction: The output of the chain search block is called roots of equation. The reciprocal of the roots of equations are added with the corresponding location of the corrupted codeword received by decoder. The result of this addition is the original codeword that was encoded by the encoder before transmission.

SIMULATION RESULTS

Block diagram

image

RTL schematic

image

Technology schematic

image
Design summary
image

Simulation output wave forms

image
image

CONCLUSION

This project covers the detailed explanation about the necessity of Error correcting code along with the comparison of various error correcting codes and high speed (15, 5) BCH code Encode and Decoder design. The previous chapters discuss the design technique of encoder and decoder, and the behavior of the designs are described using Verilog. The simulation of the code is done in Xilinx Modelsim. Also, the encoder and decoder design is synthesized in Xilinx ISC 14.3 wabepack to generate the gate level netlist. The design steps, input signals and output signals along with the simulation results of design and synthesis result are discussed in detail in pervious chapters.
 

Figures at a glance

Figure Figure Figure Figure
Figure 1 Figure 2 Figure 3 Figure 4
 

References