+ All Categories
Home > Documents > Synthesis of Convolution Encoder and Viterbi decoder of...

Synthesis of Convolution Encoder and Viterbi decoder of...

Date post: 06-Mar-2018
Category:
Upload: lamngoc
View: 233 times
Download: 5 times
Share this document with a friend
8
ISSN: 2278 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE) Volume 5, Issue 2, February 2016 357 All Rights Reserved © 2016 IJARECE AbstractSynthesis of Convolution Encoder and Viterbi Decoder is mainly focused in this paper. The code for encoder and decoder and their test benches are written using Verilog HDL and are simulated using Altera Model Sim. The Synthesis process is done for Encoder and Decoder using Xilinx ISE tool. Once the functional verification is done, the RTL model is taken to the synthesis process using the Xilinx ISE tool. In synthesis process, the RTL model will be converted to the gate level net list mapped to a specific technology library. In this step, any semantic and syntax errors are checked. The synthesis report is created which gives the details of errors and warning. The codes must be made synthesizable in order to implement the design on FPGA. Index TermsConvolution encoder, Synthesis, Viterbi decoder, Xilinx ISE tool I. INTRODUCTION Data transmissions over wireless channels are affected by attenuation, distortion, interference and noise, which affect the receiver’s ability to receive correct information . The use of re-transmission methods is not efficient and has large latency measure up to the rising speed and data rates of communication links, the need of new techniques arise here to be compatible with those systems. In the recent past, the error-correcting coding has become one integral part in nearly all the modern data communication and storage systems. With the continuously increasing demands for higher speed and lower power communication systems, enhanced VLSI implementations of those error-correcting codes that are currently used in practical applications have great current importance. Coding techniques are essential for a communication system to achieve high performance. One of the most important and direct applications of information theory is coding theory. The purpose of Forward Error Correction (FEC) is to improve the capacity of channel by adding some carefully designed redundant information to the data which is being transmitted through the channel. The process of adding this redundant information is known as channel coding. II. CONVOLUTION ENCODER Convolutional codes are frequently used to correct errors in noisy channels. They have rather good correcting capability and perform well even on very bad channels. Convolutional codes are extensively used in satellite communications. The modest complexity and good performance have made the Viterbi algorithm the preferred decoding method for convolutional codes to overcome transmission errors. Convolutional encoder with Viterbi decoder acts as powerful method for Forward Error Correction (FEC). An encoder includes extra information in the transmitted signal to reduce the probability of errors in the received signal that may be corrupted by noise. Every two bits of data stream are encoded into three bits for transmission. The ratio of input to output information in an encoder is the rate of the encoder; this is a rate 2/3 encoder. The following equations relate the three encoder output bits (Yn2, Yn1, and Yn0) to the two encoder input bits (Xn1 and Xn0). Yn2 = Xn1 (1.1) Yn1 = Xn0 xor Df2 (1.2) Yn0 = Df1 (1.3) Figure1. Convolution Encoder of rate 2/3 III. VITERBI DECODER Encoding process is a simple task but decoding the encoded signals is quite a difficult task. There are different decoding techniques such as threshold decoding, sequential decoding and Viterbi decoding and the last one is the best of the decoding techniques. The main processes in a Viterbi decoder are branch metric calculation, path metric calculation and trace backing. There are two types of Viterbi decoder- Hard decision Viterbi decoder and Soft decision Viterbi decoder. Hard decision uses hamming distance whereas Soft decision decoder using Euclidean distance. The methodology used here is Soft decision Viterbi decoding technique. The internal modules inside Viterbi decoder are Euclidean distance calculation module, Subset decode module, Compute Metric module, Compare Select module, Path In module, Path Memory module, Metric module, Reduce module and Output decision module. The output of decoder is 2 bits. The block diagram of Viterbi decoder is shown below. Synthesis of Convolution Encoder and Viterbi decoder of rate 2/3 using Xilinx ISE tool Rakhi B. Menon 1 , Dr. Gnana Sheela K. 2 M.Tech Student 1 , Professor 2 , Department of ECE, TOCH Institute of Science & Technology
Transcript
Page 1: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

357

All Rights Reserved © 2016 IJARECE

Abstract—Synthesis of Convolution Encoder and Viterbi

Decoder is mainly focused in this paper. The code for encoder

