+ All Categories
Home > Documents > VHDL FINAL[1].docx

VHDL FINAL[1].docx

Date post: 28-Apr-2015
Category:
Upload: jaigodara
View: 31 times
Download: 5 times
Share this document with a friend
85
EXPERIMENT- 1 AIM: PROGRAM OF VHDL TO STUDY THE NOT GATE AZIZ PRADHAN 67 MTECH 1 st SEM (E.C.E.) library IEEE; use IEEE.STD_LOGIC_1164.all; entity \NOT\ is port( A : in STD_LOGIC; B : out STD_LOGIC ); end \NOT\; architecture \BODY\ of \NOT\ is begin B<=NOT A; end \BODY\;
Transcript
Page 1: VHDL FINAL[1].docx

EXPERIMENT-1

AIM: PROGRAM OF VHDL TO STUDY THE NOT GATE

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity \NOT\ is

port(

A : in STD_LOGIC;

B : out STD_LOGIC

);

end \NOT\;

architecture \BODY\ of \NOT\ is

begin

B<=NOT A;

end \BODY\;

Page 2: VHDL FINAL[1].docx

EXPERIMENT-2

AIM: PROGRAM OF VHDL TO STUDY THE VARIOUS GATES

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity GATES is

port(

A : in STD_LOGIC;

B : in STD_LOGIC;

C: out std_LOGIC

);

end GATES;

architecture BODY of GATES is

begin

CAND<=A AND B AND C;

COR<=A OR B OR C;

CXOR<=A XOR B XOR C;

CNAND<=A NAND B NAND C;

CNOR<=A NOR B NOR C;

CXNOR<=A XNOR B XNOR C;

end BODY;

Page 3: VHDL FINAL[1].docx
Page 4: VHDL FINAL[1].docx

EXPERIMENT-3

AIM: PROGRAM OF VHDL TO STUDY HALF ADDER

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity half adder is

port(

a : in STD_LOGIC;

b : in STD_LOGIC;

sum : out STD_LOGIC;

carry : out STD_LOGIC );

end half adder;

architecture body of half adder is

begin

Sum<=A XOR B;

Carry<=A AND B;

end body;

Page 5: VHDL FINAL[1].docx

EXPERIMENT NO-4

AIM: PROGRAM OF VHDL TO STUDY FULL ADDER

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity fulladdr is

port(

a : in STD_LOGIC;

b : in STD_LOGIC;

c : in STD_LOGIC;

sum : out STD_LOGIC;

carry : out STD_LOGIC

);

end fulladdr;

architecture fulladdr of fulladdr is

begin

sum<=a xor b xor c;

carry<=(a and b)or(b and c)or(c and a);

end fulladdr;

Output waveform:

Page 6: VHDL FINAL[1].docx

EXPERIMENT-5

AIM: PROGRAM OF VHDL TO STUDY HALF ADDER WITH BEHAVIOUR MODELLING

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity mux is

port(

a : in BIT_VECTOR(0 to 7);

s : in BIT_VECTOR(0 to 2);

o : out BIT);

end mux;

architecture muxbody of mux is

begin

process(s,a)

begin

case s is

when"000"=>o<=a(0);

when"001"=>o<=a(1);

when"010"=> o <=a(2);

when"011"=> o <=a(3);

when"100"=> o <=a(4);

when"101"=> o <=a(5);

when"110"=> o <=a(6);

Page 7: VHDL FINAL[1].docx

when"111"=> o <=a(7);

when others => o <='0';

end case;

end process;

end muxbody;

Output waveform:

Page 8: VHDL FINAL[1].docx

EXPERIMENT-6

AIM: DESIGN VHDL PROGRAM FOR A 4-BIT COMPARATOR USING BEHAVIOUR MODELING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity comparator_entity is

port(

a : in STD_LOGIC_VECTOR(3 downto 0);

b : in STD_LOGIC_VECTOR(3 downto 0);

abc ,def,ghi: out STD_LOGIC );

end comparator_entity;

architecture comparator_architecture of comparator_entity is

begin

abc<='1'when (A)<(B) else '0';

def<='1'when (A)=(B) else '0';

ghi<='1'when (A)>(B) else '0';

