SlideShare a Scribd company logo
Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47
www.ijera.com 43 | P a g e
Hard Decision Viterbi Decoder: Implementation on FPGA and
Comparison of Resource Utilization on Different FPGA Devices
Ms. Shankari N*, Mrs. Shrividya G**
*M.Tech student, Department of ECE, NMAM Institute of Technology, Nitte, Karkala, India
** Associate Professor, Department of ECE, NMAM Institute of Technology, Nitte, Karkala, India
ABSTRACT
Viterbi decoder is the most important part in receiver section of wireless communication system. Viterbi
algorithm is one of the most common decoding algorithms used for decoding convolutional codes. Viterbi
decoder employs Maximum Likelihood technique to decode the convolutionally encoded data stream. In
practice, most of the communication systems use Viterbi decoding scheme in processors. But increased interest
on high speed Viterbi decoder in a single chip forced to realize with the speed of Giga-bit per second, without
using memory or off-chip processors. Implementation of proposed design and realization is possible due to
advanced Field Programmable Gate Array (FPGA) technologies and advanced Electronic Design Automatic
(EDA) tools. This paper involves designing an optimum structure of Viterbi decoder and implementing it on
different FPGA devices to compare the resource utilizations.
Keywords Branch Metric (BM), Hamming Distance (HD), Path Metric (PM), Survivor path, Signal to Noise
Ratio (SNR), Trace-back, Viterbi decoder.
I. INTRODUCTION
In wireless communication systems noise
and interference level in the channel is very high. It
greatly affects the Signal to Noise Ratio (SNR).
Hence certain Error Detection and Correction (EDC)
techniques are required to improve SNR. An error
correcting code which is used in most of the
communication systems is convolutional code. Most
of the transmitters use convolutional encoder to add
redundancy to the information being transmitted.
Hence the effective technique to decode the
convolutionally encoded data is Viterbi decoder.
Viterbi decoder uses Viterbi algorithm to decode the
data. It involves Maximum Likelihood (ML)
decoding where the computational load is reduced.
The algorithm will use Trellis structure [1]. The
received symbol is compared with actual codewords
in each transmission. The configuration of Viterbi
decoder depends on encoder's code rate, constraint
length and generator polynomial. The probability of
error will be reduced by Viterbi decoder hence it is
called Optimum Algorithm. Even-though the present
information bits are corrupted by noise in the
channel. Viterbi decoder is able to correct the
corrupted bits or error bits due to the structure of
convolutional encoded code. The decoding will start
at '0' state by the assumption that encoding will start
from the same state. Actually the ML decoding will
be independent of initial states [4]. The ML
decoding involves selection of low metric path as
winning path. The winning path will have low bit
error path compared to other paths. Parallel
implementation of Viterbi decoder is possible [7].
There are 2 types of Viterbi decoder
implementation namely hard decision Viterbi
decoding and soft decision Viterbi decoding. The
metric is Hamming distance metric in hard decision
Viterbi decoder and Euclidean distance metric in soft
decision Viterbi decoder. The implementation of
hard decision Viterbi decoder involves finding
Hamming distance metric and the path with lowest
Hamming distance metric (cumulative metric) is
called survivor path. The number of bit positions by
which the received symbol and actual symbol differ
is Hamming distance [5]. If Hamming distance is
zero, indicate that the symbol or data is received as it
is transmitted without any error. The implementation
of soft decision Viterbi decoder involves finding
metric used is Euclidean distance. This is squared
difference between received symbol and actual
symbol. In this type the received symbol is
quantized into more than two levels and Euclidean
distance is calculated [5]. The path with minimum
Euclidean distance is considered as survivor path.
Soft decision decoding will be better compared to
hard decision because soft decision decoding will
have more information about the received
information compared to hard decision decoding.
II. CONVOLUTIONAL ENCODER
The type of decoders used in receiver
section of any communication system depends on
type of encoding scheme used in transmitter section.
Most of the transmitters use convolutional encoding
scheme.
RESEARCH ARTICLE OPEN ACCESS
Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47
www.ijera.com 44 | P a g e
Fig.1. (2, 1, 7) Convolutional encoder
A (2, 1, 7) convolutional encoder which is
base for Viterbi decoder design is as shown in Fig.1.
The output from Convolutional encoder mainly
depend on generator vectors (171)o and (133)o. It
also has constraint length 7 and code rate ½. Since
there are 6 shift registers in designed encoder
structure, state diagram involves 26
= 64 states. The
state transition mainly depends on input bit (‘0’ or
‘1’). Based on input arrived into Convolutional
encoder there will be two transitions from each state.
Hence 64 states will have 128 transitions. The all
possible state transitions are graphically represented
in Fig. 2. Each state transition leads to particular
output bit combinations which plays important role
in decoding process.
The rate of the Convolutional encoder
mainly depends on number of bits inputted and
number of output bits obtained. For each input bit
enter into Convolutional encoder shown in Fig.1,
two bit outputs are obtained. This is due to the rate
of Convolutional encoder which is ½ and the
operation is convolution of input sequences with
impulse response of encoder. The reliability of
transmission in a communication system is improved
by encoding at transmitter.
Fig.2. State diagram of (2, 1, 7) Convolutional
encoder
III. VITERBI DECODER
The general block diagram of Viterbi
decoder is as shown in Fig. 3. The main blocks are
Branch Metric Unit (BMU), Add-Compare-Select
Unit (ACSU), Path Metric Unit (PMU) and Trace-
Back Unit (TBU). The base for Viterbi decoder
design is Trellis structure of proposed Convolutional
encoder. The design specifications adopted in this
paper is listed in Table 1.
Table 1: Design specifications
Parameter Value
Constraint length 7
Code rate 1/2
Generator vectors (171)o , (133)o
Encoding scheme Convolutional
There will be 64 states for Viterbi decoder
design. For every new input symbol arrived each
state will go into two other new states. There are
pre-obtained codewords for each state transition.
Viterbi decoder finds hamming distance between
input codewords and pre-obtained codewords of
each transition. When new symbol arrives into
Viterbi decoder the hamming distance accumulates
and leads into path metric. Viterbi decoder selects a
state with minimum path metric as surviving state.
Pah along with this state is called survivor path. The
decision bits along the survivor path are taken as
actual decoded output.
Fig.3. Block diagram of Viterbi decoder [4]
A. Branch Metric Unit (BMU)
This unit calculates Hamming distance
metric in hard decision decoding and Euclidean
distance in soft decision decoding. In hard decision
Viterbi decoding it involves Exor-ing of received
symbol as well as actual code symbol and counting
the number of 1's to identify Hamming Distance
(HD) as shown in Fig. 4. In the case of soft decision
Viterbi decoding the free distance formula is used to
find squared distance between received codewords
and actual code word. For hard decision Viterbi
decoder the number of clock cycles consumed by
branch metric unit is equal to number of symbols.
Let 'N' be the number of code symbols applied to
Viterbi decoder to decode. Then branch metric value
Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47
www.ijera.com 45 | P a g e
is calculated in 'N' clock cycles.
Fig.4.Branch Metric Unit (BMU)
B. Add-Compare-Select Unit (ACSU)
The most important part of Viterbi decoder
is Add-Compare-Select Unit which is as shown in
Fig. 5. This involves the calculation of path metric
value by adding the branch metrics initially. For next
iteration when new symbol arrives new path metric
value is found by adding new branch metric value to
previously computed path metric. ACSU selects
optimum path based on minimum path metric value.
ACSU is one of the complex parts of Viterbi decoder
implementation. The path metric for all state is
computed and optimum path for individual state is
selected. At the same time the decision bits are
stored for the selected optimum path. When all
inputs are available and control signals are high, the
new path metrics and state values are calculated as
well as the state bit values are stored in different
array before new symbol is arrived. This is because
the state bit values are required for trace-back to
obtain final decoded output. But the obtained path
metric value is input to next iteration and updated.
For one symbol, the new path metric for all state
transition are calculated in first clock cycle. Since
each state will have two path metric values, the one
with minimum value is taken along with state
information and stored in next two clock cycles.
Hence one symbol takes three clock cycles and
hence for 'N' symbols, 3N clock cycles are required
to complete the add-compare-select operation.
Fig.5. Add-Compare-Select Unit (ACSU)
C. Path Metric Unit (PMU)
This computes path metric for each state
from initial state as the new symbol arrives in each
time. The path metric for each state is stored and
added to the branch metric of new received symbol.
The Add-Compare-Select and path metric
computation is continued till it reaches to decoding
depth/trace-back depth. Once the trace-back depth is
reached trace-back is started at the same time. Add-
Compare-Select and path metric computation is
performed in parallel with trace-back.
D. Trace-Back Unit (TBU)
Once the trace-back length/decoding depth
is reached the decision bits are traced back along the
winning path/survivor path to identify the decoded
bits. The state which has minimum cumulative path
metric is selected as winning state and the path along
that to initial stage is winning path. The decision bits
along that winning path give actual decoded
sequence. For better performance trace-back length
was chosen as greater than or equal to 5 times
constraint length. The trace-back operation requires
one clock cycle to enable trace-back, two clock
cycles for finding minimum value of path metric
from the array and N cycles to obtain N decoded
bits. Hence the total trace-back requires N + 3 clock
cycles for N symbols.
Fig.6. Flow diagram of Viterbi decoder
Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47
www.ijera.com 46 | P a g e
The flow of Viterbi decoder is represented
in Fig.6. It involves initializing all inputs such as
clock, reset, enable signals, actual codewords and
received codewords. Proper operation of Viterbi
decoder requires an active high reset signal, a single
pulse of enable signal and a continuous clock signal.
On initializing all input values branch metric and
path metric values are calculated parallelly for each
received symbol. The path information (state value
and decision bit) are stored in a multi-dimensional
array. Set trace-back length as greater than or equal
to five times of constraint length. Once the number
of symbols fed into Viterbi decoder reaches trace-
back length, start trace-back and obtain decoded
output.
The total number of clock cycles required
to obtain final output will be sum of number clock
cycles required for branch metric calculation, add-
compare-select operation and number of clock
cycles required for trace-back. Hence 5N+N+3 =
6N+3 cycles required for N symbols.
IV. PERFORMANCE ANALYSIS
VHDL code for optimum design of Viterbi
decoder is simulated using Modelsim 6.5b and
synthesized using Xilinx 12.2. The simulation result
is as shown in Fig. 6. 75 symbols are fed as input
into Viterbi decoder. Trace-back length chosen was
36.
Fig.6.Simulation result of Viterbi decoder
From simulation result it is observed that
the designed Viterbi decoder is able to correct single
bit errors as well as two bit errors which are
distributed randomly.
Table 2: Resource utilization table
Resources Utilization
Number of unique control sets 94
Adder/Subtractors 35
Counters 3
Registers 39042
Comparators 65
Multiplexers 810
1 bit EX-OR 8
Table 3: Comparison of resource utilization between different FPGA devices
Resources Utilization
Spartan6 Spartan6 lower power Virtex4
Number of slice registers 6902 out of 184304(3%) 6862 out of 184304 (3%) 6859 out of 126800 (5%)
Number of slice LUTs 5796 out of 92152(6%) 5794 out of 92152 (6%) 5794 out of 63400 (9%)
Number of fully used LUT-FF pairs 1553 out of 11145 (13%) 1489 out of 11167 (13%) 1504 out of 11149 (13%)
Number of bounded IOBs 7 out of 396(1%) 7 out of 396 (1%) 7 out of 210 (3%)
Resources in different FPGA devices differ
in numbers. The resource utilization details of
designed Viterbi decoder obtained after synthesis
which is compared between different FPGA devices.
This comparison will help to select the best device to
implement. The resource utilization of designed
Viterbi decoder is shown in Table 2.
V. CONCLUSION
With the growing use of digital
communication, there has been an increased interest
in high speed Viterbi decoder design within a single
chip. Hence by knowing the basic knowledge of
convolutional coding and Viterbi decoding, basic
structure of various blocks of Viterbi decoder is
designed. The design is carried out for the
convolutional encoder with code rate ½ and
constraint length 7 which require 64 states, 4 parallel
Branch Metric Units (BMUs) and 32 parallel Add-
Compare-Select Units (ACSUs). The two ACSUs
are combined in one module. The optimization in
designed structure is required to obtain better design
with low resource requirement, low power and high
speed. The VHDL codes are generated in different
code modules for each blocks of Viterbi decoder and
then integrated. The designed Viterbi decoder is
able to correct single as well as two bits errors. In
general it corrects random errors. It is observed that
number of resources required implementing Viterbi
decoder on FPGA (Spartan 6, xc6slx150t,-3), by
optimizing VHDL code are minimum compared to
conventional Viterbi structure.
REFERENCES
[1]. A.J. Viterbi, Error Bounds for
Convolutional Codes and
Asymptotically Optimum Decoding
Algorithm, Institute of Electrical and
Electronics Engineers Transactions on
Information Theory, IT-13, 1967, 260-269.
[2]. Bernard Sklar, Digital Communications-
Fundamentals and Applications (Second
Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com
ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47
www.ijera.com 47 | P a g e
Edition, Prentice Hall P T R, New Jersey,
381-435).
[3]. G. D. Forney Jr., The Viterbi algorithm,
Proceedings on Institute of Electrical and
Electronics Engineers, 1973, 268-278.
[4]. Yan Sun and Zhizhong Ding, FPGA Design
and Implementation of Convolutional
Encoder and a Viterbi Decoder Based on
802.11a for OFDM, Department of
Communication Engineering, Hefei
University of Technology, 2012, 125-131.
[5]. Hui-Ling Lou, Implementation of the
Viterbi Algorithm, Institute of Electrical
and Electronic Engineers Acoustics,
Speech, and Signal Processing Magazine ,
1995, 26-41.
[6]. Matthias Kamuf, Viktor Owall, and John B.
Anderson,Optimization and
Implementation of Viterbi Decoder under
Flexibility Constraints, Institute of
Electrical and Electronics Engineers
Transactions on Circuits and Systems
regular papers , 2008, 2411-2422.
[7]. Gerhard Fettweis and Heinrich Meyr, High-
Speed Parallel Viterbi Decoding: Algorithm
and VLSI-Architecture, Institute of
Electrical and Electrical and Electronics
Engineers Communications Magazine ,
1991, 46-55.
[8]. [8] Marimuthu C.N, An efficient Viterbi
Decoder Architecture, International
organization of Scientific Research
Journal of VLSI and Signal Processing ,
2013,46-50.
Ad

