The Design of Efficient Viterbi Decoder and Realization by FPGA

Similar documents
Hardware Implementation of Viterbi Decoder for Wireless Applications

Implementation of CRC and Viterbi algorithm on FPGA

FPGA Implementation of Convolutional Encoder And Hard Decision Viterbi Decoder

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

FPGA Implementaion of Soft Decision Viterbi Decoder

LUT Optimization for Memory Based Computation using Modified OMS Technique

COPY RIGHT. To Secure Your Paper As Per UGC Guidelines We Are Providing A Electronic Bar Code

Design of Low Power Efficient Viterbi Decoder

Optimization of Multi-Channel BCH Error Decoding for Common Cases. Russell Dill Master's Thesis Defense April 20, 2015

SDR Implementation of Convolutional Encoder and Viterbi Decoder

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

A Robust Turbo Codec Design for Satellite Communications

THE USE OF forward error correction (FEC) in optical networks

Keywords Xilinx ISE, LUT, FIR System, SDR, Spectrum- Sensing, FPGA, Memory- optimization, A-OMS LUT.

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

An Efficient Viterbi Decoder Architecture

Design and FPGA Implementation of 100Gbit/s Scrambler Architectures for OTN Protocol Chethan Kumar M 1, Praveen Kumar Y G 2, Dr. M. Z. Kurian 3.

CHAPTER 6 ASYNCHRONOUS QUASI DELAY INSENSITIVE TEMPLATES (QDI) BASED VITERBI DECODER

Design of Memory Based Implementation Using LUT Multiplier

Memory efficient Distributed architecture LUT Design using Unified Architecture

Design of Polar List Decoder using 2-Bit SC Decoding Algorithm V Priya 1 M Parimaladevi 2

Design And Implementation Of Coding Techniques For Communication Systems Using Viterbi Algorithm * V S Lakshmi Priya 1 Duggirala Ramakrishna Rao 2

FPGA Implementation of Viterbi Decoder

Performance Analysis of Convolutional Encoder and Viterbi Decoder Using FPGA

VLSI Design: 3) Explain the various MOSFET Capacitances & their significance. 4) Draw a CMOS Inverter. Explain its transfer characteristics

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

Available online at ScienceDirect. Procedia Computer Science 46 (2015 ) Aida S Tharakan a *, Binu K Mathew b

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

REDUCING DYNAMIC POWER BY PULSED LATCH AND MULTIPLE PULSE GENERATOR IN CLOCKTREE

ENGG2410: Digital Design Lab 5: Modular Designs and Hierarchy Using VHDL

Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture

Polar Decoder PD-MS 1.1

Research on Precise Synchronization System for Triple Modular Redundancy (TMR) Computer

Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL

Design Project: Designing a Viterbi Decoder (PART I)

Performance of a Low-Complexity Turbo Decoder and its Implementation on a Low-Cost, 16-Bit Fixed-Point DSP

Viterbi Decoder User Guide

Optimization of memory based multiplication for LUT

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

International Journal of Engineering Trends and Technology (IJETT) - Volume4 Issue8- August 2013

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

An Efficient Reduction of Area in Multistandard Transform Core

FPGA Hardware Resource Specific Optimal Design for FIR Filters

Implementation of Dynamic RAMs with clock gating circuits using Verilog HDL

A High- Speed LFSR Design by the Application of Sample Period Reduction Technique for BCH Encoder

A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension

Contents Circuits... 1

Bell. Program of Study. Accelerated Digital Electronics. Dave Bell TJHSST

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Operating Bio-Implantable Devices in Ultra-Low Power Error Correction Circuits: using optimized ACS Viterbi decoder

Design of BIST with Low Power Test Pattern Generator

Why FPGAs? FPGA Overview. Why FPGAs?

Design and Implementation of Data Scrambler & Descrambler System Using VHDL

Random Access Scan. Veeraraghavan Ramamurthy Dept. of Electrical and Computer Engineering Auburn University, Auburn, AL

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

A Symmetric Differential Clock Generator for Bit-Serial Hardware

