DSD Lab: Experiment-3
DSD Lab: Experiment-3
EXPERIMENT-3
THEORY :
BLOCK DIAGRAM :
CIRCUIT DIAGRAM :
TRUTH TABLE :
K-MAPS :
FOR ‘a’:
F = B’D’ + C + BD + A
FOR ‘b’:
F = B’ + C’D’ + CD
FOR ‘c’:
F = C’ + D + B
FOR ‘d’:
F = B’D’ + B’C + BC’D + CD’ + A
FOR ‘e’:
F = B’D’ + CD’
FOR ‘f’:
FOR ‘g’:
F = B’C + BC’ + A + BD’
PROGRAM CODE :
VHDL CODE :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity decoder is
port(
ABCD : in std_logic_vector(3 downto 0);
segment :out std_logic_vector(6 downto 0)
);
end entity;
end process;
end behavioural;
TESTBENCH CODE :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity testbench is
end entity;
stim_proc: process
begin
BCDin <= "0000";
wait for 100 ns;
BCDin <= "0001";
wait for 100 ns;
BCDin <= "0010";
wait for 100 ns;
BCDin <= "0011";
wait for 100 ns;
BCDin <= "0100";
wait for 100 ns;
BCDin <= "0101";
wait for 100 ns;
BCDin <= "0110";
wait for 100 ns;
BCDin <= "0111";
wait for 100 ns;
BCDin <= "1000";
wait for 100 ns;
BCDin <= "1001";
wait for 100 ns;
assert false report "Test done." severity note;
wait;
end process;
end behaviour;
PROGRAM SCREENSHOT :
SIMULATION :
LOGISIM SCREENSHOT :
RESULT : THE PROGRAM AND THE SIMULATION OF BCD TO 7-
SEGMENT IS WORKING PROPERLY.