More Related Content

What's hot (20)

www.ijerd.com
www.ijerd.comwww.ijerd.com
www.ijerd.com
IJERD Editor
 
Gsm Soft Viterbi Code
Gsm Soft Viterbi CodeGsm Soft Viterbi Code
Gsm Soft Viterbi Code
frankie_z
 
Design and implementation of log domain decoder
Design and implementation of log domain decoder Design and implementation of log domain decoder
Design and implementation of log domain decoder
IJECEIAES
 
UNIT-3 : CHANNEL CODING
UNIT-3 : CHANNEL CODINGUNIT-3 : CHANNEL CODING
UNIT-3 : CHANNEL CODING
abhishek reddy
 
Digital Communication: Channel Coding
Digital Communication: Channel CodingDigital Communication: Channel Coding
Digital Communication: Channel Coding
Dr. Sanjay M. Gulhane
 
40120140504012
4012014050401240120140504012
40120140504012
IAEME Publication
 
Error control coding techniques
Error control coding techniquesError control coding techniques
Error control coding techniques
DhanashriNandre
 
Study of the operational SNR while constructing polar codes
Study of the operational SNR while constructing polar codes Study of the operational SNR while constructing polar codes
Study of the operational SNR while constructing polar codes
IJECEIAES
 
Wireless digital communication and coding techniques new
Wireless digital communication and coding techniques newWireless digital communication and coding techniques new
Wireless digital communication and coding techniques new
Clyde Lettsome
 