Reduction of Clock Power in Sequential Circuits Using Multi-Bit Flip-Flops

Hardware Implementation of Block GC3 Lossless Compression Algorithm for Direct-Write Lithography Systems

Radar Signal Processing Final Report Spring Semester 2017

VITERBI DECODER FOR NASA S SPACE SHUTTLE S TELEMETRY DATA

Traffic Light Controller

Clock Gating Aware Low Power ALU Design and Implementation on FPGA

Designing for High Speed-Performance in CPLDs and FPGAs

VLSI Technology used in Auto-Scan Delay Testing Design For Bench Mark Circuits

Efficient Architecture for Flexible Prescaler Using Multimodulo Prescaler

Memory Efficient VLSI Architecture for QCIF to VGA Resolution Conversion

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

Hardware Implementation of Block GC3 Lossless Compression Algorithm for Direct-Write Lithography Systems

ALONG with the progressive device scaling, semiconductor

CONVOLUTION ENCODING AND VITERBI DECODING BASED ON FPGA USING VHDL

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY.

ISSCC 2006 / SESSION 14 / BASEBAND AND CHANNEL PROCESSING / 14.6

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

A Low Power Implementation of H.264 Adaptive Deblocking Filter Algorithm

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003

BER Performance Comparison of HOVA and SOVA in AWGN Channel

Laboratory 4. Figure 1: Serdes Transceiver

An Efficient High Speed Wallace Tree Multiplier

An Implementation of a Forward Error Correction Technique using Convolution Encoding with Viterbi Decoding

Gated Driver Tree Based Power Optimized Multi-Bit Flip-Flops

Retiming Sequential Circuits for Low Power

