100% found this document useful (5 votes)
17K views

VHDL Lab Programs

The documents describe several experiments involving the simulation and verification of various digital logic circuits using VHDL. These include full adders, full subtractors, half adders, half subtractors, and basic logic gates like AND, OR, XOR, NAND and NOR gates. The circuits are modeled using both dataflow and behavioral styles in VHDL. The programs are written in VHDL, simulated, and the outputs verified to match expected results.

Uploaded by

edrredy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (5 votes)
17K views

VHDL Lab Programs

The documents describe several experiments involving the simulation and verification of various digital logic circuits using VHDL. These include full adders, full subtractors, half adders, half subtractors, and basic logic gates like AND, OR, XOR, NAND and NOR gates. The circuits are modeled using both dataflow and behavioral styles in VHDL. The programs are written in VHDL, simulated, and the outputs verified to match expected results.

Uploaded by

edrredy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 57

EXPT NO: PAGE NO:

FULL ADDER

AIM:

Design and verify full adder by using dataflow style with select statement.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity fa_select is
port(a:in bit_vector(2 downto 0); s:out bit_vector(1 downto 0));
end fa_select ;
architecture beh of fa_select is
begin
with a select
s<=("00")when"000",
("10")when"001",
("10")when"010",
("01")when"011",
("10")when"100",
("01")when"101",
("01")when"110",
("11")when"111";
end beh;

SIMULATION OUTPUT:

RESULT: Full adder using dataflow style with select statement is simulated and
Verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL SUBTRACTOR

AIM:

Design and verify full subtractor by using dataflow style with select statement.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity flsub_select is
port(a:in bit_vector(2 downto 0);
s:out bit_vector(1 downto 0));
end flsub_select;
architecture beh of flsub_select is
begin
with a select
s<=("00") when "000",
("11") when "001",
("11") when "010",
("01") when "011",
("10") when "100",
("00") when "101",
("00") when "110",
("11") when "111";
end beh;

SIMULATION OUTPUT:

RESULT: Full subtractor using dataflow style with select statement is simulated and
verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL ADDER

AIM:

Design and verify full adder by using dataflow style with select statement

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity fa_select1 is
port(a,b,c:in bit; sum,carry:out bit);
end fa_select1;
architecture df of fa_select1 is
begin
with bit_vector'(a,b,c) select
(sum,carry)<=bit_vector'("00") when "000" ,
bit_vector'("10") when "001",
bit_vector'("10") when "010",
bit_vector'("10") when "100",
bit_vector'("01") when "110",
bit_vector'("01") when "011",
bit_vector'("01" )when "101",
bit_vector'("11") when "111";
end df;

SIMULATION OUTPUT:

RESULT: Full adder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL ADDER

AIM:

Design and verify full adder by using behavioural model with if,elsif& then
statements.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity fulladder is
port(a:in std_logic_vector(2 downto 0);
s,ca:out std_logic);
end fulladder;
architecture fulladder of fulladder is
begin
process(a)
begin
if a="000" then s<='0';ca<='0';
elsif a="001" then s<='1';ca<='0';
elsif a="010" then s<='1';ca<='0';
elsif a="011" then s<='0';ca<='1';
elsif a="100" then s<='1';ca<='0';
elsif a="101" then s<='0';ca<='1';
elsif a="110" then s<='0';ca<='1';
else s<='1';ca<='1';
end if;
end process;
end fulladder;

SIMULATION OUTPUT:

RESULT: Full adder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL SUBTRACTOR

AIM:

Design and verify full subtractor by using behavioural model with if,elsif& then
statements.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity fullsub is
port(a:in std_logic_vector(2 downto 0);
d,b:out std_logic);
end fullsub;
architecture fullsub of fullsub is
begin
process(a)
begin
if a="000" then d<='0';b<='0';
elsif a="001" then d<='1';b<='1';
elsif a="010" then d<='1';b<='1';
elsif a="011" then d<='0';b<='1';
elsif a="100" then d<='1';b<='0';
elsif a="101" then d<='0';b<='0';
elsif a="110" then d<='0';b<='0';
else d<='1';b<='1';
end if;
end process;
end fullsub;

