SlideShare a Scribd company logo
Q 1:– Design All Logical Gates Using VHDL.

Solution: -

AND Gate:-
                                                     Source Code: -

--------------------------------------------------

-- AND gate

-- two descriptions provided

--------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------------------

entity AND_ent is

port(        x: in std_logic;

             y: in std_logic;

             F: out std_logic

);

end AND_ent;

--------------------------------------------------

architecture AND_behav1 of AND_ent is

begin

     process(x, y)

     begin

       -- compare to truth table

       if ((x='1') and (y='1')) then

               F <= '1';

             else

               F <= '0';

             end if;

     end process;
end behav1;

architecture AND_behav2 of AND_ent is

begin

     F <= x and y;

end behav2;

                                         Sample Waveform Output: -




OR Gate:-
                                              Source Code: -

--------------------------------------

-- OR gate

--

-- two descriptions provided

--------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------

entity OR_ent is

port(      x: in std_logic;

           y: in std_logic;

           F: out std_logic
);

end OR_ent;

---------------------------------------

architecture OR_arch of OR_ent is

begin

     process(x, y)

           begin

                -- compare to truth table

                if ((x='0') and (y='0')) then

                     F <= '0';

                     else

                     F <= '1';

                     end if;

           end process;

end OR_arch;

architecture OR_beh of OR_ent is

begin

     F <= x or y;

end OR_beh;

                                                Sample Waveform Output: -




NOT Gate:-
                                                     Source Code: -
--------------------------------------

-- NOT gate

--

-- two descriptions provided

--------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------

entity NOT_ent is

port(      x: in std_logic;

           F: out std_logic

);

end NOT_ent;

---------------------------------------

architecture NOT_arch of NOT_ent is

begin

     F <= not x;

end NOT_beh;

                                          Sample Waveform Output: -




NAND Gate:-
Source Code: -

-----------------------------------------

-- NAND gate

--

-- two descriptions provided

-----------------------------------------

library ieee;

use ieee.std_logic_1164.all;

------------------------------------------

entity NAND_ent is

port(        x: in std_logic;

             y: in std_logic;

             F: out std_logic

);

end NAND_ent;

------------------------------------------

architecture behv1 of NAND_ent is

begin

     process(x, y)

     begin

       -- compare to truth table

       if (x='1' and y='1') then

               F <= '0';

             else

               F <= '1';

             end if;

     end process;

end behv1;
-----------------------------------------

architecture behv2 of NAND_ent is

begin

          F <= x nand y;

end behv2;

                                            Sample Waveform Output: -




NOR Gate:-
                                                 Source Code: -

-----------------------------------------

-- NOR gate

--

-- two descriptions provided

-----------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-----------------------------------------

entity NOR_ent is

port(     x: in std_logic;

          y: in std_logic;

          F: out std_logic

);
end NOR_ent;

------------------------------------------

architecture behv1 of NOR_ent is

begin

  process(x, y)

  begin

     -- compare to truth table

          if (x='0' and y='0') then

        F <= '1';

          else

             F <= '0';

          end if;

  end process;

end behv1;

architecture behv2 of NOR_ent is

begin

  F <= x nor y;

end behv2;

                                             Sample Waveform Output: -




XOR Gate:-
Source Code: -

--------------------------------------

-- XOR gate

--

-- two descriptions provided

--------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------

entity XOR_ent is

port(        x: in std_logic;

             y: in std_logic;

             F: out std_logic

);

end XOR_ent;



--------------------------------------

architecture behv1 of XOR_ent is

begin

     process(x, y)

     begin

       -- compare to truth table

             if (x/=y) then

         F <= '1';

             else

               F <= '0';

             end if;

     end process;
end behv1;

architecture behv2 of XOR_ent is

begin

     F <= x xor y;

end behv2;

                                         Sample Waveform Output: -




XNOR Gate:-
                                              Source Code: -

--------------------------------------

-- XOR gate

--

-- two descriptions provided

--------------------------------------

library ieee;

use ieee.std_logic_1164.all;

--------------------------------------

entity XNOR_ent is

port(      x: in std_logic;

           y: in std_logic;

           F: out std_logic
);

end XNOR_ent;

---------------------------------------

architecture behv1 of XNOR_ent is

begin

     process(x, y)

     begin

       -- compare to truth table

       if (x/=y) then

               F <= '0';

             else

               F <= '1';

             end if;

     end process;

end behv1;

architecture behv2 of XNOR_ent is

begin

     F <= x xnor y;

end behv2;

---------------------------------------

                                          Sample Waveform Output: -
Q 2:– Write VHDL Programs for the following and check simulation –
1. Half Adder
2. Full Adder

Solution: -

Half Adder:-
                                         Source Code: -
-- =============================================================================
-- file name is : ha (ha=half adder)
-- Author       : Soumya
-- =============================================================================
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.ALL;

entity ha is
   port (X           : in std_logic;
         Y           : in std_logic;
         Z           : out std_logic; -- sum out of X+Y
         C           : out std_logic -- carry out from X+Y
        );
end ha;
-- =============================================================================
-- =============================================================================
architecture rtl of ha is
-- =============================================================================
begin
   Z <= (X XOR Y);
   C <= X AND Y;    -- the logical operator "AND" and "XOR" is defined in VHDL.