and decoder and their test benches are written using Verilog

HDL and are simulated using Altera Model Sim. The Synthesis

process is done for Encoder and Decoder using Xilinx ISE tool.

Once the functional verification is done, the RTL model is

taken to the synthesis process using the Xilinx ISE tool. In

synthesis process, the RTL model will be converted to the gate

level net list mapped to a specific technology library. In this

step, any semantic and syntax errors are checked. The

synthesis report is created which gives the details of errors and

warning. The codes must be made synthesizable in order to

implement the design on FPGA.

Index Terms— Convolution encoder, Synthesis, Viterbi

decoder, Xilinx ISE tool

I. INTRODUCTION

Data transmissions over wireless channels are affected by

attenuation, distortion, interference and noise, which affect

the receiver’s ability to receive correct information. The use

of re-transmission methods is not efficient and has large

latency measure up to the rising speed and data rates of

communication links, the need of new techniques arise here

to be compatible with those systems. In the recent past, the

error-correcting coding has become one integral part in

nearly

all the modern data communication and storage systems.

With the continuously increasing demands for higher speed

and lower power communication systems, enhanced VLSI

implementations of those error-correcting codes that are

currently used in practical applications have great current

importance. Coding techniques are essential for a

communication system to achieve high performance. One of

the most important and direct applications of information

theory is coding theory. The purpose of Forward Error

Correction (FEC) is to improve the capacity of channel by

adding some carefully designed redundant information to the

data which is being transmitted through the channel. The

process of adding this redundant information is known as

channel coding.

II. CONVOLUTION ENCODER

Convolutional codes are frequently used to correct errors

in noisy channels. They have rather good correcting

capability

and perform well even on very bad channels. Convolutional

codes are extensively used in satellite communications. The

modest complexity and good performance have made the

Viterbi algorithm the preferred decoding method for

convolutional codes to overcome transmission errors.

Convolutional encoder with Viterbi decoder acts as powerful

method for Forward Error Correction (FEC). An encoder

includes extra information in the transmitted signal to reduce

the probability of errors in the received signal that may be

corrupted by noise. Every two bits of data stream are encoded

into three bits for transmission. The ratio of input to output

information in an encoder is the rate of the encoder; this is a

rate 2/3 encoder. The following equations relate the three

encoder output bits (Yn2, Yn1, and Yn0) to the two encoder

input bits (Xn1 and Xn0).

Yn2 = Xn1 (1.1)

Yn1 = Xn0 xor Df2 (1.2)

Yn0 = Df1 (1.3)

Figure1. Convolution Encoder of rate 2/3

III. VITERBI DECODER

Encoding process is a simple task but decoding the

encoded signals is quite a difficult task. There are different

decoding techniques such as threshold decoding, sequential

decoding and Viterbi decoding and the last one is the best of

the decoding techniques. The main processes in a Viterbi

decoder are branch metric calculation, path metric

calculation and trace backing. There are two types of Viterbi

decoder- Hard decision Viterbi decoder and Soft decision

Viterbi decoder. Hard decision uses hamming distance

whereas Soft decision decoder using Euclidean distance. The

methodology used here is Soft decision Viterbi decoding

technique. The internal modules inside Viterbi decoder are

Euclidean distance calculation module, Subset decode

module, Compute Metric module, Compare Select module,

Path In module, Path Memory module, Metric module,

Reduce module and Output decision module. The output of

decoder is 2 bits. The block diagram of Viterbi decoder is

shown below.

Synthesis of Convolution Encoder and Viterbi

decoder of rate 2/3 using Xilinx ISE tool

Rakhi B. Menon1, Dr. Gnana Sheela K.

2

M.Tech Student1, Professor

2, Department of ECE, TOCH Institute of Science & Technology

Page 2: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

358

All Rights Reserved © 2016 IJARECE

Figure2. Block diagram of Viterbi decoder

IV. SIMULATION

Codes of Convolution encoder and Viterbi decoder and

their test benches is written in Verilog HDL and is simulated

using Altera Model Sim. Simulator is a software program to

verify functionality of a circuit. The functionality of code is

checked. The inputs are applied and corresponding outputs

are checked. If the expected outputs are obtained then the

circuit design is correct. Simulation gives the output

waveforms in form of zeros and ones. Here arises what is

called RTL diagrams. The RTL-level (behavioural)

