5
ISSN: 2278 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE) Volume 6, Issue 8, August 2017 922 All Rights Reserved © 2017 IJARECE AbstractLow-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 Design Suite 14.2 and Questasim 10.4c are used. And for synthesis, Leonardo Spectrum 2014b.4is used. For ASIC Design in 130nm, Mentor Graphics Custom IC Design Tool is used and also these designs are tested on Nexys 4-DDR XC7A100TCSG324-2L FPGA. Index TermsLow Density Parity Check (LDPC), Hard Decision, Mentor Graphics Custom IC Design Tool, Leonardo Spectrum, FPGA. I. INTRODUCTION In 1960, Gallager proposed LDPC (Low density parity check) codes, which are similar to linear block codes. At that time, these codes are neglected due to its high computational complexity. In 1981, LDPC codes are generalized into graphical representation (Bipartite graph or Tanner graph) by Tanner. In 1990‟s, these codes are again came back by D. Mackay and R. Neal, who constructed a parity check matrix with dynamic sparseness. Richardson and Urbanke improved the parity check matrix to reduce the complexity for faster encoding and decoding. These code‟s performance is very close to channel capacity specified by Shannon. In practical implementation, these codes provides a high degree of parallelism. Wireless Communications is one of the prime application for error correcting codes. Because of the eminent capability, LDPC codes are being used in various applications like Wi-Fi, Mobile WiMAX, DVD-S2, and IEEE 802.3 (10 GBASE T). The standards like DVB-S, 3GPP-LTE uses Turbo Codes. Manuscript received Aug, 2017. Palleti Raju, Dept. of E.C.E, MVGR College of Engineering (A), Vizianagaram. Second Author name, Dept. of E.C.E, MVGR College of Engineering (A), Vizianagaram. The complexity and throughput of an LDPC decoder depends on many parameters such as block length, code rate, processing node complexity, interconnection complexity, parallelism level and no. of iterations. There is a balance between the performance of decoder and complexity of decoding. The parallelism in decoding provide eminent throughput if properly used. The flexibility in FPGA is suitable for designing LDPC decoder rather than in general purpose processor. II. REPRESENTATION OF LDPC CODES The representation of LDPC codes can be done either by using parity-check matrix or by using a Tanner representation (bipartite graph). In Tanner representation, there are nodes of two types, Bit node (variable node) is one and check node is the other. The no. of bit nodes equals to no. of columns and the no. of check nodes equals to no. of rows in the matrix H. The connections (edges) between the check nodes and the bit nodes represents non-zero entities in the matrix H. A parity check matrix and its graphical representation is given below. 1) Parity-Check Matrix „H‟ 2) Tanner representation of matrix „H‟ Design of an LDPC Decoder using Hard Decision Algorithm Palleti Raju, Potnuru Surya Prasad

Design of an LDPC Decoder using Hard Decision Algorithmijarece.org/wp-content/uploads/2017/08/IJARECE-VOL-6-ISSUE-8-922-926.pdf · [5] Ruwei Chen, Guozhen Xiao and Huawei Huang, Relation

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

ISSN: 2278 – 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 6, Issue 8, August 2017

922

All Rights Reserved © 2017 IJARECE

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 Design Suite

14.2 and Questasim 10.4c are used. And for synthesis,

Leonardo Spectrum 2014b.4is used. For ASIC Design in

130nm, Mentor Graphics Custom IC Design Tool is used and

also these designs are tested on Nexys 4-DDR

XC7A100TCSG324-2L FPGA.

Index Terms—Low Density Parity Check (LDPC), Hard

Decision, Mentor Graphics Custom IC Design Tool, Leonardo

Spectrum, FPGA.

I. INTRODUCTION

In 1960, Gallager proposed LDPC (Low density parity

check) codes, which are similar to linear block codes. At that

time, these codes are neglected due to its high computational

complexity. In 1981, LDPC codes are generalized into

graphical representation (Bipartite graph or Tanner graph)

by Tanner. In 1990‟s, these codes are again came back by D.

Mackay and R. Neal, who constructed a parity check matrix

with dynamic sparseness. Richardson and Urbanke improved

the parity check matrix to reduce the complexity for faster

encoding and decoding. These code‟s performance is very

close to channel capacity specified by Shannon. In practical

implementation, these codes provides a high degree of

parallelism.

Wireless Communications is one of the prime application for

error correcting codes. Because of the eminent capability,

LDPC codes are being used in various applications like

Wi-Fi, Mobile WiMAX, DVD-S2, and IEEE 802.3 (10

GBASE –T). The standards like DVB-S, 3GPP-LTE uses

Turbo Codes.

