Implementation of Convolution Encoder and Viterbi Decoder Using Verilog

Similar documents
Design of Convolution Encoder and Reconfigurable Viterbi Decoder

Design of Viterbi Decoder for Noisy Channel on FPGA Ms. M.B.Mulik, Prof. U.L.Bombale, Prof. P.C.Bhaskar

Low-Power Adaptive Viterbi Decoder for TCM Using T-Algorithm

ABSTRACT I. INTRODUCTION

Viterbi Algorithm for error detection and correction

Design and Implementation of Hamming Code on FPGA using Verilog

Design and Implementation of VLSI 8 Bit Systolic Array Multiplier

International Journal of Science Engineering and Advance Technology, IJSEAT, Vol 2, Issue 11, November ISSN

Low Complexity Architecture for Max* Operator of Log-MAP Turbo Decoder

Viterbi Algorithm - Implementation

Implementation of reduced memory Viterbi Decoder using Verilog HDL

An Efficient Carry Select Adder with Less Delay and Reduced Area Application

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

An FPGA Based Adaptive Viterbi Decoder

Efficient Convolutional Adaptive Viterbi Encoder and Decoder Using RTL Design

Implementation Analysis of adaptive Viterbi Decoder for High Speed Applications

DESIGN AND IMPLEMENTATION OF I2C SINGLE MASTER ON FPGA USING VERILOG

Implementation of Hamming code using VLSI

Low Power Asynchronous Viterbi Decoder Using Hybrid Register Exchange Method

Enhanced Reconfigurable Viterbi Decoder with NoC for OFDM Block of a Wireless Standard

DESIGN AND IMPLEMENTATION OF VLSI SYSTOLIC ARRAY MULTIPLIER FOR DSP APPLICATIONS

Error Detecting and Correcting Code Using Orthogonal Latin Square Using Verilog HDL

IMPLEMENTATION OF A BIT ERROR RATE TESTER OF A WIRELESS COMMUNICATION SYSTEM ON AN FPGA

DESIGN STRATEGIES & TOOLS UTILIZED

HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE

FPGA Implementation of Double Error Correction Orthogonal Latin Squares Codes

FPGA Implementation of ALU Based Address Generation for Memory

ISSN Vol.06,Issue.09, October-2014, Pages:

Efficient VLSI Huffman encoder implementation and its application in high rate serial data encoding

HDL IMPLEMENTATION OF SRAM BASED ERROR CORRECTION AND DETECTION USING ORTHOGONAL LATIN SQUARE CODES

Power Optimized Programmable Truncated Multiplier and Accumulator Using Reversible Adder

Error Correction Using Extended Orthogonal Latin Square Codes

PERFORMANCE OF DMA MODE UART IP SOFT CORE IN EMBEDDED SYSTEMS

The Lekha 3GPP LTE Turbo Decoder IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

Design & Analysis of 16 bit RISC Processor Using low Power Pipelining

AN EFFICIENT DESIGN OF VLSI ARCHITECTURE FOR FAULT DETECTION USING ORTHOGONAL LATIN SQUARES (OLS) CODES

Implementation of Adaptive Viterbi Decoder on FPGA for Wireless Communication

PLC AUTOMATION USING VHDL PROGRAMMING

Design and Simulation of UART for Serial Communication

INTERNATIONAL JOURNAL OF ELECTRONICS AND COMMUNICATION ENGINEERING & TECHNOLOGY (IJECET)

Novel Design of Dual Core RISC Architecture Implementation

A generalized precompiling scheme for surviving path memory management in Viterbi decoders

Area Delay Power Efficient Carry Select Adder

Design of Convolutional Codes for varying Constraint Lengths

THE INTERNATIONAL JOURNAL OF SCIENCE & TECHNOLEDGE

VHDL CODE FOR SINGLE BIT ERROR DETECTION AND CORRECTION WITH EVEN PARITY CHECK METHOD USING XILINX 9.2i