SIMULATION OUTPUT:

RESULT: Full adder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL ADDER
(DATAFLOW STYLE)

AIM:

Design and verify full adder by using dataflow style .

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity fa1 is
port(a,b,c:in bit;s,cout:out bit);
end fa1;
architecture fa1 of fa1 is
begin
s<=a xor b xor c;
cout<=(a and b)or(a and c)or (b and c);
end fa1;

SIMULATION OUTPUT:

RESULT: Full adder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

HALF ADDER
( DATAFLOW STYLE)

AIM:

Design and verify half adder by using dataflow style .

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity ha1 is
port(a,b:in bit;s,c:out bit);
end ha1;
architecture ha1 of ha1 is
begin
s<=a xor b;
c<=a and b;
end ha1;

SIMULATION OUTPUT:

RESULT: Half adder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

HALF SUBTRACTOR
( DATAFLOW STYLE )

AIM:

Design and verify half subtractor by using dataflow style .

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity hs1 is
port(a,b:in bit;d,bo:out bit);
end hs1;
architecture hs1 of hs1 is
begin
d<=a xor b;
bo<=(not a) and b;
end hs1;

SIMULATION OUTPUT:

RESULT: Half subtractor is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL SUBTRACTOR
( DATAFLOW STYLE )

AIM:

Design and verify full subtractor by using dataflow style .

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity fs1 is
port(a,b,c:in bit;d,bo:out bit);
end fs1;
architecture fs1 of fs1 is
begin
d<=a xor b xor c;
bo<=((not a)and b)or(b xor c);
end fs1;

SIMULATION OUTPUT:

RESULT: Full subtractor is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

AND GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity and2 is
port(a,b:in bit;y:out bit);
end and2;
architecture and2 of and2 is
begin
y <= a and b;
end and2;

SIMULATION OUTPUT:

RESULT: AND gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

OR GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity or2 is
port(a,b:in bit;y:out bit);
end or2;
architecture or2 of or2 is
begin
y<=a or b;
end or2;

SIMULATION OUTPUT:

RESULT: OR gate is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

XOR GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity xor2 is
port(a,b:in bit;y:out bit);
end xor2;
architecture xor2 of xor2 is
begin
y<=a xor b ;
end xor2;

SIMULATION OUTPUT:

RESULT: XOR gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

NAND GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity nand2 is
port(a,b:in bit;y:out bit);
end nand2;
architecture nand2 of nand2 is
begin
y<=a nand b;
end nand2;

SIMULATION OUTPUT:

RESULT: NAND gate is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

NOR GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity nor2 is
port(a,b:in bit;y:out bit);
end nor2;
architecture nor2 of nor2 is
begin
y<=a nor b;
end nor2;

SIMULATION OUTPUT:

RESULT: NOR gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

XNOR GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity xnor2 is
port(a,b:in bit;y:out bit);
end xnor2;
architecture xnor2 of xnor2 is
begin
y<=a xnor b;
end xnor2;

SIMULATION OUTPUT:

RESULT: NOR gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

NOT GATE

AIM:

Simulation and verification of various logic gates.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity not1 is
port(x:in bit;y:out bit);
end not1;
architecture df of not1 is
begin
y<=not x;
end df;

SIMULATION OUTPUT:

RESULT: NOT gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

3-INPUT NAND GATE

AIM:

Simulation and verification of 3-Input NAND gate.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity nand3 is
port(a,b,C:in bit;y:out bit);
end nand3;
architecture nand3 of nand3 is
begin
y <= not(a and b and C);
end nand3;

SIMULATION OUTPUT:

RESULT: 3-INPUT NAND gate is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

4-INPUT NAND GATE

AIM:

Simulation and verification of 4-Input NAND gate.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity nand4 is
port(a,b,C,d:in bit;y:out bit);
end nand4;
architecture nand4 of nand4 is
begin
y <= not(a and b and C and d);
end nand4;

SIMULATION OUTPUT:

RESULT: 4-INPUT NAND gate is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FUNCTION VERIFICATION