Manuscript received Aug, 2017.

Palleti Raju, Dept. of E.C.E, MVGR College of Engineering (A),

Vizianagaram.

Second Author name, Dept. of E.C.E, MVGR College of Engineering (A),

Vizianagaram.

The complexity and throughput of an LDPC decoder depends

on many parameters such as block length, code rate,

processing node complexity, interconnection complexity,

parallelism level and no. of iterations. There is a balance

between the performance of decoder and complexity of

decoding. The parallelism in decoding provide eminent

throughput if properly used.

The flexibility in FPGA is suitable for designing LDPC

decoder rather than in general purpose processor.

II. REPRESENTATION OF LDPC CODES

The representation of LDPC codes can be done either by

using parity-check matrix or by using a Tanner

representation (bipartite graph). In Tanner representation,

there are nodes of two types, Bit node (variable node) is one

and check node is the other. The no. of bit nodes equals to no.

of columns and the no. of check nodes equals to no. of rows in

the matrix H. The connections (edges) between the check

nodes and the bit nodes represents non-zero entities in the

matrix H. A parity check matrix and its graphical

representation is given below.

1) Parity-Check Matrix „H‟

2) Tanner representation of matrix „H‟

Design of an LDPC Decoder using Hard

Decision Algorithm

Palleti Raju, Potnuru Surya Prasad

ISSN: 2278 – 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 6, Issue 8, August 2017

923

All Rights Reserved © 2017 IJARECE

Fig. 1. The Parity-check matrix „H‟ and its equivalent

graphical representation

In the matrix „H‟, a cycle can be formed by one complete path

through non-zero entries with moves between rows and

columns alternatively. In a tanner graph, a cycle can be

formed by a path starting from a node and ending at the same

node. The number of edges in that path gives the length of the

cycle. The smallest cycle is called as girth. The smallest

possible girth is four. A tanner graph has a minimum cycle of

length four and has even cycle lengths.

III. CLASSIFICATION

LDPC codes are having two classes, Regular LDPC is one

and Irregular LDPC is the other. If the weight of each column

and each row are constant then the codes are called regular

LDPC codes. If the weight of each column and each row are

different then the codes are called irregular LDPC codes.

IV. ENCODING PROCESS

To encode the LDPC codes, first the matrix „H‟ should be

transformed as given below.

The above form of parity check matrix is obtained by

performing Gaussian elimination method [7]. In this

method, only row operations should be used. The addition of

two rows should be modulo-2 addition. This parity check

matrix can also be obtained by performing row swaps and

column swaps on it. Here, „ ‟ represents a parity

matrix and „ ‟ represents an identity matrix.

By using the matrix , Generator matrix „G‟ can be

obtained which is of the form

Now, the encoding of the information bits or message bits is

done by the following form

Here, „C‟ represents the codeword of size N, „u‟ is the

message vector of size K and „G‟ is the generator matrix.

This codeword is the encoded message that is modulated

using BPSK in which {0, 1} {-1, 1} transformation occurs

and transmitted over AWGN channel.

V. DECODING PROCESS

In this paper, Bit Flip algorithm is used to decode LDPC

codes. Bit Flip algorithm is known as Hard decision

algorithm.

The steps involved in the Bit Flip algorithm are as follows

Step 1: Initialization

In this step, the received codeword is assigned to the

corresponding variable nodes. These assigned values are

passed as messages from variable node to check node.

Step2: Check Node Update

In this step, each check node checks the parity check

equation associated with it from the variable node messages.

If the parity check equation is satisfied then its send „0‟ value

otherwise „1‟ value to variable node. If all forms of the

parity-check equations are get satisfied, the termination of

the algorithm will occur.

Step 3: Variable Node Update

In this step, each variable node gets a value from check

nodes. Now each variable node decides that the original

received bit is correct or not by majority voting from check

nodes. If majority of votes are different from the original

received bit then that the bit will be flipped and update its

value.

This updated value will be send as a message to the check

node. After this, step 2 and step 3 are repeated until the

parity-check equations are get satisfied (or) until it reach the

count of iterations specified.

Algorithm Bit-flipping Decoding

1: Procedure decode(r)

2:

3: i = 0 Initialization

4: for i = 1 : n do

5: Mi = ri

6: end for

7:

8: repeat

9: for j = 1 : m do Step 1: Check messages

10: for i = 1 : n do

11:

12: end for

13: end for

14:

15: for i = 1 : n do Step 2: Bit messages

16: if the message disagree with ri then

17: Mi = ( ri + 1 mod 2)

18: end if

19: end for

20:

21: for j = 1 : m do Test: are the parity check

