I. INTRODUCTION
In telecommunications, forward error correction (FEC) is a
system of error control that improves digital communication
quality. Since the early 90s, channel coding families based on
iterative decoding process are considered to be the most
efficient coding schemes. With the invention of turbo codes [1]
followed by the rediscovery of low-density parity-check
(LDPC) codes [2], it is now possible to approach the
fundamental limit of channel capacity. The turbo code family
refers to two classes of codes: Convolutional Turbo Codes
(CTCs) [1] and Turbo Product Codes (TPCs) [3]. The general
concept of TPC is based on product codes that were constructed
by the serial concatenation of two (or more) systematic linear
block codes. In the last few years, many TPC decoder
architectures have been designed [4, 5]. Product codes using
binary Bose-Chaudhuri-Hocquenghem (BCH) component codes
have generally been chosen [6]. The turbo product code concept
was recently successfully extended to RS component codes [7,
8]. Actually, RS codes are a widely used subclass of non-binary
BCH codes. For this reason, the code construction approach
dedicated to BCH codes can be naturally applied to RS codes. It
is possible to design efficient TPC architectures using RS
component codes from the BCH- TPC architecture know-how
[9].
At present, the main challenge for hardware implementation of
turbo decoder is to meet the demand for even higher data rates.
Indeed, the increasing demand of high data rate and reliability
in modern communication systems is pushing next-generation
standards toward error correction schemes allowing high
throughput decoding with near Shannon limit performance.
Thus, data rates above 1Gbps and 10Gbps will be required for
1
This work was supported with funds from the Brittany Region under the
competitiveness pole InterAccess
67
Soft value
N rows of N
soft values
i
index (i+1) = i + 1 mod N
index (j+1) = j - 1 mod N
Fig. 1. Full-parallel decoding of an RS product code matrix.
Elementary
decoder
for row N
Elementary
decoder
for row 2
Elementary
decoder for
column 1
Elementary
decoder
for row N
Elementary
decoder for
column N
Interconnection block
Elementary
decoder for
column 2
Interconnection block
Interconnection block
Elementary
decoder
for row 2
Elementary
decoder
for row 1
Elementary
decoder for
column 1
Interconnection block
Elementary
decoder
for row 1
Elementary
decoder for
column 2
Elementary
decoder for
column N
delay
Fiter
Riter
SISO
decoding
delay
Witer
Riter+1
Diter
69
FPGA
XC5VLX330
FPGA
XC5VLX330
SERDES module
encseq
LFSR
encseq
LFSR
encseq
WGN
WGN
WGN
elementary
decoder
for row N
elementary
decoder for
column N
SERDES module
LFSR
WGN
elementary
decoder for
column 1
elementary
decoder for
column 2
SERDES module
encseq
elementary
decoder
for row 1
elementary
decoder
for row 2
interconnection block
LFSR
RS parallel encoder
WGN
SERDES module
AWGN channel
2
encseq
(31,29)2 RS encoder
LFSR
SERDES module
PRG
Transmitter part
FPGA
XC5VLX330
interconnection block
FPGA
XC5VLX330
elementary
decoder for
column N
FPGA
XC5VLX330
elementary
decoder for
column 1
elementary
decoder for
column 2
interconnection block
elementary
decoder
for row N
interconnection block
SERDES module
SERDES module
elementary
decoder
for row 1
elementary
decoder
for row 2
FPGA
XC5VLX330
elementary
decoder for
column N
SERDES module
SERDES module
elementary
decoder
for row N
elementary
decoder for
column 1
elementary
decoder for
column 2
SERDES module
elementary
decoder
for row 1
elementary
decoder
for row 2
elementary
decoder
for row N
interconnection block
elementary
decoder
for row 1
elementary
decoder
for row 2
interconnection block
elementary
decoder for
column N
elementary
decoder
for row N
elementary
decoder for
column 1
elementary
decoder for
column 2
interconnection block
elementary
decoder
for row 1
elementary
decoder
for row 2
elementary
decoder for
column 1
elementary
decoder for
column 2
elementary
decoder for
column N
Fig. 4. 5Gbps experimental setup for turbo decoding of a (31,29)2 RS product code
70
[2]
[3]
[4]
[5]
[6]
[7]
[8]
1E-1
1E-2
[9]
1E-3
1E-4
[10]
1E-5
1E-6
[11]
1E-7
1E-8
1E-9
[12]
1E-10
1E-11
uncoded BPSK
prototype performance (5 iter.)
optimal algorithm performance (8 iter.)
1E-12
1E-13
2
[13]
5
[14]
Eb/N0 (dB)
2
VI. CONCLUSION
[15]
[16]
[17]
[18]
[19]
72