AIM:

Design and verification of function F(a,b,c) =∑ (0,2,4,5,6).

PROGRAM

library ieee;
use ieee.std_logic_1164.all;
entity function1 is
port(a,b,c:in bit;y:out bit);
end function1;
architecture fun1 of function1 is
begin
y<= (a and (not b))or (not c);
end fun1;

SIMULATION OUTPUT:

RESULT: Function F(a,b,c) =∑ (0,2,4,5,6) is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FUNCTION VERIFICATION

AIM:

Design and verification of function F(a,b,c) =∑ (1,2,3,5,7).

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity function2 is
port(a,b,c:in bit;y:out bit);
end function2;
architecture fun2 of function2 is
begin
y<= ((not a)and b)or c;
end fun2;

SIMULATION OUTPUT:

RESULT: Function F(a,b,c) =∑ (1,2,3,5,7) is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FUNCTION VERIFICATION

AIM:

Design and verification of function F(a,b,c,d ) =∑ (0,1,2,4,5,6,8,9,12,13,14).

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity function3 is
port(a,b,c,d:in bit;y:out bit);
end function3;
architecture fun3 of function3 is
begin
y<= (not c)or ((not a)and (not d))or( b and (not d ));
end fun3;

SIMULATION OUTPUT:

RESULT: Function F(a,b,c,d) =∑ (0,1,2,4,5,6,8,9,12,13,14) is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FUNCTION VERIFICATION

AIM:

Design and verification of function F(a,b,c,d) =∑ (0,2,4,6,9,13,21,23,25,29,31).

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity function4 is
port(a,b,c,d,e:in bit;y:out bit);
end function4;
architecture fun4 of function4 is
begin
y<= ((not a)and (not b)and (not e))or( b and (not d )and e)
or (a and c and e );
end fun4;

RESULT:Function F(a,b,c,d) =∑(0,2,4,6,9,13,21,23,25,29,31) is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

HALF ADDER
(STRUCTURAL MODEL)

AIM:

Simulation and verification of Half Adder using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use vamsi.all;
entity hfadder is
port(A,B:in bit;S,C:out bit);
end hfadder;
architecture struct of hfadder is
component xor1 is
port(a,b:in bit;c:out bit);
end component;
component and1 is
port(a,b:in bit;c:out bit);
end component;
Begin
X1:xor1 port map(A,B,S);
X2:and1 port map(A,B,C);
end struct;

SIMULATION OUTPUT: :

RESULT: Half Adder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL ADDER
(STRUCTURAL MODEL)

AIM:

Simulation and verification of Full Adder using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity fa2 is
port(a1,b1,c1:in bit;sum,cout1:out bit);
end fa2;
use vamsi.all;
architecture struc of fa2 is
component xor2
port(a,b:in bit; y:out bit);
end component;
component and2
port(a,b:in bit;y:out bit);
end component;
component or2
port(a,b:in bit;y:out bit);
end component;
signal s1,s2,s3,s4,s5:bit;
begin
d1:exor1 port map(a1,b1,s1);
d2:exor1 port map(s1,c1,sum);
d3:and1 port map(a1,b1,s2);
d4:and1 port map(a1,c1,s3);
d5:and1 port map(b1,c1, s4);
d6:or1 port map(s2,s3,s5);
d7:or1 port map(s4,s5,cout1);
end struc;

SIMULATION OUTPUT:

RESULT: Full Adder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
HALF SUBTRACTOR
(STRUCTURAL MODEL)

AIM:

Simulation and verification of Half Subtractor using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use vamsi.all;
entity hfsub is
port(A,B:in bit;D,B0:out bit);
end hfsub;
architecture struct of hfsub is
component xor2 is
port(a,b:in bit;y:out bit);
end component;
component and2 is
port(a,b:in bit;y:out bit);
end component;
component not1 is
port(a:in bit;y:out bit);
end component;
signal s:bit;
Begin
X1:xor1 port map(A,B,D);
X2:not1 port map(A,s);
X3:and1 port map(s,B,B0);
end struct;

SIMULATION OUTPUT:

RESULT: Half Subtractor is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FULL SUBTRACTOR
(STRUCTURAL MODEL)

AIM:

Simulation and verification of Full Subtractor using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use vamsi.all;
entity fulsub is
port(A,B,C:in bit;D,Bo:out bit);
end fulsub;
architecture struct of fulsub is
component and2 is
port(a,b:in bit;y:out bit);
end component;
component xor2 is
port(a,b:in bit;y:out bit);
end component;
component or2 is
port(a,b:in bit;c:out bit);
end component;
component not1 is
port(a:in bit;y:out bit);
end component;
signal S0,S1,S2,S3,S4,S5:bit;
Begin
X1:xor1 port map(A,B,S1);
X2:xor1 port map(S1,C,D);
X3:not1 port map(A,S0);
X4:and1 port map(S0,B,S2);
X5:and1 port map(S0,C,S3);
X6:or1 port map(S2,S3,S5);
X7:and1 port map(B,C,S4);
X8:or1 port map(S5,S4,Bo);
end struct;

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

SIMULATION OUTPUT :

RESULT: Full Subtractor is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

2 TO 4 DECODER (DATAFLOW STYLE )

AIM:

Simulation and verification of 2 x 4 AND gate decoder.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dec24 is
port(a,b,e:in std_logic; z:out std_logic_vector(0 to 3));
end dec24;
architecture data of dec24 is
begin
z(0)<= NOT((not a) AND (not b) AND e);
z(1)<= NOT (B AND (not a) and e);
z(2)<= NOT(a and (not b) and e);
z(3)<= NOT(a and b and e);
end data;

SIMULATION OUTPUT:

RESULT: 2 to 4 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

2 TO 4 DECODER (BEHAVIOURAL MODEL )

AIM:

Simulation and verification of 2 to 4 NAND gate decoder.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dec is
port(a,b,e:in bit;z0,z1,z2,z3:out bit);
end dec;
architecture bm3 of dec is
begin
process(a,b,e)
variable abar,bbar:bit;
begin
abar:=not a;
bbar:=not b;
if e='1' then
z3<=not(a and b);
z0<=not(abar and bbar);
z2<=not(a and bbar);
z1<=not(abar and b);
end if;
end process;
end bm3;

SIMULATION OUTPUT: :

RESULT: 2 to 4 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

4 TO 1 MULTEPLXER (DATA FLOW STYLE )

AIM:

Simulation and verification of 4 x 1 NAND gate decoder.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity mu4to1 is
port(i0,i1,i2,i3:in bit;
s:in bit_vector(1 downto 0);
z:out bit);
end mu4to1;
architecture df1 of mu4to1 is
signal t0,t1,t2,t3,t4:bit;
begin
t0<=(i0 and not s(1) and not s(0));
t1<=(i1 and not s(1) and s(0));
t2<=(i2 and s(1) and not s(0));
t3<=(i3 and s(1) and s(0));
z<=t0 or t1 or t2 or t3;
end df1;

SIMULATION OUTPUT: :

RESULT: 4 to 1 Multiplexer is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

9 BIT PARITY GENERATOR (STRUCTURAL MODEL)

AIM:
Simulation and verification of 9-bit parity generator using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use vamsi.all;
entity pg is
port(d0,d1,d2,d3,d4,d5,d6,d7,d8:in bit;od:out bit);
end pg;
architecture str of pg is
component xor2
port(a,b:in bit;y:out bit);
end component;
component not1
port(a:in bit;y:out bit);
end component;
signal e0,e1,e2,e3,f0,f1,a0,ev:bit;
begin
x1:xor2 port map(d0,d1,e0);
x2:xor2 port map(d2,d3,e1);
x3:xor2 port map(d4,d5,e2);
x4:xor2 port map(d6,d7,e3);
x5:xor2 port map(f0,f1,a0);
x6:xor2 port map(a0,d8,ev);
x7:not1 port map(ev,od);
end str;

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

SIMULATION OUTPUT:

RESULT: 9 bit Priority encoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

17 BIT PARITY GENERATOR (STRUCTURAL MODEL)

AIM:

