Adaptive Soft Output Viterbi Algorithm (ASOVA) Turbo Decoder

Introduction to the ASOVA turbo decoder

This decoder can be used to reduce the complexity of turbo decoding while maintaining a fixed bit error rate.

Contact: Russell Tessier (tessier@ecs.umass.edu)

 ASOVA Algorithm

A description of the development of a hardware implementation of the ASOVA algorithm is provided in:

[1] J. Liang, R. Tessier, and D. Goeckel. "A Dynamically-Reconfigurable, Power-Efficient Turbo Decoder," IEEE Symposium on Field Programmable Custom Computing Machines, Napa, CA, April 2004.

[2] J. Liang. "Development and Verification of System-on-a-Chip Communication Architecture," Ph. D thesis, Department of Electrical and Computer Engineering, University of Massachusetts, Amherst, May 2004.

Hardware Implementation

A zip file containing RTL code which implements an ASOVA decoder is available here. Note that only the decoder is included. The top level Verilog file is turboSram.v. Note that this HDL code was designed to accept input and output from a dual-ported SRAM which was shared with a NIOS processor. The NIOS processor has not been included with this code. Several Verilog files are included. The files can be compiled using the turboSram project file for Quartus II version 5.1. Note that the list of Verilog files used in the design can be examined under the "Project" menu item in Quartus II. Parameters for generator polynomials (G1, G2), Nmax, T (called THRESHOLD_BASE), and various other parameters are located in parameters.v

Scaling the Design

The default ASOVA design in the zip file is for N_MAX = 4. Larger ASOVA decoders can be created by modifying the N_MAX and NMAX_WIDTH parameters in parameters.v. N_MAX should be a power of 2 and NMAX_WIDTH should be log2(N_MAX). Note that the testbench has only been verified for N_MAX = 4.