Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract
This paper presents a Viterbi Decoder (VD)
architecture for a reprogrammable data transmission
system, implemented using a Field Programmable
Gate Array (FPGA) device. This VD has been
conceived as a building block of a Software Defined
Radio (SDR) mobile transceiver, reconfigurable on
user request and capable to provide agility in choosing
between different standards. UMTS and GPRS
standards decoding is achieved by choosing different
coding rates and constraint lengths, and the possibility
to switch, at run time, between them guarantees a high
degree of reconfigurability. The architecture has been
tested and verified with a Xilinx XC2V2000 FPGA, to
provide a generalized co-simulation/co-design testbed.
The results show that this decoder can sustain an
uncoded data rate of about 2 Mbps, with an area
occupation of 45%, due to the efficient resource reuse.
1. Introduction
In digital communication systems, convolutional
encoding coupled with Viterbi algorithm (VA)
decoding is widely used for its capability to protect
information data from the impairments (e.g. noise,
multipath, fading) introduced by the transmission
medium. When a potentially corrupted sequence of
symbols is received, the VA [1] determines the most
likely transmitted sequence by exploiting a maximum
likelihood criterion.
The idea behind the Viterbi Decoder (VD) is quite
simple, in spite of its inherent implementation
difficulty. Moreover, there is a wide gap in complexity
with the transmission side, where convolutional
encoding can easily be implemented. Since
convolutional codes are represented by a state trellis,
the decoder is a finite state machine that explores the
transitions between states, stores them in a large
memory, and comes to a final decision on a sequence
of transitions after some latency due to the constraint
2. Design considerations
The proposed architecture has been verified with
reference to the convolutional codes adopted by the
UMTS and GPRS standards. The UMTS cellular
standard uses convolutional codes with constraint
length K=9 [11]. A data sequence of L bits (L 504) is
encoded, and 8 null tail bits are added at the end of the
uncoded data block, in order to reset the convolutional
encoder to a starting state. This code can be
represented using a trellis of 256 states, and a
maximum depth of 512 levels. Each state has two
incoming and two outgoing branches. In the UMTS
standard, two different code rates are used, i.e. rate 1/3
with generating polynomials G0=557OCT, G1=663OCT,
G2=771OCT, and rate 1/2 with generating polynomials
G0=561OCT, G1=753OCT.
In this paper, we do not consider the turbo-coding
option.
The GPRS standard, instead, uses four different
coding schemes (CS):
data_in
a Control Unit.
Node_0
RAM_0_1
Node_1
upper_node
lower_node
Node_2
RAM_2_3
Node_j
Node_3
o_u_b
BM_u_b
Node_4
e_u_BMU
RAM_4_5
ACSU
code_rate
Node_5
address
ROM
BM_l_b
o_l_b
e_l_BMU
Node_6
control
RAM_6_7
seq_out
BMU
CONTROL
UNIT
metric_out
data_out
node out
d_in
BMU
e_ACSU
Node_7
Min_
data_out
Detector
Node_8
RAM_8_9
Node_9
Node_10
RAM_10_11
Node_11
Node_12
RAM_12_13
Node_13
Node_14
RAM_14_15
Node_15
The Min_Detector block is composed of modular subblocks. First, it computes the minimum PM between
the state paths associated to a Node block. Then, it
compares a pair of values and, in the following steps,
the minimum one is chosen.
upper_node
Node_2j
seq_out
metric_out
RAM_
seq_out
Node_(2j+1) metric_out 2j_(2j+1)
lower_node
Node_j
Node_(j+8)
bit_info
num_data
RANDOM-BIT
GENERATOR
CONVOLUTIONAL coded_bit
ENCODER
SYMBOL
MAPPER
+
d_in
code_rate
VITERBI
DECODER
umts_gprs
Matlab
RESULT
COMPARISON
Number of errors
Software
Hardware
5. Experimental results
The experimental set-up, and the
between software and hardware as well,
Fig. 5. The VD has been tested with
XtremeDSP Development Kit [15], and
partitioning
is shown in
a Nallatech
the relevant
Application
Software
UM TS only VD
UM TS/GPRS VD
3490 (16%)
3,501 (16%)
7269 (33%)
8170 (38%)
Logic Distribution:
C Program, Matlab
VHDL
Compiler
Programmer
4732 (44%)
4966 (46%)
8014 (37%)
8881 (41%)
38 (8%)
39 (8%)
1 (12%)
1 (12%)
33 (59%)
33 (59%)
2 253 595
2 256 522
2.016 Mbps
2.016 M bps
Figs. 6 and 7 show the bit error rate vs. Eb/N0 for the
UMTS and GPRS convolutional codes, respectively. In
these figures, we compare the results for a three-bit
soft decision VD implemented in hardware
(Development Kit), the Matlab model (VD Matlab
model) and the VHDL behavioral simulation (3-bit soft
VD VHDL simulations). There is an optimum
agreement among the hardware implementation and
the software simulations, thus validating the overall
performance of the adopted architecture. In addition, a
behavioral hard decision implementation (Hard VD)
has been reported, too.
0
10
-1
10
-2
10
BER
-3
10
Hard VD
3-bit Soft VD Matlab model
3-bit Soft VD VHDL simulations
3-bit Soft VD XtremeDSP Development Kit
-4
10
-5
10
2.5
3.5
4
E b/N0 (dB)
4.5
5.5
-1
-2
10
BER
10
10
Hard VD
3-bit Soft VD Matlab model
3-bit Soft VD VHDL simulations
3-bit Soft VD XtremeDSP Development Kit
-3
10
2.5
3.5
4.5
5.5
E b/N0 (dB)
5. Conclusion
In this paper we have presented a novel, low hardware
demanding architecture for a standard-agile,
reprogrammable Viterbi Decoder. This decoder can
easily and fast switch between UMTS and GPRS
decoding, and vice-versa, making it suitable for
Software Radio applications. The introduction of
GPRS decoding capability carries a small increase in
terms of resources with respect to the UMTS decoder
standalone. The efficient resource reuse allowed us to
obtain a relatively small area occupation. The
performance of the implemented decoder is in
agreement with the results obtained by means of
functional and Matlab simulations.
Moreover, the obtained decoded bit rate of 2 Mbps is
compliant with both the UMTS and GPRS standard
rates.
6. References
[1] G. D. Forney, The Viterbi Algorithm, Proceedings of
the IEEE, vol. 61, no. 3, March 1973, pp. 268-278.
[2] M. Guo, M. Omair Ahmad, M. Swamy, and C. Wang, A
low-power systolic array-based adaptive Viterbi decoder and
its FPGA implementation, in Proc. of ISCAS '03, vol. 2, 2528 May 2003, pp. 276-279.