PIRANTI TERPOGRAM
JL. RAYA ITS KEPUTIH SUKOLILO SURABAYA 60111 INDONESIA
TELP.(031) 5947280 FAX. (031) 594611
LAPORAN
KELAS : 2 D3 EA
NRP : 1103191023
TANGGAL : 29 - 03 - 2021
I. Tujuan
Mampu merancang dan mendemonstrasikan rangkaian Multiplexer dan
Comparator pada FPGA serta melaporkan hasil percobaannya
3. Memberi nama project dan letakkan project pada folder yang ditentukan serta
Top-level source type adalah HDL
4. Mensetting jenis FPGA dan konfigurasi lainnya sesuai gambar dibawah, dimana
Family: Spartan-3E
Package: CP132
Speed: -4
7. Memilih jenis source VHDL Module dan berilah nama, misalnya multiplexer
9. Maka kita akan mendapatkan file baru (*.vhd), tetapi tanpa deskripsi port yang
akan digunakan
10. Untuk percobaan ini kita akan membuat rangkaian Multiplexer dan
Comparator
11. Mengimplementasikan rancangan dan VHDL berikut, membuat VHDL-nya
kemudian mensimulasikannya.
12. Source Code VHDL Multiplexer
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity multiplexer is
port
(
a, b, c, d, e, f, g, h : in std_logic_vector(7 downto 0);
Sel : in std_logic_vector(2 downto 0);
Mux_out : out std_logic_vector(7 downto 0)
);
end multiplexer;
architecture Behavioral of multiplexer is
begin
process (a, b, c, d, e, f, g, h, Sel) is
begin
case Sel is
when "000" => Mux_out <= a;
when "001" => Mux_out <= b;
when "010" => Mux_out <= c;
when "011" => Mux_out <= d;
when "100" => Mux_out <= e;
when "101" => Mux_out <= f;
when "110" => Mux_out <= g;
when others => Mux_out <= h;
end case;
end process;
end architecture Behavioral;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Comparator is
generic(n: natural :=8);
port( A: in std_logic_vector(n-1 downto 0);
B: in std_logic_vector(n-1 downto 0);
clock: in std_logic;
less: out std_logic;
equal: out std_logic;
greater: out std_logic
);
end Comparator;
------------------------------------------------
architecture Behavioral of Comparator is
begin
process(A,B)
begin
if (A<B) then
less <= '1';
equal <= '0';
greater <= '0';
elsif (A=B) then
less <= '0';
equal <= '1';
greater <= '0';
else
less <= '0';
equal <= '0';
greater <= '1';
end if;
end process;
end Behavioral;
- Source Code Test Bench Comparator
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY TB_comparator IS
END TB_comparator;
ARCHITECTURE behavior OF TB_comparator IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT Comparator
PORT(
A : IN std_logic_vector(7 downto 0);
B : IN std_logic_vector(7 downto 0);
clock : IN std_logic;
less : OUT std_logic;
equal : OUT std_logic;
greater : OUT std_logic
);
END COMPONENT;
--Inputs
signal A : std_logic_vector(7 downto 0) := (others => '0');
signal B : std_logic_vector(7 downto 0) := (others => '0');
signal clock : std_logic := '0';
--Outputs
signal less : std_logic;
signal equal : std_logic;
signal greater : std_logic;
-- Clock period definitions
constant clock_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: comparator PORT MAP (
A => A,
B => B,
clock => clock,
less => less,
equal => equal,
greater => greater
);
-- Clock process definitions
clock_process :process
begin
clock <= '0';
wait for clock_period/2;
clock <= '1';
wait for clock_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
a <= "00000000";
b <= "00000001";
wait for 100 ns;
a <= "00001000";
b <= "00001001";
wait for 100 ns;
a <= "00011000";
b <= "00011000";
wait for 100 ns;
a <= "01101000";
b <= "01101000";
wait for 100 ns;
a <= "11000000";
b <= "10000010";
wait for 100 ns;
a <= "10011000";
b <= "10000111";
wait for 100 ns;
a <= "00011001";
b <= "00100111";
wait for 100 ns;
a <= "11111000";
b <= "00001111";
wait for 100 ns;
a <= "00011000";
b <= "11001111";
wait;
end process;
END;
VI. Analisa
Pada praktikum ke 5 ini, terdapat dua macam percobaan yakni multiplexer dan
comparator. Percobaan pertama, dilakukan percobaan mengenai multiplexer. Multiplexer
sendiri merupakan operasi logika yang mana inputnya lebih dari satu dan nantinya akan
dikeluarkan salah satu secaara bergantian sesuai selector dan delay yang ditentukan. Pada
percobaan ini menggunakan input sebanyak 8 buah dengan nama variable a sampai h, lalu
terdapat juga selector sebanyak 8 buah. Jika selector aktif, makan outputnya akan
mengeluarkan salah satu dari input yang diberikan.
Percobaan yang kedua untuk tugas yaitu mengenai comparator. Comparator sendiri
merupakan rangkaian pembanding, comparator disini akan membandingkan dua input
kemudian outputnya merupakan hasil perbandingan nilai dari kedua input misalnya lebih
kecil, sama dengan, dan lebih besar. Jika nilai A kurang dari B, maka less akan berlogic 1
sedangan equal dan greater akan berlogic 0. Jika nilai A = B, maka equal akan berlogic 1
sedangkan less dan greater akan berlogic 0. Jika A lebih besar dari B, maka greater akan
berlogic 1 sedangkan less dan equal akan berlogic 0.
VII. Kesimpulan
Berdasarkan praktikum yang telah dilakukan dapat disimpulkan bahwa Multiplexer
merupakan rangkaian logika yang mana inputnya lebih dari satu dan nantinya akan
dikeluarkan salah satu secaara bergantian sesuai selector dan delay yang ditentukan.
Sedangkan comparator merupakan pembanding dari kedua sinyal input dan akan
mengaktifkan satu sinyal output yang merupakan hasil dari perbandingan dari kedua sinyal
input.