Channel Coding (Digital communication)
Channel Coding (Digital communication)Channel Coding (Digital communication)
Channel Coding (Digital communication)
VARUN KUMAR
 
Implementation of error correcting methods to the asynchronous Delay Insensit...
Implementation of error correcting methods to the asynchronous Delay Insensit...Implementation of error correcting methods to the asynchronous Delay Insensit...
Implementation of error correcting methods to the asynchronous Delay Insensit...
IOSR Journals
 
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
IOSR Journals
 
Digital Communication Techniques
Digital Communication TechniquesDigital Communication Techniques
Digital Communication Techniques
Prof. Swapnil V. Kaware
 
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
IJERA Editor
 
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
theijes
 
Design, Analysis and Implementation of Modified Luby Transform Code
Design, Analysis and Implementation of Modified Luby Transform CodeDesign, Analysis and Implementation of Modified Luby Transform Code
Design, Analysis and Implementation of Modified Luby Transform Code
IOSR Journals
 
Paper id 2520141232
Paper id 2520141232Paper id 2520141232
Paper id 2520141232
IJRAT
 
Digital Electronics Most Essential and Frequently Asked Interview Questions
Digital Electronics Most Essential and Frequently Asked Interview QuestionsDigital Electronics Most Essential and Frequently Asked Interview Questions
Digital Electronics Most Essential and Frequently Asked Interview Questions
iottrainingts
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd Iaetsd
 