[Krishna*, 4.(12): December, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

Adaptive Fir Filter with Optimised Area and Power using Modified Inner-Product Block

Fully Pipelined High Speed SB and MC of AES Based on FPGA

A Reconfigurable, Power-Efficient Adaptive Viterbi Decoder

VLSI Chip Design Project TSEK06

A High Performance VLSI Architecture with Half Pel and Quarter Pel Interpolation for A Single Frame

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

MODEL-BASED DESIGN OF LTE BASEBAND PROCESSOR USING XILINX SYSTEM GENERATOR IN FPGA

Implementation of Modified FEC Codec and High-Speed Synchronizer in 10G-EPON

Lossless Compression Algorithms for Direct- Write Lithography Systems

L11/12: Reconfigurable Logic Architectures

OMS Based LUT Optimization

Sequential Logic. Analysis and Synthesis. Joseph Cavahagh Santa Clara University. r & Francis. TaylonSi Francis Group. , Boca.Raton London New York \

LUT Optimization for Distributed Arithmetic-Based Block Least Mean Square Adaptive Filter

A Novel Architecture of LUT Design Optimization for DSP Applications

An Lut Adaptive Filter Using DA

IC Design of a New Decision Device for Analog Viterbi Decoder

Transcription:

Modern Applied Science; Vol. 6, No. 11; 212 ISSN 1913-1844 E-ISSN 1913-1852 Published by Canadian Center of Science and Education The Design of Efficient Viterbi Decoder and Realization by FPGA Liu Yanyan 1, Yang Xiaohui 1 & Chen Dianren 1 1 Institute of Electronic and Information Engineering, Changchun University of Science and Technology, China Correspondence: Liu Yanyan, Institute of Electronic and Information Engineering, Changchun University of Science and Technology, Weixing Road No. 789, Changchun City 1322, Jilin Province, China. Tel: 86-431-8558-2643. E-mail: liuyy36@163.com Received: August 29, 212 Accepted: October 2, 212 Online Published: October 26, 212 doi:1.5539mas.v6n11p44 URL: http:dx.doi.org1.5539mas.v6n11p44 Abstract Convolution code is a kind of widely used error-correcting codes in the error control field, in order to solve the Viterbi decoding of higher complex degree and lower speed etc. problem, a kind of efficient and reliable Viterbi decode method has been put forward specially. Firstly, the principle of Viterbi decode has been introduced by detail; Secondly, in order to improve the parallel decoding speed, Viterbi decoding algorithm is improved; And then, according to the improved algorithm to achieve high speed and parallel Viterbi decoding method, which is realized easily by FPGA; Finally, the function simulation and test for (2, 1, 7) convolution code has been carried out. The experimental results show that: when the system clock is 64 MHz, eventually the decoding rate of not less than 16 Mbps, improved Viterbi decoding algorithm has lower complexity, improved Viterbi decoding efficiency. Keywords: error-correcting code, convolution code, Viterbi decode, FPGA 1. Introduction The convolution code is a kind of linear coding method with memory packet, and equivalent to convolute between the input information stream and an impulse response. The constraint length of the convolutional code determines the coded error resilience ability, constraint length is longer, error resilience capability is stronger, but the decoding complexity is increased significantly. Complex degree of decode also large increase. Parallel decode complex degree is and restrain length index relation. The most important decode method of convolution code is Viterbi decode, in the decoding process, not only from the current moment received code group extracted decoding information, but also to use before or after each time of received code extracting relevant information (Sun & Ding, 212; Niu & Ma, 211; Cholan, 212). In order to reduce the decoding complexity and improve the decoding speed, this paper presents a kind of high speed and parallel method of Viterbi decode realized easily by FPGA. 2. The Work Principle of Viterbi Decode For better understanding Viterbi decode, below give a specific decoding process. If the input to the encoder information sequences M = (1111), by the output of the encoder code sequence C = (11111111), through the BSC is fed into the decoder in the sequence of R = (11111111), there are two error, and using the Viterbi decoding algorithm decoder output valuation information sequences ˆM and Ĉ code sequence. Figure 1 and Figure 2 were painted in third time and the seventh time in each state to keep selected path and measure d (minimum distance), as well as the corresponding decoder valuation information sequences ˆM. When the seventh time, four have chosen path is only one, it is the output of the decoder valuation sequence Ĉ = (11 1 1 1 1 11), the corresponding valuation information sequences ˆM = (1111), R in the two error corrected. 44

www.ccsenet.orgmas Modern Applied Science Vol. 6, No. 11; 212 Figure 1. The selected path and measure d in third time Figure 2. The selected path and measured in seventh time In third time, enter S state to keep selected path determination process is as follows: enter S state there are two paths, one is by the () branch coupled with the branch before a moment (second time) for selected path of C 1 =( )connected to the path ( Ĉ1 )=( ), d ( R 2, )= d ( )=, and d ( Ĉ1, R, RR 1 2 )= d ( Ĉ 1, RR)+ 1 d ( R 2, )=2+=2, so the path metric value is 2; the other path is composed of (11) branch with this branch is connected with the previous time (second time) for selected path of Ĉ 1 =(11 1) connected to the path ( Ĉ1 11)=(11 1 11), the metric value d = d ( Ĉ1 11, RRR)= 1 2 d ( Ĉ 1, RR)+ 1 d ( R2 11)=1+2=3. Based on the minimum Hamming distance criterion available, in third time S left the selected path is Ĉ 12 =( ), the metric value d =2. 3. The Improvement Algorithm of Viterbi Decode The Viterbi algorithm can be described as follows: in stage i, state S j, i, at each grid node assignment V( S j, i ). The value of the node according to the following steps of calculation: 1) Receiving sequence has been divided into L length for n code section, and draw the length of L+m segment of the grid graph; 2) Suppose V( S,), i 1; 3) In the phase of i 1, calculated into each state branch portion of the path length, selected and stored minimal path length path as well as the length of V( S j,1), call this part of path for the surviving path; 4) i increased 1, the stage to each state branch of all the branch lengths, and the same branch connected to the previous phase of the surviving path length V( S ji, ) addition, selected minimum to be stored and deleted all the other path, the phase of the surviving path and length of V( S ji, 1), the surviving path to increase the length of one branch; 5) If j <L, then return to (4) step, otherwise jumped into (6) step; 6) From the L+1 phase of the whole state, through the mesh of the surviving path back to the original state, the path is the maximum likelihood path, corresponding to its input bit sequence is the maximum likelihood decoding information sequence. 45