{ rizwan.rasheed, aawatif.menouni eurecom.fr,

International Journal of Advance Engineering and Research Development DESIGN AND IMPLEMENTATION OF SPI PROTOCOL

OPTIMIZING THE POWER USING FUSED ADD MULTIPLIER

VLSI Implementation of Parallel CRC Using Pipelining, Unfolding and Retiming

/$ IEEE

RTL DESIGN OF EFFICIENT MODIFIED RUN- LENGTH ENCODING ARCHITECTURES USING VERILOG HDL

IMPLEMENTATION OF OPTIMIZED 128-POINT PIPELINE FFT PROCESSOR USING MIXED RADIX 4-2 FOR OFDM APPLICATIONS

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Author: Michael Francis

DETECTION AND CORRECTION OF CELL UPSETS USING MODIFIED DECIMAL MATRIX

Delay efficient mux approach for finding the first two minimum values

Effective Implementation of LDPC for Memory Applications

A Low Power Asynchronous FPGA with Autonomous Fine Grain Power Gating and LEDR Encoding

FPGA Implementation of Efficient Carry-Select Adder Using Verilog HDL

FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression

DESIGN AND IMPLEMENTATION OF SDR SDRAM CONTROLLER IN VHDL. Shruti Hathwalia* 1, Meenakshi Yadav 2

Design and Implementation of CVNS Based Low Power 64-Bit Adder

International Journal for Research in Applied Science & Engineering Technology (IJRASET) IIR filter design using CSA for DSP applications

Hardware Implementation of Cryptosystem by AES Algorithm Using FPGA

VLSI DESIGN OF REDUCED INSTRUCTION SET COMPUTER PROCESSOR CORE USING VHDL

Design of an Efficient 128-Bit Carry Select Adder Using Bec and Variable csla Techniques

FPGA based Simulation of Clock Gated ALU Architecture with Multiplexed Logic Enable for Low Power Applications

Fault Tolerant Parallel Filters Based on ECC Codes

Error Resilience: A Distinct Approach for Comparative Analysis of Error Correcting Codes

[Kalyani*, 4.(9): September, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

Parallel Computing for Detecting Processes for Distorted Signal

ISSCC 2003 / SESSION 8 / COMMUNICATIONS SIGNAL PROCESSING / PAPER 8.7

Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications

Fault Tolerant Parallel Filters Based On Bch Codes

Due dates are as mentioned above. Checkoff interviews for PS2 and PS3 will be held together and will happen between October 4 and 8.

Gated-Demultiplexer Tree Buffer for Low Power Using Clock Tree Based Gated Driver

Analysis of Radix- SDF Pipeline FFT Architecture in VLSI Using Chip Scope

A Low-Power Field Programmable VLSI Based on Autonomous Fine-Grain Power Gating Technique

ASIC Implementation and FPGA Validation of IMA ADPCM Encoder and Decoder Cores using Verilog HDL

Design of a Pipelined 32 Bit MIPS Processor with Floating Point Unit

A High Speed Design of 32 Bit Multiplier Using Modified CSLA

of Soft Core Processor Clock Synchronization DDR Controller and SDRAM by Using RISC Architecture

FPGA Design Flow 1. All About FPGA

VLSI Implementation of Low Power Area Efficient FIR Digital Filter Structures Shaila Khan 1 Uma Sharma 2

Design of 8 bit Pipelined Adder using Xilinx ISE

ISE Design Suite Software Manuals and Help

High Speed Fault Injection Tool (FITO) Implemented With VHDL on FPGA For Testing Fault Tolerant Designs

ISSN Vol.05, Issue.12, December-2017, Pages:

DESIGN AND IMPLEMENTATION OF ADDER ARCHITECTURES AND ANALYSIS OF PERFORMANCE METRICS

Efficient Majority Logic Fault Detector/Corrector Using Euclidean Geometry Low Density Parity Check (EG-LDPC) Codes

16 BIT IMPLEMENTATION OF ASYNCHRONOUS TWOS COMPLEMENT ARRAY MULTIPLIER USING MODIFIED BAUGH-WOOLEY ALGORITHM AND ARCHITECTURE.

Convolutional Codes. COS 463: Wireless Networks Lecture 9 Kyle Jamieson. [Parts adapted from H. Balakrishnan]

An Efficient Designing of I2C Bus Controller Using Verilog

Evolution of CAD Tools & Verilog HDL Definition

TEACHING COMPUTER ARCHITECTURE THROUGH DESIGN PRACTICE. Guoping Wang 1. INTRODUCTION

A New Architecture of High Performance WG Stream Cipher

HDL Implementation of an Efficient Partial Parallel LDPC Decoder Using Soft Bit Flip Algorithm

Reduced Latency Majority Logic Decoding for Error Detection and Correction

High Speed ACSU Architecture for Viterbi Decoder Using T-Algorithm

Sum to Modified Booth Recoding Techniques For Efficient Design of the Fused Add-Multiply Operator

Transcription:

International Journal of Electronics and Communication Engineering. ISSN 0974-2166 Volume 11, Number 1 (2018), pp. 13-21 International Research Publication House http://www.irphouse.com Implementation of Convolution Encoder and Viterbi Decoder Using Verilog P.Saidulu [1] Md. Abdul Rawoof [2] Department of ECE, Assistant Prof. Department of ECE, MLR Institute of Technology, MLR Institute of Technology, Hyderabad, India. Hyderabad, India. Dr. S. V. S. Prasad [3] Professor, HOD of ECE, MLR Institute of Technology, Hyderabad, India. Abstract In the today s digital communication Systems, transmission of data with efficiency and reliability is the most concerning issue for the communication channels. Error correction technique plays a important role in communication systems. The error correction technique improves the capacity of data by adding the redundant information for the source data while transmitting data through channel. This Project work mainly focus on the realization of the convolutional encoder and Viterbi decoder. The Viterbi algorithm, It is the most Preferred decoding algorithm for convolutional codes. Keywords: Viterbi Encoder, Convolution Encoder, Xilinx power estimator. 1. INTRODUCTION In the today s digital Communication, data transmitting between the systems play a important role. as the technologies are increasing day-by-day the number of usage of Viterbi is also simultaneously increasing. This wide usage leads to major issues in the digital communication systems and it results in data corruptions. It is necessary for the telecommunication to reduce the data corruption by finding a suitable solutions to the error Viterbi occurred in the communication process. One such method is Viterbi

14 P.Saidulu, Md. Abdul Rawoof, Dr. S. V. S. Prasad Algorithm. It decodes the process by simultaneously correcting the process effectively. To decodes the convolution codes Viterbi algorithm is the most recognizable algorithm. This algorithm will be described with software and hardware implementations. To engage well organized communications an efficient data is presented by the digital systems. Data corruption is the important issue confronted by the digital communication systems. To decrease the data corruption error correcting codes is only best technique. Almost all communication systems followed this technique because it has the power to decode efficiently, even Viterbi algorithm needs very typical hardware. While the decoding operation is in advance, the functioning obstructions will be eliminated, So that an improved method, Viterbi Algorithm is used. The decoding of codes can be done very fast, as this algorithm is very effective in high-speed functions. Convolution codes are used to gain a possible code sequence AVA uses maximum likelihood decoding process. Hardware description language(hdl) is used to evaluate this project, where it is one of the hardware descriptive languages. This language is employed in designing the electronic systems to semiconductor and electronic design industries as well as for assuring the analog and mixed signal circuit.[3] Fig 1: Convolutional encoder and Viterbi decoder. 2. CONVOLUTIONAL ENCODER Encoding or decoding is the translation of a message that is easily understood. When you decode a message, you are extracting the meaning of that message into terms that you are able to easily understand. Decoding has both verbal and non-verbal forms through communication. Decoding behavior without using words would be observing body language. People are able to decode body language based on their emotions. For example, some body language signs for when someone is upset, anger, or stressed would be a use of excessive hand/arm movements, red in the face, crying, and even sometimes silence. Sometimes when someone is trying to get a message across to someone, the message can be interpreted differently from person to person. Decoding is the understanding of what someone already knows, based on the information given throughout the message being received. Whether there is a large audience or exchanging a message to one person, decoding is the process of obtaining, absorbing, understanding, and sometimes using the information that was given throughout a verbal or non-verbal

Implementation of Convolution Encoder and Viterbi Decoder Using Verilog 15 message. Convolution code is the error correcting code that generates parity symbols via the sliding application of a Boolean polynomial function to a data stream. The sliding application represents the 'convolution' of the encoder over the data, which gives rise to the term convolution coding. The sliding nature of the convolution codes facilities trellis decoding using a timeinvariant trellis. Time invariant trellis decoding allows convolution codes to be maximum likelihood soft decision decoded with reasonable complexity. Convolution codes are often characterized by the base code rate and the depth (or memory) of the encoder [n, k, K]. The b, K code rate is typically given as n/k, where n is the input data rate and k is the output symbol rate. The depth is called the "constraint length" 'K', where the output is a function of the previous K-1 inputs. The depth may also be given as the number of memory elements 'v' in the polynomial or the maximum possible number of states of the encoder (typically 2^v).[2] Fig 2: Convolutional encoder. Input Bitstream for Encoder is 1011 then output(y1y0) of encoder is 11 10 00 01 3. VITERBI DECODING ALGORITHM Decoding is the process of converting from code to plain text or any format that is useful for subsequent processes. Decoding is the reverse Process of encoding. It converts encoded data communication transmissions and files to their original states. Most computers use an encoding methodology to transfer, save or use data. Encoded data by Encoder is transformed via an encoding mechanism (for example, the Bin Hex or American Standard Code for Information Interchange (ASCII)) and transmitted via a communication medium. As an example, when sending an email, all data, including certain attachments and images, are encoded using a format such as Multipurpose Internet Mail Extensions (MIME). When data arrives, the decoder converts the email message content to its original form. A Viterbi decoder uses the Viterbi algorithm for decoding a bitstream that has been encoded using a convolution. There are other algorithms also available for decoding a convolutionally encoded stream (for example, the Fano algorithm). The Viterbi algorithm is the most resource-consuming,

16 P.Saidulu, Md. Abdul Rawoof, Dr. S. V. S. Prasad but it does the maximum likelihood decoding. It is mostly used for decoding convolution codes with constraint lengths k<=10, but values up to k=15 are used in practice. When decoder decodes a message, you are extracting the meaning of that message into terms that you are able to easily understand. Decoding has both verbal and non-verbal forms through communication. [3] Fig 3: Block diagram of a Viterbi decoder. 4. IMPLEMENTATION OF VITERBI DECODER The major tasks in the Viterbi decoder process are as follows: 1. Branch Metric Unit(BMU). 2. Path Metric Unit(PMU). 3. Traceback Unit(TU) The fig.3 Block diagram shows the proposed Viterbi decoder. This section discusses the different parts of the Viterbi decoding process. Analog signals are quantized and converted into digital signals in the quantization block. The frame boundaries of code words and symbol boundaries were detected by the synchronization block. The Viterbi decoder receives parallel successive code symbols, in which the boundaries of the symbols and the frames have been identified.[8] Fig 4: Convolution code trellis tree and Viterbi algorithm

Implementation of Convolution Encoder and Viterbi Decoder Using Verilog 17 4.1 Branch Metric Unit Branch metric unit is used to generate branch metrics, which are hamming distances of input data from 11, 10, 00 and 01. The BM unit is used to calculate branch metric for all trellis branches from the input data. We choose absolute difference as a measure for branch metric. These branch metrics are considered as equaling the weights of the branches.[10] 4.2 Path Metric unit Memory is required to store the survivor Path Matrix Unit (PMU). The word length of the memory depends on the number of the ACS sub-blocks used in the design or the total number of states in the decoder or k^2 (where k is the International Journal of Modeling and Optimization, Vol. 3, No. 1, February 2013 16constraint length, 5 in our case), and the depth of the memory depends on the trellis length[7]. The memory depth usually should be kept two times the trellis length or two blocks of memory equal to trellis length. We have for our project k = 5and trellis length equal to 32, so the memory block used is64x16. The memory used is a dual port. One port for writing the data and other for reading the data, as we need to write and read the data simultaneously and that too from different addresses. Memory should write data synchronously but the reading of the data should be asynchronous to keep the latency low or better manage the synchronous behavior of the full system.[9] 4.3 Traceback Unit Results of these are written to the memory of traceback unit. It Traces back from the end of any survivor paths to the beginning.[2] 5. SIMULATION AND SYNTHESIS RESULTS 5.1 Synthesis Report Synthesis is a process of constructing a gate level netlist from a register transfer level model of a circuit described in Verilog HDL.Increase the design size and complexity, as well as improvement in design synthesis and simulation tools, have made Hardware Description Languages (HDLs) the preferred design languages of most integrated circuit designers. The two important HDL synthesis and simulation languages are Verilog and VHDL. Both have been adopted as IEEE standards.

18 P.Saidulu, Md. Abdul Rawoof, Dr. S. V. S. Prasad Fig 5:Encoder_Decoder(RTL1) The above figure is the simulation representation of convolution encoder and Viterbi decoder at the circuit level. The entire code developed for this project can be visualized using Xilinx hardware device. How the VITERBI algorithm code for encoder and decoder is working in a step by step process can be analyzed based on results of implementation Fig 6:Encod6er_Decoder(RTL2) The above figure shows the RTL schematic of convolution encoder and Viterbi decoder which consists of different modules like branch metric unit, encoder unit, path metric unit, survival path tracing unit and path metric store unit. Table 1: Device Utilization of Viterbi Decoder

Implementation of Convolution Encoder and Viterbi Decoder Using Verilog 19 Table 2: Device Utilization of Viterbi Decoder[11] Compare to Ref[11] My Project used less number of gates. 5.2SimulationWaveforms of Convolution Encoder The Simulation Waveform of Convolution Encoder for input 1011 is shown in Figure 7 (For Rate ½ and K = 9) and It gives Encoded output as 11 10 00 01. The simulation is done by using Modelsim and the speed and resource utilization are generated and synthesized using Xilinx Synthesis Tool (XST). Fig 7: Xilinx simulation results for convolution encoder 5.3 SimulationWaveforms of Viterbi Decoder The Simulation waveform of the Viterbi decoder is shown below Fig. 8. Viterbi decoder decoded the encoded bit stream(11 10 00 01) and gives the output(1011) in the second half of the cycle.

20 P.Saidulu, Md. Abdul Rawoof, Dr. S. V. S. Prasad Fig 8: Xilinx simulation results for convolution encoder and Viterbi decoder CONCLUSION As the Viterbi algorithm is conceived more interesting and challenging for this research topic, it is considered, and also it has a wide variety of applications in the digital communications field. This research helps to generate more profits by the develop Viterbi using Viterbi algorithm. Anyone besides students can easily analyze these Viterbi algorithm concepts and can gain more knowledge about it. This research mainly concerned with the implementation of the Viterbi algorithm using Verilog coding. The Viterbi algorithm has many advantages like low power consumption and the main advantage is error correcting using Verilog. Anyone reading this document will have to gain the cognition of working with different tools like Xilinx ISE and MODELSIM. REFERENCES [1] B. Tristan (2006) implementation of the Viterbi algorithm using functional programming languages. C.M. Rader, Memory management in a VITERBI decoder, IEEE Transactions on Communications, vol. COM-29, pp. 1399-1401, Sept. 1981. [2] G. Fettweis and H. Meyr, Feedforward architecture for parallel VITERBI decoding, J. VLSI Signal Processing, vol. 3, pp. 105-119, 1991. [3] G. Fettweis, H. Dawid, and H. Meyr, Minimized method for VITERBI decoding: 600 Mb/s per chip, in Proc. GLOBECOM 90, vol. 3, pp. 1712-1716, Dec. 1990. [4] H.F. Lin and D.G. Messeviterbichmitt, Algorithms and Architectures for Concurrent VITERBI decoding, in Proc. ICC, pp.836-840, 1989. [5] V. Tomas, Decoding of Convolutional codes over the erasure channel, IEEE Trans. on Information Theory, vol. 58, no. 1, pp. 90-108, Jan. 2012. [6] K. Seki; S. Kubota; M. Mizoguchi and S. Kato, Very low power consumption VITERBI decoder LSIC employing the SST (scarce state transition) scheme

Implementation of Convolution Encoder and Viterbi Decoder Using Verilog 21 for multimedia mobile communications, Electronics-Letteviterbi, IEE, Vol.30, no.8, p.637-639, 14 April 1994. [7] L. Lang; C.Y. Tsui and R.S. Cheng, Low power soft output VITERBI decoder scheme for turbo code decoding, Conference-Paper, ISCAS 97(Cat. No97CH35987). IEEE, New York, NY, USA, 4 vol. Lxvi+2832 pp. p. 1369-1372 vol.2, 1997. [8] R. Schweikert, A.J.Vinck, Trellis-coded modulation with high-speed low complexity decoding, submitted to IEEE GLOBECOM 1990. [9] S. Kubota, K. Ohtani, and S. Kato, A high-speed and high-coding-gain VITERBI decoder with low power consumption employing SST (scarce state transition) scheme, Electron. Lett., 22 (9), pp. 491-493,1986. [10] M. Boo, F. Arguello, J. D. Bruguera, R. Doallo, and E. L. Zapata., VLSI architecture for the Viterbi algorithm, IEEE Trans. on communications, vol. 45, no. 2, pp.168 176, 1997. [11] Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46

22 P.Saidulu, Md. Abdul Rawoof, Dr. S. V. S. Prasad