Professional Documents
Culture Documents
FPGA Implementation of FEC Encoder With BCH & LDPC Codes For DVB S2 System
FPGA Implementation of FEC Encoder With BCH & LDPC Codes For DVB S2 System
FEC Encoding is accomplished by the concatenation of BCH The parity check bits known as BCHFEC of the BCH outer
as outer codes and LDPC as inner codes. This is followed by code are added at the end of each BBFRAME, and the parity
interleaving of LDPC coded data. Bit Mapping into check bits called as LDPCFEC of the inner LDPC encoder are
constellations for QPSK, and other modulations is applied, as be appended after the BCHFEC data. Figure 3 illustrates the
per the required application. Physical layer framing followed fields for insertion of parity bits of each code and the total
by Base-Band Filtering and Quadrature Modulation generates framing structure after coding.
the RF signal from the system. The parameters of FEC encoding for DVB-S2 system for
normal FECFRAME (nldpc = 64 800 bits) with Rate ½ LDPC
Figure 2 illustrates the FEC Encoder for DVB-S2 system
is given in DVB-S2 standard given Ref [1]. This is considered
which consists of three major functional modules. These are
for FPGA implementation in this paper.
BCH encoder as outer code, LDPC Encoder as inner code
followed by a block Interleaver. The encoded output from FEC
Encoder is provided to bitmapper for bit mapping to III. FPGA DESIGN FOR BCH ENCODER
constellation depending on the type of modulation.
FEC ENCODER
P0 P1 P2 P190 P191
Fig. 2: FEC Encoder for DVB S2 standard
nldpc bits
79
2019 6th International Conference on Signal Processing and Integrated Networks (SPIN)
As shown in the Figure 4, the parity bits in BCH code here is Parity bits. LDPC encoder processes an input block of size,
192. So the output of BCH code will be 32400 bits for 32208 kldpc on to a code word of size nldpc.
numbers of inputs bits in frame. The taps are chosen as per the
desired polynomial. The functional simulation of BCH code in Information bits kldpc , i = (i0 , i1…. ikldpc-1).
FEC DVB-S2 is shown in Figure 5. The BCH code targeted for Code word nldpc= (i0 , i1…. ikldpc-1, p0 , p1…. pnldpc-kldpc-1).
Xilinx FPGA is written Verilog HDL and simulation is
accomplished in QuestaSim simulator.
While encoding of each data frame, the information (I) bits
are repeated and generally distributed to a set of accumulators.
Each accumulator is used to generate a parity symbol as shown
in Figure 7. The single copy of original information is provided
with the parity bits (P) to constitute the code symbols [4].
I
P
Table1: BCH Polynomials for nldpc= 64800 Fig. 7: Parity bit generation in LDPC
80
2019 6th International Conference on Signal Processing and Integrated Networks (SPIN)
Address Encoder
LDPC Parity Address Each normal 64800 bits FECFRAME is serial-to-parallel
RAM
Generation
( ROM)
Parameters Generation
LDPC ( RAM)
converted depending on the type of modulation. Parallel factor
ROM
32400 bits
for QPSK modulation (ȘMOD) is two. (I, Q) sequence of
variable length is generated from each parallel sequence
depending on the parallelism factor ȘMOD. The input stream is
BCH Coded called a FECFRAME, the output stream is called as a
Parity
RAM
Generation/
LDPC coded bit XFECFRAME (compleX FECFRAME), consists of
Control
Logic 32400 bits
Data Shifting
64800/ȘMOD modulation symbols. Each generated modulation
for symbol is a complex vector in the format (I,Q). Two bits of
operations
FECFRAME are mapped to one QPSK symbol. Bit mapping
Address into the QPSK constellation in FPGA shall follow figure 10.
Generation
(BCH RAM )
QPSK I
Fig.8: LDPC Encoder design in FPGA LDPC coded bit Bit Mapping
To
The functional modules in encoder operate as in a parallel Constellation
architecture. Pipelining technology is also adopted in the design QPSK Q
to improve the coding efficiency. The parity bit accumulator
addresses are divided in to several groups in ROM to utilize the
Fig. 10: Bit Mapping to QPSK Constellation
full parallel architecture for encoding. Memory related
operations are performed in ping pong technique to maintain
continuous processing of the input BBFRAMEs. Control logic
is implemented in the design to maintain the sequence of VI. CONCLUSION
operations in the total logic block modules synchronized with
each other. Both pipelining & parallel processing techniques FEC Encoder consists of BCH code & LDPC code, for
are incorporated in the design to meet the timing specifications DVB-S2 system is realized using Xilinx Virtex 6 FPGA in this
and increase the throughput. paper. This consists of BCH code as outer code and LDPC
code as inner code followed by bit mapping for QPSK
constellation. Code length of 64800bits and 1/2 code rate
normal frame LDPC code is considered for FPGA
implementation. The design is processed at a clock @ 122MHz
meeting the timing specifications requirements. Parallel
processing and pipeline technology are efficiently applied in
the design along with the use of multiple RAM in FPGA to
improve the coding efficiency.
REFERENCES
[1] Final Draft ETSI EN 302 307 V1.2.1 (2009-04). European Standards
(Telecommunications series). Digital Video Broadcasting (DVB);
Fig.9: Functional simulation of LDPC encoder in FPGA Second generation framing structure, channel coding and modulation
systems for broadcasting, Interactive Services, News Gathering and
Figure 9 gives the functional simulation result of LDPC Other Broadband Satellite Applications (DVB-S2).
Encoder DVB-S2 accomplished in QuestaSim simulator. The [2] A. Morello, et. al “DVB-S2: The Second Generation Standard for
Satellite Broad-Band Services,” Proceedings of IEEE, Vol: 94, Issue: 1,
LDPC code is written in Verilog HDL for Xilinx FPGA and Jan. 2006.
simulation is accomplished in QuestaSim simulator. Dummy [3] https://en.wikipedia.org/wiki/BCH_code.
BBFRAMEs are provided through Verilog test bench to the [4] https://en.wikipedia.org/wiki/Low-density_parity-check_code.
FEC encoder to accomplish the complete end to end simulation [5] Datasheet, LogiCORE IP Block Memory
Generator,https://www.xilinx.com/support/documentation/ip_document
of FEC encoder including BCH & LDPC code. Control logic is ation.
implemented in the design to generate all the memory
addresses and maintain all the sequence of operations.
81