SlideShare a Scribd company logo
IOSR Journal of Electronics and Communication Engineering (IOSR-JECE)
e-ISSN: 2278-2834,p- ISSN: 2278-8735.Volume 7, Issue 6 (Sep. - Oct. 2013), PP 01-06
www.iosrjournals.org
www.iosrjournals.org 1 | Page
Design and Implementation of Encoder for (15, k) Binary BCH
Code Using VHDL and eliminating the fan-out
M. Divya, K. Vinodalakshmi, G. Sumalatha, Shahbazsarik, Abhishek Awasthi
Dept. of ECE, Avanthieng college Hayathnagar, India
Abstract: In this paper we have designed and implemented(15, k) a BCH Encoder on FPGA using VHDL for
reliable data transfers in AWGN channel with multiple error correction control. The digital logic
implementation of binary encoding of multiple error correcting BCH code (15, k) of length n=15 over GF (24
)
with irreducible primitive polynomial x4
+x+1 is organized into shift register circuits. Using the cyclic codes, the
reminder b(x) can be obtained in a linear (15-k) stage shift register with feedback connections corresponding to
the coefficients of the generated polynomial. Three encoder are designed using VHDL to encode the single,
double and triple error correcting BCH code (15, k) corresponding to the coefficient of generated polynomial.
Information bit is transmitted in unchanged form up to k clock cycles and during this period parity bits are
calculated in the LFSR then the parity bits are transmitted from k+1 to 15 clock cycles. Total 15-k numbers of
parity bits with k information bits are transmitted in 15 code word. Here we have implemented (15, 5, 3), (15, 7,
2) and (15, 11, 1) BCH code encoder on Xilinx Spartan 3 FPGA using VHDL and the simulation & synthesis
are done using Xilinx ISE 13.3. BCH encoders are conventionally implemented by linear feedback shift register
architecture. Encoders of long BCH codes may suffer from the effect of large fan out, which may reduce the
achievable clock speed. The data rate requirement of optical applications require parallel implementations of
the BCH encoders. Also a comparative performance based on synthesis & simulation on FPGA is presented.
Keywords: BCH, BCH Encoder, FPGA, VHDL, Error Correction, AWGN, LFSR cyclic redundancy
checking, fan out .
I. Introduction
In a noisy channel when the data is transmitted, at the receiver side it is very difficult to retrieve actual
data. It is frequently the case that a digital system must be fully reliable, as a single error may shutdown the
whole system, or cause unacceptable corruption of data, e.g. in a bank account [5], [6]. There are so many error
correcting methods, one of them is liner block code and the simplest block codes are Hamming codes [1]-[4].
They are capable of correcting only one random error and therefore are not practically useful, unless a simple
error control circuit is required. More sophisticated error correcting codes are the Bose, Chaudhuri and
Hocquenghem (BCH) codes that are a generalisation of the Hamming codes for multiple-error correction. The
(Bose-Chaudhuri-Hocquenghem) BCH codes form a large class of powerful random error correcting cyclic
codes [7]-[9] having capable of multiple error correction [8].
BCH codes operate over finite fields or Galois fields [7]. The mathematical background concerning
finite fields is well specified and in recent years the hardware implementation of finite fields has been
extensively studied. In recent years there has been an increasing demand for digital transmission and storage
system and it has been accelerated by the rapid development and availability of VLSI technology and digital
processing. Programmable Logic Device (PLD) and Field Programmable Gate Arrays (FPGAs) [14], [15] has
revolutionized hardware design and its implementation advantages provides various solution like FPGA is fully
reprogrammable and reconfigurable. A design can be automatically converted from the gate level into the layout
structure by the place and route software. Xilinx Inc. offers a wide range of components [12] which offers
millions gate complexity and flip-flops, so even a relatively complex design can be implemented.
Here implementation of encoder for (15, k) BCH code organized by LFSR for single, double and triple
error correction control using VHDL [16], [17] on FPGA presented and also performance compared based on
synthesis and simulation result to understand the device utilization and timing simulation by targeting on Xilinx
Spartan 3S 1000 FPGA and XSA 3S1000 Board of Xess Corporation [13]. For simulation and synthesis Xilinx
ISE 10.1 is used.
The structure of this paper is as follows. Section II contains a brief description of the BCH code and
generated polynomial. Section III contains Encoder Design for multiple error correction. Section IV contains
simulation shows FPGA implementation results.
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating
www.iosrjournals.org 2 | Page
II. Generated Polynomial Of Binary Bch Code Over Gf (24
)
As the BCH code operate in Galois Field [7], it can be defined by two parameters that are length of code
words (n)and the number of error to be corrected t.
A t-error-correcting binary BCH code is capable of correcting any combination of t or fewer errors in a block
of n = 2
m
_1 digits. For any positive integer
m ≥ 3 and t < 2
m-1
, there exists a binary B
BCH code with the followingparameters:
Block length: n = 2
m
_ 1
Number of information bits: k _ n – m*t
Minimum distance: dmin _ 2t + 1.
The generator polynomial of the code is specified in terms of its roots over the Galois field GF (2
m
) which is
explained in [7]. Let _ be a primitive element in GF (2
m
). The generator polynomial g(x) of the code is the
lowest degree polynomial over GF (2), which has
α, α
2
, α
3
, . . . , α
2t
as its roots. [g(α
i
)= 0 for 1α i α2t]
Let _i(x) be the minimum polynomials of _i then g(x) must be the,
g( x)= LCM{φ1( x),φ2( x),........,φ2t( x)} (1)
As the minimal polynomial for conjugate roots are same i.e. asα
i
= (α
i’
)
2l
,αi(x) =αi’ (x), where i = i’ * 2
l
for l α1,
thus generated polynomial g(x) of binary t-error correcting
BCH code of length given by eqn.(1) can be reduced to
g( x)= LCM{φ1( x),φ3( x),........,φ2t-1( x)} (2)
BCH code generated by primitive elements is given in [8]. An irreducible polynomial g(x) of degree m is said
to beprimitive if only if it divides polynomial form of degree n,x
n
+ 1 for n = 2
m
_1. In fact, every binary
primitivepolynomial g(x) of degree m is a factor of x
2m_1
+ 1. A listof primitive polynomial for degree m and for
finding irreducible polynomial is given in [7].
For (15, k) BCH code, let _ be a primitive element of the GF (2
4
) given in [7] such that 1 + α+ α
4
is a
primitive
Polynomial. From [7], [8] we find that minimal polynomials
of α,α
3
,α
5
are
φ1( x)=1+ x + x4
φ3( x)=1+ x + x2
+ x3
+ x4
φ5( x)=1+ x + x2
For single error correcting, BCH code of length n = 24
-1
= 15 is generated by
g(x)=φ1( x)=1+ x + x
4
(3)
Here highest degree is 4 i.e. (n-k = 4), thus the code is a (15, 11) cyclic code with dmin= 3 since the generator
polynomial is code polynomial of weighted 5, the minimum distance of this code is exactly 3.
For double error correcting, BCH code of length n = 15 is generated by
g(x)= LCM{φ1( x),φ3( x)}
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating
www.iosrjournals.org 3 | Page
= 1+ x
4
+ x
6
+ x
7
+ x
8
(3)
Here highest degree is 8 i.e. (n-k = 8), thus the code is a (15, 7) cyclic code with dmin _ 5.
For triple error correcting, BCH code of length n = 15 is
generated by
g(x)= LCM{φ1 ( x),φ3 ( x),φ5 ( x)}
= 1 + x + x2
+ x4
+ x5
+ x8
+ x10
(4)
Here highest degree is 10 i.e (n-k = 10), thus the code is a (15, 5) cyclic code with dmin _ 7.
III. Design Of Bch Encoder On Fpga
BCH encoder is usually implemented with a serial linear
Feedback shift register (LFSR) architecture [10].
BCH codeword are encoded as
c( x)=x
n−k
∗ i( x)+ b( x) (6)
Where c(x)= c0+ c1x +..... +cn−lx
n−l
i( x)= i0+ i1x +.....+ik−lx
k−l
b( x)= b0+ b1x +.....+ cm−lx
m−l
andcj, ij, bj∈ GF(2).
Then if b(x) is taken to be the polynomial such that
xn−k
∗ i( x)= q( x)∗ q( x)− b( x) (7)
The k data bits will be present in the code word. Using theproperties of cyclic codes [7], the remainder b(x)
can beobtained in a linear (n-k)-stage shift register with feedbackconnections corresponding to the coefficients
of the
generator polynomial
g( x)=1+ g1x +.....+gn−k−lxn−k−l
+xn−k
(8)
Such a circuit is shown on Fig. 2.
On the encoder side, systematic encoding has been used, which makes easier implementation of encoder
which is shown in Fig. 1.
Code blocks
Information Error control
I1 I2 I3 ........ Ik-1 Ik P1 ....... Pn-k-1 Pn-k
k Data bits n-k parity check bits
It is not useful to split the generator polynomial at the encoding side because it will demand more
hardware and control circuitry. Therefore, the polynomial (I) is used as it is for encoding procedure. The digital
logic implementing the encoding algorithms is organized into linear feedback shift-register circuits (LFSR) that
mimic the cyclic shifts and polynomial arithmetic required in the description of cyclic codes. The LFSR block
diagram for (n, k) BCH encoder is shown in Fig.
IV BCH ENCODERArchitecture
Multipl
y by
p(x)
Dividi
ng
m(x)p
(x)
Dividi
ng by
p(x)
Remai
nder
Messa
ge
input
m(x)
Quot
ient
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating
www.iosrjournals.org 4 | Page
An binary BCH code encodes a -bit message into
an -bit code word. A - bit message
can be considered as the coefficients of a degree
polynomial ,
where . Meanwhile, the
corresponding -bit code rd can
be considered as the coefficients of a degree poly-
nomial , where
. The encoding of BCH codes can
be simply expressed by
where the degree polynomial
is the generator polynomial of the BCH code. Usually,
. However, systematic encoding is generally
desired, since message bits are just part of the code word. The systematic encoding can be implemented by
(1)
where denotes the remainder polynomial of dividing by . The architecture of a systematic BCH
en-
coder is shown in Fig. 1. During the first clock cycles, the two switches are connected to the “a” port, and the -bit
message is input to the LFSR serially with most significant bit (MSB) first.
Meanwhile, the message bits are also sent to the output to form the systematic part of the code word. After clock
cycles, the switches are moved to the “b” port. At this point, the reg-isters contain the coefficients of
. The remainder bits are then shifted out of the registers to the code word output bit by bit to form the remaining
systematic code word bits. For binary BCH, the multipliers in Fig. 1 can be re-placed by connection or no connection
when is “1” or “0,” respectively. The critical path of this architecture consists of two XOR gates, and the
output of the right-most XOR gate is input to all the other XOR gates. In the case of long BCH codes, this architecture
may suffer from the long delay of the right-most XOR gate caused by the large fanout. Although the serial architecture
of BCH encoder is quite straight forward, in the case when it cannot run as fast as the application requirements,
parallel architectures must be employed. Fanout bottle-neck will also exist in parallel architectures.
Steps of Algorithim
set ; ;
set ; ;
loop: while
;
;
;
highest power in ;
final step:
;
;
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating
www.iosrjournals.org 5 | Page
Simulation Results
Figure1 simulated wave form (15,11,1) BCH Encoder
Figure 2 simulated wave form (15,7,2) BCH Encoder
Figure 3 simulated wave form (15,5,3) BCH Encoder
Synthesis Report
V. Conclusion
The result presented from the synthesis and timing simulation, shows the (15, 5, 3) BCH Encoder is
more advantageous over the other two, according to speed requirement It can correct 3 error at the receiver side
when the original data corrupt by the noise. But when considering area then (15, 11, 1) is better which can
correct only 1 bit error. Also redundancy is less and data rate is more in it.
BCH codes have been shown to be excellent error-correcting codes among codes of short lengths. They
are simple to encode and relatively simple to decode. Due to these qualities, there is much interest in the exact
capabilities of these codes. The speed and device utilization can be improved by adopting parallel approach
methods.
Cell:in->out (15,11,1)BCH (15,7,2)BCH (15,5,3)BCH
LUT3:I0->O 1 1 1
IBUF:I->O 3 5 7
FDC:D 5 3 2
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating
www.iosrjournals.org 6 | Page
References
[1]. M.Y. Rhee - “Error Correcting Coding Theory”, McGraw-Hill, Singapore, 1989.
[2]. S. Lin, and D.J. Costello Jr. - “Error Control Coding”, Prentice-Hall, New Jersey, 1983.
[3]. E. R. Berlekamp, “Algebraic coding theory”, McGraw-Hill, New York, 1968.
[4]. R.E. Blahut, “Theory and practice of error-control codes”, Addison-Wesley, Reading, MA, 1983
[5]. S. B. Wicker, Error Control Systems for Digital Communication andStorage. Upper Saddle River, New Jersey 075458: Prentice Hall,
Inc,1995.
[6]. J. H. Derby, “High-speed CRC computation using state-space transformation” in Proc. Global Telecommunications Conf. 2001,
GLOBECOM.
[7]. R. J. Glaise, “A two-step computation of cyclic redundancy code CRC-32 for ATM networks,” IBM J. Res. Dev., vol. 41, pp.
705–709
[8]. K. K. Parhi, VLSI Digital Signal Processing Systems-Design and Imple mentation. New York: Wiley, 1999.
[9]. Goresky, M. and Klapper, A.M. Fibonacci and Galois representations of feedback-with-carry shift registers, IEEE Transactions on
Information Theory, Nov 2002, Volume: 48, On page(s): 2826 –2836.
[10]. Panda Amit K, Rajput P, Shukla B, “Design of Multi Bit LFSRPNRG and Performance comparison on FPGA using VHDL”,
International Journal of Advances in Engineering & Technology (IJAET), Mar 2012, Vol. 3, Issue 1, pp. 566-571
[11]. Xilinx, Inc. Xilinx Libraries Guide, 2011. XessCorp.. XSA-3S1000 Board V1.1 User Manual. Available:
http://xess.com/manuals/xsa-3S-manual-v1_1.pdf. Sept 2007.
[12]. J J.Rose S.D. Brown, R.J. Francis – “Field Programmable GateArrays”, Kluwer Academic Publishers, 1992