www.ccsenet.orgmas Modern Applied Science Vol. 6, No. 11; 212 4. The Design of the FPGA Structure of Viterbi Decoder Viterbi decoding algorithm FPGA realized, the current commonly used in three ways: serial, parallel and series-parallel combination, in the serial implementation using only a serial processing unit to achieve the various state of the path metric values are updated, so that to achieve the most prominent advantages of saving hardware resources, but this approach has relatively the obvious disadvantages: low throughput and sequential K 1 complex decoder. For example, the realization of a constraint length K=7 decoder, there are a total of 2 64 state, so that each receives a code requires at least 64 master clock cycles to complete the treatment process, due to the specific implementation of each functional unit when the internal need of water treatment, such processing in 64 clock periods is not enough, and so will make the internal timing is quite complex, the need for precision control, thus greatly increasing the hardware design work load. The parallel algorithm of Viterbi decoder, need to have the same number of state of ACJ (accumulator, comparator, judgement ware) unit, at a bit rate clock cycle to complete all state path metric values are updated, which can greatly improve the Viterbi decoding throughput, and the whole system just a bit rate clock is can work, timing is also greatly simplified, but the disadvantage is the consumption of resources, the constraint length K is bigger, especially the consumption of resources. But with the FPGA rapid development of manufacturing technology, chip scale problem has been not system bottleneck problem, now there are up to 8 FPGA comes out, thus solving the parallel algorithm hardware resource consumption problem (Zhang, Zhang, & Yao, 211). With the FPGA in resources and the operation speed of development, with area change rate method can make the decoder, including Viterbi channel codec performance close to the theoretical value, higher work frequency. The overall design scheme of Viterbi decoder shows as Figure 3. Figure 3. The overall design scheme of Viterbi decoder The received information, rate and clock to adjust unit undertakes adjustment, output effective encoding information into the Viterbi decoding nuclear, controller realization of the various parts of the work, Viterbi decoding nuclear output decoding stream bit error rate monitoring, based on bit error rate statistics to determine whether the data synchronous receiving, at the same time the information into a self synchronous monitoring unit, for adjusting the synchronization using. When the decoding system synchronization, the output synchronization identification, representation system is synchronous. Viterbi decoder will eventually output decoding stream, synchronization identification and monitoring signal is fed to the next step of receiving unit (Angarita, Canet, & Sansaloni, 28). A complete Viterbi decoding nuclear structure includes accumulator, comparator, judgement ware, tolerance value register, information sequence register decision device, control circuit, as shown in Figure 4. Figure 4. The basic structure of Viterbi decoder 46

www.ccsenet.orgmas Modern Applied Science Vol. 6, No. 11; 212 R = 12 Viterbi decoding module according to the above algorithm, for a soft decision decoder, should possess the following several part: (1) Tolerance value register: The tolerance that is used to stock each route value. Its former level should still have a state generator, produces 64 state and branch value. (2) The accumulator, comparator and decision device. Were used to carry out soft distance accumulation, the path metric values and select output information element value. (3) The path register: used to store the surviving path. The branch metric value calculation section, first of all to receive the soft decision information to calculate each branch metrics, in adjusting module output disable pulse position can't be measured value. The result into the plus selection circuit, the comparison and selection circuit receives the selected path to leave, this information is fed to the path register. When the path register is in a 64 state path metric is equal when, after large number decision circuit outputs the decoded information, into the lower bit error monitoring and self synchronization circuit (Guo, Ahmad, & Swamay, 25; Hsu, Kuo, & Hsu, 27). For (2, 1, 7) convolutional code, in a decoding cycle, accumulator completed 64 branch metric calculation, the comparator group completed the same state route distance value is compared, will be less in 64 metric value register. Decision device select 64 information sequence of registers in the minimum, and the corresponding information sequence decoding result output register. In addition, we can also in throughput and scale of hardware on a compromise, with strings and combined algorithm to achieve the Vietbri decoder, for example to the constraint length of 7 convolutional code, we can use the 4 ACJ unit to realize the 64 state path metric update operation, this kind of decoder each receive a set of codewords, need at least 16 processing clock cycles to complete path metric value update. In practice, we can according to the specific situation, choose the ACJ unit number. 5. The Synthesis and Simulation of Viterbi Decode The design of the Viterbi decode for ( 2, 1, 7) convolution code of this paper, take the resource utilization rate of FPGA specially than decoder as Figure 5 shows, FPGA chooses XCV3 of Virtex series, in which, the resource utilization rate of Slices is 5%. Figure 5. The resource utilization rate that takes FPGA specially of Viterbi decoder On the design of Viterbi decoder undertook careful analysis, given the various modules of the detailed design method, and the corresponding simulation, verified the correctness of the design of each module. The following Viterbi decoder is verified, Viterbi decoder overall diagram as shown in Figure 6. Clk is the input clock signal, rst is reset signal, enable is an enable signal, co_din is decoder input data, co_out[1:] is the decoder output signal. 47