end comparator_architecture;

Page 9: VHDL FINAL[1].docx

Output Waveform:

Page 10: VHDL FINAL[1].docx

EXPERIMENT-7

AIM: WRITE a VHDL PROGRAM FOR PRIORITY ENCODER.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity encoder is

port(

i:in std_logic_vector(7 downto 0);

o:out std_logic_vector(2 downto 0)

);

end encoder;

architecture encoder of encoder is

begin

process(i)

begin

if (i(7)='1') then o<="111";

elsif i(6)='1' then o<="110";

elsif i(5)='1' then o<="101";

elsif i(4)='1' then o<="100";

elsif i(3)='1' then o<="011";

elsif i(2)='1' then o<="010";

Page 11: VHDL FINAL[1].docx

elsif i(1)='1' then o<="001";

else o<="000";

end if;

end process;

end encoder;

Output:- Waveform:

Page 12: VHDL FINAL[1].docx

EXPERIMENT-8

AIM: WRITE a VHDL PROGRAM for MOD 10 COUNTER.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity dec_coun is

port (clk:in bit;

clr: in std_logic;

o: out std_logic_vector(3 downto 0));

end dec_coun;

architecture dec_beh of dec_coun is

signal temp : std_logic_vector(3 downto 0);

begin

process(clk)

begin

if clk='1'then

if clr='1' then

temp<="0000";

elsif temp="1001" then

temp<="0000";

else temp<=temp+1;

Page 13: VHDL FINAL[1].docx

end if;

end if;

end process;

O<=temp;

end dec_beh;

Output:- Waveform:

Page 14: VHDL FINAL[1].docx

EXPERIMENT-9

AIM: WRITE a VHDL PROGRAM FOR PISO USING BEHAVIOUR MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity piso_entity is

port(

PI : in STD_LOGIC_VECTOR(3 downto 0);

clk : in STD_LOGIC;

load : in STD_LOGIC;

set : in STD_LOGIC;

so : out STD_LOGIC

);

end piso_entity;

architecture piso_architecture of piso_entity is

signal temp_so:std_logic_vector(3 downto 0);

begin

process(clk)

begin

if rising_edge(clk) then

Page 15: VHDL FINAL[1].docx

if set='1' then

temp_so<="1111";

elsif load='1' then

temp_so<=PI;

else

temp_so<='0' & temp_so(3 downto 1);

end if;

end if;

end process;

so<=temp_so(0);

end piso_architecture;

Output:- Waveform:

Page 16: VHDL FINAL[1].docx

EXPERIMENT-10

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT AN SIPO SHIFT REGISTER.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use ieee.std_logic_1164.all;

entity sipo is

port(si,clk:in bit;

po:out bit_vector(3 downto 0));

end entity;

architecture sipo_beh of sipo is

signal temp:bit_vector(3 downto 0);

begin

process(clk)

begin