Simulation and verification of 17-bit parity generator using structural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use vamsi.all;
entity pg1 is
port(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16:in bit;
od:buffer bit;ev:buffer bit);
end pg1;
architecture str of pg1 is
component xor2
port(a,b:in bit;y:out bit);
end component;
component xor2
port(a,b:in bit;y:buffer bit);
end component;
component not1
port(a:in bit;y:buffer bit);
end component;
signal e0,e1,e2,e3,e4,e5,e6,e7,a0,a1,a2,a3,b0,b1,f0:bit;
begin
x1:xor2 port map(d0,d1,e0);
x2:xor2 port map(d2,d3,e1);
x3:xor2 port map(d4,d5,e2);
x4:xor2 port map(d6,d7,e3);
x5:xor2 port map(d8,d9,e4);
x6:xor2 port map(d10,d11,e5);
x7:xor2 port map(d12,d13,e6);
x8:xor2 port map(d14,d15,e7);
x9:xor2 port map(e0,e1,a0);
x10:xor2 port map(e2,e3,a1);
x11:xor2 port map(e4,e5,a2);
x12:xor2 port map(e6,e7,a3);
x13:xor2 port map(a0,a1,b0);
x14:xor2 port map(a2,a3,b1);
x15:xor2 port map(b0,b1,f0);
x16:xor2 port map(f0,d16,od);
x17:not1 port map(od,ev);
end str;

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

SIMULATION OUTPUT: :

RESULT: 17- bit Priority encoder is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
ALU (ARITHMATIC OPERATIONS)

AIM:
simulation and verification of arithmetic operations.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity arithmatic is
port(a,b:in std_logic_vector(3 downto 0);
q1:out std_logic_vector(4 downto 0);
q2:out std_logic_vector(3 downto 0);
q3:out std_logic_vector(7 downto 0));
end arithmatic;
architecture df of arithmatic is
begin
q1<=('0'&a)+('0'&b);
q2<=a-b;
q3<=a*b;
end df;

SIMULATION OUTPUT: :

RESULT: ALU is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
ALU(1’s&2’s COMPLEMENTATION)

AIM:
simulation and verification of 1’s 2’s complement arithmetic operations.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity complement is
port(a:in std_logic_vector(4 downto 0);
c2:out std_logic_vector(4 downto 0));
end complement;
architecture beh of complement is
signal c1:std_logic_vector(4 downto 0);
begin
c1<=(not a);
c2<=c1 + 1;
end beh;

SIMULATION OUTPUT: :

RESULT:ALU is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
BCD TO EXCESS-3 CODE CONVERSION

AIM:
simulation and verification of BCD to Excess – 3 code.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity bin2ex3 is
port(d: in std_logic_vector(3 downto 0);
q: out std_logic_vector(3 downto 0);p:out std_logic);
end bin2ex3;
architecture bin2ex3 of bin2ex3 is
signal s:std_logic_vector(4 downto 0);
begin
s<=('0'& d)+"0011";
q<=s(3 downto 0);
p<=s(4);
end bin2ex3;

SIMULATION OUTPUT: :

RESULT: BCD TO EXCESS-3 CODE CONVERSION is simulated and verified

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
2 TO 4 DECODER (STRUCTURAL MODEL)

AIM:

Simulation and verification of 2 x 4decoder.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use soujanya.all;
entity twoto4dec is
ort(A,B,E:in bit;Z0,Z1,Z2,Z3:out bit);
end twoto4dec;
architecture struct of twoto4dec is
component nand2 is
port(a,b,c:in bit;y:out bit);
end component;
component not1 is
port(a:in bit;y:out bit);
end component;
signal A0,B0:bit;
Begin
X1:not1 port map(A,A0);
X2:not1 port map(B,B0);
X3:nand2 port map(A0,B0,E,Z0);
X4:nand2 port map(A0,B,E,Z1);
X5:nand2 port map(A,B0,E,Z2);
X6:nand2 port map(A,B,E,Z3);
end struct;

SIMULATION OUTPUT: :

RESULT: 2 to 4 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
BINARY TO GRAY CODE CONVERSION

