Simulation of A Communication System Using Verilog Language
Simulation of A Communication System Using Verilog Language
16
1 INTRODUCTION
he paper is organized as follows. A brief introduction about the related work is presented in the introductory section. Lot of works done in the relevant
field by various researchers is shown in the form of literature survey in the section 2. The objective of the paper is
presented in the section 3 followed by the basics of a
MIMO communication system in section 4. Section 5 presents the overview of the block diagram of a communication system followed by the concepts of spatial multiplexing in section 6. Spatial diversity is discussed in section 7
followed by the applications & use of smart antennas in
section 8. The section 9 depicts the description of a 22
MIMO Systems followed by the applications of MIMO
system in section 10. The drawbacks of MIMO system is
discussed in section 11 followed by the proposed work in
section 12. The transmitter design is explained in section
14 followed by the convolution encoder, puncturing, interleaver in section 15, 16 & 17 respectively. QAM Modulation is explained in section 18 followed by the receiver,
depuncuring, deinterleaver in section 19, 20 & 21 respectively. This is followed by the implementation requirements such the hardware & software in section 25. The
paper is concluded with the conclusions in section 34 followed by the references.
Multiple Input Multiple Output (MIMO) Communication System is a new and emerging technology and is expected to play a very important role in 4G wireless systems. FPGA prototyping of MIMO provides an accelerated and repeatable test environment in a laboratory setting
[1]. MIMO systems have evolved rapidly as a generic
17
3 OBJECTIVE
The prime objective of the proposed dissertation work
is to realize a (22) MIMO system on a Field Programmable Gate Array. The dissertation aims in developing an
18
6 SPATIAL MULTIPLEXING
4 MIMO COMMUNICATION SYSTEMS
BASICS
Multiple-input multiple-output (MIMO), is a radio frequency wireless communication technology that uses
multiple antennas at the transmitter and receiver, is being
used in many of the new and upcoming wireless techniques such as LTE, HSPA+ etc. MIMO is used in these
technologies as this technique can provide excellent spectral efficiency and an improved link capacity over conventional single antenna techniques. MIMO performs
three main functions of spatial multiplexing, spatial diversity and smart antennas. MIMO development began
many years ago. It started with the use of Spatial diversity of antennas in 1990s and was followed by using spatial
multiplexing also in 1993 as proposed by researchers
Arogyaswami Paulraj and Thomas Kailath. Bell Labs
demonstrated the first laboratory prototype of spatial
multiplexing MIMO in 1998.Recently MIMO techniques
also makes use of smart antenna technology also [13].
7 SPATIAL DIVERSITY
Space diversity or antenna diversity is the use of multiple
spatially separated antennas to send and receive
redundant information so that the fading effects of
channel can be mitigated. MIMO can achieve exactly the
same by transmitting redundant data through different
antennas and receiving the same across the receivers thus
reducing the error rates of the system as well as solving
the problem of fading in a practical wireless environment
[18].
9 A 22 MIMO SYSTEMS
The figure shows a 22 MIMO communication system
which is a simplified version of the generic system shown
in figure1. This system has only two inputs and two out-
put antennas .There is a direct path and a multipath be-
tween the transmitters and receivers. This type of system
is common in some of the wireless communication sys-
19
CLK
DOUT 1
RST
22
MIMO
DIN 1
DOUT 2
10 APPLICATIONS OF MIMO
TRANSMITTER 1
21
MUX
RECEIVER 1
DOUT 1
21
MUX
RECEIVER 2
DOUT 2
ERROR
BITS
DIN 1
CLK
11 DRAWBACKS OF MIMO
MIMO systems require multiple parallel transmitters and
receivers leading to increase in hardware costs. MIMO
systems also suffers from increased power usage. Real
time implementations of complex MIMO systems are
challenging and time consuming [22].
12 PROPOSED WORK
This section will give a detailed description of what the
dissertation work proposes and intents to do starting with
a top level conceptual block diagram of the completely
integrated 22 MIMO system followed by a Transceiver
level block diagram that shows the transmitters and re-
ceivers in the system . Then the transmitters and receivers
are explained in detail using individual block diagrams of
transmitter and receiver [23]. The above figure shows the
integrated top level view of the proposed 22 MIMO
communication system with the basic input and output
pins. There are two inputs Din1 and Din2 other than the
control inputs clock (Clk) and Reset (Rst) at the input side
and two outputs Dout1 and Dout 2 at the output side. As
DIN 1
TRANSMITTER 2
ERROR
BITS
RST
20
14 TRANSMITTER
TRANSMITTER 1
SOURCE 1
DIN 1
CONVOLUTION
ENCODER 1
SOURCE 2
DIN 2
CONVOLUTION
ENCODER 2
PUNCTURING 1
INTERLEAVER 1
QAM
MODULATOR 1
INTERLEAVER 2
QAM
MODULATOR 2
TRANSMITTER 2
PUNCTURING 2
15 CONVOLUTION ENCODER
An encoder in a communication system will generally
take the message bits as the inputs and change the input
bits by adding more redundant bits so that error correc-
tion and error detection can be done. Convolution encod-
er is a forward error correction encoder, where the encod-
ed output bits will not only depend on the current input
bits but also on the preceding message bits. Convolution
encoders are best known for its error correcting proper-
ties. Encoding of convolutional codes can be accom-
plished using simple shift registers. In general a convolu-
tion encoder is represented using three digits (n,k,m)
where [27]
16 PUNCTURING
Puncturing is the process of increasing the rate and reduc-
ing the redundancy of the coded bits, this is done by re-
moving some of the parity bits after encoding with the
convolutional encoder. Puncturing reduces the complexi-
ty of the encoder and increases the flexibility of the sys-
tem. Generally predefined codes are used for puncturing
at the encoder and de-puncturing is done at the decoder.
Puncturing is used in Wi-Fi, GPRS and EDGE standards
[29].
17 INTERLEAVER
Interleaving is a technique for making the encoding
schemes more robust to counter the burst errors. Inter-
leaving will perform the reordering of data in such a way
that consecutive bytes of data are distributed over a larger
sequence of data to reduce the effect of burst errors. This
method thus equips the transmitter to correct errors
which can appear in groups, which is generally not cor-
rectable by the encoders [30]. Interleaver will spread the
transmitted data over time resulting in significant im-
provements in finding and correcting errors at the error
correction decoders. Interleaver can be implemented in
the form of block interleaver or pseudorandom interleav-
er. The implementation of interleaver would require logic
blocks ,control units, shift registers and counters for its
implementation.
18 QAM MODULATION
Quadrature amplitude modulation (QAM) is a modula-
21
21 DE-MODULATOR
The modulator will perform the inverse operation of the
demodulator by removing the carrier bits which were
modulated by the data bits and will give an output con-
sisting of only the spatially spread data bits which are to
be de interleaved.
22 DE-INTERLEAVER
The de-interleaver will perform the reverse operation of
the interleaver .The de-interleaver can also be realized by
using either pseudorandom methods or block de-
interleaving.
19 RECEIVER
23 DE-PUNCTURING
RECEIVER 1
ML DETECTOR 1
DEMODULATOR 1
DEINTERLEAVER
1
DEPUNCTURE 1
VITERBI
DECODER 1
DOUT 1
DEINTERLEAVER
2
DEPUNCTURE 2
VITERBI
DECODER 2
DOUT 2
RECEIVER 2
ML DETECTOR 2
DEMODULATOR 2
Figure 6: Detailed Block Diagram of the receiver section
The above diagram shows all the blocks required for the
two receivers in the 22 MIMO communication system.
Each receiver section consists of a maximum likelihood
detector which generates an optimal estimate of the
transmitted symbols. The detector is followed by a de-
modulator for demodulating and retrieving the original
data bits followed by the de-puncturing unit whose out-
put is fed to the de-interleaver that performs the inverse
of interleaver and finally the Viterbi decoder decodes the
symbols. The decoded bit stream will represent the origi-
nal data transmitted by the transmitter. The final out out-
put from the receiver 1 and 2 are Dout 1 and Dout 2 re-
spectively. In the following sections the details of indi-
vidual bocks are discussed.
20 ML DETECTOR
Maximum Likelihood (ML) detector is a scheme to detect
the received bits across our noisy channel. The received
bits will consist of the original data bit transmitted along
with the noisy components which are added to the signal
by our error bits at the end of the transmitter section. Af-
ter receiving the bits the ML detector will remove the
noise bits and it will prepare an estimate of the original
data bits. The estimate is prepared by the ML detector
24 VITERBI DECODER
The Viterbi decoder uses the Viterbi algorithm and it is
the universal scheme for decoding the convolutional
codes. The input to the Viterbi decoder is the coded bits.
The decoder applies the Viterbi algorithm which is a max-
imum likelihood algorithm which can give optimum out-
puts especially where the bits are corrupted by noise.
25 IMPLEMENTATION REQUIREMENTS
25.1 Software Requirements
The following section gives a brief description of the vari-
ous software requirements such as the editor, simulator
and the coding language used etc.
25.2 Verilog
Verilog language is used as the coding language for the
dissertation work. Verify Logic (Verilog) is a Hardware
Description Language a textual format for describing
electronic circuits and systems. Applied to electronic de-
sign, Verilog is intended to be used for verification
through simulation, for timing analysis, for test analysis
(testability analysis and fault grading) and for logic syn-
thesis. The Verilog HDL is an IEEE standard - number
1364. The first version of the IEEE standard for Verilog
22
Figure 7: Design Flow using Verilog
26 SYSTEM-LEVEL VERIFICATION
As a first step, Verilog may be used to model and simu-
late aspects of the complete system containing one or
more ASICs or FPGAs. This may be a fully functional
description of the system allowing the specification to be
validated prior to commencing detailed design. Alterna-
tively, this may be a partial description that abstracts cer-
tain properties of the system, such as a performance
model to detect system performance bottle-necks.
23
28 RTL VERIFICATION
The RTL Verilog is then simulated to validate the func-
tionality against the specification. RTL simulation is usu-
ally one or two orders of magnitude faster than gate level
simulation, and experience has shown that this speed-up
is best exploited by doing more simulation, not spending
less time on simulation. In practice it is common to spend
70-80% of the design cycle writing and simulating Verilog
at and above the register transfer level, and 20-30% of the
time synthesizing and verifying the gates.
29 LOOK-AHEAD SYNTHESIS
Although some exploratory synthesis will be done early
on in the design process, to provide accurate speed and
area data to aid in the evaluation of architectural deci-
sions and to check the engineer's understanding of how
the Verilog will be synthesized, the main synthesis pro-
duction run is deferred until functional simulation is
complete. It is pointless to invest a lot of time and effort in
synthesis until the functionality of the design is validated.
30 SYNTHESIZING VERILOG
33 HARDWARE REQUIREMENTS
Figure 8: Synthesis using Verilog
31 XILINX ISE
Xilinx integrated software environment (ISE) is a software
tool developed and produced by Xilinx. This ISE is used
for the simulation and analysis of hardware description
language (HDL) designs. This ISE provides support for a
variety of hardware description languages such as VHDL,
Verilog etc. It provides RTL level diagrams of the designs
so that even minute details of the design can be verified
34 SISO MODULE
A Single input Single output data transmission is realized
here. The implementation is carried out by using the Xil-
inx ISE and Modelsim tools. The Verilog HDL language is
used for programming the module. The below figure
shows the block level snap shot of the SISO module.
24
The above figure shows the top level module of the im-
plemented SISO module. The module has three inputs
comprising of clock(clk),reset(rst) and data_in(3:0) which
is a 4 bit digital input. The module consists of a four bit
signal data_out(3:0). The above snap shot shows the VLSI
implementation of a 4 bit digital data communication
system having a single input and output.
The SISO module internally comprises of a 16-Quadrature
Amplitude Modulation(QAM) modulator as the transmit-
ter and demodulator as the receiver as shown in figure 10.
The modulator produces a two 16 bit values as the out-
puts which are labeled as real_part(15:0) and imagi-
nary(15:0). These two signals are fed as the input for the
demodulator with new labels as r_in(15:0) and i_in(15:0)
respectively. The output of the demodulator is pout(3:0)
which is the output Dout of the SISO module.
35 MODULATOR
The modulator adapts a digital 16-QAM modulation
technique to modulate the input signals data_in fed as the
25
Sl
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Input Data
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
36 DE-MODULATOR
The demodulator will perform the inverse operation of
the modulator by removing the carrier bits which were
modulated by the data bits and will give an output con-
sisting of only the spatially spread data bits which are to
be de interleaved. In the dissertation work the demodula-
tor is implemented such that it compares the input signals
which are 16 bit values of the four grid values 10,20,30,40
and converts these values into data symbols. The demod-
ulator will compare any one imaginary value with four
different real values and take a decision accordingly. The
data symbols are created in the way such that for a modu-
lated pair of (30,10) the output symbol is 1111(15) as
shown in the table 1.
The dissertation has implemented a digital 16-QAM by
using the constellation diagram as shown in the figure 11.
The figure shows two axis real and imaginary that signi-
fies the inphase and quadrature carrier waves. The sym-
bols or data bits are maked on the four quadrants and
their binary values are also shown. There are four differ-
ent values 10,20,30 and 40 at both the axes used to
uniquely represent one data symbol. Thus any data sym-
bols are uniquely represented by a pair of values, i.e,
0001(1) is represented by (10,40). The values 10,20,30 and
40 are programmed as 16 bit values , thus the output of
the modulator for any one data symbol will be 16 bit real
values and 16 bit imaginary values. The data symbols and
corresponding outputs are shown in the table 1 as fol-
lows.
37 SIMULATION RESULTS
The above snapshot shows the complete simulation
waveforms of the SISO module.The important waves are
that of clk, rst, data_in,data_out and the other waveforms
are the intermediate values such as inputs and outputs of
the modulator and demodulator.
38 CONCLUSION
In the research work considered, some important litera-
tures regarding MIMO systems and its implementation
using FPGA kits have been studied .An objective for the
work to be done has been framed and a block diagram of
the proposed MIMO system has been realized. The soft-
ware tools required for the work has been identified and
installed. The hardware equipments required for the
work has also been decided. Xilinx ISE tool is being
learned and the work of the convolution encoder has
26
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
27
28