viterbi algorithm ppt

21
DESIGN SPACE EXPLORATION OF HARD DECISION VITERBI DECODING : ALGORITHM AND VLSI IMPLEMENTATION

Upload: seshank-varma

Post on 27-Nov-2015

143 views

Category:

Documents


4 download

DESCRIPTION

ppt on viterbi algorithm

TRANSCRIPT

Page 1: viterbi algorithm ppt

DESIGN SPACE EXPLORATION OF HARD

DECISION VITERBI DECODING : ALGORITHM AND VLSI

IMPLEMENTATION

Page 2: viterbi algorithm ppt

INTRODUCTION1. HISTORY OF ERROR CORRECTING CODES

WHY ERROR CORRECTING CODES ? WHY CONVOLUTION CODES ?

2. CONVOLUTION CODES GENERATION CONSTRAINT LENGTH GENERATING POLYNOMIAL TRELLIS DIAGRAM REPRESENTATION

3. VITERBI ALGORITHM DESIGN BRANCH-METRIC UNIT PATH-METRIC UNIT SURVIVING MEMORY UNIT

4. DESIGN CONSTRAINTS

Page 3: viterbi algorithm ppt

Brain itself has an error-correcting code within it , compares with all the possible states and makes out the best pick!!!!

Code--->corrupted--->error correction--->corrected code

Text--->ppt(corruption)--->brain--->corrected word

Page 4: viterbi algorithm ppt

Relationship with the ancient history :

Jewish scribes devised a complex error detection process to help prevent mistakes.

Steps:

1. Count the number of words in the manuscript

2. Count number or columns and rows

3. Writing down the first words of each line

Examples: google search, iphone (siri software) etc.

Page 5: viterbi algorithm ppt

Why Convolution Codes?

Concept of FEC (forward error correction) Simpler compared to cyclic codes and linear block

codes (division operation) In block-codes information bits are followed by parity

bits Easy to implement both in software as well as hardware Generating polynomials are fixed in block and cyclic

codes Decoding algorithm remains the same irrespective of

generating polynomials Faster and have lead to a new generation correcting

codes called TURBO CODES ,of which convolution encoder is a major part.

Page 6: viterbi algorithm ppt

Convolution codes generation

In telecommunication, a convolutional code is a type of error-correcting code in which :

each m-bit information symbol (each m-bit string) to be encoded is transformed into an n-bit symbol, where m/n is the code rate (n ≥ m) and

the transformation is a function of the last k information symbols, where k is the constraint length of the code.

Two types of convolution encoders :

Page 7: viterbi algorithm ppt

Example of Convolution Encoder

The above figure presents the convolutional encoder m =1, n = 3, codification rate m/n =1/3 and constraint length k = 7. Generator polynomials are represented by equations (1)(2)(3).

G0 =(133) 8 = (1011011) 2 (1)

G1 =(165) 8 = (1110101) 2 (2)

G2 =(171) 8 = (1111001) 2 (3)

G0 generates out A, G 1 out B and G 2 out C (equations (4)(5)(6)).

Out A = D 0 + D 3 + D 4 + D 5 + D 6 (4)

Out B = D 0 + D 2 + D 4 + D 5 + D 6 (5)

Out C = D 0 + D 3 + D 4 + D 5 + D 6 (6)

Page 8: viterbi algorithm ppt

Sate Transitions For a convolutional encoder with one input bit (m = 1), there are only two paths that

merge at each node

There are only two states that can change to the same state. The states differ in the least significant bit (D 0) and the input bit must be the same. A butterfly can represent the state transitions to each state

Page 9: viterbi algorithm ppt

Trellis Diagram

A Trellis diagram is a state diagram. A trellis diagram for a convolutional code, in which 1 bit is shifted at a time into the shift register, with k stages has 2^ k−1 states.

The trellis diagram for the convolutional encoder is

Page 10: viterbi algorithm ppt

VITERBI ALGORITHMEuclidean distance:In the Viterbi algorithm, comparison between path metrics is required to determine the survivor path.

For a 1/3 code rate, the Euclidean distance calculates the distance between the 3 received noisy received symbol (A i,B i,C i) and the ideal output symbol (A,B,C) of the transition between two states of the trellis diagram

