Вы находитесь на странице: 1из 11

International Journal of Electrical and Electronics communication

Volume 1 Issue 1

Design of an LDPC Decoder and Its Performance


Palleti Raju Potnuru Surya Prasad
1 2
Department of E.C.E, PG Student, M.V.G.R Department of E.C.E, Associate Professor,
College of Engineering(Autonomous), M.V.G.R College of Engineering (Autonomous),
Vizianagaram, A.P-535005, India. Vizianagaram, A.P-535005, India.

Address for Correspondence


Palleti Raju,3-1-193/39, Vasavani Palem, Lawson’s Bay Colony (Post), Visakhapatnam, A.P-
530017, India.
E-Mail:rajupalleti17@gmail.com

Abstract
Low-Density Parity-Check codes (LDPC) are widely using ECC (Error Correcting Codes)
for having eminent capabilities. By using Message Passing Algorithm, these codes can be
decoded. These codes perform better than Turbo Codes and easily attains Shannon’s limit.
For low SNR, these codes provide low bit error rates. For high SNR, these codes provide no
error floor. These codes are used in various applications like Wi-Fi, Mobile WiMAX, DVD-
S2, and IEEE 802.3 (10 GBASE –T). The main feature of these codes is that they can provide
efficient encoding and decoding. In this paper, an LDPC encoder and decoder are
implemented by Verilog techniques. For simulation, Xilinx Vivado 14.2 and Questa Sim 10.4c
are used. And for synthesis, Leonardo Spectrum 2014b.4is used. These designs are also
implemented on Nexys 4-DDR XC7A100TCSG324-2L FPGA.

Keywords:Low Density Parity Check (LDPC); Bit Flipping; Mentor Graphics Custom IC
Design Tool; Leonardo Spectrum; FPGA.

INTRODUCTION Wireless Communications is one of the


In 1960, Gallager proposed LDPC (Low prime applications for error correcting
density parity check) codes, which are codes. Because of the eminent capability,
similar to linear block codes [1]. At that LDPC codes are being used in various
time, these codes are neglected due to its applications like Wi-Fi, Mobile WiMAX,
high computational complexity. In 1981, DVD-S2, and IEEE 802.3 (10 GBASE –T)
LDPC codes are generalized into graphical [4]. The standards like DVB-S, 3GPP-LTE
representation (Bipartite graph or Tanner uses Turbo Codes.
graph) by Tanner [5]. In 1990’s, these
codes are again came back by D. Mackay The complexity and throughput of an
and R. Neal, who constructed a parity LDPC decoder depends on many
check matrix with dynamic sparseness [2] parameters such as block length, code rate,
[3]. Richardson and Urbanke improved the processing node complexity,
parity check matrix to reduce the interconnection complexity, no. of
complexity for faster encoding and iterations and parallelism level. There is a
decoding. This code’s performance is very balance between the performance of
close to channel capacity specified by decoder and complexity of decoding. The
Shannon. In practical implementation, parallelism in decoding provide eminent
these codes provide a high degree of throughput if properly used. The flexibility
parallelism. in FPGA is suitable for designing LDPC

22 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

decoder rather than in general purpose (variable node) is one and check node is
processor. the other [5]. The no. of bit nodes equals to
no. of columns and the no. of check nodes
REPRESENTATION OF LDPC equals to no. of rows in the matrix H. The
CODES connection (edges) between the check
The representation of LDPC codes can be nodes and the bit nodes represents non-
done either by using parity-check matrix zero entities in the matrix H. A parity
or by using a Tanner representation check matrix and its graphical
(bipartite graph). In Tanner representation, representation are given below.
there are nodes of two types, Bit node

Parity-Check Matrix ‘H’

Tanner representation of matrix ‘H’


Fig. 1: The Parity-check matrix ‘H’ and its equivalent graphical representation

In the matrix ‘H’, a cycle can be formed CLASSIFICATION


by one complete path through non-zero LDPC codes are having two classes,
entries with moves between rows and Regular LDPC is one and Irregular LDPC
columns alternatively. In a tanner graph, a is the other. If the weight of each column
cycle can be formed by a path starting and each row are constant then the codes
from a node and ending at the same node. are called regular LDPC codes. If the
The number of edges in that path gives the weight of each column and each row are
length of the cycle. The smallest cycle is different then the codes are called irregular
called as girth. The smallest possible girth LDPC codes [6] [7].
is four. A tanner graph has a minimum
cycle of length four and has even cycle
lengths.

23 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

ENCODING PROCESS DECODING PROCESS


To encode the LDPC codes, first the In this paper, Bit Flip algorithm is used to
matrix ‘H’ should be transformed as given decode LDPC codes. Bit Flip algorithm is
below. known as hard decision algorithm.
The steps involved in the Bit Flip
H = P IN−K algorithm are as follows