equations are satisfied

22:

23: end for

ISSN: 2278 – 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 6, Issue 8, August 2017

924

All Rights Reserved © 2017 IJARECE

24: if all Lj = 0 or I = Imax then

25: Finished

26: else

27: I = I + 1

28: end if

29: until Finished

30: end procedure

VI. RESULTS

LDPC encoder and decoder are designed in Verilog HDL

language using Xilinx Vivado Design Suite 14.2 and HDL

Designer 2015.1a. These designs are simulated by using

Xilinx Vivado Design Suite and Questasim. The simulation

results are given below.

Fig. 3. Simulation results of LDPC Encoder

In the above figure, when the reset becomes high, the

encoded output becomes low. When the reset becomes low,

the message 00110111 is encoded as 0011011100110010.

The encoded output will be different for different messages.

Fig. 4. Simulation results of LDPC Decoder

In the above figure, when the reset becomes high, the

decoded output becomes low. When the reset becomes low,

the received codeword 0011011100010010 is decoded as

0011011100110010. In the received codeword, there is an

error at the 11th bit which is decoded by using Bit Flipping

algorithm.

To get ASIC Model of design, the designs should be

synthesized to get the netlist file. In this paper, to synthesize

the designs, Xilinx Vivado Design Suite and Leonardo

Spectrum are used. The netlist obtained by using Xilinx

vivado is dumped into the FPGA to see the performance of

the designs. The netlist obtained by using Leonardo

Spectrum is used to generate ASIC model of the design. RTL

and Synthesized designs of the designs obtained by using

Xilinx Vivado Design Suite are shown in fig 5, 6, 7, 8. RTL

and Gate Level designs of the designs obtained by using

Leonardo Spectrum are shown in fig 9, 10, 11, 12.

Fig. 5. RTL Design of LDPC Encoder in Xilinx

Fig. 6. RTL design of LDPC Decoder in Xilinx

Fig. 7. Synthesized Design of LDPC Encoder in Xilinx

Fig. 8. Synthesized Design of LDPC Decoder in Xilinx

ISSN: 2278 – 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 6, Issue 8, August 2017

925

All Rights Reserved © 2017 IJARECE

Fig. 9. RTL Design of LDPC Encoder in Leonardo Spectrum

Fig. 10. RTL Design of LDPC Decoder in Leonardo

Spectrum

Fig. 11. Gate Level Design of LDPC Encoder in Leonardo

Spectrum

Fig. 12. Gate Level Design of LDPC Decoder in Leonardo

Spectrum

The synthesized designs using Xilinx vivado are dumped

into Nexys 4DDR FPGA. The utilization reports, when the

designs are tested on Nexys 4DDR XC7A100TCSG324-2L

FPGA are given below

Fig. 13. Utilization report of LDPC Encoder

Fig. 14. Utilization report of LDPC Decoder

For ASIC Design of LDPC Decoder, the netlist generated

using Leonardo Spectrum is used. Design of LDPC Decoder

is obtained from netlist file using Mentor Graphics Custom

IC Design Tool is given below.

Fig. 15. Layout of LDPC Decoder in ASIC Design Flow

VII. CONCLUSION

In this paper, LDPC Decoding is done using Bit Flipping

Algorithm. For a regular parity check matrix of 8x16 whose

row weight is 4 and column weight is 2, and having a code

rate of ½, LDPC Encoder and Decoder are designed by using

ISSN: 2278 – 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 6, Issue 8, August 2017

926

All Rights Reserved © 2017 IJARECE

Verilog technique in Xilinx Vivado Design Suite 14.2 and

HDL Designer 2015.1a. These designs are simulated Using

Xilinx Vivado Design Suite 14.2 and Questasim 10.4c.

These designs are synthesized using Leonardo Spectrum

2014b.4. For ASIC Design in 130nm, Mentor Graphics

Custom IC Design Tool is used and also these designs are

tested on Nexys 4-DDR XC7A100TCSG324-2L FPGA.

REFERENCES [1] R. Gallager, “Low density parity check codes”, IRE

Trans. on Inf. Theory, 8(1), pp. 21-28, 1962.

[2] R.M. Neal and D.J.C. MacKay, “Near Shannon limit

performance of low density parity check codes”, Electron.

Lett., 33(6), pp. 457-458, 1997.

[3] D.J.C. Mackay, “Good error correcting codes based on

very sparse matrices”, IEEE Trans. on Inf. Theory, 45(2), pp.

399-4311, 1999.

[4] Tetsuo Nozawa, “LDPC Adopted for Use in

Communications & Broadcasting‟, Nikkei Electronics Asia,

2005.