end rtl;
                                  Sample Waveform Output: -




Full Adder:-
                                         Source Code: -
--   =============================================================================
--   file name is : fa (fa=full adder)
--   Author       : Soumya
--   =============================================================================
library ieee;
use ieee.std_logic_1164.ALL;       -- can be different dependent on tool used.
use ieee.std_logic_unsigned.ALL;   -- can be different dependent on tool used.

entity fa is
   port (a           : in std_logic;
         b           : in std_logic;
         c_in        : in std_logic;
         sum         : out std_logic; -- sum out of X+Y
         c_out       : out std_logic -- carry out
        );
end fa;
-- =============================================================================
-- =============================================================================
architecture rtl of fa is
              -- Define internal signals
  signal sum_low : std_logic;
  signal c_low   : std_logic;
  signal c_high : std_logic;

              -- Define the entity of the half adder to instansiate
component ha -- "ha" must be same name as used in the entity for the file
   port (X           : in std_logic;
         Y           : in std_logic;
         Z           : out std_logic; -- sum out of X+Y
         C           : out std_logic -- carry out
        );
end component;   --------- end of entity for ha ----------
-- =============================================================================
begin

ha_low : ha
   port map (
   -- ha-side      fa-side
         X    =>    a,
         Y    =>    b,
         Z    =>    sum_low,
         C    =>    c_low
    );           --------- end of port map for "ha_low" ----------

ha_high : ha
   port map (
   -- ha-side      fa-side
         X    =>    sum_low,
         Y    =>    c_in,
         Z    =>    sum,
         C    =>    c_high
    );           --------- end of port map for "ha_high" ----------

  c_out <= (c_low OR c_high);

end rtl;
Sample Waveform Output: -
Q 3:– Write VHDL Programs for the following and check simulation –
1. Multiplexer
2. Demultiplexer

Solution: -

Multiplexer (4 X 1):-
                                                        Source Code: -

-------------------------------------------------

-- VHDL code for 4:1 multiplexor

-- Multiplexor is a device to select different

-- inputs to outputs. we use 3 bits vector to

-- describe its I/O ports

-------------------------------------------------

library ieee;

use ieee.std_logic_1164.all;

-------------------------------------------------

entity Mux is

port(        I3:     in std_logic_vector(2 downto 0);

             I2:     in std_logic_vector(2 downto 0);

             I1:     in std_logic_vector(2 downto 0);

             I0:     in std_logic_vector(2 downto 0);

             S:      in std_logic_vector(1 downto 0);

             O:      out std_logic_vector(2 downto 0)

);

end Mux;

-------------------------------------------------

architecture behv1 of Mux is

begin

     process(I3,I2,I1,I0,S)

     begin
-- use case statement

    case S is

          when "00" => O <= I0;

          when "01" => O <= I1;

          when "10" => O <= I2;

          when "11" => O <= I3;

          when others =>          O <= "ZZZ";

        end case;

  end process;

end behv1;

architecture behv2 of Mux is

begin

  -- use when.. else statement

  O <= I0 when S="00" else

                 I1 when S="01" else

                 I2 when S="10" else

                 I3 when S="11" else

                 "ZZZ";

end behv2;

                                            Sample Waveform Output: -
Demultiplexer (1 X 4):-
                                                           Source Code: -

library ieee;

use ieee.std_logic_1164.all;

entity Demux_4_to_1 is

     port(     E : in std_logic; -- the signal source

         S0, S1 : in std_logic; -- the selector switches

     D0, D1, D2, D3 : out std_logic);-- the output data lines

end Demux_4_to_1;

--

architecture Func of Demux_4_to_1 is

     component andGate is              --import AND Gate entity

      port(         A, B, C : in std_logic;

              F : out std_logic);

     end component;

     component notGate is            --import NOT Gate entity

      port( inPort : in std_logic;

         outPort : out std_logic);
end component;

  signal invOut0, invOut1 : std_logic;

begin

  --Just like the real circuit, there are

  --four components: G1 to G4

  GI1: notGate port map(S0, invOut0);

  GI2: notGate port map(S1, invOut1);

  GA1: andGate port map(E, invOut1, invOut0, D0); -- D0

  GA2: andGate port map(E, S0, invOut1, D1);                   -- D1

  GA3: andGate port map(E, invOut0, S1, D2);                   -- D2

  GA4: andGate port map(E, S0, S1, D3);                    -- D3

end Func;

---------------------------------------------------------END

---------------------------------------------------------END

                                                      Sample Waveform Output: -
Q 4:– Write VHDL Programs for the following and check simulation –
1. Decoder
2. Encoder

Solution: -

DECODER (2 to 4 line):-
                                                    Source Code: -

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity decoder is

port( input : in std_logic_vector(2 downto 0); --3 bit input

      output : out std_logic_vector(7 downto 0) -- 8 bit ouput

 );

end decoder;

architecture arch of decoder is

begin

output(0) <= (not input(2)) and (not input(1)) and (not input(0));

output(1) <= (not input(2)) and (not input(1)) and input(0);

output(2) <= (not input(2)) and input(1) and (not input(0));

output(3) <= (not input(2)) and input(1) and input(0);