More Related Content

PPTX
BCH Codes
PDF
Error control coding using bose chaudhuri hocquenghem bch codes
PDF
Fpga implementation of (15,7) bch encoder and decoder for text message
PPTX
Bch codes
PPTX
BCH CODE AND DECODING BCH
PDF
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
DOC
Information Theory and Coding Question Bank
PPT
7 convolutional codes
BCH Codes
Error control coding using bose chaudhuri hocquenghem bch codes
Fpga implementation of (15,7) bch encoder and decoder for text message
Bch codes
BCH CODE AND DECODING BCH
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Information Theory and Coding Question Bank
7 convolutional codes

What's hot (20)

PPT
Chapter 03 cyclic codes
PDF
Justesen codes alternant codes goppa codes
PPTX
Linear block coding
PDF
Tele4653 l11
PDF
Error-Correcting codes: Application of convolutional codes to Video Streaming
PPTX
Reed Soloman and convolution codes
PDF
Y03301460154
PDF
IntrRSCode
PPTX
DIGITAL COMMUNICATION: ENCODING AND DECODING OF CYCLIC CODE
PDF
FYBSC IT Digital Electronics Unit III Chapter I Combinational Logic Circuits
PDF
Channel Coding (Digital communication)
PDF
FPGA based BCH Decoder
PPTX
Linear block code
PPT
Hamming codes
PPTX
Chapter 3: Simplification of Boolean Function
PDF
EE8351 DLC
PDF
Combinational Logic Circuits
PPT
error control coding
PPTX
Linear Block Codes
PDF
Error control coding bch, reed-solomon etc..
Chapter 03 cyclic codes
Justesen codes alternant codes goppa codes
Linear block coding
Tele4653 l11
Error-Correcting codes: Application of convolutional codes to Video Streaming
Reed Soloman and convolution codes
Y03301460154
IntrRSCode
DIGITAL COMMUNICATION: ENCODING AND DECODING OF CYCLIC CODE
FYBSC IT Digital Electronics Unit III Chapter I Combinational Logic Circuits
Channel Coding (Digital communication)
FPGA based BCH Decoder
Linear block code
Hamming codes
Chapter 3: Simplification of Boolean Function
EE8351 DLC
Combinational Logic Circuits
error control coding
Linear Block Codes
Error control coding bch, reed-solomon etc..
Ad