[5] Ruwei Chen, Guozhen Xiao and Huawei Huang,

Relation Between Parity Check Matrixes and cycles of

Associated Tanner Graphs”, IEEE Communications Letters,

11(8), pp. 674-676, 2008.

[6] W.E. Ryan, “An introduction to LDPC codes”, Dept. of

Electrical & Computer Engg., University of Arizona, 2003.

[7] Tuan Ta, “A Tutorial on Low Density Parity-Check

Codes”, The University of Texas at Austin.

[8] Borivoje Nikolic; Edward Liao1 and Engling Yeo,

“Low-Density Parity-Check Code Constructions for

Hardware Implementation”, IEEE Comm. Society, 2004.

[9] Misa Nakane, Takashi Yokokawa and Makiko Kan, “A

Low Complexity and Programmable Encoder Architecture of

the LDP codes for DVB-S2”, Int. symp. on Turbo Codes, pp.

1-6, 2006.

[10] Xiaogang Yang, Hang Yin and Zhanxin Yang, “A

Design and Implementation of LDPC Encoder Based on

Mobile-Multimedia-Broadcasting System”, Int. Conf. on

Management & Service Science, pp. 1-4, 2009.

[11] M P C Fossorier and N. Miladinovic, “Improved bit

flipping decoding of low density parity check codes”, IEEE

Trans. on Inf. Theory, 51(4), pp. 1594–1606, 2005.

[12] Fabrizio_Vacca, Guido_Masera and Federico_Quaglio,

“Implementation of a Flexible LDPC Decoder”, IEEE Trans.

on circuits & Sys., 54(6), 2007.

[13] Prof. T.S. Bharath Kumar, Manjunatha P N and Dr. M

Z Kurian, “Design of LDPC architecture using Verilog

coding”, Int. J. of Adv. Research in Compt. Engg. & Tech.,

3(4), 2014.

[14] Aarti Tak , “Implementation of LDPC code for 24-bit

Decoder Based on VLSI using Verilog code”, Int. J. of Engg.

& Technical Research, 3(8), 2015.

[15] Liangiun Xiang, Hua Li and Linhua Zheng, “Two-bit

bit flipping algorithm for decoding low density parity check

codes based on syndrome weight”, International Conference

on Optical Communications and Networks, pp. 1-3, 2016.

[16] K Gunnam, Joan Marc Catala Perez, Francisco

Garcia-Herrero, “Algorithms and VLSI Architectures for

Low-Density Parity-Check Codes”, IEEE Solid state circuits

Magazine, pp. 57-63, 2016.

[17] K Gunnam, Joan Marc Catala Perez, Francisco

Garcia-Herrero, “Algorithms and VLSI Architectures for

Low-Density Parity-Check Codes: part 2 – efficient coding

architectures”, IEEE Solid state circuits Magazine, pp.

23-28, 2017.

[18] L G Amura, M Maritna and G Masera, “High Speed

Architectures for finding the first two maximum/minimum

values”, IEEE Trans. On VLSI sys., 2012.

[19] Kai Zhao, Jiang Peng Li, Jun Ma, Rino Micheloni and

Tong Zhang, “Overlocking NAND Flash Memory I/O link in

LDPC based SSDs”, IEEE Trans. on circuits & sys., pp.

885-889, 2014.

[20] Xin-Ru Lee, Chih-Lung Chen, Hsie-Chia Chang and

Chen Yi Lee, “A 7.92 Gb/s 437.2 mW stochastic LDPC

Decoder chip for IEEE 802.15.3c Applications”, IEEE

Trans. on circuits & sys., pp. 507-516, 2015.

Palleti Raju was born in INDIA in

1993. He received the B. Tech degree in

Electronics and Communication

Engineering from Avanthi institute of

engineering and technology,

Vizianagaram. Currently, he is

pursuing the M. Tech degree with

specialization in VLSI in Maharaj

Vijayaram Gajapathi Raj College of Engineering

(autonomous), Vizianagaram, Andhra Pradesh, India.

Mr. P. Surya Prasad, received his

M. Tech. (Communication and

Radar Engineering) from IIT,

Delhi and B. Tech (ECE) from

JNTU College of Engineering,

Kakinada, Andhra Pradesh and

pursuing Ph. D from JNTU

Kakinada. He is a life member of

IETE, IEI and IACSIT. He has 15 years of teaching

experience and more than 40 publications in

international/national conferences and journals to his credit.

Presently he is working as Associate Professor in the

department of ECE, M.V.G.R. College of Engineering,

Vizianagaram, Andhra Pradesh, India. His research interests

include signal, image/video processing, pattern recognition

and wireless communications.