www.ccsenet.orgmas Modern Applied Science Vol. 6, No. 11; 212 Figure 6. The overall diagram of Viterbi decoder Under the integrated software environmental ISE design software of Xilinx, simulation and test have been carried out using simulation tool ModelSim for Viterbi decoder of (2, 1, 7) convolution code. The simulation waveform shows as Figure 7. Firstly using encoder as the sequence that had known carries out coding, the coding word that produces this input sequence goes on for the coding word that produces, is artificial to add to disturb, to the ability of error correction of verifying the Viterbi decoder designed for wrong information (Yin, Wen, & Jin, 29). Through the sequence of contrast original coding sequence and decoder output, can find out, the sequence of input with decode export sequence consistent, so, can prove the correctness of Viterbi decoder design. Under systematic clock 64 MHz last decode speed do not be lower than 16 Mbps. Figure 7. The simulation waveform of Viterbi decoder 6. Conclusions This article on the Virterbi decoding principle and process are introduced in detail, it is easy to put forward a kind of FPGA to achieve high efficiency, reliable Viterbi decoding algorithm, and gives the concrete realization of the process, Viterbi decoding were functional simulation, the results show that when system clock is 64 MHz, eventually the decoding rate is not less than 16 Mbps, therefore, Viterbi decode algorithm real time better, which reliability is higher. References Angarita, F., Canet, M. J., & Sansaloni, T. (28). Architectures for the implementation of a OFDM-WLAN Viterbi decoder. Journal of Signal Processing Systems, 52(1), 35-44. http:dx.doi.org1.17s11265-7-71-8 Cholan, K. (212). Design and implementation of low power high speed Viterbi decoder. Procedia Engineering, 3, 61-68. http:dx.doi.org1.116j.proeng.212.1.834 Guo, M., Ahmad, M. O., & Swamay, M. N. S. (25). FPGA design and implementation of a low-power systolic array-based adaptive Viterbi decoder. IEEE Transactions on Circuits and Systems I: Regular Papers, 52(2), 35-365. http:dx.doi.org1.119tcsi.24.838266 Hsu, C. Y., Kuo, T. S., & Hsu, Y. H. (27). Low complexity radix-4 butterfly design for the soft-decision Viterbi decoder. Microprocessors and Microsystems, 31(8), 529-536. http:dx.doi.org1.116j.micpro.26.2.7 Niu, Y., & Ma, Z. S. (211). High-speed Virterbi decoder based on FPGA. Research & Development, 3(8), 63-65. Sun, Y., & Ding, Z. Z. (212). FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 82.11a for OFDM. Wireless Engineering and Technology, 3, 125-131. http:dx.doi.org1.4236wet.212.3319 Yin, S. W., Wen, J. O., & Jin, H. C. (29). Implementation of convolutional encoder and Viterbi decoder using VHDL. Proceedings of 29 IEEE Student Conference on Research and Development, 22-25. Zhang, H. L., Zhang, G. Y., & Yao, G. Y. (211). A novel structure of FPGA-based Viterbi decoder. ICIC Express Letters, 5(1), 163-168. 48