output(4) <= input(2) and (not input(1)) and (not input(0));

output(5) <= input(2) and (not input(1)) and input(0);

output(6) <= input(2) and input(1) and (not input(0));

output(7) <= input(2) and input(1) and input(0);

end arch;

                                            Sample Waveform Output: -
ENCODER (4 Input Priority Encoder):-
                                                  Source Code: -

library ieee;

use ieee.std_logic_1164.all;

entity Encoder_8x3 is

port(d0,d1,d2,d3,d4,d5,d6,d7:in std_logic;

a0,a1,a2:out std_logic);

end Encoder_8x3;

architecture arch of Encoder_8x3 is

begin

a2<= d4 or d5 or d6 or d7;

a1<= d2 or d3 or d6 or d7;

a0<= d1 or d3 or d5 or d7;

end arch;

                                             Sample Waveform Output: -
Dsd lab Practical File
Q 5:– Write a VHDL Program for a Comparator and check the simulation.

Solution: -

COMPARATOR:-
                                             Source Code: -

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

USE ieee.std_logic_arith.all ;

ENTITY compare IS

PORT ( A, B : IN SIGNED(3 DOWNTO 0) ;

AeqB, AgtB, AltB : OUT STD_LOGIC ) ;

END compare ;

ARCHITECTURE Behavior OF compare IS

BEGIN

AeqB <= '1' WHEN A = B ELSE '0' ;

AgtB <= '1' WHEN A > B ELSE '0' ;

AltB <= '1' WHEN A < B ELSE '0' ;

END Behavior ;

                                        Sample Waveform Output: -
Q 6:– Write a VHDL Program for a Code Convertor and check the simulation.

Solution: -

BCD to BINARY CODE CONVERTOR:-
                                                Source Code: -
library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity BCD2BIN is

  Port ( bcd : in STD_LOGIC_VECTOR (4 downto 0);

      binary : out STD_LOGIC_VECTOR (3 downto 0));

end BCD2BIN;

architecture Behavioral of BCD2BIN is

        begin

                process (bcd)

                       begin

                                case bcd is

                                              when "00000" => binary <= "0000";

                                              when "00001" => binary <= "0001";

                                              when "00010" => binary <= "0010";

                                              when "00011" => binary <= "0011";

                                              when "00100" => binary <= "0100";

                                              when "00101" => binary <= "0101";

                                              when "00110" => binary <= "0110";

                                              when "00111" => binary <= "0111";

                                              when "01000" => binary <= "1000";

                                              when "01001" => binary <= "1001";

                                              when "10000" => binary <= "1010";

                                              when "10001" => binary <= "1011";

                                              when "10010" => binary <= "1100";

                                              when "10011" => binary <= "1101";

                                              when "10100" => binary <= "1110";

                                              when "10101" => binary <= "1111";
when others => binary <= "XXXX";

                                 end case;

                  end process;

end Behavioral;

                                             Sample Waveform Output: -
Q 7:– Write a VHDL Program for a Flip-Flop and check the simulation.

Solution: -

JK FLIP FLOP:-
                                              Source Code: -
library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity jk is

  Port ( J : in STD_LOGIC;

        K : in STD_LOGIC;

        clock : in STD_LOGIC;

        reset : in STD_LOGIC;

        Q : out STD_LOGIC;

        Qbar : out STD_LOGIC);

end jk;

architecture Behavioral of jk is

signal state: std_logic;

signal input: std_logic_vector(1 downto 0);

begin

input <= J & K;

p: process(clock, reset) is

begin

if (reset='1') then

state <= '0';

elsif (rising_edge(clock)) then

case (input) is

when "11" =>

state <= not state;

when "10" =>

state <= '1';

when "01" =>

state <= '0';
when others =>

null;

end case;

end if;

end process;

Q <= state;

Qbar <= not state;

end Behavioral;
                     Sample Waveform Output: -
Q 8:– Write a VHDL Program for a Counter and check the simulation.

Solution: -

N BIT COUNTER:-
                                               Source Code: -
----------------------------------------------------
-- VHDL code for n-bit counter
--
-- this is the behavior description of n-bit counter
-- another way can be used is FSM model.
----------------------------------------------------
library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
----------------------------------------------------
entity counter is
generic(n: natural :=2);
port( clock: in std_logic;
         clear: in std_logic;
         count: in std_logic;
         Q:       out std_logic_vector(n-1 downto 0)
);
end counter;
----------------------------------------------------
architecture behv of counter is
    signal Pre_Q: std_logic_vector(n-1 downto 0);
