isp
Lever
CORE
CORE
TM
November 2008
ipug14_04.4
Turbo Decoder
User’s Guide
Lattice Semiconductor Turbo Decoder User’s Guide
2
Introduction
Lattice’s Turbo Decoder core provides an ideal solution that meets the needs of turbo decoding applications. The
core provides a customizable solution allowing turbo decoding of data in many system designs. This core allows
designers to focus on the application rather than the Turbo Decoder, resulting in a faster time to market.
Turbo coding is an advanced error correction technique widely used in the communications industry. The Turbo
Decoder IP Core from Lattice is compliant with three different standards: 3GPP, 3GPP2 and CCSDS. Lattice’s
Turbo Decoder core was developed in conjunction with Lattice’s Turbo Encoder core to provide a complete solution.
This User’s Guide explains the functionality of the Turbo Decoder core and how it can be implemented to provide
decoding. The Turbo Decoder core comes with the documentation and files listed below:
Lattice gate level netlist
RTL simulation model
Core instantiation template
Features
Fully compatible with Third Generation Partnership Project (3GPP) standard:
3GPP TS 25.212 version 4.2.0
Fully compatible with CDMA2000/3GPP2
3GPP2 C.S002-C, May 2002
Fully compatible with Consultative Committee for Space Data Systems standard:
CCSDS 101.0-B-5
Throughput of 2Mbps for 3GPP at 30MHz, 7 iterations, 6-bit input symbol width
Two’s complement data/parity input
Depuncturing supported
Variable soft-widths for input symbols
User-defined number of states
Variable block sizes during runtime
Programmable number of iterations (1-15)
Optional hard decision storage
Selectable Max-Log-Map or Log-Map algorithm
Optional external memory with programmable pipeline stages
Optional double buffering
Bit Error Rate of 10
-6
(at 1.5 dB Eb/No SNR)
General Description
Turbo coding is an advanced error correction technique widely used in the communications industry. Turbo encod-
ers and decoders are key elements in today’s communication systems to achieve the best possible data reception
with fewest possible errors. The basis of turbo coding is to introduce redundancy in the data to be transmitted
through a channel. The redundant data helps to recover original data from the received data. In data transmission,
turbo coding helps achieve near Shannon limit performance.
Lattice Semiconductor Turbo Decoder User’s Guide
3
Lattice provides a Turbo Decoder IP core that is both flexible and compliant with three different standards: 3GPP,
3GPP2 and CCSDS. 3GPP is widely used in WCDMA and MC-CDMA applications while CCSDS is most com-
monly found in telemetry and space communications. Figure 1 shows the top-level block diagram of this core.
Lattice also supplies a Turbo Encoder core that provides a complete state-of-the-art error correction solution.
Figure 1. Turbo Decoder I/O Block Diagram
Note: Additional I/O signals are required if either an external memory or double buffer is selected. Please refer to
the Additional Signals for External Memory section of this document for further information.
MAP Algorithm
Turbo decoding is based on the principle of comparing the probability of a received soft input data being a ‘1’ and
‘0’. The Lattice Turbo Decoder uses a decoding scheme called the MAP - Maximum Aposteriori Probability algo-
rithm. The algorithm determines the probability of whether each received data symbol is a ‘1’ as well as ‘0’. This is
done with the help of the data, parity symbols, and the decoder knowledge of the encoder trellis. A trellis is a form
of a state transition table of the encoder input/output. Based on the data and parity information, the MAP decoder
computes the probability of the encoder being in a particular state. Depending on the soft data, parity value and the
weight from the previous state, the probability that the data is a ‘1’ or ‘0’ can be computed. The MAP decoder com-
putes the weight for each data symbol in a given block for both the forward and reverse direction. This results in the
computation of a forward and reverse metric. Using these two values, the probabilities are computed. After the
probabilities are determined, they are compared and a decision is made. The Lattice Turbo Decoder IP core uses
the logarithm of the probability to reduce computation; this is known as Log Likelihood ratio (LLR). The computation
of the probabilities is done iteratively to obtain a reliable result. Once the result is considered reliable, one can
make a final decision as to whether the data symbol is a ‘1’ or a ‘0’. The Lattice Turbo Decoder can implement both
the Log-Map and Max-Log-Map algorithm. The Log-Map algorithm gives a slightly better performance than the
Max-Log-Map but utilizes more resources and runs at a slower frequency.
The Log Likelihood ratio is the probability that the received data bit is a ‘0’ divided by the probability that the
received data bit is a ‘1’.
The value of L(D) is positive if P(D=1)
P(D=) and negative otherwise. The output data value is ‘1’ if L(D) is positive
and ‘0’ if L(D) is negative. For one complete cycle of iteration, one needs to compute the LLR using parity for non-
interleaved as well as interleaved data.
Turbo
Decoder
rstn
sr
din
inpvalid
blocksizeset(ipcfgset)
blocksize
iterations
rfi
clk
dout
rfno
rfo
rate
=
L(D) log
P (D=0)
P (D=1)

TURBO-DECO-E2-U3

Mfr. #:
Manufacturer:
Lattice
Description:
Development Software Turbo Decoder
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union