simulation enables us to verify or simulate a description at

the system or chip level. At this step, no timing information

is provided, and simulation should be performed in

unit-delay mode to avoid the possibility of a race condition.

Although problems with the size or timing of the hardware

may still crop up later, the designer can at least be sure that

his logic is functionally correct before going on to the next

stage of development. The Convolution encoder simulated

using Model Sim is shown below.

Figure3. Simulation of Convolution encoder

V. SYNTHESIS

An intermediate representation of the hardware design is

produced. This step is called synthesis and the result is a

representation called a net list. Once the functional

verification is done, the RTL model is taken to the synthesis

process using the Xilinx ISE tool. In synthesis process, the

RTL model will be converted to the gate level netlist mapped

to a specific technology library. In this step, any semantic and

syntax errors are checked. The synthesis report is created

which gives the details of errors and warning if any. The net

list is device independent, so its contents do not depend on

the particulars of the FPGA; it is usually stored in a standard

format called the Electronic Design Interchange Format

(EDIF). The RTL (Register Transfer Logic) can be viewed as

black box after synthesize of design is made. It shows the

inputs and outputs of the system. By double-clicking on the

diagram we can see gates, flip-flops and MUX.

A. Synthesis of Convolution Encoder

The RTL (Register Transfer Logic) of Convolution encoder

is shown below, where an input of two bits is provided to the

encoder along with clock and reset. Three bit values are

obtained as output.

Figure4. RTL view of Convolution encoder

Figure5. Schematic diagram of Convolution encoder

The device utilization includes the following.

Logic Utilization

Logic Distribution

Total Gate count for the Design

Figure6. Device Utilization of Convolution Encoder

The device utilization summery is shown above in which

its gives the details of number of devices used from the

available devices and also represented in %. Hence as the

result of the synthesis process, the device utilization in the

used device and package is shown.

Number of Slices: 2 out of 960 0%

Number of Slice Flip Flops: 2 out of 1920 0%

Number of 4 input LUTs: 1 out of 1920 0%

Number of bonded IOBs: 7 out of 108 6%

IOB Flip Flops: 1

Number of GCLKs: 1 out of 24 4%

B. Synthesis of Viterbi decoder

The RTL (Register Transfer Logic) of Viterbi decoder is

shown below, where an input of three bits is provided to the

encoder along with clock and reset. Two bit values are

obtained as output along with an error bit. If the error bit is 0,

Page 3: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

359

All Rights Reserved © 2016 IJARECE

there are no errors occurred. When the error bit is 1, it

indicates the presence of errors.

Figure7. RTL view of Viterbi decoder

Figure8. Schematic diagram of Viterbi decoder

Figure9. Device Utilization of Viterbi Decoder

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices and also represented in %. Hence as the result of the

synthesis process, the device utilization in the used device

and package is shown

Number of Slices: 260 out of 960 27%

Number of Slice Flip Flops: 138 out of 1920 7%

Number of 4 input LUTs: 477 out of 1920 24%

Number of bonded IOBs: 8 out of 108 7%

Number of GCLKs: 1 out of 24 4%

C. Synthesis of Viterbi distance module

The first module is Viterbi distance calculation module

and this module calculates the Euclidean distance which is

required for performing soft decision Viterbi decoding. Input

to this module is the three bit output of Convolution encoder

along with clock and reset. Eight Euclidean distances are

obtained as the output.

Figure10. RTL view of Viterbi distance module

Figure11. Schematic diagram of Viterbi distance module

Figure12. Device Utilization of Viterbi distance module

The result of the synthesis process, the device utilization in

the used device and package is shown

Number of Slices: 14 out of 960 1%

Number of 4 input LUTs: 24 out of 1920 1%

Number of bonded IOBs: 27 out of 108 25%

D. Synthesis of Subset Decode module

The second module is subset decode module and it groups

0th and 4th distance as a subset. Similarly (1,5) subset, (2,6)

subset and (3,7) subsets are made. The Euclidean distances

obtained from the previous module are provided as the input

to subset decode along with clock and reset. Four subsets

along with control signals are generated as output.

Page 4: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

360

All Rights Reserved © 2016 IJARECE

Figure13. RTL view of Subset decode module

Figure14. Schematic diagram of Subset decode module

Figure15. Device Utilization of Subset decode module

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices and also represented in %.