if clk='1' and(not clk'stable) then

temp<="0000";

temp<=si & temp(3 downto 1);

end if;

end process;

po<=temp;

end architecture;

Page 17: VHDL FINAL[1].docx

Output:- Waveform:

Page 18: VHDL FINAL[1].docx

EXPERIMENT NO.-11

AIM: PROGRAM TO IMPLIMENT GRAY TO BINARY CONVERTER USING BEHAVIOURIAL MODELLING

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity \grey binary\ is

port(

gr : in STD_LOGIC_VECTOR(3 downto 0);

bin : out STD_LOGIC_VECTOR(3 downto 0)

);

end \grey binary\;

architecture \grey binary\ of \grey binary\ is

begin

process(gr)

begin

bin(3)<=gr(3);

bin(2)<=gr(3) xor gr(2);

bin(1)<=gr(3) xor gr(2) xor gr(1);

bin(0)<=gr(3) xor gr(2) xor gr(1) xor gr(0);

end process;

end \grey binary\;

Page 19: VHDL FINAL[1].docx

O/P waveform:

Page 20: VHDL FINAL[1].docx

EXPERIMENT-12

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT BINARY TO GRAY CONVERTER.

AZIZ PRADHAN

67

M.TECH 1st SEM (E.C.E.)

library ieee;

use ieee.std_logic_1164.all;

entity b2g is

port(b:in std_logic_vector(3 downto 0);

g:out std_logic_vector(3 downto 0));

end b2g;

architecture b2g_beh of b2g is

begin

g(0)<=b(0)xor b(1);

g(1)<=b(1)xor b(2);

g(2)<=b(2)xor b(3);

g(3)<=b(3);

end architecture;

Page 21: VHDL FINAL[1].docx

Output Waveform:

Page 22: VHDL FINAL[1].docx

EXPERIMENT-13

AIM: WRITE a VHDL PROGRAM FOR HALF ADDER WITH STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity half_adder_entity is

port( a : in bit;

b : in bit;

o : out bit ;

c : out bit);

end half_adder_entity;

architecture half_adder_architecture of half_adder_entity is

component xor2 is

port(x,y:in bit; z: out bit);

end component;

component and2 is

port(p,q:in bit; r: out bit);

end component;

begin

x1: xor2 port map(a,b,o);

a1: and2 port map(a,b,c);

Page 23: VHDL FINAL[1].docx

end half_adder_architecture;

library ieee;

use ieee.std_logic_1164.all;

entity xor2 is

port(a,b:in bit; o: out bit);

end xor2;

architecture xor2 of xor2 is

begin

o<=a xor b;

end xor2;

library ieee;

use ieee.std_logic_1164.all;

entity and2 is

port(a,b:in bit; c: out bit);

end and2;

architecture and2 of and2 is

begin

c<=a and b;

end and2;

OUTPUT WAVEFORM:

Page 24: VHDL FINAL[1].docx

EXPERIMENT-14

AIM: PROGRAM OF VHDL TO STUDY THE VARIOUS GATES WITH BEHAVIOUR MODELLING .

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

Library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity gates_entity is

port(

A : in STD_LOGIC;

B : in STD_LOGIC;

CAND : out STD_LOGIC;

COR : out STD_LOGIC;

CXOR : out STD_LOGIC;

CNAND : out STD_LOGIC;

CNOR : out STD_LOGIC;

CXNOR : out STD_LOGIC

);

end gates_entity;

architecture gates_architecture of gates_entity is

begin

process(A,B)

begin

Page 25: VHDL FINAL[1].docx

CAND<=A AND B;

COR<=A OR B;

CXOR<=A XOR B;

CNAND<=A NAND B;

CNOR<=A NOR B;

CXNOR<=A XNOR B;

END PROCESS;

end gates_architecture;

OUTPUT WAVEFORM:

Page 26: VHDL FINAL[1].docx

EXPERIMENT-15

AIM: PROGRAM OF VHDL TO STUDY THE VARIOUS GATES WITH STRUCTRUAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity gates_entity is

port(

a : in bit;

b : in bit;

cand : out bit;

cor : out bit;

cxor : out bit;

cnand : out bit;

cnor : out bit;

cxnor : out bit

);

end gates_entity;

architecture gates_architecture of gates_entity is

component xor2 is

port(a1,b1:in bit;

o1:out bit);

Page 27: VHDL FINAL[1].docx

end component;

component and2 is

port(a2,b2:in bit;

o2:out bit);

end component;

component or2 is

port(a3,b3:in bit;

o3:out bit);

end component;

component nand2 is

port(a4,b4:in bit;

o4:out bit);

end component;

component nor2 is

port(a5,b5:in bit;

o5:out bit);

end component;

component xnor2 is

port(a6,b6:in bit;

o6:out bit);

Page 28: VHDL FINAL[1].docx

end component;

begin

c1:xor2 port map(a,b,cxor);

c2:and2 port map(a,b,cand);

c3:or2 port map(a,b,cor);

c4:nand2 port map(a,b,cnand);

c5:nor2 port map(a,b,cnor);

c6:xnor2 port map(a,b,cxnor);

end architecture;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity xor2 is

port(a1,b1: in bit;

o1:out bit);

end xor2 ;

architecture xor2 of xor2 is

begin

o1<=a1 xor b1;

end xor2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity and2 is

Page 29: VHDL FINAL[1].docx

port(a2,b2: in bit;

o2:out bit);

end and2 ;

architecture and2 of and2 is

begin

o2<=a2 and b2;

end and2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity or2 is

port(a3,b3: in bit;

o3:out bit);

end or2 ;

architecture or2 of or2 is

begin

o3<=a3 or b3;

end or2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity nand2 is

port(a4,b4: in bit;

o4:out bit);

Page 30: VHDL FINAL[1].docx

end nand2 ;

architecture nand2 of nand2 is

begin

o4<=a4 nand b4;

end nand2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity nor2 is

port(a5,b5: in bit;

o5:out bit);

end nor2 ;

architecture nor2 of nor2 is

begin

o5 <=a5 nor b5;

end nor2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity xnor2 is

port(a6,b6: in bit;

o6:out bit);

end xnor2 ;

architecture xnor2 of xnor2 is

Page 31: VHDL FINAL[1].docx

begin

o6<=a6 xnor b6;

end xnor2;

OUTPUT WAVEFORM:

Page 32: VHDL FINAL[1].docx

EXPERIMENT-16

AIM: DESIGN VHDL PROGRAM FOR A 4-BIT COMPARATOR USING BEHAVIOUR MODELING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity comparator_entity is

port(

A : in STD_LOGIC_VECTOR(3 downto 0);

B : in STD_LOGIC_VECTOR(3 downto 0);

AIB ,AeB,AgB: out STD_LOGIC );

end comparator_entity;

architecture comparator_architecture of comparator_entity is

begin

process(A,B)

begin

if(A)<(B)then AIB<='1';

elsif (A)=(B)then AeB<='1';

else AgB<='1';

end if;

end process;

end comparator_architecture;\

Page 33: VHDL FINAL[1].docx

Output Waveform:

Page 34: VHDL FINAL[1].docx

EXPERIMENT-17

AIM:PROGRAM OF VHDL TO STUDY MULTIPLEXER WITH STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity mux_entity is

port(i0,i1,i2,i3 : in bit;

s0,s1 : in bit;

o : out bit);

end mux_entity;

architecture mux_architecture of mux_entity is

component and3 is

port(a,b,c:in bit; d:out bit);

end component;

component or4 is

port(p,q,r,s:in bit; t:out bit);

end component;

Page 35: VHDL FINAL[1].docx

component inv2 is

port(l:in bit;m:out bit);

end component;

signal e1,e2,f1,f2,f3,f4 : bit;

begin

A1:and3 port map (e1,e2,i0,f1);

A2:and3 port map (s0,e2,i1,f2);

A3:and3 port map (e1,s1,i2,f3);

A4:and3 port map (s1,s0,i3,f4);

N1:inv2 port map (s0,e1);

N2:inv2 port map (s1,e2);

O1:or4 port map (f1,f2,f3,f4,o);

end mux_architecture;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity and3 is

port(a,b,c: in bit;

d : out bit);

end and3;

architecture and3 of and3 is

Page 36: VHDL FINAL[1].docx

begin

d<=a and b and c;

end and3;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity or4 is

port(p,q,r,s: in bit;

t : out bit);

end or4;

architecture or4 of or4 is

begin

t<=p or q or r or s;

end or4;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity inv2 is

port(l: in bit;

m : out bit);

end inv2;

architecture inv2 of inv2 is

Page 37: VHDL FINAL[1].docx

begin

m<= not l;

end inv2;

Output Waveform:

Page 38: VHDL FINAL[1].docx

EXPERIMENT-18

AIM:PROGRAM OF VHDL TO STUDY DEMULTIPLEXER WITH DATAFLOW MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity demux_entity is

port(

a : in STD_LOGIC;

s : in STD_LOGIC_vector(0 TO 1);

x,y,z,m : out STD_LOGIC);--_VECTOR(0 TO 3));