Course Content of 6ET3 Digital communication
Course Content of 6ET3 Digital communicationCourse Content of 6ET3 Digital communication
Course Content of 6ET3 Digital communication
Dr. Sanjay M. Gulhane
 
Gsm Soft Viterbi Code
Gsm Soft Viterbi CodeGsm Soft Viterbi Code
Gsm Soft Viterbi Code
frankie_z
 
Design and implementation of log domain decoder
Design and implementation of log domain decoder Design and implementation of log domain decoder
Design and implementation of log domain decoder
IJECEIAES
 
UNIT-3 : CHANNEL CODING
UNIT-3 : CHANNEL CODINGUNIT-3 : CHANNEL CODING
UNIT-3 : CHANNEL CODING
abhishek reddy
 
Digital Communication: Channel Coding
Digital Communication: Channel CodingDigital Communication: Channel Coding
Digital Communication: Channel Coding
Dr. Sanjay M. Gulhane
 
Error control coding techniques
Error control coding techniquesError control coding techniques
Error control coding techniques
DhanashriNandre
 
Study of the operational SNR while constructing polar codes
Study of the operational SNR while constructing polar codes Study of the operational SNR while constructing polar codes
Study of the operational SNR while constructing polar codes
IJECEIAES
 
Wireless digital communication and coding techniques new
Wireless digital communication and coding techniques newWireless digital communication and coding techniques new
Wireless digital communication and coding techniques new
Clyde Lettsome
 
Channel Coding (Digital communication)
Channel Coding (Digital communication)Channel Coding (Digital communication)
Channel Coding (Digital communication)
VARUN KUMAR
 
Implementation of error correcting methods to the asynchronous Delay Insensit...
Implementation of error correcting methods to the asynchronous Delay Insensit...Implementation of error correcting methods to the asynchronous Delay Insensit...
Implementation of error correcting methods to the asynchronous Delay Insensit...
IOSR Journals
 
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
Vlsi Implementation of Low Power Convolutional Coding With Viterbi Decoding U...
IOSR Journals
 
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
IJERA Editor
 
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
Performance Analysis of a SIMO-OFDM System Using Different Diversity Combinin...
theijes
 
Design, Analysis and Implementation of Modified Luby Transform Code
Design, Analysis and Implementation of Modified Luby Transform CodeDesign, Analysis and Implementation of Modified Luby Transform Code
Design, Analysis and Implementation of Modified Luby Transform Code
IOSR Journals
 
Paper id 2520141232
Paper id 2520141232Paper id 2520141232
Paper id 2520141232
IJRAT
 
Digital Electronics Most Essential and Frequently Asked Interview Questions
Digital Electronics Most Essential and Frequently Asked Interview QuestionsDigital Electronics Most Essential and Frequently Asked Interview Questions
Digital Electronics Most Essential and Frequently Asked Interview Questions
iottrainingts
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd Iaetsd
 
Course Content of 6ET3 Digital communication
Course Content of 6ET3 Digital communicationCourse Content of 6ET3 Digital communication
Course Content of 6ET3 Digital communication
Dr. Sanjay M. Gulhane
 

Similar to Hard Decision Viterbi Decoder: Implementation on FPGA and Comparison of Resource Utilization on Different FPGA Devices (20)

Performance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applicationsPerformance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applications
acijjournal
 
Iaetsd vlsi implementation of efficient convolutional
Iaetsd vlsi implementation of efficient convolutionalIaetsd vlsi implementation of efficient convolutional
Iaetsd vlsi implementation of efficient convolutional
Iaetsd Iaetsd
 