Page 11: viterbi algorithm ppt

Decoding Length : For long sequences, the Viterbi algorithm requires large decoding delays and, as so, large amount of memory because paths must be stored before being discarded

For a code rate of 1/n, a set of 2 k-1 paths must be stored after each decoding step.

The Viterbi algorithm tries to find a path of the trellis diagram, where the sequence of output symbols approximately matches the received sequence

As two paths can merge at each node two path metrics are computed for each node , Only one path will survive, the survivor presents the minimum distance to the received sequence

Page 12: viterbi algorithm ppt

Basic structure of a Viterbi decoder

The Main functional Units Of Viterbi Decoder are :

1.Branch metric unit

2.Add Compare Select unit

3.Surviving memory unit

Page 13: viterbi algorithm ppt

Branch Metric Unit

BMU is typically the smallest unit of Viterbi decoder. Its complexity increases exponentially with n

The complexity increases linearly with softbits. So, the area and throughput of the BMU can be completely described by these two factors.

Area required for the implementation of BMU is given by => 2^n(HA(area) + (FA(area) *(softbits-1)))+softbits*n*inv(area)

Page 14: viterbi algorithm ppt

Add Compare Select Unit

PMU is a critical block both in terms of area and throughput

The key problem of the PMU design is the recursive nature of the add-compare-select (ACS) operation

In order to increase the throughput or to reduce the area, optimizations can be introduced at algorithmic, word or bit level

Word level optimizations work on folding (serialization) or unfolding (parallelization) the ACS recursion loop

In the folding technique, the same ACS is shared among a certain set of states. This technique trades off throughput for area

With unfolding, two or more trellis stages are processed in a single recursion (this is called look ahead). If look ahead is short then area penalty is not high

Compare-select-add (CSA) is a retimed variation of the ACS operation

Page 15: viterbi algorithm ppt

Path–Metric Block

Page 16: viterbi algorithm ppt

As mentioned before, there are several options to implement the ACS operation,Radix-2 ACS is a basic design with lowest area and throughput ,Other techniques such as CSA and Radix-4 provide a higher throughput than radix-2 ACS at the cost of higher area

There are several options to implement the ACS operation. Radix-2 ACS is a basic design with lowest area and throughput figures ,Other techniques such as CSA and Radix-4 provide a higher throughput than radix-2 ACS at the cost of higher area

Page 17: viterbi algorithm ppt

Surviving Memory Unit

The survivor sequence update and storage unit (briefly called survivor memory unit, SMU) receives decisions from the PMU and produces the decoded sequence.

The implementation techniques for this unit can be divided in two classes: standard and adaptive.

TBD determines the number of memory access operations required by the SMU. The value of the TBD parameter depends on the transmission channel conditions On noisy channels, trace-back paths needs longer to merge, so (since usually a Viterbi decoder is designed for a worst case) TBD values become larger

SMU may run redundant memory access operations, since paths tend to merge faster. Adaptive SMU implementations are used to reduce the number of these redundant accesses.

Adaptive techniques require additional hardware to be added to the SMU, on average power dissipation of the unit can be reduced due to a lower number of memory accesses.

The TB stores the decisions in an SRAM and reads them in reverse order during the trace-back cycle,as the update rate of the memory is much less frequent

Page 18: viterbi algorithm ppt

Design Constraints

Behavioral Versus Structural Synthesis:A commonly agreed issue in VLSI design is the proper choice of HDL description and coding style.

Structural description of combinational logic was especially popular at the times when synthesis tools were not intelligent enough.

Critical Factors in PMU Design:PMU contains a feedback loop, therefore, in general, throughput cannot be increased by pipelining

some look-ahead techniques allow loop unrolling and pipelining, but are extremely expensive in terms of area and power consumption

The most critical design parameters for the PMU are the input bitwidth, i.e., softbits and the number of bits to process per clock cycle

Page 19: viterbi algorithm ppt

CONCLUSIONS

A comprehensive analysis of the Viterbi decoder design space is presented

Summarized the importance of the different subunits of the decoder depending on the optimization criteria

Comparison of different adder architectures for the PMU implementation

Page 20: viterbi algorithm ppt
Page 21: viterbi algorithm ppt

THANK YOU