end demux_entity;

architecture demux_architecture of demux_entity is

begin

x <= a when s="00";

y <= a when s="01";

z <= a when s="10";

m <= a when s="11";

end demux_architecture;

Page 39: VHDL FINAL[1].docx

OUTPUT WAVEFORM:

Page 40: VHDL FINAL[1].docx

EXPERIMENT-19

AIM:PROGRAM OF VHDL TO STUDY DEMULTIPLEXER WITH STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity demux_entity is

port(i: in bit;

s0,s1 : in bit;

o0,o1,o2,o3 : out bit);

end demux_entity;

architecture demux_architecture of demux_entity is

component and3 is

port(a,b,c:in bit; d:out bit);

end component;

component inv2 is

port(l:in bit;m:out bit);

end component;

Page 41: VHDL FINAL[1].docx

signal e1,e2: bit;

begin

A1:and3 port map (e1,e2,i,o0);

A2:and3 port map (s0,e2,i,o1);

A3:and3 port map (e1,s1,i,o2);

A4:and3 port map (s1,s0,i,o3);

N1:inv2 port map (s0,e1);

N2:inv2 port map (s1,e2);

end demux_architecture;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity and3 is

port(a,b,c: in bit;

d : out bit);

end and3;

architecture and3 of and3 is