The above form of parity check matrix is Step 1: Initialization


obtained by performing Gaussian In this step, the received codeword is
elimination method [7]. In this method, assigned to the corresponding variable
only row operations should be used. The nodes. These assigned values are passed as
addition of two rows should be modulo-2 messages from variable node to check
addition. This parity check matrix can also node.
be obtained by performing row swaps and
column swaps on it. Here, ‘𝑃(N−K) x K ’ Step2: Check Node Update
represents a parity matrix and ‘IN−K ’ In this step, each check node checks the
represents an identity matrix. parity check equation associated with it
from the variable node messages. If the
By using the matrix 𝑃(N−K) x K , Generator parity check equation is satisfied then its
matrix ‘G’ can be obtained which is of the send ‘0’ value otherwise ‘1’ value to
form variable node. If all forms of the parity-
check equations are get satisfied, the
G = IK PT termination of the algorithm will occur.

Now, the encoding of the information bits Step 3: Variable Node Update
or message bits is done by the following In this step, each variable node gets a
form value from check nodes. Now each
variable node decides that the original
C = [u] . [G] received bit is correct or not by majority
voting from check nodes. If majority of
Here, ‘C’ represents the codeword of size votes are different from the original
N, ‘u’ is the message vector of size K and received bit then that the bit will be flipped
‘G’ is the generator matrix. This codeword and update its value.
is the encoded message that is modulated
using BPSK in which {0, 1} {-1, 1} This updated value will be send as a
transformation occurs and transmitted over message to the check node. After this, step
AWGN channel [9] [10]. 2 and step 3 are repeated until
the parity-check equations are get satisfied
(or) until it reach the count of iterations
specified [12][13][14].

Algorithm Bit flipping Decoding

01: Procedure decode(r)


02:
03: K=0 →Initialization
04: for i = 1 : n do

24 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