Number of Slices: 14 out of 960 1%

Number of 4 input LUTs: 24 out of 1920 1%

Number of bonded IOBs: 42 out of 108 38%

IOB Flip Flops: 24

Number of GCLKs: 1 out of 24 4%

E. Synthesis of Compute Metric module

The third module is the compute metric module where

branch metrics and path metrics are added together. Eight

paths are obtained as the output.

Figure16. RTL view of Compute metric module

Figure17. Schematic diagram of Compute Metric module

Figure18. Device Utilization of Compute Metric module

The result of the synthesis process, the device utilization in

the used device and package is shown

Number of Slices: 34 out of 960 3%

Number of 4 input LUTs: 59 out of 1920 3%

Number of bonded IOBs: 73 out of 108 67%

F. Synthesis of Compare Select module

The output of Compute metric is given as the input to the

Compare Select Module. The branch metrics and path

Page 5: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

361

All Rights Reserved © 2016 IJARECE

metrics are added together and minimum of them is

compared and selected by this module.

Figure19. RTL view of Compute Select module

Figure20. Schematic diagram of Compare Select module

Figure21. Device Utilization of Compare Select module

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices.

Number of Slices: 25 out of 960 2%

Number of 4 input LUTs: 44 out of 1920 2%

Number of bonded IOBs: 64 out of 108 59%

G. Synthesis of Path In module

The output of Compare Select module along with clock,

reset and output of subset decode module act as input of

this module and produces a Path of 12 bit value.

Figure22. RTL view of Path In module

Figure23. Schematic diagram of Path In module

Figure24. Device Utilization of Path In module

The result of the synthesis process, the device utilization in

the used device and package is shown.

Number of Slices: 6 out of 960 0%

Number of 4 input LUTs: 4 out of 1920 0%

Number of bonded IOBs: 22 out of 108 20%

IOB Flip Flops: 10

Page 6: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

362

All Rights Reserved © 2016 IJARECE

Number of GCLKs: 1 out of 24 4%

H. Synthesis of Path Memory module

The output of Path In module, output of Compare Select

module along with clock and reset forms the input of the

Path Memory module and produces four path of three

bits.

Figure25. RTL view of Path Memory modul

Figure26. Schematic view of Path Memory module

Figure27. Device Utilization of Path Memory module

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices and also represented in %.

Number of Slices: 75 out of 960 7%

Number of Slice Flip Flops: 132 out of 1920 6%

Number of 4 input LUTs: 132 out of 1920 6%

Number of bonded IOBs: 30 out of 108 27%

Number of GCLKs: 1 out of 24 4%

I. Synthesis of Metric module

Output from Reduce module, clock and reset are the input of

Metric Module and its output is again re circulated to metric

compute module. Thus present branch metric is added to

path metric of the previous stage of the trellis.

Figure28. RTL view of Metric module

Figure29. Schematic view of Metric module

Figure30. Device Utilization of Metric module

The result of the synthesis process, the device utilization in

the used device and package is shown

Number of Slices: 12 out of 960 1%

Number of bonded IOBs: 42 out of 108 38%

IOB Flip Flops: 20

Number of GCLKs: 1 out of 24 4%

J. Synthesis of Reduce module

The four paths selected by Compare Select module forms the

input of Reduce module and its output is given as the input to

metric module as path metrics and branch metrics have to be

continuously added together for the completion of decoding

process.

Page 7: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

363

All Rights Reserved © 2016 IJARECE

Figure31. RTL view of Reduce module

Figure32. Schematic view of Reduce module

Figure33. Device Utilization of Reduce module

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices and also represented in %. Hence as the result of the

synthesis process, the device utilization in the used device.

Number of Slices: 36 out of 960 3%

Number of 4 input LUTs: 62 out of 1920 3%

Number of bonded IOBs: 42 out of 108 38%

K. Synthesis of Output Decision module

The output from path memory module along with a control

signal, which was an output of reduce module is fed into the

output decision module as input. This is the final block of the

Viterbi decoder that produces a two bit output.

Figur34. RTL view of Path In module

Figure32. Schematic view of Reduce module

Figure33. Device Utilization of Output Decision module

The device utilization summery is shown above in which its

gives the details of number of devices used from the available

devices.

Number of Slices: 3 out of 960 0%

