رسائل ماجيستير
English
2013
FPGA Implementation of BCH Error Correcting Code
حيدر فاضل عبد السادة, سمير جاسم محمد
كلية الهندسة-جامعة بابل · العراق
Channel coding is an effective tool in designing reliable digital communication systems. The purpose of channel coding is to reduce the effect of channel noise by minimizing the number of errors that occur in the received digital sequence. Bose, Chaudhuri, and Hocquenghem (BCH) codes form a large class of powerful random error-correcting cyclic codes. BCH codes operate over algebraic structures called Galois fields, and there exist a multitude of decoding algorithms for these codes.
BCH encoder and decoder have been designed and simulated using MATLAB, Xilinx-ISE 10.1 WebPACK, and implemented based on FPGA. Three different binary BCH codes are considered. The first is (7,4) BCH code, which corrects one-bit error, the second is (15,7) BCH code, which corrects two-bit errors, and the third is (15,5) BCH code, which corrects three-bit errors. BCH code has been encoded with two different methods, which are serial encoding and encoding based on the generator matrix of the code. Peterson algorithm and Berlekamp algorithm are two decoding algorithms considered for decoding of BCH code.
The implementation of the system with Xilinx-ISE 10.1 is done by using both schematic capture and VHDL. Then the programming files are downloaded into FPGA. Two FPGA boards are used to implement the system, one FPGA is implemented as an encoder and the other as a decoder.
The simulation and hardware results show that the hardware implementation of the system with FPGA has less computation time as compared with software process using MATLAB. The FPGA provides optimization to get optimal speed of execution and minimize the number of units of FPGA. The serial encoder is very efficient since it occupies less area than the encoder based on the generator matrix. Also, the results show that the decoding with Peterson algorithm for (15,5) BCH code is very effective as it works faster and requires less hardware than Berlekamp decoding. Berlekamp decoding is more efficient than Peterson decoding when the number of errors is large.