ArticlePDF Available

Design and Implementation of Viterbi Decoder Using VHDL

Authors:

Abstract and Figures

A digital design conversion of Viterbi decoder for ½ rate convolutional encoder with constraint length k = 3 is presented in this paper. The design is coded with the help of VHDL, simulated and synthesized using XILINX ISE 14.7. Synthesis results show a maximum frequency of operation for the design is 100.725 MHz. The requirement of memory is less as compared to conventional method.
Content may be subject to copyright.
IOP Conference Series: Materials Science and Engineering
PAPER • OPEN ACCESS
Design and Implementation of Viterbi Decoder Using VHDL
To cite this article: Akash Thakur and Manju K Chattopadhyay 2018 IOP Conf. Ser.: Mater. Sci. Eng. 331 012009
View the article online for updates and enhancements.
This content was downloaded from IP address 173.211.113.210 on 29/03/2018 at 02:41
1
Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence. Any further distribution
of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI.
Published under licence by IOP Publishing Ltd
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
Design and Implementation of Viterbi Decoder Using VHDL
Akash Thakur and Manju K Chattopadhyay
VLSI Design and Embedded System Lab, School of Electronics,
Devi Ahilya University, Indore, India
E-mail: akashth28@gmail.com
Abstract. A digital design conversion of Viterbi decoder for ½ rate convolutional encoder with
constraint length k = 3 is presented in this paper. The design is coded with the help of VHDL,
simulated and synthesized using XILINX ISE 14.7. Synthesis results show a maximum
frequency of operation for the design is 100.725 MHz. The requirement of memory is less as
compared to conventional method.
Index TermsVD, VHDL, RTL, BMU, PMU, ACSU, SMU.
1. Introduction
Encoders and decoders play an important role in the field of communication and data storage industries.
There is a need of reliable system with least probability of error and high speed of operation. Error
correcting coding [1] has algorithms for expressing a sequence of numbers, so that if any error due to
noise arises, it can be detected and corrected (within certain limitations). These algorithms come into
operation by converting them into digital design. The digital conversion will work at certain frequency.
Recent developments have contributed towards achieving high reliability required by today’s high-speed
digital systems. The use of coding for error control has become an integral part in the design of modern
communication and digital storage systems.
A typical transmission or storage system may be represented by the block diagram shown in figure1.
Efficient error control code in encoder and decode can help in gaining the following advantages:
a. Power gain by coding in power/bit for cellular systems in digital communication.
b. Increase in storage capacity (no. of bits per sq. inch increases)
Figure 1. Simple Communication Model
Even though the concept of Viterbi algorithm is very old, it is still very much researched for its
optimization. Jinjin He et al. [2] presented paper on low power design of Viterbi decoder without degrading
the decoding speed. K. S Arunlal and S. A Hariprasad [3] shows the reduction in computational time and
hardware requirement. The crucial point among the digital design conversion is the operating speed and
the power reduction, which is presented by many researchers with variation in operating frequency and
reduction in digital complexity [4-9]. D Vaithiyanathana et al. [10] proposed a modified pipelined
2
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
architecture for ACS of Viterbi decoder and shows optimization in frequency of operation, up to 165 MHz
with reduced area. The design proposed by us reduce the memory requirement for the trace back of the
trellis.
2. Architecture
Viterbi Algorithm is an efficient way to implement the M L Decoding, for both hard and soft decision. It
is easy to implement for small constraint length for convolutional encoders which is based on the trellis
method. A J Viterbi proposed Viterbi algorithm in 1967 for convolutional codes. The basic architecture of
the Viterbi Decoder (VD) based on Viterbi algorithm is shown in figure 2.
Figure 2. Block Diagram of Viterbi Algorithm
The main components of the VD are Branch Metric Unit (BMU), Path Metric Unit (PMU), Add-
Compare and Select Unit (ACSU) and Survivor Management Unit (SMU). Viterbi Decoder decodes the
convolutional encoded data on the basis of trellis. An intermediate state of the trellis for a Viterbi decoder
of ½ rate convolutional encoder with constraint length k=3 is shown in figure 3.
Figure 3. Intermediate trellis state of the decoder
A Branch Metric Unit-BMU calculates the branch metrics; An Add-compare-Select Unit -ACUS
recursively accumulates the branch metrics. Path metrics (PM), compares the incoming path metrics,
and makes a decision to select the most likely state transitions for each state of the trellis and generates
the corresponding decision bits. Viterbi algorithm is a special case of Bellman Ford shortest distance
algorithm.
3. Hardware Description
The proposed digital design of the Viterbi decoder for ½ rate convolutional encoder of constraint length
of k=3 is shown in the figure 4. In this design, instead of storing the path metric for each stage, the
decision is taken directly. Following are the components used in the decoder:
3
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
3.1 Branch Metric Unit (BMU)
Branch Metric (BM) calculation is the distance between received and estimated output code word. It is
also called the Hamming distance, for e.g. if the received code word is 10 then the hamming distance
with 00, 01, 10 and 11 will be 01, 10, 00, 01 respectively. This function is done by the BMU.
3.2 Add Compare & Select Unit (ACSU)
Path Metric (PM) calculation is done by ACSU in iterative manner. It is repeated for every encoder state.
Previous path metric will be added to the corresponding branch metric, and the output will be sent to the
comparator and select unit. Two paths ending in a given state are compared and the greater metric is
dropped, whereas the smaller one is selected for further calculation, known as survivor path.
3.3 Path Metric Unit (PMU)
Path Metric Unit takes input from the output of the ACSU and store it for the next clock pulse. It gives
input to ACSU for calculation of next PM. For state a, the path metric for time instant n will:
PM(a,n) = min { PM(a,n-1)+BM(00), PM(b,n-1)+BM(11) } ………. (1)
3.4 RAM
Random Access Memory is used in the design, to store the decisions made by the survivor unit.
3.5 Survivor Unit (SU)
Survivor unit takes the path metrics of all states and select the least of the path metrics. A decision will
be made by selecting the least of the path metric of all states for particular time instant and it will be
stored in RAM.
The design is coded in VHDL, figure 5 shows the block view and figure 6 shows the RTL view
generated after successful synthesis of the Viterbi decoder. Simulation results are taken for input code
11, 10, 10, 00, 01, 11.
Figure 4. Proposed digital design of Viterbi Decoder for K=3
4
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
Figure 5. Block View of Viterbi decoder
Figure 6. RTL View of Viterbi decoder
5
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
Figure 7. Simulation Results of Viterbi decoder
Figure 8. Data stored in RAM after 7 clock pulses
Figure 9. HDL synthesis report of the Viterbi decoder
6
1234567890‘’“”
3rd International Conference on Communication Systems (ICCS-2017) IOP Publishing
IOP Conf. Series: Materials Science and Engineering 331 (2018) 012009 doi:10.1088/1757-899X/331/1/012009
Figure 10. Timing summary of the Viterbi decoder
4. Conclusion & Future Work
The proposed digital design of the Viterbi decoder for ½ rate convolutional encoder of constraint length
k = 3 is successfully synthesized in VHDL and simulated using XILINX ISE 14.7. RTL View of the
complete design is shown in figure 6, whereas figure 7 and figure 8 shows the simulation results. Instead
of storing the path metric of all four states for a single time instant, a decision is made by the survivor
unit and reduce the memory requirement for a complete trellis length. The HDL synthesis report and the
timing summary is shown in figure 9 and figure 10.
Future work will be implementing the design and evaluation of speed performance and power
consumption of the decoder on different FPGA boards.
5. References
[1] Lin S & Costello D J Jr 2011 Error Control Coding (Prentice Hall Inc ) 2e
[2] He J, Liu H, Wang Z, Huang X and Zhang K 2012 High-Speed Low-Power Viterbi Decoder
Design for TCM Decoders, IEEE Trans. on Very Large Scale Integration (VLSI) Sys. vol 20 no 4
pp 755-9
[3] Arunlal K S and Hariprasad S A 2012 An Efficient Viterbi Decoder, Inter. Jour. of Comp. Sci.,
Engg. and App. (IJCSEA), vol 2 no 1 pp 95-110
[4] Pujara H and Prajapti P 2013 RTL Implementation of Viterbi Decoder using VHDL, IOSR Jour.
of VLSI and Sig. Pro. (IOSR-JVSP) vol 2 issue 1 pp 65-71
[5] Reddy A S and Krishna P R 2013 High Speed Viterbi Decoder Design With A Rate Of 1/2
Convolution Code For Tcm Systems, Inter. Jour. of Techno. Enhan. and Emerging Engg.
Research vol 1 issue 4 pp 126-30
[6] Soreng B and Kumar S 2013 Efficient implementation of Convolution Encoder and Viterbi
Decoder, Inter. Confer. on Circuits, Power and Computing Techno. (ICCPCT) pp 1270-3
[7] Mahendran R and Sathish T M K 2013 Low Power Adaptive Viterbi Decoder Design For Trellis
Coded Modulation, Inter. Jour. of Innovative Research in Elec., Electron., Inst. and Control
Engg. vol 1 issue 3 pp 123-8
[8] Singh P and Vishvakarma S K 2013 FPGA Implementation of 413.121 MHz and 11.34 mW High
Speed Low Power Viterbi Decoder, International Journal of Modeling and Optimization vol 3 no
1 pp 15-9
[9] Wayal K, Gore K, Waikule S and Wagaj S.C. 2015 Convolution Encoding and Viterbi Decoding
Based on FPGA using VHDL, Inter. Jour. of Advanced Tech. in Engg. and Science vol 03 issue
01 pp 622-6
[10] Vaithiyanathana D, Nargisb J, and Seshasayanana R 2015 High performance ACS for Viterbi
decoder using pipeline T-Algorithm, Alexandria Engineering Journal vol 54 issue 3 pp 44755
... Akash Thakur et al. [30] provide basic architecture of the VA decoder which consists of four main components namely Branch Metric Unit (BMU), Path Metric Unit (PMU), Add Compare and Select Unit (ACSU) and Survivor Management Unit (SMU). Thobius Joseph [33] provides similar list of components involved in VA decoder, whereby SMU was named as traceback block, PMU and ACSU was combined together to form path metric calculation block and BMU remained as branch metric calculation. ...
... Viterbi Algorithm has been employed in many applications includes satellite communication, image recognition techniques, speech recognitions techniques and 5G mobile communications ( [23], [24], [25], [26]). This powerful algorithm has been explored by several studied but in hardware level languages such as Very High-speed integrated circuit hardware Description Language (VHDL) for Field Programmable Gate Arrays ( [27], [28], [29], [30]) and Very Large-Scale Integration (VLSI) [31]. The exploration in hardware level is complex and increases difficultness for non-electronics scholar to exploit its powerful functionality. ...
Article
Full-text available
this study aimed to provide source code and knowledge's on how to implement operational blocks found in ordinary Viterbi algorithm through high level programming languages. In high level programming languages paradigms a VB.NET programming language fall under event programming languages and this study provides easy features for coding Viterbi algorithm operational blocks. The study methodology involved generating randomly bits pattern and mark them on sheet of paper and computing corresponding outputs mathematically by using theory described in literature which clarifying viterbi operational blocks. The trial and error technique were used to migrate the formulas into a block of codes, then the generated bits patterns were passed as inputs to the blocks of codes through textboxes controls to compare the obtained results. The results of this study indicate that same results were obtained by using either mathematical tactic or code implemented by the study.
... The convolution encoded data is decoded using the trellis structure in the Viterbi algorithm [12]. A trellis state of the Viterbi decoder with ½ rate convolution encoder of the constraint length 5, the complete Trellis structure for the Viterbi Decoder is shown in The Trellis flow has been discussed in Fig 5-6. ...
Chapter
The application domain of multivalued logic is increasing due to steady advances in design tools and technology over the past decade. Three-valued logic is an elementary set of multivalued logic. The ternary number system has its base as 3. Three symbols which are used by ternary logic are 0, 1, and 2. The opportunity to the cryptographer given by ternary computing introduces new ciphering methods based on hardware primitives which uses trits based on three digital signals to enable denser numerical encodings, support a fuzzy state, and also provide additional security (Noorbasha et al. in IJITEE 8(6S), 2019 [1]). Therefore reconfigurable multivalued logic-based ternary computation logic is proposed which is suitable for bit serial computation. Now to further reduce interconnection complexity, we can utilise multiple valued signalling logic. To search for new and better ternary convolutional codes is the main objective of this research work with large free distance, so more errors can be detected and corrected. Data and information sent over the channel are secured by the error detection and correction code for storage as well as recover even in the presence of noise. Ternary computing units which are a subset of multivalued computing systems have the potential to improve the performance of communication systems. Ternary logic is used to improve processing speed of hardware and software modules which need to meet high data rate requirement (Aruna et al. in IOSR journal of VLSI and Signal Processing Jan 21, 2019 [2]).
Article
Full-text available
In digital electronics,the error correcting techniques plays important role in communication channel.convolutional encoding is an FEC(forward error correcting)technique used for correction of errors at the receiver.viterbi algorithm is decoding technique of convolutional codes,which is having good correcting capability on very noisy channels.In this paper ,we represent a PROASIC 3 FPGA(field programmable gate array)efficient implementation of viterbi decoder and synthesis can be done using ACTEL LIBERO v8.3 with the constraint length 3 and code rate 1/2.
Article
Full-text available
Convolutional encoding with Viterbi decoding is a good forward error correction technique suitable for channels affected by noise degradation. Fangled Viterbi decoders are variants of Viterbi decoder (VD) which decodes quicker and takes less memory with no error detection capability. Modified fangled takes it a step further by gaining one bit error correction and detection capability at the cost of doubling the computational complexity and processing time. A new efficient fangled Viterbi algorithm is proposed in this paper with less complexity and processing time along with 2 bit error correction capabilities. For 1 bit error correction for 14 bit input data, when compared with Modified fangled Viterbi decoder, computational complexity has come down by 36-43% and processing delay was halved. For a 2 bit error correction, when compared with Modified fangled decoder computational complexity decreased by 22-36%.
Article
Full-text available
Viterbi algorithm is the most popular algorithm used to decode the convolution code, but its computational complexity increases exponentially with the increasing constraint length due to the large number of Trellis transitions. However, high constraint length is necessary to improve the accuracy of the decoding process for the high rate convolution code. In particular, the Add Compare Select (ACS) module of the Viterbi Decoder will have large numbers of trellis states and trellis transitions with increased constraint lengths, which give rise to high hardware complexity and large power consumption. As the performance of Viterbi decoder mainly depends on its efficient implementation of ACS module, in this paper, we propose a modified pipelined architecture for the ACS of Viterbi decoder. This is derived by employing the technique of re-timing; further the architecture is also reconfigured to support various wireless standards. The architecture has been implemented in Xilinx Vertex 6 FPGA device to make the comparison between our architecture and the existing architecture. From the analysis done on ACS implementation, it is found that the resource requirements, delay and power consumption are optimized significantly for the proposed architecture compared to existing pipelined architecture. The results obtained from the analysis show that frequency of the system is increased up to 165 MHz with reduced area. The cell level performance is also obtained using Cadence Encounter (R) tool with TSMC 180 nm CMOS technology.
Conference Paper
This paper describes about the Convolution Encoder and Viterbi Decoder algorithm. The main aim is to achieve encoding and decoding rate as per WiMAX standard. Here, Convolution Encoder and Viterbi Decoder of code rate ½, constraint length 7; generator polynomial (171,133) has been implemented on EP4SGX70HF35C2 device of Stratix IV family in Altera DE board. Coding style of VHDL is used. The design has been synthesized using Altera Quartus II v11.0 and has been simulated using ModelSim Altera Starter Edition 6.6d. The comparison results show a large improvement in area.
Article
High-speed, low-power design of Viterbi decoders for trellis coded modulation (TCM) systems is presented in this paper. It is well known that the Viterbi decoder (VD) is the dominant module determining the overall power consumption of TCM decoders. We propose a pre-computation architecture incorporated with $T$-algorithm for VD, which can effectively reduce the power consumption without degrading the decoding speed much. A general solution to derive the optimal pre-computation steps is also given in the paper. Implementation result of a VD for a rate-3/4 convolutional code used in a TCM system shows that compared with the full trellis VD, the precomputation architecture reduces the power consumption by as much as 70% without performance loss, while the degradation in clock speed is negligible.
High Speed Viterbi Decoder Design With A Rate Of
  • A Reddy
  • P R Krishna
Reddy A S and Krishna P R 2013 High Speed Viterbi Decoder Design With A Rate Of 1/2
Low Power Adaptive Viterbi Decoder Design For Trellis Coded Modulation
  • R Mahendran
  • T M K Sathish
Mahendran R and Sathish T M K 2013 Low Power Adaptive Viterbi Decoder Design For Trellis Coded Modulation, Inter. Jour. of Innovative Research in Elec., Electron., Inst. and Control Engg. vol 1 issue 3 pp 123-8
FPGA Implementation of 413.121 MHz and 11.34 mW High Speed Low Power Viterbi Decoder
  • P Singh
  • S K Vishvakarma
Singh P and Vishvakarma S K 2013 FPGA Implementation of 413.121 MHz and 11.34 mW High Speed Low Power Viterbi Decoder, International Journal of Modeling and Optimization vol 3 no 1 pp 15-9