begin

d<=a and b and c;

end and3;

library IEEE;

Page 42: VHDL FINAL[1].docx

use IEEE.STD_LOGIC_1164.all;

entity inv2 is

port(l: in bit;

m : out bit);

end inv2;

architecture inv2 of inv2 is

begin

m<= not l;

end inv2;

Output Waveform:

Page 43: VHDL FINAL[1].docx

EXPERIMENT NO-20

AIM: PROGRAM OF VHDL TO STUDY FULL ADDER BEHAVIOUR MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity FULL_ADDER_ENTITY is

port(

A : in STD_LOGIC;

B : in STD_LOGIC;

C : in STD_LOGIC;

S : out STD_LOGIC;

CY : out STD_LOGIC

);

end FULL_ADDER_ENTITY;

architecture FULL_ADDER_ARCHITECTURE of FULL_ADDER_ENTITY is

begin

process(A,B,C)

begin

S<= A XOR B XOR C;

CY<=(A AND B) OR (B AND C) OR (C AND A);

Page 44: VHDL FINAL[1].docx

end process;

end FULL_ADDER_ARCHITECTURE;

OUTPUT WAVEFORM:

Page 45: VHDL FINAL[1].docx

EXPERIMENT NO-21

AIM: PROGRAM OF VHDL TO STUDY FULL ADDER STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity FULL_ADDER_ENTITY is

port(

a : in bit;

b : in bit;

c : in bit;

sum : out bit;

cy : out bit

);

end FULL_ADDER_ENTITY;

architecture FULL_ADDER_ARCHITECTURE of FULL_ADDER_ENTITY is

component xor2

port(a1,a2:in bit; c1: out bit);

end component;

component and2

port(b1,b2:in bit; c2: out bit);

end component;

Page 46: VHDL FINAL[1].docx

component or3

port(d1,d2,d3:in bit; c3: out bit);

end component;

signal s1,s2,s3,s5: bit;

begin

X1: xor2 port map(a,b,s5);

X2: xor2 port map(s5,c,sum);

A1: and2 port map(a,b,s1);

A2: and2 port map(b,c,s2);

A3: and2 port map(a,c,s3);

O1: or3 port map(s1,s2,s3,cy);

end FULL_ADDER_ARCHITECTURE;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity xor2 is

port(a1,a2: in bit;

c1:out bit);

end xor2;

architecture xor2 of xor2 is

begin

Page 47: VHDL FINAL[1].docx

c1<=a1 xor a2;

end xor2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity and2 is

port(b1,b2: in bit;

c2:out bit);

end and2;

architecture and2 of and2 is

begin

c2<=b1 and b2;

end and2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity or3 is

port(d1,d2,d3: in bit;

c3:out bit);

end or3;

architecture or3 of or3 is

begin

Page 48: VHDL FINAL[1].docx

c3<=(d1 and d2)or(d2 and d3)or(d3 and d1);

end or3;

OUTPUT WAVEFORM:

Page 49: VHDL FINAL[1].docx

EXPERIMENT-22

AIM:PROGRAM OF VHDL TO STUDY MULTIPLEXER WITH DATAFLOW.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity mux_entity is

port(

i : in STD_LOGIC_vector(0 to 3);

s : in STD_LOGIC_vector( 0 to 1);

o : out STD_LOGIC

);