begin
    -- behavior describe the counter
    process(clock, count, clear)
    begin
         if clear = '1' then
             Pre_Q <= Pre_Q - Pre_Q;
         elsif (clock='1' and clock'event) then
             if count = '1' then
                  Pre_Q <= Pre_Q + 1;
             end if;
         end if;
    end process;
    -- concurrent assignment statement
    Q <= Pre_Q;
end behv;
                                                Sample Waveform Output: -
Dsd lab Practical File
Q 9:– Write VHDL Programs for the following and check simulation –
1. Register
2. Shift Register

Solution: -

N-Bit Register:-
                                                       Source Code: -
---------------------------------------------------
-- n-bit Register (ESD book figure 2.6)
--
-- KEY WORD: concurrent, generic and range
---------------------------------------------------

library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

---------------------------------------------------

entity reg is

generic(n: natural :=2);
port( I:      in std_logic_vector(n-1 downto 0);
      clock: in std_logic;
      load: in std_logic;
      clear: in std_logic;
      Q:      out std_logic_vector(n-1 downto 0)
);
end reg;

----------------------------------------------------

architecture behv of reg is

   signal Q_tmp: std_logic_vector(n-1 downto 0);

begin

   process(I, clock, load, clear)
   begin

         if clear = '0' then
          -- use 'range in signal assigment
          Q_tmp <= (Q_tmp'range => '0');
         elsif (clock='1' and clock'event) then
             if load = '1' then
                   Q_tmp <= I;
             end if;
         end if;

   end process;
-- concurrent statement
   Q <= Q_tmp;

end behv;

---------------------------------------------------
                                                Sample Waveform Output: -




3-Bit Shift Register:-
                                                      Source Code: -
---------------------------------------------------
-- 3-bit Shift-Register/Shifter
--
-- reset is ignored according to the figure
---------------------------------------------------

library ieee ;
use ieee.std_logic_1164.all;

---------------------------------------------------

entity shift_reg is
port( I:                   in std_logic;
        clock:             in std_logic;
        shift:             in std_logic;
        Q:                 out std_logic
);
end shift_reg;

---------------------------------------------------

architecture behv of shift_reg is

   -- initialize the declared signal
   signal S: std_logic_vector(2 downto 0):="111";

begin
process(I, clock, shift, S)
  begin

      -- everything happens upon the clock changing
      if clock'event and clock='1' then
          if shift = '1' then
               S <= I & S(2 downto 1);
          end if;
      end if;

  end process;

  -- concurrent assignment
  Q <= S(0);

end behv;

                                  Sample Waveform Output: -
PRACTICAL FILE




        DIGITAL SYSTEM
          DESIGN LAB
                    Softwares Used – 1. Xilinx 13.4
                         2. ActiveHDL 7.2 SE




Submitted To:-                                        Submitted By:-
Mr. Manoj Ahlawat                                     Soumya S. Behera
Asst. Professor                                       1826
                                                      6th Semester, CSE
                                                      UIET, Mdu, Rohtak

More Related Content

PPTX
VERILOG HDL :: Blocking & NON- Blocking assignments
PPT
8251 universal synchronous asynchronous receiver transmitter
PPT
PDF
Lec 07 - ANALYSIS OF CLOCKED SEQUENTIAL CIRCUITS
PDF
Designing of 8 BIT Arithmetic and Logical Unit and implementing on Xilinx Ver...
PPTX
ARM Exception and interrupts
PPTX
VLSI Design Methodologies
PPTX
Synthesis
VERILOG HDL :: Blocking & NON- Blocking assignments
8251 universal synchronous asynchronous receiver transmitter
Lec 07 - ANALYSIS OF CLOCKED SEQUENTIAL CIRCUITS
Designing of 8 BIT Arithmetic and Logical Unit and implementing on Xilinx Ver...
ARM Exception and interrupts
VLSI Design Methodologies
Synthesis

What's hot (20)

PPT
DOMINO LOGIC CIRCUIT (VLSI)
PPTX
Vhdl programming
PDF
VLSI Fresher Resume
PDF
Online auditorium booking system project report.pdf
PDF
15.project attendence managemnt system
PDF
VLSI lab manual
PPT
Programmable logic devices
PPTX
ASIP (Application-specific instruction-set processor)
PDF
Verilog lab manual (ECAD and VLSI Lab)
DOCX
Basic simulation lab manual1
PPTX
Introduction to arm processor
PPT
ASIC VS FPGA.ppt
PPTX
Stick Diagram
PPT
CPLD & FPLD
DOCX
UNIT-III-DIGITAL SYSTEM DESIGN
PPTX
Lect 7: Verilog Behavioral model for Absolute Beginners
PDF
Writing Cadence Ocean scripts
PPTX
SEQUENTIAL LOGIC CIRCUITS (FLIP FLOPS AND LATCHES)
PPTX
Protected mode memory addressing 8086
PPTX
System partitioning in VLSI and its considerations
DOMINO LOGIC CIRCUIT (VLSI)
Vhdl programming
VLSI Fresher Resume
Online auditorium booking system project report.pdf
15.project attendence managemnt system
VLSI lab manual
Programmable logic devices
ASIP (Application-specific instruction-set processor)
Verilog lab manual (ECAD and VLSI Lab)
Basic simulation lab manual1
Introduction to arm processor
ASIC VS FPGA.ppt
Stick Diagram
CPLD & FPLD
UNIT-III-DIGITAL SYSTEM DESIGN
Lect 7: Verilog Behavioral model for Absolute Beginners
Writing Cadence Ocean scripts
SEQUENTIAL LOGIC CIRCUITS (FLIP FLOPS AND LATCHES)
Protected mode memory addressing 8086
System partitioning in VLSI and its considerations
Ad

Viewers also liked (20)

PDF
Computer Networking Lab File
PDF
Modeling and Simulation Lab Manual ME PED
PDF
C n practical file
DOCX
Computer Networks Lab File
DOC
Network lab manual
PDF
Programs of VHDL
PDF
Elearning v.0.0
PDF
Talent Gradient Construction Based on Competency
PPTX
Corporate Image Consulting
PDF
Immigration, Women, and Children: Part II – Sample Situations
PDF
A guide to prayer
PDF
8 habits of highly effective language learners
PDF
Qtp important frameworks
PPTX
PDF
PPTX
BDPA LA: Google Sites
DOCX
Rescue1.asd
PDF
WASH United India | Fellowships | Round 2
PPT
스타토토⊙o⊙Wifi89,cOm(카톡: XaZa⊙o⊙ 실시간토토 실 시간배팅
Computer Networking Lab File
Modeling and Simulation Lab Manual ME PED
C n practical file
Computer Networks Lab File
Network lab manual
Programs of VHDL
Elearning v.0.0
Talent Gradient Construction Based on Competency
Corporate Image Consulting
Immigration, Women, and Children: Part II – Sample Situations
A guide to prayer
8 habits of highly effective language learners
Qtp important frameworks
BDPA LA: Google Sites
Rescue1.asd
WASH United India | Fellowships | Round 2
스타토토⊙o⊙Wifi89,cOm(카톡: XaZa⊙o⊙ 실시간토토 실 시간배팅
Ad

Similar to Dsd lab Practical File (20)

PDF
Dsdlab 120528004329-phpapp01
DOCX
PPTX
Session1
DOC
Ecet 340 Motivated Minds/newtonhelp.com
DOC
Ecet 340 Extraordinary Success/newtonhelp.com
DOC
Ecet 340 Your world/newtonhelp.com
DOC
Ecet 340 Education is Power/newtonhelp.com
TXT
Loopback.vhd
PDF
Kernel Recipes 2013 - Deciphering Oopsies
PDF
Unix executable buffer overflow
PDF
Laboratory Report Sample
PDF
Hspice tut
PDF
MySQL 5.5 Guide to InnoDB Status
PDF
Experiment write-vhdl-code-for-realize-all-logic-gates
PDF
Exploring the x64
PDF
A whirlwind tour of the LLVM optimizer
PDF
1-300-206 (SENSS)=Firewall (642-618)
DOCX
Real Time Clock Interfacing with FPGA
PPT
W8_2: Inside the UoS Educational Processor
KEY
Why I &lt;3 Laravel 4
Dsdlab 120528004329-phpapp01
Session1
Ecet 340 Motivated Minds/newtonhelp.com
Ecet 340 Extraordinary Success/newtonhelp.com
Ecet 340 Your world/newtonhelp.com
Ecet 340 Education is Power/newtonhelp.com
Loopback.vhd
Kernel Recipes 2013 - Deciphering Oopsies
Unix executable buffer overflow
Laboratory Report Sample
Hspice tut
MySQL 5.5 Guide to InnoDB Status
Experiment write-vhdl-code-for-realize-all-logic-gates
Exploring the x64
A whirlwind tour of the LLVM optimizer
1-300-206 (SENSS)=Firewall (642-618)
Real Time Clock Interfacing with FPGA
W8_2: Inside the UoS Educational Processor
Why I &lt;3 Laravel 4

More from Soumya Behera (11)

PDF
Lead Designer Credential
PDF
Appian Designer Credential Certificate
PDF
Credential for Soumya Behera1
PDF
Visual programming lab
PDF
Computer network
PDF
Cn assignment
DOC
Matlab file
PDF
Advanced Java Practical File
PPTX
School management system
PDF
Sam wd programs
PDF
Unix practical file
Lead Designer Credential
Appian Designer Credential Certificate
Credential for Soumya Behera1
Visual programming lab
Computer network
Cn assignment
Matlab file
Advanced Java Practical File
School management system
Sam wd programs
Unix practical file

Recently uploaded (20)

PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
Lesson notes of climatology university.
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
01-Introduction-to-Information-Management.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Basic Mud Logging Guide for educational purpose
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
2.FourierTransform-ShortQuestionswithAnswers.pdf
Anesthesia in Laparoscopic Surgery in India
Renaissance Architecture: A Journey from Faith to Humanism
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
VCE English Exam - Section C Student Revision Booklet
human mycosis Human fungal infections are called human mycosis..pptx
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Lesson notes of climatology university.
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPH.pptx obstetrics and gynecology in nursing
Supply Chain Operations Speaking Notes -ICLT Program
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
01-Introduction-to-Information-Management.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
Basic Mud Logging Guide for educational purpose

Dsd lab Practical File

  • 1. Q 1:– Design All Logical Gates Using VHDL. Solution: - AND Gate:- Source Code: - -------------------------------------------------- -- AND gate -- two descriptions provided -------------------------------------------------- library ieee; use ieee.std_logic_1164.all; -------------------------------------------------- entity AND_ent is port( x: in std_logic; y: in std_logic; F: out std_logic ); end AND_ent; -------------------------------------------------- architecture AND_behav1 of AND_ent is begin process(x, y) begin -- compare to truth table if ((x='1') and (y='1')) then F <= '1'; else F <= '0'; end if; end process;
  • 2. end behav1; architecture AND_behav2 of AND_ent is begin F <= x and y; end behav2; Sample Waveform Output: - OR Gate:- Source Code: - -------------------------------------- -- OR gate -- -- two descriptions provided -------------------------------------- library ieee; use ieee.std_logic_1164.all; -------------------------------------- entity OR_ent is port( x: in std_logic; y: in std_logic; F: out std_logic
  • 3. ); end OR_ent; --------------------------------------- architecture OR_arch of OR_ent is begin process(x, y) begin -- compare to truth table if ((x='0') and (y='0')) then F <= '0'; else F <= '1'; end if; end process; end OR_arch; architecture OR_beh of OR_ent is begin F <= x or y; end OR_beh; Sample Waveform Output: - NOT Gate:- Source Code: -
  • 4. -------------------------------------- -- NOT gate -- -- two descriptions provided -------------------------------------- library ieee; use ieee.std_logic_1164.all; -------------------------------------- entity NOT_ent is port( x: in std_logic; F: out std_logic ); end NOT_ent; --------------------------------------- architecture NOT_arch of NOT_ent is begin F <= not x; end NOT_beh; Sample Waveform Output: - NAND Gate:-
  • 5. Source Code: - ----------------------------------------- -- NAND gate -- -- two descriptions provided ----------------------------------------- library ieee; use ieee.std_logic_1164.all; ------------------------------------------ entity NAND_ent is port( x: in std_logic; y: in std_logic; F: out std_logic ); end NAND_ent; ------------------------------------------ architecture behv1 of NAND_ent is begin process(x, y) begin -- compare to truth table if (x='1' and y='1') then F <= '0'; else F <= '1'; end if; end process; end behv1;
  • 6. ----------------------------------------- architecture behv2 of NAND_ent is begin F <= x nand y; end behv2; Sample Waveform Output: - NOR Gate:- Source Code: - ----------------------------------------- -- NOR gate -- -- two descriptions provided ----------------------------------------- library ieee; use ieee.std_logic_1164.all; ----------------------------------------- entity NOR_ent is port( x: in std_logic; y: in std_logic; F: out std_logic );
  • 7. end NOR_ent; ------------------------------------------ architecture behv1 of NOR_ent is begin process(x, y) begin -- compare to truth table if (x='0' and y='0') then F <= '1'; else F <= '0'; end if; end process; end behv1; architecture behv2 of NOR_ent is begin F <= x nor y; end behv2; Sample Waveform Output: - XOR Gate:-
  • 8. Source Code: - -------------------------------------- -- XOR gate -- -- two descriptions provided -------------------------------------- library ieee; use ieee.std_logic_1164.all; -------------------------------------- entity XOR_ent is port( x: in std_logic; y: in std_logic; F: out std_logic ); end XOR_ent; -------------------------------------- architecture behv1 of XOR_ent is begin process(x, y) begin -- compare to truth table if (x/=y) then F <= '1'; else F <= '0'; end if; end process;
  • 9. end behv1; architecture behv2 of XOR_ent is begin F <= x xor y; end behv2; Sample Waveform Output: - XNOR Gate:- Source Code: - -------------------------------------- -- XOR gate -- -- two descriptions provided -------------------------------------- library ieee; use ieee.std_logic_1164.all; -------------------------------------- entity XNOR_ent is port( x: in std_logic; y: in std_logic; F: out std_logic
  • 10. ); end XNOR_ent; --------------------------------------- architecture behv1 of XNOR_ent is begin process(x, y) begin -- compare to truth table if (x/=y) then F <= '0'; else F <= '1'; end if; end process; end behv1; architecture behv2 of XNOR_ent is begin F <= x xnor y; end behv2; --------------------------------------- Sample Waveform Output: -
  • 11. Q 2:– Write VHDL Programs for the following and check simulation – 1. Half Adder 2. Full Adder Solution: - Half Adder:- Source Code: - -- ============================================================================= -- file name is : ha (ha=half adder) -- Author : Soumya -- ============================================================================= library ieee; use ieee.std_logic_1164.ALL; use ieee.std_logic_unsigned.ALL; entity ha is port (X : in std_logic; Y : in std_logic; Z : out std_logic; -- sum out of X+Y C : out std_logic -- carry out from X+Y ); end ha; -- ============================================================================= -- ============================================================================= architecture rtl of ha is -- ============================================================================= begin Z <= (X XOR Y); C <= X AND Y; -- the logical operator "AND" and "XOR" is defined in VHDL. end rtl; Sample Waveform Output: - Full Adder:- Source Code: - -- ============================================================================= -- file name is : fa (fa=full adder) -- Author : Soumya -- =============================================================================
  • 12. library ieee; use ieee.std_logic_1164.ALL; -- can be different dependent on tool used. use ieee.std_logic_unsigned.ALL; -- can be different dependent on tool used. entity fa is port (a : in std_logic; b : in std_logic; c_in : in std_logic; sum : out std_logic; -- sum out of X+Y c_out : out std_logic -- carry out ); end fa; -- ============================================================================= -- ============================================================================= architecture rtl of fa is -- Define internal signals signal sum_low : std_logic; signal c_low : std_logic; signal c_high : std_logic; -- Define the entity of the half adder to instansiate component ha -- "ha" must be same name as used in the entity for the file port (X : in std_logic; Y : in std_logic; Z : out std_logic; -- sum out of X+Y C : out std_logic -- carry out ); end component; --------- end of entity for ha ---------- -- ============================================================================= begin ha_low : ha port map ( -- ha-side fa-side X => a, Y => b, Z => sum_low, C => c_low ); --------- end of port map for "ha_low" ---------- ha_high : ha port map ( -- ha-side fa-side X => sum_low, Y => c_in, Z => sum, C => c_high ); --------- end of port map for "ha_high" ---------- c_out <= (c_low OR c_high); end rtl;
  • 14. Q 3:– Write VHDL Programs for the following and check simulation – 1. Multiplexer 2. Demultiplexer Solution: - Multiplexer (4 X 1):- Source Code: - ------------------------------------------------- -- VHDL code for 4:1 multiplexor -- Multiplexor is a device to select different -- inputs to outputs. we use 3 bits vector to -- describe its I/O ports ------------------------------------------------- library ieee; use ieee.std_logic_1164.all; ------------------------------------------------- entity Mux is port( I3: in std_logic_vector(2 downto 0); I2: in std_logic_vector(2 downto 0); I1: in std_logic_vector(2 downto 0); I0: in std_logic_vector(2 downto 0); S: in std_logic_vector(1 downto 0); O: out std_logic_vector(2 downto 0) ); end Mux; ------------------------------------------------- architecture behv1 of Mux is begin process(I3,I2,I1,I0,S) begin
  • 15. -- use case statement case S is when "00" => O <= I0; when "01" => O <= I1; when "10" => O <= I2; when "11" => O <= I3; when others => O <= "ZZZ"; end case; end process; end behv1; architecture behv2 of Mux is begin -- use when.. else statement O <= I0 when S="00" else I1 when S="01" else I2 when S="10" else I3 when S="11" else "ZZZ"; end behv2; Sample Waveform Output: -
  • 16. Demultiplexer (1 X 4):- Source Code: - library ieee; use ieee.std_logic_1164.all; entity Demux_4_to_1 is port( E : in std_logic; -- the signal source S0, S1 : in std_logic; -- the selector switches D0, D1, D2, D3 : out std_logic);-- the output data lines end Demux_4_to_1; -- architecture Func of Demux_4_to_1 is component andGate is --import AND Gate entity port( A, B, C : in std_logic; F : out std_logic); end component; component notGate is --import NOT Gate entity port( inPort : in std_logic; outPort : out std_logic);
  • 17. end component; signal invOut0, invOut1 : std_logic; begin --Just like the real circuit, there are --four components: G1 to G4 GI1: notGate port map(S0, invOut0); GI2: notGate port map(S1, invOut1); GA1: andGate port map(E, invOut1, invOut0, D0); -- D0 GA2: andGate port map(E, S0, invOut1, D1); -- D1 GA3: andGate port map(E, invOut0, S1, D2); -- D2 GA4: andGate port map(E, S0, S1, D3); -- D3 end Func; ---------------------------------------------------------END ---------------------------------------------------------END Sample Waveform Output: -
  • 18. Q 4:– Write VHDL Programs for the following and check simulation – 1. Decoder 2. Encoder Solution: - DECODER (2 to 4 line):- Source Code: - library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity decoder is port( input : in std_logic_vector(2 downto 0); --3 bit input output : out std_logic_vector(7 downto 0) -- 8 bit ouput ); end decoder; architecture arch of decoder is begin output(0) <= (not input(2)) and (not input(1)) and (not input(0)); output(1) <= (not input(2)) and (not input(1)) and input(0); output(2) <= (not input(2)) and input(1) and (not input(0)); output(3) <= (not input(2)) and input(1) and input(0); output(4) <= input(2) and (not input(1)) and (not input(0)); output(5) <= input(2) and (not input(1)) and input(0); output(6) <= input(2) and input(1) and (not input(0)); output(7) <= input(2) and input(1) and input(0); end arch; Sample Waveform Output: -
  • 19. ENCODER (4 Input Priority Encoder):- Source Code: - library ieee; use ieee.std_logic_1164.all; entity Encoder_8x3 is port(d0,d1,d2,d3,d4,d5,d6,d7:in std_logic; a0,a1,a2:out std_logic); end Encoder_8x3; architecture arch of Encoder_8x3 is begin a2<= d4 or d5 or d6 or d7; a1<= d2 or d3 or d6 or d7; a0<= d1 or d3 or d5 or d7; end arch; Sample Waveform Output: -
  • 21. Q 5:– Write a VHDL Program for a Comparator and check the simulation. Solution: - COMPARATOR:- Source Code: - LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_arith.all ; ENTITY compare IS PORT ( A, B : IN SIGNED(3 DOWNTO 0) ; AeqB, AgtB, AltB : OUT STD_LOGIC ) ; END compare ; ARCHITECTURE Behavior OF compare IS BEGIN AeqB <= '1' WHEN A = B ELSE '0' ; AgtB <= '1' WHEN A > B ELSE '0' ; AltB <= '1' WHEN A < B ELSE '0' ; END Behavior ; Sample Waveform Output: -
  • 22. Q 6:– Write a VHDL Program for a Code Convertor and check the simulation. Solution: - BCD to BINARY CODE CONVERTOR:- Source Code: - library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity BCD2BIN is Port ( bcd : in STD_LOGIC_VECTOR (4 downto 0); binary : out STD_LOGIC_VECTOR (3 downto 0)); end BCD2BIN; architecture Behavioral of BCD2BIN is begin process (bcd) begin case bcd is when "00000" => binary <= "0000"; when "00001" => binary <= "0001"; when "00010" => binary <= "0010"; when "00011" => binary <= "0011"; when "00100" => binary <= "0100"; when "00101" => binary <= "0101"; when "00110" => binary <= "0110"; when "00111" => binary <= "0111"; when "01000" => binary <= "1000"; when "01001" => binary <= "1001"; when "10000" => binary <= "1010"; when "10001" => binary <= "1011"; when "10010" => binary <= "1100"; when "10011" => binary <= "1101"; when "10100" => binary <= "1110"; when "10101" => binary <= "1111";
  • 23. when others => binary <= "XXXX"; end case; end process; end Behavioral; Sample Waveform Output: -
  • 24. Q 7:– Write a VHDL Program for a Flip-Flop and check the simulation. Solution: - JK FLIP FLOP:- Source Code: - library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity jk is Port ( J : in STD_LOGIC; K : in STD_LOGIC; clock : in STD_LOGIC; reset : in STD_LOGIC; Q : out STD_LOGIC; Qbar : out STD_LOGIC); end jk; architecture Behavioral of jk is signal state: std_logic; signal input: std_logic_vector(1 downto 0); begin input <= J & K; p: process(clock, reset) is begin if (reset='1') then state <= '0'; elsif (rising_edge(clock)) then case (input) is when "11" => state <= not state; when "10" => state <= '1'; when "01" => state <= '0';
  • 25. when others => null; end case; end if; end process; Q <= state; Qbar <= not state; end Behavioral; Sample Waveform Output: -
  • 26. Q 8:– Write a VHDL Program for a Counter and check the simulation. Solution: - N BIT COUNTER:- Source Code: - ---------------------------------------------------- -- VHDL code for n-bit counter -- -- this is the behavior description of n-bit counter -- another way can be used is FSM model. ---------------------------------------------------- library ieee ; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ---------------------------------------------------- entity counter is generic(n: natural :=2); port( clock: in std_logic; clear: in std_logic; count: in std_logic; Q: out std_logic_vector(n-1 downto 0) ); end counter; ---------------------------------------------------- architecture behv of counter is signal Pre_Q: std_logic_vector(n-1 downto 0); begin -- behavior describe the counter process(clock, count, clear) begin if clear = '1' then Pre_Q <= Pre_Q - Pre_Q; elsif (clock='1' and clock'event) then if count = '1' then Pre_Q <= Pre_Q + 1; end if; end if; end process; -- concurrent assignment statement Q <= Pre_Q; end behv; Sample Waveform Output: -
  • 28. Q 9:– Write VHDL Programs for the following and check simulation – 1. Register 2. Shift Register Solution: - N-Bit Register:- Source Code: - --------------------------------------------------- -- n-bit Register (ESD book figure 2.6) -- -- KEY WORD: concurrent, generic and range --------------------------------------------------- library ieee ; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; --------------------------------------------------- entity reg is generic(n: natural :=2); port( I: in std_logic_vector(n-1 downto 0); clock: in std_logic; load: in std_logic; clear: in std_logic; Q: out std_logic_vector(n-1 downto 0) ); end reg; ---------------------------------------------------- architecture behv of reg is signal Q_tmp: std_logic_vector(n-1 downto 0); begin process(I, clock, load, clear) begin if clear = '0' then -- use 'range in signal assigment Q_tmp <= (Q_tmp'range => '0'); elsif (clock='1' and clock'event) then if load = '1' then Q_tmp <= I; end if; end if; end process;
  • 29. -- concurrent statement Q <= Q_tmp; end behv; --------------------------------------------------- Sample Waveform Output: - 3-Bit Shift Register:- Source Code: - --------------------------------------------------- -- 3-bit Shift-Register/Shifter -- -- reset is ignored according to the figure --------------------------------------------------- library ieee ; use ieee.std_logic_1164.all; --------------------------------------------------- entity shift_reg is port( I: in std_logic; clock: in std_logic; shift: in std_logic; Q: out std_logic ); end shift_reg; --------------------------------------------------- architecture behv of shift_reg is -- initialize the declared signal signal S: std_logic_vector(2 downto 0):="111"; begin
  • 30. process(I, clock, shift, S) begin -- everything happens upon the clock changing if clock'event and clock='1' then if shift = '1' then S <= I & S(2 downto 1); end if; end if; end process; -- concurrent assignment Q <= S(0); end behv; Sample Waveform Output: -
  • 31. PRACTICAL FILE DIGITAL SYSTEM DESIGN LAB Softwares Used – 1. Xilinx 13.4 2. ActiveHDL 7.2 SE Submitted To:- Submitted By:- Mr. Manoj Ahlawat Soumya S. Behera Asst. Professor 1826 6th Semester, CSE UIET, Mdu, Rohtak