AIM:
simulation and verification of binary to gray code conversion.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity bi_to_g is
port(b:in std_logic_vector(3 downto 0);
g:out std_logic_vector(3 downto 0));
end bi_to_g;
architecture df of bi_to_g is
begin
g(3)<=b(3);
g(2)<=b(3) xor b(2);
g(1)<=b(2) xor b(1);
g(0)<=b(1) xor B(0);
end df;

SIMULATION OUTPUT: :

RESULT: BINARY TO GRAY CODE CONVERSION is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
GRAY TO BINARY CODE CONVERSION

AIM:
simulation and verification of gray to binary code conversion.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity gryb2 is
port(d: in std_logic_vector(3 downto 0);q: out std_logic_vector(3 downto 0));
end gryb2;
architecture gryb2 of gryb2 is
begin
q(3)<=d(3);
q(2)<=d(3) xor d(2);
q(1)<=d(1) xor d(2) xor d(3);
q(0)<=d(1) xor d(0) xor d(2) xor d(3);
end gryb2;

SIMULATION OUTPUT: :

RESULT: GRAY TO BINARY CODE CONVERSION is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
RS LATCH (BEHAVIOURAL MODEL )

AIM:
Simulation and verification of RS-latch using behavioural model

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity rslatch is
port(r,s,clk:in bit;q,nq:inout bit);
end rslatch;
architecture beh of rslatch is
signal temp:bit;
begin
b1: block(clk='1')
begin
temp<=guarded(r nand q);
nq<=temp;
q<=s nand nq after 5 ns;
end block b1;
end beh;

SIMULATION OUTPUT: :

RESULT: RS LATCH is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
T -FLIP FLOP (BEHAVIOURAL MODEL)

