An Error Detection and Correction System based on Associative Memories
Constantin ANTON, Lauren iu IONESCU, *Ion TUT NESCU,
Alin MAZ RE, Gheorghe ERBAN, Adriana OPREA
Faculty of Electronics, Communications and Computers - University of Pite ti, Romania
{constantin.anton, laurentiu.ionescu, ion.tutanescu, alin.mazare, gheorghe.serban, adriana.oprea}@upit.ro
* Corresponding author
Abstract - Associative memories have the property to allow the
searching of a binary stored value, having as an input data a
partial amount of this value. This property can be used in
communication for detecting and correcting the errors
encountered in the communication channel.
We present in our paper a solution to design and implement a
hardware errors’ correction and detection circuit using
associative memories. In the final part of our paper, an analysis
was realized in order to compare the obtained experimental
results with performances of other implemented hardware
systems.
Keywords - errors’ correcting codes, encoder, decoder, word code,
associative memories, Field Programmable Gates Array (FPGA).
I. INTRODUCTION
The usage of error correcting control is very important in
the modern communication systems.
This paper presents the prototyping of a BCH encoder and
decoder using associative memories. BCH codes (Bose,
Chaudhuri, and Hocquenghem) are being widely used in
communication networks, computer networks, satellite
communications, magnetic and optic storage systems.
BCH codes can be defined by two parameters which are:
the length of code words, n, and the number of errors to be
corrected, t. These codes operate over finite fields or Galois
fields. BCH codes are a class of cyclic codes whose generator
polynomial is a product of distinct minimal polynomials
corresponding to
,
2
, … ,
2t
, (1)
where
( )
m
GF 2 ∈ α
is a root of the primitive polynomial g(x)
[1] [8].
An irreducible polynomial g(x) of degree m is said to be a
primitive if only if it divides polynomial form of degree n,
1 +
n
x for no n < 1 2 −
m
. (2)
In fact, according to [2], every binary primitive polynomial
g(x) of degree m is a factor of
1
1 2
+
− m
x
.
For our application we use the generator polynomial:
1 ) (
2 4 5 8 10
+ + + + + + = x x x x x x x g
, (3)
which can detect 6 errors and correct 3 erroneous bits.
II. HARDWARE CIRCUITS FOR ERRORS DETECTION AND
CORRECTION
Field-Programmable Gate Arrays (FPGA) have become
one of the key digital circuit implementation media over the
last decade [3]. One bit patterns produce operational circuits
which can be used in many areas, like the communication
systems. FPGA represent a compromise between circuits with
microprocessor and ASIC (Application Specific Integrated
Circuits) [4] [7].
First, they present flexibility in programming, called here
reconfiguration, which is a feature for microprocessors. Even
if FPGA cannot be programmable while operation, they can be
configured anytime is needed, having a structure based on
RAM programmable machines, as we can see in Figure 1.
On the other hand, they allow parallel structures’
implementation, with a response time which is smaller than
those of a system with microprocessor.
Our hardware scheme for errors’ detection and correction is
based on a polynomial generator. The proposed system is based
on the use of reconfigurable FPGA circuits for a hardware
implementation of error detection and correction algorithm.
Figure 1 - Communication system with hardware errors’ detection
and correction.
III. ENCODER AND DECODER: DESIGN AND
IMPLEMENTATION
We have designed the encoder and decoder using dedicated
Boolean circuits. Thus, the encoder will be attached as a
physical device to any system which transmits data through a
communication channel, while the decoder will be attached to
the system which receives the data.
20th Telecommunications forum TELFOR 2012 Serbia, Belgrade, November 20-22, 2012.
978-1-4673-2984-2/12/$31.00 ©2012 IEEE 568