Viewers also liked (20)

PDF
The CFD Analysis of Turbulence Characteristics in Combustion Chamber with Non...
PDF
Corporate Governance, Firm Size, and Earning Management: Evidence in Indonesi...
PDF
Recent Developments and Analysis of Electromagnetic Metamaterial with all of ...
PDF
Schedulability Analysis for a Combination of Non-Preemptive Strict Periodic T...
PDF
Data mining Algorithm’s Variant Analysis
PDF
Development of Automatic PV Power Pack Servo Based Single Axis Solar Tracking...
PDF
Adaptive Shared Channel Assignment Scheme for Cellular Network to Improve the...
PDF
Multihop Multi-Channel Distributed QOS Scheduling MAC Scheme for Wireless Sen...
PDF
Technical Development of Design & Fabrication of an Unmanned Aerial Vehicle
PDF
m - projective curvature tensor on a Lorentzian para – Sasakian manifolds
PDF
H0213337
PDF
L012266672
PDF
D017351725
PDF
C010211624
PDF
G017633943
PDF
F017533540
PDF
Study On Traffic Conlict At Unsignalized Intersection In Malaysia
PDF
An Analysis on Business Value of Cloud Computing
PDF
D012131728
PDF
M017427985
The CFD Analysis of Turbulence Characteristics in Combustion Chamber with Non...
Corporate Governance, Firm Size, and Earning Management: Evidence in Indonesi...
Recent Developments and Analysis of Electromagnetic Metamaterial with all of ...
Schedulability Analysis for a Combination of Non-Preemptive Strict Periodic T...
Data mining Algorithm’s Variant Analysis
Development of Automatic PV Power Pack Servo Based Single Axis Solar Tracking...
Adaptive Shared Channel Assignment Scheme for Cellular Network to Improve the...
Multihop Multi-Channel Distributed QOS Scheduling MAC Scheme for Wireless Sen...
Technical Development of Design & Fabrication of an Unmanned Aerial Vehicle
m - projective curvature tensor on a Lorentzian para – Sasakian manifolds
H0213337
L012266672
D017351725
C010211624
G017633943
F017533540
Study On Traffic Conlict At Unsignalized Intersection In Malaysia
An Analysis on Business Value of Cloud Computing
D012131728
M017427985
Ad