Y25124127
Y25124127Y25124127
Y25124127
IJERA Editor
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
IJMER
 
Implementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve DesignImplementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve Design
ijsrd.com
 
E010224043
E010224043E010224043
E010224043
IOSR Journals
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514
IJRAT
 
AN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODERAN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODER
IJCSEA Journal
 
Ijetcas14 378
Ijetcas14 378Ijetcas14 378
Ijetcas14 378
Iasir Journals
 
simulation of turbo encoding and decoding
simulation of turbo encoding and decodingsimulation of turbo encoding and decoding
simulation of turbo encoding and decoding
Gulafshan Saifi
 
FPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID TagFPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID Tag
IJERA Editor
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
Journal For Research
 
Viterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM DecodersViterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM Decoders
ijtsrd
 
srivastava2018.pdf
srivastava2018.pdfsrivastava2018.pdf
srivastava2018.pdf
sumanta kundu
 
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
IJERA Editor
 
Performance Comparision of Coded and Un-Coded OFDM for Different Fic Code
Performance Comparision of Coded and Un-Coded OFDM for Different Fic CodePerformance Comparision of Coded and Un-Coded OFDM for Different Fic Code
Performance Comparision of Coded and Un-Coded OFDM for Different Fic Code
IJERA Editor
 
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
ijsrd.com
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
ijceronline
 
DCN Error Detection & Correction
DCN Error Detection & CorrectionDCN Error Detection & Correction
DCN Error Detection & Correction
Rohan Bhatkar
 
Performance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applicationsPerformance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applications
acijjournal
 
Iaetsd vlsi implementation of efficient convolutional
Iaetsd vlsi implementation of efficient convolutionalIaetsd vlsi implementation of efficient convolutional
Iaetsd vlsi implementation of efficient convolutional
Iaetsd Iaetsd
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
IJMER
 
Implementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve DesignImplementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve Design
ijsrd.com
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514
IJRAT
 
AN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODERAN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODER
IJCSEA Journal
 
simulation of turbo encoding and decoding
simulation of turbo encoding and decodingsimulation of turbo encoding and decoding
simulation of turbo encoding and decoding
Gulafshan Saifi
 
FPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID TagFPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID Tag
IJERA Editor
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
Journal For Research
 
Viterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM DecodersViterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM Decoders
ijtsrd
 
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
IJERA Editor
 
Performance Comparision of Coded and Un-Coded OFDM for Different Fic Code
Performance Comparision of Coded and Un-Coded OFDM for Different Fic CodePerformance Comparision of Coded and Un-Coded OFDM for Different Fic Code
Performance Comparision of Coded and Un-Coded OFDM for Different Fic Code
IJERA Editor
 
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
FPGA Implementation of Viterbi Decoder using Hybrid Trace Back and Register E...
ijsrd.com
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
ijceronline
 
DCN Error Detection & Correction
DCN Error Detection & CorrectionDCN Error Detection & Correction
DCN Error Detection & Correction
Rohan Bhatkar
 
Ad

Recently uploaded (20)

Understanding Structural Loads and Load Paths
Understanding Structural Loads and Load PathsUnderstanding Structural Loads and Load Paths
Understanding Structural Loads and Load Paths
University of Kirkuk
 
Nanometer Metal-Organic-Framework Literature Comparison
Nanometer Metal-Organic-Framework  Literature ComparisonNanometer Metal-Organic-Framework  Literature Comparison
Nanometer Metal-Organic-Framework Literature Comparison
Chris Harding
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Surveying through global positioning system
Surveying through global positioning systemSurveying through global positioning system
Surveying through global positioning system
opneptune5
 
Working with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to ImplementationWorking with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to Implementation
Alabama Transportation Assistance Program
 
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning ModelsMode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Journal of Soft Computing in Civil Engineering
 
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
Reflections on Morality, Philosophy, and History
 
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
Taqyea
 
Artificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptxArtificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptx
rakshanatarajan005
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .
NABLAS株式会社
 
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Journal of Soft Computing in Civil Engineering
 
Machine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATIONMachine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATION
DarrinBright1
 
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
IJCNCJournal
 
Generative AI & Large Language Models Agents
Generative AI & Large Language Models AgentsGenerative AI & Large Language Models Agents
Generative AI & Large Language Models Agents
aasgharbee22seecs
 
Novel Plug Flow Reactor with Recycle For Growth Control
Novel Plug Flow Reactor with Recycle For Growth ControlNovel Plug Flow Reactor with Recycle For Growth Control
Novel Plug Flow Reactor with Recycle For Growth Control
Chris Harding
 
Routing Riverdale - A New Bus Connection
Routing Riverdale - A New Bus ConnectionRouting Riverdale - A New Bus Connection
Routing Riverdale - A New Bus Connection
jzb7232
 
Understanding Structural Loads and Load Paths
Understanding Structural Loads and Load PathsUnderstanding Structural Loads and Load Paths
Understanding Structural Loads and Load Paths
University of Kirkuk
 