end mux_entity;

architecture mux_architecture of mux_entity is

begin

with s select

o<=i(0)when "00",

i(1)when "01",

i(2)when "10",

i(3)when others;

end mux_architecture;

Page 50: VHDL FINAL[1].docx

OUTPUT WAVEFORM:

Page 51: VHDL FINAL[1].docx

EXPERIMENT-23

AIM: WRITE a VHDL PROGRAM FOR PRIORITY ENCODER WITH DATAFLOW MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity encoder is

port(

i:in std_logic_vector(7 downto 0);

y:out std_logic_vector(2 downto 0));

end encoder;

architecture encoder of encoder is

begin

y<="111" when i(7)='1' else

"110" when i(6)='1' else

"101" when i(5)='1' else

"100" when i(4)='1' else

"011" when i(3)='1' else

"010" when i(2)='1' else

"001" when i(1)='1' else

"000" when i(0)='1';

end encoder;

Page 52: VHDL FINAL[1].docx

Output Waveform:

Page 53: VHDL FINAL[1].docx

EXPERIMENT NO.-24

AIM: PROGRAM TO IMPLIMENT PRIORITY ENCODER USING STRUCTURAL MODELLING

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity \priority encoder\ is

port(

d0 : in STD_LOGIC;

d1 : in STD_LOGIC;

d2 : in STD_LOGIC;

d3 : in STD_LOGIC;

d4 : in STD_LOGIC;

d5 : in STD_LOGIC;

d6 : in STD_LOGIC;

d7 : in STD_LOGIC;

q0 : out STD_LOGIC;

q1 : out STD_LOGIC;

q2 : out STD_LOGIC

);

end \priority encoder\;

architecture \priority encoder\ of \priority encoder\ is

component or4 is

Page 54: VHDL FINAL[1].docx

port(j,k,l,m:std_logic; n:out std_logic);

end component;

begin

o1:or4 port map(d1,d3,d5,d7,q0);

o2:or4 port map(d2,d3,d6,d7,q1);

o3:or4 port map(d4,d5,d6,d7,q2);

end \priority encoder\;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity or4 is

port (j,k,l,m:in std_logic; n:out std_logic);

end or4;

architecture or4 of or4 is

begin

n<=j or k or l or m;

end or4;

OUTPUT:-

Page 55: VHDL FINAL[1].docx

EXPERIMENT-25

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT BINARY TO GRAY CONVERTER WITH STRUCTURAL .

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library ieee;

use ieee.std_logic_1164.all;

entity b2g is

port(b0,b1,b2,b3:in bit;

g0,g1,g2,g3:out bit);

end b2g;

architecture b2g_beh of b2g is

component xor2

port(a1,a2:in bit; c1: out bit);

end component;

begin

x1:xor2 port map(b3,b2,g2);

x2:xor2 port map(b2,b1,g1);

x3:xor2 port map(b1,b0,g0);

g3<=b3;

end architecture;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

Page 56: VHDL FINAL[1].docx

entity xor2 is

port(a1,a2: in bit;

c1:out bit);

end xor2;

architecture xor2 of xor2 is

begin

c1<=a1 xor a2;

end xor2;

Output Waveform:

Page 57: VHDL FINAL[1].docx

EXPERIMENT-26

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT AN SIPO SHIFT REGISTER USING STRUCTRAL.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

Use IEEE.STD_LOGIC_1164.All;

Entity sipo is

Port (si: in std_logic;

clk: in std_logic;

po:buffer std_logic_vector(3 downto 0));

end sipo;

architecture structural of sipo is

signal d:std_logic_vector(4 downto 0);

component d_ff

Port (d,clk: in std_logic;

q,qbar:buffer std_logic);

end component;

begin

a1:d_ff port map (si, clk, po(3),d(3));

a2:d_ff port map( po(3), clk, po(2),d(2));

a3:d_ff port map (po(2), clk, po(1),d(1));

a4:d_ff port map (po(1), clk, po(0),d(0));

end structural;

Page 58: VHDL FINAL[1].docx

library IEEE;

Use IEEE.STD_LOGIC_1164.All;