Similar to Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating the fan-out (20)

PDF
Fpga implementation of (15,7) bch encoder and decoder
PDF
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
PDF
Hardware implementation of (63, 51) bch encoder and decoder for wban using lf...
PDF
An Efficient Fault Tolerance System Design for Cmos/Nanodevice Digital Memories
PDF
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
PPTX
Low Power Parellel Chein Search Architecture using Two- Step Approach
PDF
Conception of a new Syndrome Block for BCH codes with hardware Implementation...
PDF
K505028085
PDF
Fault Tolerant Parallel Filters Based On Bch Codes
PDF
Error control coding using bose chaudhuri hocquenghem bch codes
PDF
It3416071612
PDF
An Efficient Interpolation-Based Chase BCH Decoder
PDF
D0151724
PPT
EEE436 Lecture Slide 3.ppt digital commission coding
PDF
A method to determine partial weight enumerator for linear block codes
PDF
Design and implementation of single bit error correction linear block code sy...
PDF
Fpga implementation of linear ldpc encoder
PDF
Fpga implementation of linear ldpc encoder
PDF
Reed_Solomon_Implementation
PDF
FPGA Implementation of LDPC Encoder for Terrestrial Television
Fpga implementation of (15,7) bch encoder and decoder
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Hardware implementation of (63, 51) bch encoder and decoder for wban using lf...
An Efficient Fault Tolerance System Design for Cmos/Nanodevice Digital Memories
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
Low Power Parellel Chein Search Architecture using Two- Step Approach
Conception of a new Syndrome Block for BCH codes with hardware Implementation...
K505028085
Fault Tolerant Parallel Filters Based On Bch Codes
Error control coding using bose chaudhuri hocquenghem bch codes
It3416071612
An Efficient Interpolation-Based Chase BCH Decoder
D0151724
EEE436 Lecture Slide 3.ppt digital commission coding
A method to determine partial weight enumerator for linear block codes
Design and implementation of single bit error correction linear block code sy...
Fpga implementation of linear ldpc encoder
Fpga implementation of linear ldpc encoder
Reed_Solomon_Implementation
FPGA Implementation of LDPC Encoder for Terrestrial Television

