Experiment-1: Aim: Program of VHDL To Study The Not Gate

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 75

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\;

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;

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; );

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:

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);

when"111"=> o <=a(7); when others => o <='0'; end case; end process; end muxbody; Output waveform:

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;

Output Waveform:

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";

elsif i(1)='1' then o<="001"; else o<="000"; end if; end process; end encoder;

Output:- Waveform:

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;

end if; end if; end process; O<=temp; end dec_beh; Output:- Waveform:

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

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:

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;

Output:- Waveform:

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\;

O/P waveform:

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;

Output Waveform:

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);

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:

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

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:

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);

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);

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

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);

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

begin

o6<=a6 xnor b6; end xnor2;

OUTPUT WAVEFORM:

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;\

Output Waveform:

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;

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

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

begin

m<= not l; end inv2; Output Waveform:

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;

OUTPUT WAVEFORM:

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;

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;

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:

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);

end process;

end FULL_ADDER_ARCHITECTURE;

OUTPUT WAVEFORM:

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;

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

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

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

end or3; OUTPUT WAVEFORM:

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;

OUTPUT WAVEFORM:

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;

Output Waveform:

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

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:-

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;

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:

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;

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;

end if; end process; end d_ff;

Output Waveform:

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;

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);

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:

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);

end piso_architecture; Output Waveform:

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

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;

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;

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:

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;

Output Waveform:

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

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

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:

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;

Output Waveform:

You might also like