AIM:
Simulation and verification of T- FLIP FLOP using behavioural model

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity tff is
port(t,clk:in std_logic;
q:inout std_logic:='0');
end tff;
architecture beh of tff is
begin
process(clk)
begin
if (clk' event and clk='1') then
if(t='1') then
q<= not (q);
else
q<=q;
end if;
end if;
end process;
end beh;

SIMULATION OUTPUT: :

RESULT: T FLIP FLOP is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
D-LATCH (BEHAVIOURAL MODEL WITH DATA ,ENABLE )

AIM:
Simulation and verification of D- LATCH using behavioural model

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity dl2 is
port(d,e:in bit; q:out bit);
end dl2;
architecture beh of dl2 is
begin
process(d,e)
begin
if e='1' then
q<=d;
end if;
end process;
end beh;

SIMULATION OUTPUT: :

RESULT: D- LATCH is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
POSITIVE LEVEL TRIGGERED D-FLIP FLOP .

AIM:
Simulation and verification of positive level triggered D-FLIP FLOP using
behavioural model

PROGRAM:

library ieee;
entity dff2 is
port(d,clk:in bit;q:out bit);
end dff2;
architecture dff of dff2 is
begin
process(d,clk)
begin
if clk='1' then
q<=d;
end if;
end process;
end dff;

SIMULATION OUTPUT: :

RESULT: positive level triggered D-FLIP FLOP using behavioural model is simulated

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
POSITIVE EDGE TRIGGERED D-FLIP FLOP.

AIM:
Simulation and verification of positive edge triggered D-FLIP FLOP using
behavioural model

PROGRAM:

library ieee;
entity dff3 is
port(d,clk:in bit;q:out bit);
end dff3;
architecture dfn of dff3 is
begin
process(clk)
begin
if clk'event and clk='1' then
q<=d;
end if;
end process;
end dfn;

SIMULATION OUTPUT: :

RESULT: Positive edge Triggered D-FLIP FLOP using behavioural model


is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
D-LATCH WITH GATED ENABLE

AIM:
Simulation and verification of D-LATCH with gated enable using behavioural
model

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dl1 is
port(d,en,g:in bit;q:out bit);
end dl1;
architecture beh of dl1 is
begin
process(d,en,g)
begin
if ((en and g)='1') then
q<=d;
end if;
end process;
end beh;

SIMULATION OUTPUT: :

RESULT: D-LATCH with gated enable using behavioural model is simulated and
verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:
JK FLIP FLOP ( BEHAVIOURAL MODEL).

AIM:
Simulation and verification of JK FLIP FLOP using behavioural model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
entity jkff1 is
port (s,r,j,k,clk:in bit;q:inout bit;qn:out bit:='1');
end jkff1;
architecture jkff of jkff1 is
begin
process(s,r,clk)
begin
if r='0' then q<='0' after 10ns;
elsif s='0' then q<='1' after 10ns;
elsif clk='0' and clk' event then
q<=(j and not q) or (not k and q) after 10ns;
end if;
end process;
qn<=not q;
end jkff;

SIMULATION OUTPUT: :

RESULT: JK-FLIP FLOP using behavioural Model is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

2 TO 4 DECODER

AIM:
Simulation and verification of 2 To 4 Decoder using NAND gates.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dec24 is
port(a,b,e:in std_logic; z:out std_logic_vector(0 to 3));
end dec24;
architecture data of dec24 is
begin
z(0)<= NOT((not a) AND (not b) AND e);
z(1)<= NOT (B AND (not a) and e);
z(2)<= NOT(a and (not b) and e);
z(3)<= NOT(a and b and e);
end data;

SIMULATION OUTPUT:

RESULT: 2 to 4 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

3 TO 8 DECODER

AIM:
Simulation and verification of 3 to 8 decoder using NAND gates.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dec38 is
port(a,b,c,e:in std_logic; z:out std_logic_vector(0 to 7));
end dec38;
architecture beh of dec38 is
begin
z(0)<=not((not a)and(not b)and (not c)and e);
z(1)<=not((not a)and(not b)and c and e);
z(2)<=not((not a)and b and(not c)and e);
z(3)<=not((not a) and b and c and e);
z(4)<=not(a and(not b)and(not c) and e);
z(5)<=not(a and(not b)and c and e);
z(6)<=not(a and b and(not c) and e);
z(7)<=not(a and b and c and e);
end beh;

RESULT: 3 to 8 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

2 TO 1 MULTIPLEXER

AIM:
Simulation and verification of 2 to1 Multiplexer.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity mux21 is
port(a,b,s:in bit;f:out bit);
end mux21;
architecture beh of mux21 is
begin
f<= (a and (not s)) or (b and s);
end beh;

SIMULATION OUTPUT:

RESULT: 2 to 1 Multiplexer is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

3 TO 8 DECODER

AIM:
Simulation and verification of 3 to 8 Decoder.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
entity dec38 is
port(a,b,c,e:in std_logic; z:out std_logic_vector(0 to 7));
end dec38;
architecture beh of dec38 is
begin
z(0)<=(not a)and(not b)and (not c)and e;
z(1)<=(not a)and(not b)and c and e;
z(2)<=(not a)and b and(not c)and e;
z(3)<=(not a) and b and c and e;
z(4)<=a and(not b)and(not c) and e;
z(5)<=a and(not b)and c and e;
z(6)<=a and b and(not c) and e;
z(7)<=a and b and c and e;
end beh;

SIMULATION OUTPUT:

RESULT: 3 to 8 Decoder is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

3 TO 8 DECODER (STRUCTURAL MODEL)


AIM:
Simulation and verification of 3 to 8 Decoder Using Structural Model.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use dsce04.all;
entity dec37 is
port(a,b,c,e:in bit; z0,z1,z2,z3,z4,z5,z6,z7:out bit);
end dec37;
architecture struc of dec37 is
component and4 is
port(g,h,i,j:in bit; k:out bit);
end component;
component not1 is
port(a:in bit; b:out bit);
end component;
signal s1,s2,s3:bit;
begin
x1:not1 port map(a,s1);
x2:not1 port map(b,s2);
x3:not1 port map(c,s3);
x4:and4 port map(s1,s2,s3,e,z0);
x5:and4 port map(s1,s2,c,e,z1);
x6:and4 port map(s1,b,s3,e,z2);
x7:and4 port map(s1,b,c,e,z3);
x8:and4 port map(a,s2,s3,e,z4);
x9:and4 port map(a,s2,c,e,z5);
x10:and4 port map(a,b,s3,e,z6);
x11:and4 port map(a,b,c,e,z7);
end struc;

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

SIMULATION OUTPUT:

RESULT: 3 to 8 Decoder Using Structural Model is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

4 BIT FULL ADDER (STRUCTURAL MODEL)

AIM:
Simulation and verification of 4 Bit Full Adder Using Structural Model.

PROGRAM:

Library ieee;
use ieee.std_logic_1164.all;
use dsce04.all;
entity adder1 is
port(x0,x1,x2,x3,y0,y1,y2,y3:in std_logic;
c:in std_logic;
cout:out std_logic;
s0,s1,s2,s3:out std_logic);
end adder1;
architecture str of adder1 is
signal c1,c2,c3:std_logic;
component fa3
port(x,y,c:in std_logic;s,cout:out std_logic);
end component ;
begin
n1:fa3 port map(x0,y0,c,s0,c1);
n2:fa3 port map(x1,y1,c1,s1,c2);
n3:fa3 port map(x2,y2,c2,s2,c3);
n4:fa3 port map(cout=>cout,c=>c3,x=>x3,y=>y3,s=>s3);
end str;

SIMULATION OUTPUT: :

RESULT: 4 Bit Full Adder Using Structural Model is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

4 TO 16 DECODER (STRUCTURAL MODEL)

AIM:
Simulation and verification of 4 to 16 Decoder Using Structural Model.

PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use dsce04.all;
entity dec416 is
port(w0,w1,w2,w3,e:in std_logic; q:out std_logic_vector(0 to 15));
end dec416;
architecture struc of dec416 is
component dec24 is
port(a,b,e:in std_logic; z0,z1,z2,z3:out std_logic);
end component;
signal p0,p1,p2,p3: std_logic;
begin
x1:dec24 port map(w0,w1,e,p0,p1,p2,p3);
x2:dec24 port map(w2,w3,p0,q(0),q(1),q(2),q(3));
x3:dec24 port map(w2,w3,p1,q(4),q(5),q(6),q(7));
x4:dec24 port map(w2,w3,p2,q(8),q(9),q(10),q(11));
x5:dec24 port map(w2,w3,p3,q(12),q(13),q(14),q(15));
end struc;

SIMULATION OUTPUT: :

RESULT: 4 to 16 Decoder Using Structural Model is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

D-FLIP FLOP

AIM:
Simulation and verification of D-Flip Flop Using Behavioural Model

PROGRAM:

library ieee;
entity dff2 is
port(d,clk:in bit;q:out bit);
end dff2;
architecture dff of dff2 is
begin
process(d,clk)
begin
if clk='1' then
q<=d;
end if;
end process;
end dff;

SIMULATION OUTPUT: :

RESULT: D-FLIP FLOP Using Behavioural Model is simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET


EXPT NO: PAGE NO:

FUNCTION VERIFICATION
(STRUCTURAL MODEL)
AIM:

Design and verification of function F(a,b,c,d) =∑ (0,1,2,4,5,6,8,9,12,13,14) Using


Structural Model
PROGRAM:

library ieee;
use ieee.std_logic_1164.all;
use dsce04.all;
entity kmap1 is
port(w,x,y,z:in bit; f:out bit);
end kmap1;
architecture struc of kmap1 is
component or2 is
port(a,b,c:in bit;d:out bit);
end component;
component and1 is
port(g,h:in bit; i:out bit);
end component;
component not1 is
port(a:in bit; b:out bit);
end component;
signal s1,s2,s3,s4,s5:bit;
begin
x1:not1 port map(w,s1);
x2:not1 port map(z,s2);
x3:not1 port map(y,s3);
x4:and1 port map(s1,s2,s4);
x5:and1 port map(s2,x,s5);
x6:or2 port map(s3,s4,s5,f);
end struc;

SIMULATION OUTPUT: :

RESULT: Function F(a,b,c,d) =∑ (0,1,2,4,5,6,8,9,12,13,14)Using Structural Model is


simulated and verified.

NARASARAOPET ENGINEERING COLLEGE -NARASARAOPET

You might also like