Nanometer Metal-Organic-Framework Literature Comparison
Nanometer Metal-Organic-Framework  Literature ComparisonNanometer Metal-Organic-Framework  Literature Comparison
Nanometer Metal-Organic-Framework Literature Comparison
Chris Harding
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Design of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdfDesign of Variable Depth Single-Span Post.pdf
Design of Variable Depth Single-Span Post.pdf
Kamel Farid
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Surveying through global positioning system
Surveying through global positioning systemSurveying through global positioning system
Surveying through global positioning system
opneptune5
 
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
Taqyea
 
Artificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptxArtificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptx
rakshanatarajan005
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .hypermedia_system_revisit_roy_fielding .
hypermedia_system_revisit_roy_fielding .
NABLAS株式会社
 
Machine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATIONMachine Learning basics POWERPOINT PRESENETATION
Machine Learning basics POWERPOINT PRESENETATION
DarrinBright1
 
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
Efficient Algorithms for Isogeny Computation on Hyperelliptic Curves: Their A...
IJCNCJournal
 
Generative AI & Large Language Models Agents
Generative AI & Large Language Models AgentsGenerative AI & Large Language Models Agents
Generative AI & Large Language Models Agents
aasgharbee22seecs
 
Novel Plug Flow Reactor with Recycle For Growth Control
Novel Plug Flow Reactor with Recycle For Growth ControlNovel Plug Flow Reactor with Recycle For Growth Control
Novel Plug Flow Reactor with Recycle For Growth Control
Chris Harding
 
Routing Riverdale - A New Bus Connection
Routing Riverdale - A New Bus ConnectionRouting Riverdale - A New Bus Connection
Routing Riverdale - A New Bus Connection
jzb7232
 
Ad