entity d_ff is

Port (d : in std_logic;

clk : in std_logic;

q :buffer std_logic;

qbar : buffer std_logic);

end d_ff;

architecture d_ff of d_ff is

begin

Process (d,clk)

Begin

if (clk'event and clk ='1')then

if(d='0')then

q<='0';

qbar<='1';

else

q<='1';

qbar<='0';

end if;

else

q<=q;

qbar<= qbar;

Page 59: VHDL FINAL[1].docx

end if;

end process;

end d_ff;

Output Waveform:

Page 60: VHDL FINAL[1].docx

EXPERIMENT-27

AIM: DESIGN VHDL PROGRAM FOR A 3-BIT COMPARATOR USING STRUCTURAL MODELING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity comparator is

port(x,y:in std_logic;

z:out std_logic );

end comparator ;

architecture comparator of comparator is

component and2 is

port(a1,b1:in std_logic;

o1:out std_logic);

end component;

component or2 is

port(a2,b2:in std_logic;

o2:out std_logic);

end component;

component inv2 is

port(a3:in std_logic;

o3:out std_logic);

end component;

signal e1,e2,s1,s2: std_logic;

Page 61: VHDL FINAL[1].docx

begin

I1:inv2 port map(x,e1);

I2:inv2 port map(y,e2);

A1:and2 port map(x,y,s1);

A2:and2 port map(e1,e2,s2);

o1:or2 port map(s1,s2,z);

end comparator;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity and2 is

port(a1,b1: in std_logic;

o1:out std_logic);

end and2 ;

architecture and2 of and2 is

begin

o1<=a1 and b1;

end and2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity or2 is

port(a2,b2: in std_logic;

o2:out std_logic);

Page 62: VHDL FINAL[1].docx

end or2 ;

architecture or2 of or2 is

begin

o2<=a2 or b2;

end or2;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity inv2 is

port(a3: in std_logic;

o3:out std_logic);

end inv2 ;

architecture inv2 of inv2 is

begin

o3<=not a3;

end inv2;

Output Waveform:

Page 63: VHDL FINAL[1].docx

EXPERIMENT-28

AIM: WRITE a VHDL PROGRAM FOR PISO USING DATAFLOW MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity piso_entity is

port(

clk : in STD_LOGIC;

load : in STD_LOGIC;

set : in STD_LOGIC;

PI : in STD_LOGIC_VECTOR(3 downto 0);

so : out STD_LOGIC

);

end piso_entity;

architecture piso_architecture of piso_entity is

signal temp_so:std_logic_vector(3 downto 0);

begin

temp_so<="1111" when rising_edge(clk)and set='1'else

PI when rising_edge(clk) and load='1' else

'0' & temp_so(3 downto 1);

so<=temp_so(0);

Page 64: VHDL FINAL[1].docx

end piso_architecture;

Output Waveform:

Page 65: VHDL FINAL[1].docx

EXPERIMENT-29

AIM: WRITE a VHDL PROGRAM FOR PISO USING STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

Use IEEE.STD_LOGIC_1164.All;

entity piso is

Port (p: in std_logic_vector (3 downto 0);

clk: in std_logic;

load: in std_logic;

so:buffer std_logic);

end piso;

architecture structural of piso is

component d_ff is

Port (d,clk: in std_logic;

q,qbar :buffer std_logic);

end component;

component nand2 is

Page 66: VHDL FINAL[1].docx

Port (a,b: in std_logic;

c: out std_logic);

end component;

signal e1,e2,e3,e4,e5,e6,e7,e8,e9,e10: std_logic;

signal f1,f2,f3,d0,d1,d2,d3: std_logic;

begin

n1:nand2 port map (load,load,e1);

n2:nand2 port map (e1,p(2),e2);

n3:nand2 port map (e2,e3,e4);

n4:nand2 port map (load,f3,e3);

n5:nand2 port map (p(1),e1,e5);

n6:nand2 port map (load,f2,e6);

n7:nand2 port map (e5,e6,e7);

n8:nand2 port map (p(0),e1,e8);

n9:nand2 port map (load,f1,e9);

n10:nand2 port map (e8,e9,e10);

s1:d_ff port map( p(3),clk,f3,d3);

s2:d_ff port map(e4, clk,f2,d2);

s3:d_ff port map(e7, clk,f1,d1);

s4:d_ff port map(e10, clk, so,d0);

end structural;

library IEEE;

Use IEEE.STD_LOGIC_1164.All;

Page 67: VHDL FINAL[1].docx

entity d_ff is

Port (d : in std_logic;

clk : in std_logic;

q : buffer std_logic;

qbar : buffer std_logic);

end d_ff;

architecture d_ff of d_ff is

begin

Process (d,clk)

Begin

if (clk'event and clk ='1')then

if(d='0')then

q<='0';

qbar<='1';

else

q<='1';

qbar<='0';

end if;

else

q<=q;

qbar<= qbar;

end if;

end process;

Page 68: VHDL FINAL[1].docx

end d_ff;

library IEEE;

Use IEEE.STD_LOGIC_1164.All;

entity nand2 is

Port (a,b: in std_logic;

c: out std_logic);

end nand2;

architecture nand2 of nand2 is

begin

c<= a nand b;

end nand2;

Output Waveform:

Page 69: VHDL FINAL[1].docx

EXPERIMENT-30

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT AN SIPO SHIFT REGISTER WITH DATAFLOW .

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use ieee.std_logic_1164.all;

entity sipo is

port(si,clk:in bit;

po:out bit_vector(3 downto 0));

end entity;

architecture sipo_beh of sipo is

signal temp:bit_vector(3 downto 0);

begin

temp<="0000" when clk='1' and(not clk'stable) else

si & temp(3 downto 1);

po<=temp;

end architecture;

Page 70: VHDL FINAL[1].docx

Output Waveform:

Page 71: VHDL FINAL[1].docx

EXPERIMENT-31

AIM: WRITE a VHDL PROGRAM for MOD 10 COUNTER USING STRUCTURAL MODELLING.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity decade_entity is

port(

count : in bit;

z : buffer bit_vector(0 to 3)

);

end decade_entity;

architecture decade_architecture of decade_entity is

component jk_ff is

port(j,k,ck:in bit;q,nq:buffer bit);

end component;

component and2 is

port(a,b:in bit;o:out bit);

end component;

signal s1,s2:bit;

begin

Page 72: VHDL FINAL[1].docx

jk1: jk_ff port map('1','1',count,z(0),open);

jk2: jk_ff port map('1',s2,z(0),z(1),open);

jk3: jk_ff port map('1','1',z(1),z(2),open);

jk4: jk_ff port map(s1,'1',z(0),z(3),s2);

A1: and2 port map(z(2),z(1),s1);

end decade_architecture;

library ieee;

use ieee.std_logic_1164.all;

entity and2 is

port(a,b:in bit;o:out bit);

end and2;

architecture and2 of and2 is

begin

o<=a and b;

end and2;

library ieee;

use ieee.std_logic_1164.all;

entity jk_ff is

Page 73: VHDL FINAL[1].docx

port(j,k,clk:in std_logic;q,nq,z:inout std_logic);

end jk_ff;

architecture jk_ff of jk_ff is

begin

process(clk)

begin

if clk='1' then

z<=(j and (not q)) or ((not k) and q);

q<=z after 5ns;

nq<=not z after 5ns;

end if;

end process;

end jk_ff;

Output Waveform:

Page 74: VHDL FINAL[1].docx

EXPERIMENT-32

AIM: WRITE a VHDL PROGRAM TO IMPLEMENT BINARY TO GRAY CONVERTER WITH DATAFLOW.

AZIZ PRADHAN

67

MTECH 1st SEM (E.C.E.)

library ieee;

use ieee.std_logic_1164.all;

entity b2g is

port(b:in std_logic_vector(3 downto 0);

g:out std_logic_vector(3 downto 0));

end b2g;

architecture b2g_beh of b2g is

begin

process(b)

begin

g(0)<=b(0)xor b(1);

g(1)<=b(1)xor b(2);

g(2)<=b(2)xor b(3);

g(3)<=b(3);

end process;

end architecture;

Page 75: VHDL FINAL[1].docx

Output Waveform:


Recommended