More from IOSR Journals (20)

PDF
A011140104
PDF
M0111397100
PDF
L011138596
PDF
K011138084
PDF
J011137479
PDF
I011136673
PDF
G011134454
PDF
H011135565
PDF
F011134043
PDF
E011133639
PDF
D011132635
PDF
C011131925
PDF
B011130918
PDF
A011130108
PDF
I011125160
PDF
H011124050
PDF
G011123539
PDF
F011123134
PDF
E011122530
PDF
D011121524
A011140104
M0111397100
L011138596
K011138084
J011137479
I011136673
G011134454
H011135565
F011134043
E011133639
D011132635
C011131925
B011130918
A011130108
I011125160
H011124050
G011123539
F011123134
E011122530
D011121524

Recently uploaded (20)

PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Digital Logic Computer Design lecture notes
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Sustainable Sites - Green Building Construction
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
web development for engineering and engineering
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Welding lecture in detail for understanding
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
UNIT-1 - COAL BASED THERMAL POWER PLANTS
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Digital Logic Computer Design lecture notes
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Embodied AI: Ushering in the Next Era of Intelligent Systems
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Arduino robotics embedded978-1-4302-3184-4.pdf
UNIT 4 Total Quality Management .pptx
Sustainable Sites - Green Building Construction
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
bas. eng. economics group 4 presentation 1.pptx
web development for engineering and engineering
CH1 Production IntroductoryConcepts.pptx
Welding lecture in detail for understanding
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
CYBER-CRIMES AND SECURITY A guide to understanding

Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating the fan-out

  • 1. IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-ISSN: 2278-2834,p- ISSN: 2278-8735.Volume 7, Issue 6 (Sep. - Oct. 2013), PP 01-06 www.iosrjournals.org www.iosrjournals.org 1 | Page Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating the fan-out M. Divya, K. Vinodalakshmi, G. Sumalatha, Shahbazsarik, Abhishek Awasthi Dept. of ECE, Avanthieng college Hayathnagar, India Abstract: In this paper we have designed and implemented(15, k) a BCH Encoder on FPGA using VHDL for reliable data transfers in AWGN channel with multiple error correction control. The digital logic implementation of binary encoding of multiple error correcting BCH code (15, k) of length n=15 over GF (24 ) with irreducible primitive polynomial x4 +x+1 is organized into shift register circuits. Using the cyclic codes, the reminder b(x) can be obtained in a linear (15-k) stage shift register with feedback connections corresponding to the coefficients of the generated polynomial. Three encoder are designed using VHDL to encode the single, double and triple error correcting BCH code (15, k) corresponding to the coefficient of generated polynomial. Information bit is transmitted in unchanged form up to k clock cycles and during this period parity bits are calculated in the LFSR then the parity bits are transmitted from k+1 to 15 clock cycles. Total 15-k numbers of parity bits with k information bits are transmitted in 15 code word. Here we have implemented (15, 5, 3), (15, 7, 2) and (15, 11, 1) BCH code encoder on Xilinx Spartan 3 FPGA using VHDL and the simulation & synthesis are done using Xilinx ISE 13.3. BCH encoders are conventionally implemented by linear feedback shift register architecture. Encoders of long BCH codes may suffer from the effect of large fan out, which may reduce the achievable clock speed. The data rate requirement of optical applications require parallel implementations of the BCH encoders. Also a comparative performance based on synthesis & simulation on FPGA is presented. Keywords: BCH, BCH Encoder, FPGA, VHDL, Error Correction, AWGN, LFSR cyclic redundancy checking, fan out . I. Introduction In a noisy channel when the data is transmitted, at the receiver side it is very difficult to retrieve actual data. It is frequently the case that a digital system must be fully reliable, as a single error may shutdown the whole system, or cause unacceptable corruption of data, e.g. in a bank account [5], [6]. There are so many error correcting methods, one of them is liner block code and the simplest block codes are Hamming codes [1]-[4]. They are capable of correcting only one random error and therefore are not practically useful, unless a simple error control circuit is required. More sophisticated error correcting codes are the Bose, Chaudhuri and Hocquenghem (BCH) codes that are a generalisation of the Hamming codes for multiple-error correction. The (Bose-Chaudhuri-Hocquenghem) BCH codes form a large class of powerful random error correcting cyclic codes [7]-[9] having capable of multiple error correction [8]. BCH codes operate over finite fields or Galois fields [7]. The mathematical background concerning finite fields is well specified and in recent years the hardware implementation of finite fields has been extensively studied. In recent years there has been an increasing demand for digital transmission and storage system and it has been accelerated by the rapid development and availability of VLSI technology and digital processing. Programmable Logic Device (PLD) and Field Programmable Gate Arrays (FPGAs) [14], [15] has revolutionized hardware design and its implementation advantages provides various solution like FPGA is fully reprogrammable and reconfigurable. A design can be automatically converted from the gate level into the layout structure by the place and route software. Xilinx Inc. offers a wide range of components [12] which offers millions gate complexity and flip-flops, so even a relatively complex design can be implemented. Here implementation of encoder for (15, k) BCH code organized by LFSR for single, double and triple error correction control using VHDL [16], [17] on FPGA presented and also performance compared based on synthesis and simulation result to understand the device utilization and timing simulation by targeting on Xilinx Spartan 3S 1000 FPGA and XSA 3S1000 Board of Xess Corporation [13]. For simulation and synthesis Xilinx ISE 10.1 is used. The structure of this paper is as follows. Section II contains a brief description of the BCH code and generated polynomial. Section III contains Encoder Design for multiple error correction. Section IV contains simulation shows FPGA implementation results.
  • 2. Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating www.iosrjournals.org 2 | Page II. Generated Polynomial Of Binary Bch Code Over Gf (24 ) As the BCH code operate in Galois Field [7], it can be defined by two parameters that are length of code words (n)and the number of error to be corrected t. A t-error-correcting binary BCH code is capable of correcting any combination of t or fewer errors in a block of n = 2 m _1 digits. For any positive integer m ≥ 3 and t < 2 m-1 , there exists a binary B BCH code with the followingparameters: Block length: n = 2 m _ 1 Number of information bits: k _ n – m*t Minimum distance: dmin _ 2t + 1. The generator polynomial of the code is specified in terms of its roots over the Galois field GF (2 m ) which is explained in [7]. Let _ be a primitive element in GF (2 m ). The generator polynomial g(x) of the code is the lowest degree polynomial over GF (2), which has α, α 2 , α 3 , . . . , α 2t as its roots. [g(α i )= 0 for 1α i α2t] Let _i(x) be the minimum polynomials of _i then g(x) must be the, g( x)= LCM{φ1( x),φ2( x),........,φ2t( x)} (1) As the minimal polynomial for conjugate roots are same i.e. asα i = (α i’ ) 2l ,αi(x) =αi’ (x), where i = i’ * 2 l for l α1, thus generated polynomial g(x) of binary t-error correcting BCH code of length given by eqn.(1) can be reduced to g( x)= LCM{φ1( x),φ3( x),........,φ2t-1( x)} (2) BCH code generated by primitive elements is given in [8]. An irreducible polynomial g(x) of degree m is said to beprimitive if only if it divides polynomial form of degree n,x n + 1 for n = 2 m _1. In fact, every binary primitivepolynomial g(x) of degree m is a factor of x 2m_1 + 1. A listof primitive polynomial for degree m and for finding irreducible polynomial is given in [7]. For (15, k) BCH code, let _ be a primitive element of the GF (2 4 ) given in [7] such that 1 + α+ α 4 is a primitive Polynomial. From [7], [8] we find that minimal polynomials of α,α 3 ,α 5 are φ1( x)=1+ x + x4 φ3( x)=1+ x + x2 + x3 + x4 φ5( x)=1+ x + x2 For single error correcting, BCH code of length n = 24 -1 = 15 is generated by g(x)=φ1( x)=1+ x + x 4 (3) Here highest degree is 4 i.e. (n-k = 4), thus the code is a (15, 11) cyclic code with dmin= 3 since the generator polynomial is code polynomial of weighted 5, the minimum distance of this code is exactly 3. For double error correcting, BCH code of length n = 15 is generated by g(x)= LCM{φ1( x),φ3( x)}
  • 3. Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating www.iosrjournals.org 3 | Page = 1+ x 4 + x 6 + x 7 + x 8 (3) Here highest degree is 8 i.e. (n-k = 8), thus the code is a (15, 7) cyclic code with dmin _ 5. For triple error correcting, BCH code of length n = 15 is generated by g(x)= LCM{φ1 ( x),φ3 ( x),φ5 ( x)} = 1 + x + x2 + x4 + x5 + x8 + x10 (4) Here highest degree is 10 i.e (n-k = 10), thus the code is a (15, 5) cyclic code with dmin _ 7. III. Design Of Bch Encoder On Fpga BCH encoder is usually implemented with a serial linear Feedback shift register (LFSR) architecture [10]. BCH codeword are encoded as c( x)=x n−k ∗ i( x)+ b( x) (6) Where c(x)= c0+ c1x +..... +cn−lx n−l i( x)= i0+ i1x +.....+ik−lx k−l b( x)= b0+ b1x +.....+ cm−lx m−l andcj, ij, bj∈ GF(2). Then if b(x) is taken to be the polynomial such that xn−k ∗ i( x)= q( x)∗ q( x)− b( x) (7) The k data bits will be present in the code word. Using theproperties of cyclic codes [7], the remainder b(x) can beobtained in a linear (n-k)-stage shift register with feedbackconnections corresponding to the coefficients of the generator polynomial g( x)=1+ g1x +.....+gn−k−lxn−k−l +xn−k (8) Such a circuit is shown on Fig. 2. On the encoder side, systematic encoding has been used, which makes easier implementation of encoder which is shown in Fig. 1. Code blocks Information Error control I1 I2 I3 ........ Ik-1 Ik P1 ....... Pn-k-1 Pn-k k Data bits n-k parity check bits It is not useful to split the generator polynomial at the encoding side because it will demand more hardware and control circuitry. Therefore, the polynomial (I) is used as it is for encoding procedure. The digital logic implementing the encoding algorithms is organized into linear feedback shift-register circuits (LFSR) that mimic the cyclic shifts and polynomial arithmetic required in the description of cyclic codes. The LFSR block diagram for (n, k) BCH encoder is shown in Fig. IV BCH ENCODERArchitecture Multipl y by p(x) Dividi ng m(x)p (x) Dividi ng by p(x) Remai nder Messa ge input m(x) Quot ient
  • 4. Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating www.iosrjournals.org 4 | Page An binary BCH code encodes a -bit message into an -bit code word. A - bit message can be considered as the coefficients of a degree polynomial , where . Meanwhile, the corresponding -bit code rd can be considered as the coefficients of a degree poly- nomial , where . The encoding of BCH codes can be simply expressed by where the degree polynomial is the generator polynomial of the BCH code. Usually, . However, systematic encoding is generally desired, since message bits are just part of the code word. The systematic encoding can be implemented by (1) where denotes the remainder polynomial of dividing by . The architecture of a systematic BCH en- coder is shown in Fig. 1. During the first clock cycles, the two switches are connected to the “a” port, and the -bit message is input to the LFSR serially with most significant bit (MSB) first. Meanwhile, the message bits are also sent to the output to form the systematic part of the code word. After clock cycles, the switches are moved to the “b” port. At this point, the reg-isters contain the coefficients of . The remainder bits are then shifted out of the registers to the code word output bit by bit to form the remaining systematic code word bits. For binary BCH, the multipliers in Fig. 1 can be re-placed by connection or no connection when is “1” or “0,” respectively. The critical path of this architecture consists of two XOR gates, and the output of the right-most XOR gate is input to all the other XOR gates. In the case of long BCH codes, this architecture may suffer from the long delay of the right-most XOR gate caused by the large fanout. Although the serial architecture of BCH encoder is quite straight forward, in the case when it cannot run as fast as the application requirements, parallel architectures must be employed. Fanout bottle-neck will also exist in parallel architectures. Steps of Algorithim set ; ; set ; ; loop: while ; ; ; highest power in ; final step: ; ;
  • 5. Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating www.iosrjournals.org 5 | Page Simulation Results Figure1 simulated wave form (15,11,1) BCH Encoder Figure 2 simulated wave form (15,7,2) BCH Encoder Figure 3 simulated wave form (15,5,3) BCH Encoder Synthesis Report V. Conclusion The result presented from the synthesis and timing simulation, shows the (15, 5, 3) BCH Encoder is more advantageous over the other two, according to speed requirement It can correct 3 error at the receiver side when the original data corrupt by the noise. But when considering area then (15, 11, 1) is better which can correct only 1 bit error. Also redundancy is less and data rate is more in it. BCH codes have been shown to be excellent error-correcting codes among codes of short lengths. They are simple to encode and relatively simple to decode. Due to these qualities, there is much interest in the exact capabilities of these codes. The speed and device utilization can be improved by adopting parallel approach methods. Cell:in->out (15,11,1)BCH (15,7,2)BCH (15,5,3)BCH LUT3:I0->O 1 1 1 IBUF:I->O 3 5 7 FDC:D 5 3 2
  • 6. Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL and eliminating www.iosrjournals.org 6 | Page References [1]. M.Y. Rhee - “Error Correcting Coding Theory”, McGraw-Hill, Singapore, 1989. [2]. S. Lin, and D.J. Costello Jr. - “Error Control Coding”, Prentice-Hall, New Jersey, 1983. [3]. E. R. Berlekamp, “Algebraic coding theory”, McGraw-Hill, New York, 1968. [4]. R.E. Blahut, “Theory and practice of error-control codes”, Addison-Wesley, Reading, MA, 1983 [5]. S. B. Wicker, Error Control Systems for Digital Communication andStorage. Upper Saddle River, New Jersey 075458: Prentice Hall, Inc,1995. [6]. J. H. Derby, “High-speed CRC computation using state-space transformation” in Proc. Global Telecommunications Conf. 2001, GLOBECOM. [7]. R. J. Glaise, “A two-step computation of cyclic redundancy code CRC-32 for ATM networks,” IBM J. Res. Dev., vol. 41, pp. 705–709 [8]. K. K. Parhi, VLSI Digital Signal Processing Systems-Design and Imple mentation. New York: Wiley, 1999. [9]. Goresky, M. and Klapper, A.M. Fibonacci and Galois representations of feedback-with-carry shift registers, IEEE Transactions on Information Theory, Nov 2002, Volume: 48, On page(s): 2826 –2836. [10]. Panda Amit K, Rajput P, Shukla B, “Design of Multi Bit LFSRPNRG and Performance comparison on FPGA using VHDL”, International Journal of Advances in Engineering & Technology (IJAET), Mar 2012, Vol. 3, Issue 1, pp. 566-571 [11]. Xilinx, Inc. Xilinx Libraries Guide, 2011. XessCorp.. XSA-3S1000 Board V1.1 User Manual. Available: http://xess.com/manuals/xsa-3S-manual-v1_1.pdf. Sept 2007. [12]. J J.Rose S.D. Brown, R.J. Francis – “Field Programmable GateArrays”, Kluwer Academic Publishers, 1992