Hard Decision Viterbi Decoder: Implementation on FPGA and Comparison of Resource Utilization on Different FPGA Devices

  • 1. Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47 www.ijera.com 43 | P a g e Hard Decision Viterbi Decoder: Implementation on FPGA and Comparison of Resource Utilization on Different FPGA Devices Ms. Shankari N*, Mrs. Shrividya G** *M.Tech student, Department of ECE, NMAM Institute of Technology, Nitte, Karkala, India ** Associate Professor, Department of ECE, NMAM Institute of Technology, Nitte, Karkala, India ABSTRACT Viterbi decoder is the most important part in receiver section of wireless communication system. Viterbi algorithm is one of the most common decoding algorithms used for decoding convolutional codes. Viterbi decoder employs Maximum Likelihood technique to decode the convolutionally encoded data stream. In practice, most of the communication systems use Viterbi decoding scheme in processors. But increased interest on high speed Viterbi decoder in a single chip forced to realize with the speed of Giga-bit per second, without using memory or off-chip processors. Implementation of proposed design and realization is possible due to advanced Field Programmable Gate Array (FPGA) technologies and advanced Electronic Design Automatic (EDA) tools. This paper involves designing an optimum structure of Viterbi decoder and implementing it on different FPGA devices to compare the resource utilizations. Keywords Branch Metric (BM), Hamming Distance (HD), Path Metric (PM), Survivor path, Signal to Noise Ratio (SNR), Trace-back, Viterbi decoder. I. INTRODUCTION In wireless communication systems noise and interference level in the channel is very high. It greatly affects the Signal to Noise Ratio (SNR). Hence certain Error Detection and Correction (EDC) techniques are required to improve SNR. An error correcting code which is used in most of the communication systems is convolutional code. Most of the transmitters use convolutional encoder to add redundancy to the information being transmitted. Hence the effective technique to decode the convolutionally encoded data is Viterbi decoder. Viterbi decoder uses Viterbi algorithm to decode the data. It involves Maximum Likelihood (ML) decoding where the computational load is reduced. The algorithm will use Trellis structure [1]. The received symbol is compared with actual codewords in each transmission. The configuration of Viterbi decoder depends on encoder's code rate, constraint length and generator polynomial. The probability of error will be reduced by Viterbi decoder hence it is called Optimum Algorithm. Even-though the present information bits are corrupted by noise in the channel. Viterbi decoder is able to correct the corrupted bits or error bits due to the structure of convolutional encoded code. The decoding will start at '0' state by the assumption that encoding will start from the same state. Actually the ML decoding will be independent of initial states [4]. The ML decoding involves selection of low metric path as winning path. The winning path will have low bit error path compared to other paths. Parallel implementation of Viterbi decoder is possible [7]. There are 2 types of Viterbi decoder implementation namely hard decision Viterbi decoding and soft decision Viterbi decoding. The metric is Hamming distance metric in hard decision Viterbi decoder and Euclidean distance metric in soft decision Viterbi decoder. The implementation of hard decision Viterbi decoder involves finding Hamming distance metric and the path with lowest Hamming distance metric (cumulative metric) is called survivor path. The number of bit positions by which the received symbol and actual symbol differ is Hamming distance [5]. If Hamming distance is zero, indicate that the symbol or data is received as it is transmitted without any error. The implementation of soft decision Viterbi decoder involves finding metric used is Euclidean distance. This is squared difference between received symbol and actual symbol. In this type the received symbol is quantized into more than two levels and Euclidean distance is calculated [5]. The path with minimum Euclidean distance is considered as survivor path. Soft decision decoding will be better compared to hard decision because soft decision decoding will have more information about the received information compared to hard decision decoding. II. CONVOLUTIONAL ENCODER The type of decoders used in receiver section of any communication system depends on type of encoding scheme used in transmitter section. Most of the transmitters use convolutional encoding scheme. RESEARCH ARTICLE OPEN ACCESS
  • 2. Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47 www.ijera.com 44 | P a g e Fig.1. (2, 1, 7) Convolutional encoder A (2, 1, 7) convolutional encoder which is base for Viterbi decoder design is as shown in Fig.1. The output from Convolutional encoder mainly depend on generator vectors (171)o and (133)o. It also has constraint length 7 and code rate ½. Since there are 6 shift registers in designed encoder structure, state diagram involves 26 = 64 states. The state transition mainly depends on input bit (‘0’ or ‘1’). Based on input arrived into Convolutional encoder there will be two transitions from each state. Hence 64 states will have 128 transitions. The all possible state transitions are graphically represented in Fig. 2. Each state transition leads to particular output bit combinations which plays important role in decoding process. The rate of the Convolutional encoder mainly depends on number of bits inputted and number of output bits obtained. For each input bit enter into Convolutional encoder shown in Fig.1, two bit outputs are obtained. This is due to the rate of Convolutional encoder which is ½ and the operation is convolution of input sequences with impulse response of encoder. The reliability of transmission in a communication system is improved by encoding at transmitter. Fig.2. State diagram of (2, 1, 7) Convolutional encoder III. VITERBI DECODER The general block diagram of Viterbi decoder is as shown in Fig. 3. The main blocks are Branch Metric Unit (BMU), Add-Compare-Select Unit (ACSU), Path Metric Unit (PMU) and Trace- Back Unit (TBU). The base for Viterbi decoder design is Trellis structure of proposed Convolutional encoder. The design specifications adopted in this paper is listed in Table 1. Table 1: Design specifications Parameter Value Constraint length 7 Code rate 1/2 Generator vectors (171)o , (133)o Encoding scheme Convolutional There will be 64 states for Viterbi decoder design. For every new input symbol arrived each state will go into two other new states. There are pre-obtained codewords for each state transition. Viterbi decoder finds hamming distance between input codewords and pre-obtained codewords of each transition. When new symbol arrives into Viterbi decoder the hamming distance accumulates and leads into path metric. Viterbi decoder selects a state with minimum path metric as surviving state. Pah along with this state is called survivor path. The decision bits along the survivor path are taken as actual decoded output. Fig.3. Block diagram of Viterbi decoder [4] A. Branch Metric Unit (BMU) This unit calculates Hamming distance metric in hard decision decoding and Euclidean distance in soft decision decoding. In hard decision Viterbi decoding it involves Exor-ing of received symbol as well as actual code symbol and counting the number of 1's to identify Hamming Distance (HD) as shown in Fig. 4. In the case of soft decision Viterbi decoding the free distance formula is used to find squared distance between received codewords and actual code word. For hard decision Viterbi decoder the number of clock cycles consumed by branch metric unit is equal to number of symbols. Let 'N' be the number of code symbols applied to Viterbi decoder to decode. Then branch metric value
  • 3. Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47 www.ijera.com 45 | P a g e is calculated in 'N' clock cycles. Fig.4.Branch Metric Unit (BMU) B. Add-Compare-Select Unit (ACSU) The most important part of Viterbi decoder is Add-Compare-Select Unit which is as shown in Fig. 5. This involves the calculation of path metric value by adding the branch metrics initially. For next iteration when new symbol arrives new path metric value is found by adding new branch metric value to previously computed path metric. ACSU selects optimum path based on minimum path metric value. ACSU is one of the complex parts of Viterbi decoder implementation. The path metric for all state is computed and optimum path for individual state is selected. At the same time the decision bits are stored for the selected optimum path. When all inputs are available and control signals are high, the new path metrics and state values are calculated as well as the state bit values are stored in different array before new symbol is arrived. This is because the state bit values are required for trace-back to obtain final decoded output. But the obtained path metric value is input to next iteration and updated. For one symbol, the new path metric for all state transition are calculated in first clock cycle. Since each state will have two path metric values, the one with minimum value is taken along with state information and stored in next two clock cycles. Hence one symbol takes three clock cycles and hence for 'N' symbols, 3N clock cycles are required to complete the add-compare-select operation. Fig.5. Add-Compare-Select Unit (ACSU) C. Path Metric Unit (PMU) This computes path metric for each state from initial state as the new symbol arrives in each time. The path metric for each state is stored and added to the branch metric of new received symbol. The Add-Compare-Select and path metric computation is continued till it reaches to decoding depth/trace-back depth. Once the trace-back depth is reached trace-back is started at the same time. Add- Compare-Select and path metric computation is performed in parallel with trace-back. D. Trace-Back Unit (TBU) Once the trace-back length/decoding depth is reached the decision bits are traced back along the winning path/survivor path to identify the decoded bits. The state which has minimum cumulative path metric is selected as winning state and the path along that to initial stage is winning path. The decision bits along that winning path give actual decoded sequence. For better performance trace-back length was chosen as greater than or equal to 5 times constraint length. The trace-back operation requires one clock cycle to enable trace-back, two clock cycles for finding minimum value of path metric from the array and N cycles to obtain N decoded bits. Hence the total trace-back requires N + 3 clock cycles for N symbols. Fig.6. Flow diagram of Viterbi decoder
  • 4. Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47 www.ijera.com 46 | P a g e The flow of Viterbi decoder is represented in Fig.6. It involves initializing all inputs such as clock, reset, enable signals, actual codewords and received codewords. Proper operation of Viterbi decoder requires an active high reset signal, a single pulse of enable signal and a continuous clock signal. On initializing all input values branch metric and path metric values are calculated parallelly for each received symbol. The path information (state value and decision bit) are stored in a multi-dimensional array. Set trace-back length as greater than or equal to five times of constraint length. Once the number of symbols fed into Viterbi decoder reaches trace- back length, start trace-back and obtain decoded output. The total number of clock cycles required to obtain final output will be sum of number clock cycles required for branch metric calculation, add- compare-select operation and number of clock cycles required for trace-back. Hence 5N+N+3 = 6N+3 cycles required for N symbols. IV. PERFORMANCE ANALYSIS VHDL code for optimum design of Viterbi decoder is simulated using Modelsim 6.5b and synthesized using Xilinx 12.2. The simulation result is as shown in Fig. 6. 75 symbols are fed as input into Viterbi decoder. Trace-back length chosen was 36. Fig.6.Simulation result of Viterbi decoder From simulation result it is observed that the designed Viterbi decoder is able to correct single bit errors as well as two bit errors which are distributed randomly. Table 2: Resource utilization table Resources Utilization Number of unique control sets 94 Adder/Subtractors 35 Counters 3 Registers 39042 Comparators 65 Multiplexers 810 1 bit EX-OR 8 Table 3: Comparison of resource utilization between different FPGA devices Resources Utilization Spartan6 Spartan6 lower power Virtex4 Number of slice registers 6902 out of 184304(3%) 6862 out of 184304 (3%) 6859 out of 126800 (5%) Number of slice LUTs 5796 out of 92152(6%) 5794 out of 92152 (6%) 5794 out of 63400 (9%) Number of fully used LUT-FF pairs 1553 out of 11145 (13%) 1489 out of 11167 (13%) 1504 out of 11149 (13%) Number of bounded IOBs 7 out of 396(1%) 7 out of 396 (1%) 7 out of 210 (3%) Resources in different FPGA devices differ in numbers. The resource utilization details of designed Viterbi decoder obtained after synthesis which is compared between different FPGA devices. This comparison will help to select the best device to implement. The resource utilization of designed Viterbi decoder is shown in Table 2. V. CONCLUSION With the growing use of digital communication, there has been an increased interest in high speed Viterbi decoder design within a single chip. Hence by knowing the basic knowledge of convolutional coding and Viterbi decoding, basic structure of various blocks of Viterbi decoder is designed. The design is carried out for the convolutional encoder with code rate ½ and constraint length 7 which require 64 states, 4 parallel Branch Metric Units (BMUs) and 32 parallel Add- Compare-Select Units (ACSUs). The two ACSUs are combined in one module. The optimization in designed structure is required to obtain better design with low resource requirement, low power and high speed. The VHDL codes are generated in different code modules for each blocks of Viterbi decoder and then integrated. The designed Viterbi decoder is able to correct single as well as two bits errors. In general it corrects random errors. It is observed that number of resources required implementing Viterbi decoder on FPGA (Spartan 6, xc6slx150t,-3), by optimizing VHDL code are minimum compared to conventional Viterbi structure. REFERENCES [1]. A.J. Viterbi, Error Bounds for Convolutional Codes and Asymptotically Optimum Decoding Algorithm, Institute of Electrical and Electronics Engineers Transactions on Information Theory, IT-13, 1967, 260-269. [2]. Bernard Sklar, Digital Communications- Fundamentals and Applications (Second
  • 5. Ms.Shankari N al. Int. Journal of Engineering Research and Application www.ijera.com ISSN : 2248-9622, Vol. 6, Issue 5, ( Part -6) May 2016, pp.43-47 www.ijera.com 47 | P a g e Edition, Prentice Hall P T R, New Jersey, 381-435). [3]. G. D. Forney Jr., The Viterbi algorithm, Proceedings on Institute of Electrical and Electronics Engineers, 1973, 268-278. [4]. Yan Sun and Zhizhong Ding, FPGA Design and Implementation of Convolutional Encoder and a Viterbi Decoder Based on 802.11a for OFDM, Department of Communication Engineering, Hefei University of Technology, 2012, 125-131. [5]. Hui-Ling Lou, Implementation of the Viterbi Algorithm, Institute of Electrical and Electronic Engineers Acoustics, Speech, and Signal Processing Magazine , 1995, 26-41. [6]. Matthias Kamuf, Viktor Owall, and John B. Anderson,Optimization and Implementation of Viterbi Decoder under Flexibility Constraints, Institute of Electrical and Electronics Engineers Transactions on Circuits and Systems regular papers , 2008, 2411-2422. [7]. Gerhard Fettweis and Heinrich Meyr, High- Speed Parallel Viterbi Decoding: Algorithm and VLSI-Architecture, Institute of Electrical and Electrical and Electronics Engineers Communications Magazine , 1991, 46-55. [8]. [8] Marimuthu C.N, An efficient Viterbi Decoder Architecture, International organization of Scientific Research Journal of VLSI and Signal Processing , 2013,46-50.