05: Mi = ri
06: end
07:
08: repeat
09: for j = 1 : m do →Check messages
10: for i = 1 : n do
11: 𝐸𝑖,𝑗 = 𝑖 ` ∈𝐵𝑖 ,𝑖 ` ≠𝑖 𝑀𝑖 ` 𝑚𝑜𝑑 2
12: end
13: end
14:
15: for i = 1 : n do →Bit messages
16: if the message 𝐸𝑖,𝑗 disagree with rithen
17: Mi = ( ri + 1 mod 2)
18: end
19: end
20:
21: for j = 1 : m do Test: are the parity-check equations are satisfied
22: 𝐿𝑗 = 𝑖 ` ∈𝐵𝑖 𝑀𝑖 ` 𝑚𝑜𝑑 2
23: end for
24: if all Lj = 0 or K = Kmaxthen
25: Finished
26: else
27: K=K+1
28: end
29: until Finished
30: end procedure

SIMULATION RESULTS These designs are simulated by using


LDPC encoder and decoder are designed Xilinx vivado and Questa Sim. The
in Verilog HDL language using Xilinx simulation results are given below.
vivado 14.2 and HDL Designer 2015.1a.

Fig. 2: Simulation results of LDPC Encoder


In the above figure, when the reset becomes low. When the reset becomes
becomes high, the encoded output low, the message 00110111 is encoded as
25 Page 22-32 © MAT Journals 2017. All Rights Reserved
International Journal of Electrical and Electronics communication
Volume 1 Issue 1

0011011100110010. The encoded output will be different for different messages.

Fig. 3: Simulation results of LDPC Decoder

In the above figure, when the reset Xilinx Vivado and Leonardo Spectrum are
becomes high, the decoded output used. The net list obtained by using Xilinx
becomes low. When the reset becomes vivado is dumped into the FPGA to see the
low, the received codeword performance of the designs. The net list
0011011100010010 is decoded as obtained by using Leonardo Spectrum can
0011011100110010. In the received be used to generate ASIC model of the
codeword, there is an error at the 11th bit design. RTL and Synthesized designs of
which is decoded by using Bit Flipping the designs obtained by using Xilinx
algorithm. Vivado are shown in fig 4, 5, 6, 7. RTL
and Gate Level designs of the designs
To get ASIC Model of design, the designs obtained by using Leonardo Spectrum are
should be synthesized to get the netlist file. shown in fig 8, 9, 10, 11.
In this paper, to synthesize the designs,

Fig. 4: RTL Design of LDPC Encoder in Xilinx

26 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

Fig. 5: RTL design of LDPC Decoder in Xilinx

Fig. 6: Synthesized Design of LDPC Encoder in Xilinx

27 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

Fig. 7: Synthesized Design of LDPC Decoder in Xilinx

Fig. 8: RTL Design of LDPC Encoder in Leonardo Spectrum

28 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

Fig. 9: RTL Design of LDPC Decoder in Leonardo Spectrum

Fig. 10: Gate Level Design of LDPC Encoder in Leonardo Spectrum

29 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

Fig. 11: Gate Level Design of LDPC Decoder in Leonardo Spectrum

The synthesized designs using Xilinx techniques over AWGN Channel is shown
vivado are dumped into Nexys 4DDR in fig 14. For block lengths (200, 400),
FPGA. The utilization reports, when the (300, 600), the performance is shown in
designs are tested on Nexys 4DDR fig 15. For block lengths (500, 1000),
XC7A100TCSG324-2LFPGA are given (600, 1200), the performance is shown in
below fig 16.

Fig. 12: Utilization report of LDPC


Encoder

Fig. 13: Utilization report of LDPC


Decoder
Fig. 14: Performance for different
The performance of an LDPC Decoder modulation techniques
while using different modulation
30 Page 22-32 © MAT Journals 2017. All Rights Reserved
International Journal of Electrical and Electronics communication
Volume 1 Issue 1

are simulated Using Xilinx Vivado 14.2


and Questa Sim 10.4c. These designs are
synthesized usingXilinx Vivado 14.2 and
Leonardo Spectrum 2014b.4and also
implemented on Nexys 4-
DDRXC7A100TCSG324-2L FPGA.

REFERENCES
1. R. Gallager, 1962. Low density parity
check codes. IRE Trans. on Inf. Theory,
8(1): 21-28.
Fig. 15: Performance for Block lengths 2. R.M. Neal and D.J.C. MacKay, 1997.
(200,400), (300,600) Near Shannon limit performance of low
density parity check codes. Electron.
Lett.,33(6): 457-458.
3. D.J.C. Mackay, 1999. Good error
correcting codes based on very sparse
matrices. IEEE Trans. on Inf. Theory,
45(2): 399-431.
4. Tetsuo Nozawa, 2005. LDPC Adopted for
Use in Communications & Broadcasting.
Nikkei Electronics Asia.
5. Ruwei Chen, Guozhen Xiao and Huawei
Huang, 2008. Relation Between Parity
Check Matrixes and cycles of Associated
Tanner Graphs. IEEE Communications
Fig. 16: Performance for Block lengths Letters, 11(8):674-676.
(500, 1000), (600, 1200) 6. W.E. Ryan, 2003. An introduction to
LDPC codes. Dept. of Electrical &
Computer Engg., University of Arizona.
7. Tuan Ta,a Tutorial on Low Density Parity-
Check Codes. The University of Texas at
Austin.
8. Borivoje Nikolic; Edward Liao1 and
Engling Yeo2, 2004. Low-Density Parity-
Check Code Constructions for Hardware
Implementation. IEEE Comm. Society.
9. Misa Nakane, Takashi Yokokawa and
Makiko Kan, 2006. A Low Complexity
Fig. 17: Output in FPGA and Programmable Encoder Architecture
of the LDP codes for DVB-S2. Int. symp.
Conclusion: on Turbo Codes, pp: 1-6.
In this paper, LDPC Decoding is done by 10. Xiaogang Yang, Hang Yin and Zhanxin
using Bit Flipping Algorithm. For a Yang, 2009. A Design and
regular LDPC matrix of 8x16 whose row Implementation of LDPC Encoder Based
weight is 4 and column weight is 2, and on Mobile Multimedia Broadcasting
having a code rate of ½, LDPC Encoder System. Int. Conf. on Management &
and Decoder are designed by using Service Science, pp: 1-4.
Verilog technique in Xilinx vivado 14.2 11. M P C Fossorier and N. Miladinovic,
and HDL Designer 2015.1a. These designs 2005. Improved bit flipping decoding of

31 Page 22-32 © MAT Journals 2017. All Rights Reserved


International Journal of Electrical and Electronics communication
Volume 1 Issue 1

low density parity check codes. IEEE 14. AartiTak, 2015. Implementation of
Trans. on Inf. Theory, 51(4): 1594–1606. LDPC code for 24-bit Decoder Based
12. Fabrizio Vacca, Guido Masera and on VLSI using Verilog code. Int. J. of
Federico Quaglio, 2007. Implementation Engg. & Technical Research, 3(8).
of a Flexible LDPC Decoder. IEEE Trans. 15. LiangiunXiang, Hua Li and Linhua
on circuits &Sys., 54(6). Zheng, 2016. Two-bit bit
13. Prof. T.S. Bharath Kumar, Manjunatha flippingalgorithm for decoding low
P N and Dr. M Z Kurian, 2014. Design density parity check codes based on
of LDPC architecture using Verilog syndrome weight. International
coding. Int. J. of Adv. Research in Conference on Optical
Compt. Engg. & Tech., 3(4). Communications andNetworks, pp: 1-
3.

32 Page 22-32 © MAT Journals 2017. All Rights Reserved

Вам также может понравиться