MS Lab Manual
Transcript of MS Lab Manual
Vidyaa Vikas College of Engineering and Technology
Tircuhengode
Department of ECE
MODELLING AND SIMULATION LABORATORY
RECORD NOTE BOOK
Name :
Register No :
Class :
Subject Code :
Subject Name :
1. A) FPGA IMPLEMENTATION SIMPLE ALARM SYSTEMAIM
To design and implement Simple Alarm System using FPGA.
TOOLS REQUIRED
Simulation : ModelSim Synthesis : Xilinx 9.2i
SIMULATION PROCEDURE1. To start the programs click the modelsim software.2. The main page is opened,click the file option to create a new source in
VHDL.3. After the program is typed, it is saved in a name with extension’ .vhd’4. Then the program is compiled and errors are checked.5. After that it is simulated.6. Then the program is viewed and the signal option is clicked from the view
menu and input signals are given.7. Then in the edit option, force is selected and the values are given.8. Finally Add – wave is clicked view the result waveform.
SYNTHESIS PROCEDURE1. In the Xilinx, open a new project and give the file name. 2. Select VHDL module from XC3S400-4pq208.3. Type the program and create new source.4. Select implementation constraint file and give the file name.5. Then click assign package pin (run) from user constraints.6. Give the pin location and save the file.7. Run the synthesis XST, implement design and generate program file
sequentially. 8. Select program and wait until it gets succeed. 9. Give the input and observe the output in the Xilinx kit.
PROGRAM:
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity alarm isPORT (clk, rst, remote, sensors: IN STD_LOGIC; siren: OUT STD_LOGIC); end alarm;
architecture Behavioral of alarm isTYPE alarm_state is (disarmed, armed, intrusion); ATTRIBUTE enum_encoding: STRING; ATTRIBUTE enum_encoding OF alarm_state: TYPE IS "sequential"; SIGNAL pr_state, nx_state: alarm_state; SIGNAL flag: STD_LOGIC;begin----- Flag: ----------------------------- PROCESS (remote, rst) BEGIN IF (rst='1') THEN flag <= '0'; ELSIF (remote'EVENT AND remote='0') THEN flag <= NOT flag; END IF; END PROCESS; ----- Lower section: -------------------- PROCESS (clk, rst) BEGIN IF (rst='1') THEN pr_state <= disarmed; ELSIF (clk'EVENT AND clk='1') THEN pr_state <= nx_state; END IF; END PROCESS; ----- Upper section: ------------------- PROCESS (pr_state, flag, remote, sensors) BEGIN CASE pr_state IS WHEN disarmed => siren <= '0'; IF (remote='1' AND flag='0') THEN nx_state <= armed; ELSE nx_state <= disarmed; END IF; WHEN armed => siren <= '0'; IF (sensors='1') THEN nx_state <= intrusion; ELSIF (remote='1' AND flag='1') THEN nx_state <= disarmed; ELSE nx_state <= armed; END IF;
WHEN intrusion => siren <= '1';IF (remote='1' AND flag='1') THEN nx_state <= disarmed; ELSE nx_state <= intrusion;END IF; END CASE;END PROCESS;END Behavioral;
RESULT Thus the “Simple Alarm System” was implemented in Spartan-3 Trainer and its working is demonstrated on interfacing board.
1. B) FPGA IMPLEMENTATION OF PARITY CHECKERAIM
To design and implement parity checker using FPGA
TOOLS REQUIRED
Simulation : ModelSim Synthesis : Xilinx 9.2i
SIMULATION PROCEDURE1. To start the programs click the modelsim software.2. The main page is opened, click the file option to create a new source in
VHDL.3. After the program is typed, it is saved in a name with extension’ .vhd’4. Then the program is compiled and errors are checked.5. After that it is simulated.6. Then the program is viewed and the signal option is clicked from the view
menu and input signals are given.7. Then in the edit option, force is selected and the values are given.8. Finally Add – wave is clicked view the result waveform.
SYNTHESIS PROCEDURE1. In the Xilinx, open a new project and give the file name. 2. Select VHDL module from XC3S400-4pq208.3. Type the program and create new source.4. Select implementation constraint file and give the file name.5. Then click assign package pin(run) from user constraints.6. Give the pin location and save the file.7. Run the synthesis XST, implement design and generate program file
sequentially. 8. Select program and wait until it gets succeed. 9. Give the input and observe the output in the Xilinx kit.
PROGRAM library ieee;
use ieee.std_logic_1164.all;
entity parity isport(x,y,z,p:in std_logic;c:out std_logic);end parity;architecture tms of parity isbeginprocess(x,y,z,p)beginif(x='0' and y='0' and z='0' and p='0')thenc<='0';elsif(x='0' and y='0' and z='0' and p='1')thenc<='1';elsif(x='0' and y='0' and z='1' and p='0')thenc<='1';elsif(x='0' and y='0' and z='1' and p='1')thenc<='0';elsif(x='0' and y='1' and z='0' and p='0')thenc<='1';
elsif(x='0' and y='1' and z='0' and p='1')thenc<='0';elsif(x='0' and y='1' and z='1' and p='0')thenc<='0';elsif(x='0' and y='1' and z='1' and p='1')thenc<='1';elsif(x='1' and y='0' and z='0' and p='0')thenc<='1';elsif(x='1' and y='0' and z='0' and p='1')thenc<='0';elsif(x='1' and y='0' and z='1' and p='0')thenc<='0';elsif(x='1' and y='0' and z='1' and p='1')thenc<='1';elsif(x='1' and y='1' and z='0' and p='0')thenc<='0';elsif(x='1' and y='1' and z='0' and p='1')thenc<='1';elsif(x='1' and y='1' and z='1' and p='0')thenc<='1';elsif(x='1' and y='1' and z='1' and p='1')thenc<='0';elsec<='x';end if;end process; end tms;
3 BIT EVEN PARITY GENERATOR
Truth Table
4 BIT EVEN PARITY CHECKER
Three bit message Parity bit
X Y Z P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Truth Table
Four bits Received Parity Error
CheckX Y Z P C0 0 0 0 00 0 0 1 10 0 1 0 10 0 1 1 00 1 0 0 10 1 0 1 00 1 1 0 00 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 01 1 0 1 11 1 1 0 11 1 1 1 0
RESULT Thus the “parity checker” was implemented in Spartan-3 Trainer and its working is demonstrated on interfacing board.
1. C) FPGA IMPLEMENTATION OF SCROLLING DISPLAYAIM
To design and implement Scrolling display using FPGA
TOOLS REQUIRED
Simulation : ModelSim Synthesis : Xilinx 9.2i
SIMULATION PROCEDURE1. To start the programs click the modelsim software.2. The main page is opened, click the file option to create a new source in
VHDL.3. After the program is typed, it is saved in a name with extension’ .vhd’4. Then the program is compiled and errors are checked.5. After that it is simulated.6. Then the program is viewed and the signal option is clicked from the view
menu and input signals are given.7. Then in the edit option, force is selected and the values are given.8. Finally Add – wave is clicked view the result waveform.
SYNTHESIS PROCEDURE1. In the Xilinx, open a new project and give the file name. 2. Select VHDL module from XC3S400-4pq208.3. Type the program and create new source.4. Select implementation constraint file and give the file name.5. Then click assign package pin(run) from user constraints.6. Give the pin location and save the file.7. Run the synthesis XST, implement design and generate program file
sequentially. 8. Select program and wait until it gets succeed. 9. Give the input and observe the output in the Xilinx kit.
PROGRAM:library ieee;use ieee.std_logic_1164.all;entity led isport(h,i,j,k:in std_logic;a,b,c,d,e,f,g:out std_logic);end led;architecture display of led isbeginprocess(h,i,j,k)beginif(h='0' and i='0' and j='0' and k='0')thena<='1';b<='1';c<='1';d<='1';e<='1';f<='1';g<='0';elsif(h='0' and i='0' and j='0' and k='1')thena<='0';b<='1';c<='1';
d<='0';e<='0';f<='0';g<='0';elsif(h='0' and i='0' and j='1' and k='0')thena<='1';b<='1';c<='0';d<='1';e<='1';f<='0';g<='1';elsif(h='0' and i='0' and j='1' and k='1')thena<='1';b<='1';c<='0';d<='1';e<='1';f<='0';g<='0';elsif(h='0' and i='1' and j='0' and k='0')thena<='0';b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';elsif(h='0' and i='1' and j='0' and k='1')thena<='1';b<='0';c<='1';d<='1';e<='0';f<='1';g<='1';elsif(h='0' and i='1' and j='1' and k='0')thena<='1';b<='0';c<='1';d<='1';e<='1';f<='1';g<='0';elsif(h='0' and i='1' and j='1' and k='1')thena<='1';b<='1';c<='1';d<='0';e<='0';f<='1';g<='0';elsif(h='1' and i='0' and j='0' and k='0')thena<='1';b<='1';c<='1';
d<='1';e<='1';f<='1';g<='1';elsif(h='1' and i='0' and j='0' and k='1')thena<='1';b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';end if;end process;end display;
Truth tableNumber to be display
inputs outputsh i j k a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 01 0 0 0 1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 0 1 1 0 04 0 1 0 0 0 1 1 1 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 1 08 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1
RESULT Thus the “Scrolling display” was implemented in Spartan-3 Trainer and its working is demonstrated on interfacing board.
1. D) FPGA IMPLEMENTATION OF MULTIMODE CALCULATORS
AIM:
To design and implement multimode calculator using FPGA
APPARATUS REQUIRED:Simulation : ModelSim Synthesis : Xilinx 9.2i
SIMULATION PROCEDURE1. To start the programs click the modelsim software.2. The main page is opened, click the file option to create a new source in
VHDL.3. After the program is typed, it is saved in a name with extension’ .vhd’4. Then the program is compiled and errors are checked.5. After that it is simulated.6. Then the program is viewed and the signal option is clicked from the view
menu and input signals are given.7. Then in the edit option, force is selected and the values are given.8. Finally Add – wave is clicked view the result waveform.
SYNTHESIS PROCEDURE1. In the Xilinx, open a new project and give the file name. 2. Select VHDL module from XC3S400-4pq208.3. Type the program and create new source.4. Select implementation constraint file and give the file name.5. Then click assign package pin (run) from user constraints.6. Give the pin location and save the file.7. Run the synthesis XST, implement design and generate program file
sequentially. 8. Select program and wait until it gets succeed. 9. Give the input and observe the output in the Xilinx kit.
PROGRAM:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cal isport (a, b: in std_logic_vector (7 downto 0);sel: in std_logic_vector (3 downto 0);result: out std_logic_vector (7 downto 0);mulresult: out std_logic_vector (15 downto 0));end cal;architecture Behavioral of cal isbeginprocess (a, b, sel)begincase sel iswhen"0000"=>result<=a+b;when"0001"=>result<=a-b;when "0010"=>mulresult<=a*b;when"0100"=>result<=a and b;when"0101"=>result<=a or b;when"0110"=>result<=a xor b;when"0111"=>result<=a nor b;when"1000"=>result<=a nand b;when"1001"=>result<=a+1;when"1010"=>result<=a-1;when"1011"=>result<=b+1;when"1100"=>result<=b-1;when"1101"=>result<=not a;when"1110"=>result<=not b;when others =>result<="00000000";end case;end process;end Behavioral;
OUTPUT:
RESULT:
Thus the “multimode calculator” was implemented in Spartan-3 Trainer
and its working is demonstrated on interfacing board.
2. PCB DESIGN USING CAD
AIM: To design and implement 3 to 8 decoder SPICE TOOLS REQUIRED:
1. Orcad 9.12. Desktop computer
PROCEDURE:Simulation:
1. Open Orcad release and open new project.2. Create a new folder at a particular path and select analog and mixed
circuit wizard option.3. Select components from PSPICE library.4. Place components in appropriate locations on schematic page, then make
routing between the components.5. Save the content and create netlist.6. Open new simulation option in the PSICE tool and give run time details. 7. Place the markers and run the PSPICE model.8. End of the process.
Layout:1. Select the *.dsn file in the left panel2. Select the create net list menu in the tools menu bar3. Select layout tag (PCB Foot print)4. Browse the location to save the *.mnl file then click OK5. Open the layout application 6. Click new menu in file menu bar7. Load the template file (default.tch) in the working directory(C:\Program
files\orcad\layout\data\default.tch) then click open8. Load the text list source file where you have stored *.mnl file then click
open9. Save the board file *.max10.Rearrange the components as you like11.Select the obstacle tool from the tool bar12.Draw space to cover all the footprints.13.Go to auto menu-choose place board then click auto route board
3 TO 8 DECODER
V
0
V
B
D 0
1
0
U 2 C
7 4 L S 1 1
981 0
1 1
U 4 B
7 4 L S 1 1
364
5
D 3
V
D 6
0
D 7
U 1 B
7 4 L S 0 4
3 4
0
V
SD S T M 3
I N 2
U 3 A
7 4 L S 1 1
11 22
1 3
0
0
C
1
V
U 1 C
7 4 L S 0 4
5 6
D 2
A
D 4
V
U 2 B
7 4 L S 1 1
364
5
V
U 3 B
7 4 L S 1 1
364
5
1
U 1 A
7 4 L S 0 4
1 2
D 5
V
0
0
S
D S T M 2
I N 1
D 1
1
0
V
U 3 C
7 4 L S 1 1
981 0
1 1
U 2 A
7 4 L S 1 1
11 22
1 3
S
D S T M 1
I N 0
0
V
V
U 4 A
7 4 L S 1 1
11 22
1 3
3. MODELING AND PROTOTYPING WITH SIMULINK AND CODE COMPOSER STUDIO WITH DSK
AIMTo model and prototype the conversion of basic waveforms using
differentiator and integrator in Simulink and to implement the basic examples in DSP Kit using Code composer studio
APPARATUS REQUIRED
SOFTWARES1. MATLAB 7.52. CODE COMPOSER STUDIO
HARDWARE: 1. DSK KIT (TMS 320 C 6711 Or TMS 320 C 6713 )
MODELLING AND PROTOTYPING WITH SIMULINK
GENERAL PROCEDURE: Step 1: Start MATLAB
Step 2: Click simulink icon in the MATLAB Command Window
Step 3: Create a new model - Select File > New > Model in the Simulink Library Browser.
Step 4: From the Simulink Library Browser click simulink. Select the sources
required and track it to the new file created. Join all the blocks.
Step 5: Click Start simulation icon in the created new file and double click the
scope
Step 6: Display Screen “Scope” will be opened and the respective output can be
viewed.
Step 7: Errors and warnings will be displayed in the Mat lab Command Window.
A.Conversion of Basic waveforms using differentiator and integrator
PROCEDURE
Conversion of Basic waveforms using differentiator Step 1: Start MATLAB
Step 2: Click simulink icon in the MAT LAB Command Window. Step 3: Create a new model - Select File > New > Model in the Simulink Library Browser.Step 4: From the Simulink Library Browser click simulink. Click “Sources” under simulink. Select “Sine waveform” and track it to the new file created. Click “Continuous” under simulink.. Select “derivative dw /dt” and track it to the new file created. Click “Sources” under Simulink. Select “Scope” and track it to the new file created. Step 5: Connect the blocks. Step 6: Click Start simulation icon in the created new file and double click the scope
Step 7: Display Screen “Scope” will be opened and the output Cosine waveform is viewed.
B. Conversion of Basic waveforms using Integrator
Step 1: Start MATLABStep 2: Click simulink icon in the MATLAB Command WindowStep 3: Create a new model - Select File > New > Model in the Simulink Library Browser.Step 4: From the Simulink Library Browser click simulink. Click “Sources” under simulink. Select “Square generator” and track it to the new file created. Click “Continuous” under simulink.elect “Integrator 1/s” and track it to the new file created. Click “Sources” under Simulink. Select “Scope” and track it to the new file created. Step 5: Connect the blocks. Step 6: Click Start simulation icon in the created new file and double click the scope
Step 7: Display Screen “Scope” will be opened and the output “Triangular” waveform is Viewed.Theory
Simulink is a software package which enables to model, simulate and analyze the systems whose outputs change over time. These systems are referred to as dynamic systems. It is also used to explore the behavior of a wide range of real-world dynamic systems such as electrical circuits, shock absorbers, braking systems and many other electrical, mechanical, and thermodynamic systems.
OUTPUTConversion of Sine waveform into Cosine waveform using Differentiator
OUTPUT DISPLAY
Conversion of Square waveform into Spikes using Differentiator
OUTPUT DISPLAY
Conversion of Sine waveform into Cosine waveform using Integrator
OUTPUT DISPLAY
Conversion of Square waveform into Triangular waveform using Integrator
OUTPUT DISPLAY
CODE COMPOSER STUDIO WITH DSK KIT
PROCEDURE: Step 1: Connect adapter and power supply card to the System.Step 2: Code composer studio software to be opened.Step 3: In the screen, click the icon “PROJECT” and select “open”. Select “C “Drive. Step 4: Enter into TI Folder. Click “Examples” and enter into “dsk6711”.Step 5: In “dsk6711” folder select the “Bios” file. Click “Swill test”. Select “Swiltest.pjt”. “Swiltest.C “ Screen will be opened.Step 6: Goto “PROJECT” select “Rebuild all”. “Swiltest.C” program will be compiledStep 7: Goto “FILE” select “Load Program”. The output file is viewed as “Swiltest.out”.Step 8: Goto “DEBUG” icon select “Run”
RESULT
Thus the conversion of basic waveforms using differentiator and integrator is modeled in simulink and the procedures to work with DSK Kit using Code Composer studio is learned.
5 (A &B) DELTA MODULATION AND ADAPTIVE DELTA MODULATION
AIM To simulate the delta and Adaptive delta modulation using Mat lab.
TOOLS REQUIRED:
Simulation : MATLAB 7.0 or higher version
ALGORITHM:
Step: 1: Start the programStep: 2: Get the length of the sinusoidal signalStep: 3: Compute the step sizeStep: 4: Plot the output sequenceStep: 5: Terminate the process
PROGRAM:
DELTA MODULATION:
% function to generate Linear Delta Modulation for sin wave % generating sin wave t=[0:2*pi/100:2*pi]; a=10*sin(t); n=length(a); dels=1; xhat(1:n)=0; x(1:n)=a; d(1:n)=0; % Linear Delta Modulation for k=1: n if (x(k)-xhat(k)) > 0 d(k)=1; else d(k)=-1; end %if
xtilde(k)=xhat(k)+d(k)*dels; xhat(k+1)=xtilde(k); end %k %Prints figure(1); hold on; plot(a) plot(xhat); plot(d-15); axis([0 100 -20 20])
OUTPUT:
0 10 20 30 40 50 60 70 80 90 100-20
-15
-10
-5
0
5
10
15
20
PROGRAM:
ADAPTIVE DELTA MODULATION:% adaptive delta modulation for sin wave % generating sin wave t=[0:2*pi/100:2*pi]; a=10*sin(t); n=length(a); mindels=1; dels(1:n)=mindels; xhat(1:n)=0; x(1:n)=a; % Adaptive Delta Modulation d(1:n)=1; for k=2:n if ((x(k)-xhat(k-1)) > 0 ) d(k)=1; else d(k)=-1; end %if if k==2 xhat(k)=d(k)*mindels+xhat(k-1); end if ((xhat(k)-xhat(k-1)) > 0) if (d(k-1) == -1 &d(k) ==1) xhat(k+1)=xhat(k)+0.5*(xhat(k)-xhat(k-1)); elseif (d(k-1) == 1 &d(k) ==1) xhat(k+1)=xhat(k)+1.15*(xhat(k)-xhat(k-1)); elseif (d(k-1) == 1 &d(k) ==-1) xhat(k+1)=xhat(k)-0.5*(xhat(k)-xhat(k-1)); elseif (d(k-1) == -1 &d(k) ==-1)
xhat(k+1)=xhat(k)-1.15*(xhat(k)-xhat(k-1)); end else if (d(k-1) == -1 &d(k) ==1) xhat(k+1)=xhat(k)-0.5*(xhat(k)-xhat(k-1)); elseif (d(k-1) == 1 &d(k) ==1) xhat(k+1)=xhat(k)-1.15*(xhat(k)-xhat(k-1)); elseif (d(k-1) == 1 &d(k) ==-1) xhat(k+1)=xhat(k)+0.5*(xhat(k)-xhat(k-1)); elseif (d(k-1) == -1 &d(k) ==-1) xhat(k+1)=xhat(k)+1.15*(xhat(k)-xhat(k-1)); end endend %Plots figure(1);hold on; plot(a); plot(xhat); plot(d-15)
OUTPUT:
0 20 40 60 80 100 120-20
-15
-10
-5
0
5
10
15
Result:Thus the Mat lab program was simulated for delta and adaptive
modulation the waveforms are plotted.
5(C) QPSK CONSTELLATION
AIM To simulate the QPSK transmitter and receiver circuit and to obtain the
constellation using MAT LAB
TOOLS REQUIRED:
MATLAB 7.0
PROCEDURE:
1. Open a Matlab new file and enter the corresponding codings for the qpsk
transmitter and receiver.
2. Save and run the mat lab file.
3. Obtain the corresponding output for QPSK constellation, BER for QPSK
PROGARM:%%%%%%%%%%%%PROGRAM FOR QPSK COSTELLATION %%%%%%%%%nSamp = 8; numSymb = 100;
M = 4; SNR = 14;
seed = [12345 54321];
rand('state', seed(1)); randn('state', seed(2));
numPlot = 10;
rand('state', seed(1));
msg_orig = randsrc(numSymb, 1, 0:M-1);
stem(0:numPlot-1, msg_orig(1:numPlot), 'bx');
xlabel('Time'); ylabel('Amplitude');
grayencod = bitxor(0:M-1, floor((0:M-1)/2));
msg_gr_orig = grayencod(msg_orig+1);
msg_tx = modulate(modem.pskmod(M), msg_gr_orig);
msg_tx = rectpulse(msg_tx,nSamp);
h1 = scatterplot(msg_tx);
randn('state', seed(2));
msg_rx = awgn(msg_tx, SNR, 'measured', [], 'dB');
h2 = scatterplot(msg_rx);
OUTPUT:
-1.5 -1 -0.5 0 0.5 1 1.5-1.5
-1
-0.5
0
0.5
1
1.5Quadrature
In-Phase
Scatter plot
-1 -0.5 0 0.5 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Quadra
ture
In-Phase
Scatter plot