Number of 4 input LUTs: 6 out of 1920 0%

Number of bonded IOBs: 17 out of 108 15%

VI. CONCLUSION

The Convolution Encoder and Viterbi decoder are

simulated using Altera Model Sim and Synthesized using

Xilinx ISE tool. RTL view and Schematic diagram of

encoder, decoder and their internal modules makes the

internal structures and connections easily understandable.

Device Utilization Summary reveals the amount of memory

used by each module.

REFERENCES [1] Mandwale A. J and Mulani A O” Different Approaches For

Implementation of Viterbi decoder on reconfigurable

platform”International Conference on Pervasive Computing (ICPC)

2015

[2] P R Pachlegaonkar, S S Patki “Implementation of Reconfigurable

Convolutional Encoder and optimum Adaptive Viterbi Decoder with

Multi booting and Error Detection on FPGA”, International Journal of

Engineering Research & Technology (IJERT), ISSN: 2278-0181, Vol. 3

Issue 10, October- 2014

[3] Mahe Jabeen, Salma Khan,” Design of Convolution Encoder and

Reconfigurable Viterbi Decoder” International Journal of Engineering

and Science ISSN: 2278-4721, Vol. 1, Issue 3 (Sept 2012), PP 15-21

[4] Yan Sun, Zhizhong Ding "FPGA Design and Implementation of a

Convolutional Encoder and a Viterbi Decoder Based on 802.11a for

OFDM", Wireless Engineering and Technology, 2012, 3, 125-131.

[5] Karim, M.U., Khan, M.U.K. and Khawaja, Y.M. “An area reduced, speed

optimized implementation of Viterbi decoder”, International Conference

Page 8: Synthesis of Convolution Encoder and Viterbi decoder of ...ijarece.org/wp-content/uploads/2016/02/IJARECE-VOL-5-ISSUE-2-357... · and decoder and their test benches are written using

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

Volume 5, Issue 2, February 2016

364

All Rights Reserved © 2016 IJARECE

on Computer Networks and Information Technology (ICCNIT), pp.

93-98, 2011

[6] Arun and V. Rajamani,“DESIGN AND VLSI IMPLEMENTATION OF

A LOW PROBABILITY OF ERROR VITERBI DECODER”IEEE,

First International Conference on Emerging Trends in Engineering and

Technology,2008

[7] M. Kivioja, J. Isoaho and L.Vanska, "Design and implementation of

Viterbi decoder with FPGAs," Journal of VLSI Signal Processing

Systems for Signal, Image, and Video Technology, Kluwer Academic

Publishers, vol. 21, no. 1, pp. 5-14, May 1999.

[8] C. Berrou, P. Adde, E. Angui and S. Faudeil “A Low Complexity

Soft-Output Viterbi Decoder Architecture,” IEEE Int.

Conf.Communications, vol. 2, pp. 737–740, May. 1993

[9] Viterbi.A.J, "Convolution codes and their performance in communication

systems," IEEE Transaction on Communications, vol.com-19, pp. 751

to 771, October 1971

[10] Samirkumar Ranpara, “On a Viterbi decoder design for low power

dissipation,” towards his master‟s thesis submitted to virginia polytechnic

institute and state university.

[11] B. Sklar, “Digital Communications, Fundamentals and Applications”,

Second Edition, New Delhi, Pearson Education, 2004

[12] Chip fleming, “A tutorial on Convolutional coding with viterbi

decoding”.

[13] Samir Palnitkar, “Verilog HDL: A Guide to Digital Design And

Synthesis, Second Edition”, Prentice Hall PTR

[14] Text book by Simon Haykin and Michael Moher : Modern Wireless

Communications; Pearson Prentice Hall, 2005

[15] Text book on Applied Coding and Information Theory for Engineers by

Richard B. Wells, Prentice Hall, Information and system science series

AUTHOR PROFILE

Rakhi B. Menon completed her B.Tech in Electronics &

Communication Engineering under Mahatma Gandhi University.

Currently she is pursuing M.Tech in the specialization of VLSI and

Embedded System of CUSAT.

Dr. Gnana Sheela K received her Ph D in Electronics & Communication

from Anna University, Chennai. She is working as a Professor,

Department of ECE, TOC-H Institute of Science and Technology. She

has published 25 international journal papers. She is life member of ISTE


Recommended